% \iffalse meta-comment
%
% cypriot.dtx
%
%  Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
%  Copyright 1999--2009 Peter R. Wilson
%
%  This work may be distributed and/or modified under the
%  conditions of the Latex Project Public License, either
%  version 1.3 of this license or (at your option) any
%  later version.
%  The latest version of the license is in
%    http://www.latex-project.org/lppl.txt
%  and version 1.3 or later is part of all distributions of
%  LaTeX version 2003/06/01 or later.
%
%  This work has the LPPL maintenance status "author-maintained".
%
%  This work consists of the files listed in the README file.
%
% 
% If you do not have the docmfp package (available from CTAN in
% tex-archive/macros/latex/contrib/supported), comment out the
% \usepackage{docmfp} line below and uncomment the line following it.
% 
%
%<*driver>
\documentclass[twoside]{ltxdoc}
\usepackage{docmfp}
%%%%% \providecommand{\DescribeVariable}[1]{} \newenvironment{routine}[1]{}{}
\usepackage{url}
\usepackage[draft=false,
            plainpages=false,
            pdfpagelabels,
            bookmarksnumbered,
            hyperindex=false
           ]{hyperref}
\providecommand{\phantomsection}{}
\OnlyDescription %% comment this out for the full glory
\EnableCrossrefs
\CodelineIndex
\setcounter{StandardModuleDepth}{1}
\makeatletter
  \@mparswitchfalse
\makeatother
\renewcommand{\MakeUppercase}[1]{#1}
\pagestyle{headings}
\newenvironment{addtomargins}[1]{%
  \begin{list}{}{%
    \topsep 0pt%
    \addtolength{\leftmargin}{#1}%
    \addtolength{\rightmargin}{#1}%
    \listparindent \parindent
    \itemindent \parindent
    \parsep \parskip}%
  \item[]}{\end{list}}
\begin{document}
  \raggedbottom
  \DocInput{cypriot.dtx}
\end{document}
%</driver>
%
% \fi
%
% \CheckSum{279}
%
% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
% \DoNotIndex{\@centercr,\@cite}
% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
% \DoNotIndex{\@input,\@ixpt,\@m}
% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
% \DoNotIndex{\advance,\Alph,\alph}
% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
% \DoNotIndex{\bullet}
% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
% \DoNotIndex{\fbox}
% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
% \DoNotIndex{\input}
% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
% \DoNotIndex{\NeedsTeXFormat,\newdimen}
% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
% \DoNotIndex{\wd,\xiipt,\year,\z@}
%
% \changes{v1.0}{1999/06/20}{First public release}
% \changes{v1.1}{2005/04/17}{Contact changed, Type1 map file}
% \changes{v1.1}{2005/04/17}{Merged the three metafont files into one}
% \changes{v1.2}{2009/05/22}{Corrected some glyph codings}
%
% \def\fileversion{v1.0} \def\filedate{1999/06/20}
% \def\fileversion{v1.1} \def\filedate{2005/06/13}
% \def\fileversion{v1.2} \def\filedate{2009/05/22}
% \newcommand*{\Lpack}[1]{\textsf {#1}}           ^^A typeset a package
% \newcommand*{\Lopt}[1]{\textsf {#1}}            ^^A typeset an option
% \newcommand*{\file}[1]{\texttt {#1}}            ^^A typeset a file
% \newcommand*{\Lcount}[1]{\textsl {\small#1}}    ^^A typeset a counter
% \newcommand*{\pstyle}[1]{\textsl {#1}}          ^^A typeset a pagestyle
% \newcommand*{\Lenv}[1]{\texttt {#1}}            ^^A typeset an environment
% \newcommand{\BC}{\textsc{bc}}
% \newcommand{\AD}{\textsc{ad}}
%
% \title{The \Lpack{Cypriot} font\thanks{This
%        file has version number \fileversion, last revised
%        \filedate.}}
%
% \author{%
% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\
% Herries Press
% }
% \date{\filedate}
% \maketitle
% \begin{abstract}
%    The \Lpack{cypriot} bundle provides a rendition of the Cypriot
% syllabary which was a script used in Cyprus for writing Greek. The script
% was in use between about 1000 and 200~\BC.
% \end{abstract}
% \tableofcontents
% \listoftables
%
% 
%
% \section{Introduction}
%
%    The font presented here is a rendition of the Cypriot script
% that was used from about 1000 to 200~\BC, particularly on Cyprus.
% It is one of a series of fonts that was initially intended
% to show how the Latin alphabet has evolved from its original Phoenician form
% to its present day appearance.
%
% This manual is typeset according to the conventions of the
% \LaTeX{} \textsc{docstrip} utility which enables the automatic
% extraction of the \LaTeX{} macro source files~\cite{COMPANION}.
%
%    Section~\ref{sec:usc} describes the usage of the package.
% Commented code for the fonts and source code for the package is in 
% later sections.
%
% \subsection{An alphabetic tree}
%
%    Scholars are reasonably agreed that all the world's alphabets are descended
% from a Semitic alphabet invented about 1600~\BC{} in the Middle 
% East~\cite{DRUCKER95}. The word `Semitic' refers
% to the family of languages used in the geographical area from
% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and
% west to the valley of the Euphrates.
%
%    The Phoenician alphabet was stable by about 1100~\BC{} and the script was
% written right to left. In earlier times the writing direction was variable, 
% and so were
% the shapes and orientation of the characters. The alphabet consisted of
% 22 letters and they were named after things. For example, their first two 
% letters were called \textit{aleph} (ox), and \textit{beth} (house). 
% The Phoenician script had
% only one case --- unlike our modern fonts which have both upper- and 
% lower-cases. In modern day terms the Phoenician abecedary was: \\
% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\
% where the `Y' (\textit{vau}) character was sometimes written as `F' and
% `ts' stands for the \textit{tsade} character.
%
%    The Greek alphabet is one of the descendants of the Phoenician alphabet;
% another was Aramaic which is the ancestor of the Arabic, Persian and Indian 
% scripts.
% Initially Greek was written right to left but around the 6th C~\BC{} became 
% \textit{boustrophedron}, meaning that the lines 
% alternated in direction. At about 500~\BC{} the writing direction stabilised 
% as left to 
% right. The Greeks modified the Phoenician alphabet to match the vocalisation
% of their language. They kept the Phoenician names of the letters, suitably
% `greekified', so \textit{aleph} became the familar \textit{alpha} and 
% \textit{beth} became \textit{beta}. At this
% point the names of the letters had no meaning. Their were several variants
% of the Greek character glyphs until they were finally fixed in Athens in
% 403~\BC.
% The Greeks did not develop a lower-case 
% script until about 600--700~\AD.
%
%    The Etruscans based their alphabet on the Greek one, and again modified it.
% However, the Etruscans wrote right to left, so their borrowed characters are 
% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan
% script consisted of only one case; they died out before ever needing a
% lower-case script. The Etruscan script was used up until the first century 
% \AD, even though the Etruscans themselves had dissapeared by that time.
% 
%
%    In turn, the Romans based their alphabet on the Etruscan one, but as they 
% wrote left to right, the characters were again mirrored (although the early
% Roman inscriptions are boustrophedron). 
%
%    As the English alphabet is descended from the Roman alphabet
% it has a pedigree of some three and a half thousand years.
%
% \section{The \Lpack{cypriot} package} \label{sec:usc}
%
%    The Cypriot script was used in Cyprus for almost a thousand years, 
% from about 1000--200~\BC.
%
%    Cypriot is a syllabary, where there is a sign for each 
% syllable. There are 55 signs in the Cypriot syllabary.
% The script was used for record keeping, not for literary purposes. 
% It was used in Cyprus until about the third century \BC, although by
% this time few could read or write it. At this late date its use was 
% principally for recording
% inscriptions on votive offerings and public works, and in many cases
% the Cypriot script was accompanied by a Greek alphabetic version of
% the same text. These bilinguals were a great aid in deciphering the
% script, a task that was completed in the 1870's.
%
%    Apart from the specialised literature, the story of the Cypriot script
% can be found in~\cite{CHADWICK87} and~\cite{GORDON87}, among others.
%
%    Cypriot was used to write Greek centuries before the Greek alphabet
% was invented. Perhaps surprisingly, Cypriot has no other relationship
% to the Greek alphabet except that they can both be used to write the
% same language. There is, however, a relationship between the Cypriot syllabary
% and the earlier Linear~B syllabary,  which was principally used in Crete, as
% some of the signs are the same.
%
%    The font presented here is based on the signs illustrated by 
% Chadwick~\cite{CHADWICK87}, and consists of 55 signs.\footnote{I am grateful
% to J\"{u}rgen Kraus (\texttt{jkraus@uni-goettingen.de}) for reviewing
% my interpretation of the symbols.}
%
%
%
% \DescribeMacro{\cyprfamily}
%    This command selects the Cypriot font family. 
% The family name is |cypr|.
%
% \DescribeMacro{\textcypr}
% The command |\textcypr{|\meta{text}|}| typesets \meta{text} in the
% Cypriot font.
%
%    The commands (and their ASCII equivalents) for the 55 signs
% are given in Table~\ref{tab:basic}; you can use either the command or
% its ASCII keyboard equivalent. There are 5 signs for the 5 vowels and
% the remaining 50 signs are two-character syllables.
% The apparently odd mapping to the ASCII characters is so that a
% companion Linear~B font~\cite{LINEARB} can use the same ASCII characters
% for the syllables that are common to both scripts.
% \changes{v1.2}{2009/05/22}{Added \cs{Cxa} and \cs{Cxe} to encoding table}
% \begin{table}
% \centering
% \caption{Commands and encoding for the signs}\label{tab:basic}
% \begin{tabular}{cccccc} \hline
%    & a        & e        & i        & o        & u        \\ \hline
%    & |\Ca|  a & |\Ce|  e & |\Ci|  i & |\Co|  o & |\Cu|  u \\
% g  & |\Cga| g &          &          &          &          \\
% j  & |\Cja| j &          &          & |\Cjo| b &          \\
% k  & |\Cka| k & |\Cke| K & |\Cki| c & |\Cko| h & |\Cku| v \\
% l  & |\Cla| l & |\Cle| L & |\Cli| d & |\Clo| f & |\Clu| q \\
% m  & |\Cma| m & |\Cme| M & |\Cmi| y & |\Cmo| A & |\Cmu| B \\
% n  & |\Cna| n & |\Cne| N & |\Cni| C & |\Cno| E & |\Cnu| F \\
% p  & |\Cpa| p & |\Cpe| P & |\Cpi| G & |\Cpo| H & |\Cpu| I \\
% r  & |\Cra| r & |\Cre| R & |\Cri| O & |\Cro| U & |\Cru| V \\
% s  & |\Csa| s & |\Cse| S & |\Csi| Y & |\Cso| 1 & |\Csu| 2 \\
% t  & |\Cta| t & |\Cte| T & |\Cti| 3 & |\Cto| 4 & |\Ctu| 5 \\
% w  & |\Cwa| w & |\Cwe| W & |\Cwi| 6 & |\Cwo| 7 &          \\
% x  & |\Cxa| x & |\Cxe| X &          &          &          \\
% z  &          &          &          & |\Czo| 9 &          \\
% \hline
% \end{tabular}
% \end{table}
%
%    There appears to be some flexibility in the interpretation of three
% of the signs, namely the \textit{ga}, \textit{ja} and \textit{jo}. Some
% write these as \textit{za}, \textit{ya} and \textit{yo}, respectively.
% I have provided the commands |\Cza|, |\Cya| and |\Cyo|, in addition to
% those listed in Table~\ref{tab:basic}, for those who prefer the alternate
% interpretation. These typeset the same sign as the corresponding
% |\Cga|, |\Cja| and
% |\Cjo| commands, the difference between the interpretations only being
% manifest within transliterated text.
%
%     The Cypriot script includes a word divider, which is a short vertical
% line. In this font, there are three synonomous dividers which are produced
% by the ASCII keyboard characters |: , /| (i.e., colon or comma or slash).
% Using any of these when typesetting the script produce the same word divider
% sign. 
%
% \DescribeMacro{\translitcypr}
%  The command |\translitcypr{|\meta{char-commands}|}|, where \meta{char-commands}
% are the Cypriot character commands, will typeset a transliteration of the
% signs. For example,\\
% |\translitcypr{\Cti\Cme:\Cto/\Cre\Cti\Cre}| will generate \\
% \textit{ti-me-:to-/re-ti-re-} \\
% Note that in the transliterated form the word dividers 
% (|:| and |/| in this example) are printed as themselves. This is because
% only the character commands are modified while any other text is printed as is.
% It is a feature of the command that all transliterated commands have a trailing
% |-| sign.
%
% \DescribeMacro{\translitcyprfont}
% The transliterated Cypriot is typeset with the font declarations specified by
% |\translitcyprfont|, which defaults to |\itshape| thus printing the
% transliteration in an italic font. The font can be changed by redefining
% the command. For example, if you wanted to use a bold sans font you
% would do: \\
% |\renewcommand{\translitcyprfont}{\sffamily\bfseries}|
%
%
% \section{The font definition files} \label{sec:fd}
%
%    \begin{macrocode}
%<*fdot1>
\ProvidesFile{ot1cypr.fd}[1999/06/20 v1.0 Cypriot font definitions]
\DeclareFontFamily{OT1}{cypr}{}
  \DeclareFontShape{OT1}{cypr}{m}{n}{ <-> cypr10 }{}
  \DeclareFontShape{OT1}{cypr}{bx}{n}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{OT1}{cypr}{b}{n}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{OT1}{cypr}{m}{sl}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{OT1}{cypr}{m}{it}{ <-> sub cypr/m/n }{}
%</fdot1>
%    \end{macrocode}
%
%
%    \begin{macrocode}
%<*fdt1>
\ProvidesFile{t1cypr.fd}[1999/06/20 v1.0 Cypriot font definitions]
\DeclareFontFamily{T1}{cypr}{}
  \DeclareFontShape{T1}{cypr}{m}{n}{ <-> cypr10 }{}
  \DeclareFontShape{T1}{cypr}{bx}{n}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{T1}{cypr}{b}{n}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{T1}{cypr}{m}{sl}{ <-> sub cypr/m/n }{}
  \DeclareFontShape{T1}{cypr}{m}{it}{ <-> sub cypr/m/n }{}
%</fdt1>
%    \end{macrocode}
%
% \section{The \Lpack{cypriot} package code} \label{sec:code}
%
%    Announce the name and version of the package, which requires
% \LaTeXe{}.
%    \begin{macrocode}
%<*usc>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cypriot}[2009/05/22 v1.2 package for Cypriot font]
%    \end{macrocode}
%
%   We need to check the encoding default for the document.
% \begin{macro}{\Tienc}
%    \begin{macrocode}
\providecommand{\Tienc}{T1}
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\cyprfamily}
%    Selects the Cypriot font family in the T1 encoding if this
% is the document's default encoding, otherwise make it the OT1 encoding.
%    \begin{macrocode}
\ifx\Tienc\encodingdefault
  \newcommand{\cyprfamily}{\usefont{T1}{cypr}{m}{n}}
\else
  \newcommand{\cyprfamily}{\usefont{OT1}{cypr}{m}{n}}
\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\textcypr}
%    Text command for the Cypriot font family.
%    \begin{macrocode}
\DeclareTextFontCommand{\textcypr}{\cyprfamily}
%    \end{macrocode}
% \end{macro}
%
%    The commands for the basic signs.
% \begin{macro}{\Ca}
% \begin{macro}{\Ce}
% \begin{macro}{\Ci}
% \begin{macro}{\Co}
% \begin{macro}{\Cu}
% The 5 vowels.
%    \begin{macrocode}
\chardef\Ca=`a
\chardef\Ce=`e
\chardef\Ci=`i
\chardef\Co=`o
\chardef\Cu=`u
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cga}
% The 1 G syllables.
%    \begin{macrocode}
\chardef\Cga=`g
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Cja}
% \begin{macro}{\Cjo}
% The 2 J syllables.
%    \begin{macrocode}
\chardef\Cja=`j
\chardef\Cjo=`b
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\Cka}
% \begin{macro}{\Cke}
% \begin{macro}{\Cki}
% \begin{macro}{\Cko}
% \begin{macro}{\Cku}
% The 5 K syllables.
%    \begin{macrocode}
\chardef\Cka=`k
\chardef\Cke=`K
\chardef\Cki=`c
\chardef\Cko=`h
\chardef\Cku=`v
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cla}
% \begin{macro}{\Cle}
% \begin{macro}{\Cli}
% \begin{macro}{\Clo}
% \begin{macro}{\Clu}
% The 5 L syllables.
%    \begin{macrocode}
\chardef\Cla=`l
\chardef\Cle=`L
\chardef\Cli=`d
\chardef\Clo=`f
\chardef\Clu=`q
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\Cma}
% \begin{macro}{\Cme}
% \begin{macro}{\Cmi}
% \begin{macro}{\Cmo}
% \begin{macro}{\Cmu}
% The 5 M syllables.
%    \begin{macrocode}
\chardef\Cma=`m
\chardef\Cme=`M
\chardef\Cmi=`y
\chardef\Cmo=`A
\chardef\Cmu=`B
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\Cna}
% \begin{macro}{\Cne}
% \begin{macro}{\Cni}
% \begin{macro}{\Cno}
% \begin{macro}{\Cnu}
% The 5 N syllables.
%    \begin{macrocode}
\chardef\Cna=`n
\chardef\Cne=`N
\chardef\Cni=`C
\chardef\Cno=`E
\chardef\Cnu=`F
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cpa}
% \begin{macro}{\Cpe}
% \begin{macro}{\Cpi}
% \begin{macro}{\Cpo}
% \begin{macro}{\Cpu}
% The 5 P syllables.
%    \begin{macrocode}
\chardef\Cpa=`p
\chardef\Cpe=`P
\chardef\Cpi=`G
\chardef\Cpo=`H
\chardef\Cpu=`I
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\Cra}
% \begin{macro}{\Cre}
% \begin{macro}{\Cri}
% \begin{macro}{\Cro}
% \begin{macro}{\Cru}
% The 5 R syllables.
%    \begin{macrocode}
\chardef\Cra=`r
\chardef\Cre=`R
\chardef\Cri=`O
\chardef\Cro=`U
\chardef\Cru=`V
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Csa}
% \begin{macro}{\Cse}
% \begin{macro}{\Csi}
% \begin{macro}{\Cso}
% \begin{macro}{\Csu}
% The 5 S syllables.
%    \begin{macrocode}%
\chardef\Csa=`s
\chardef\Cse=`S
\chardef\Csi=`Y
\chardef\Cso=`1
\chardef\Csu=`2
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cta}
% \begin{macro}{\Cte}
% \begin{macro}{\Cti}
% \begin{macro}{\Cto}
% \begin{macro}{\Ctu}
% The 5 T syllables.
%    \begin{macrocode}
\chardef\Cta=`t
\chardef\Cte=`T
\chardef\Cti=`3
\chardef\Cto=`4
\chardef\Ctu=`5
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cwa}
% \begin{macro}{\Cwe}
% \begin{macro}{\Cwi}
% \begin{macro}{\Cwo}
% The 4 W syllables.
%    \begin{macrocode}
\chardef\Cwa=`w
\chardef\Cwe=`W
\chardef\Cwi=`6
\chardef\Cwo=`7
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Cxa}
% \begin{macro}{\Cxe}
% The 2 X syllables.
% \changes{v1.2}{2009/05/22}{There are only 2, not 3, X syllables}
%    \begin{macrocode}
\chardef\Cxa=`x
\chardef\Cxe=`X
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\Czo}
% The 1 Z syllables.
%    \begin{macrocode}
\chardef\Czo=`9
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Cza}
% \begin{macro}{\Cya}
% \begin{macro}{\Cya}
% The 3 arguable syllables.
%    \begin{macrocode}
\chardef\Cza=`g
\chardef\Cya=`j
\chardef\Cyo=`b
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\translitcyprfont}
% \begin{macro}{\translitcypr}
%    |\translitcypr{|\meta{char-commands}|}| transliterates Cypriot character
% commands into distinguished syllables; these are typeset using the 
% |\translitcyprfont| font specification.
%    \begin{macrocode}
\newcommand{\translitcyprfont}{\itshape}
\newcommand{\translitcypr}[1]{{%
  \@translitC\translitcyprfont #1}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@translitC}
%    This macro redefines all the character producing commands for use
% in |\translitcypr|.
%
% Start with the 5 vowels. We have to make sure that there are no extraneous
% spaces within the command.
%    \begin{macrocode}
\newcommand{\@translitC}{%
\def\Ca{a-}\def\Ce{e-}\def\Ci{i-}\def\Co{o-}\def\Cu{u-}%
%    \end{macrocode}    
%
% The 1 G syllables.
%    \begin{macrocode}
\def\Cga{ga-}%
%    \end{macrocode}
%
% The 2 J syllables.
%    \begin{macrocode}
\def\Cja{ja-}\def\Cjo{jo-}%
%    \end{macrocode}
%
% The 5 K syllables.
%    \begin{macrocode}
\def\Cka{ka-}\def\Cke{ke-}\def\Cki{ki-}\def\Cko{ko-}\def\Cku{ku-}%
%    \end{macrocode}
%
% The 5 L syllables.
%    \begin{macrocode}
\def\Cda{da-}\def\Cde{de-}\def\Cdi{di-}\def\Cdo{do-}\def\Cdu{du-}%
%    \end{macrocode}
%
% The 5 M syllables.
%    \begin{macrocode}
\def\Cma{ma-}\def\Cme{me-}\def\Cmi{mi-}\def\Cmo{mo-}\def\Cmu{mu-}%
%    \end{macrocode}
%
% The 5 N syllables.
%    \begin{macrocode}
\def\Cna{na-}\def\Cne{ne-}\def\Cni{ni-}\def\Cno{no-}\def\Cnu{nu-}%
%    \end{macrocode}
%
% The 5 P syllables.
%    \begin{macrocode}
\def\Cpa{pa-}\def\Cpe{pe-}\def\Cpi{pi-}\def\Cpo{po-}\def\Cpu{pu-}%
%    \end{macrocode}
%
%
% The 5 R syllables.
%    \begin{macrocode}
\def\Cra{ra-}\def\Cre{re-}\def\Cri{ri-}\def\Cro{ro-}\def\Cru{ru-}%
%    \end{macrocode}
%
% The 5 S syllables.
%    \begin{macrocode}
\def\Csa{sa-}\def\Cse{se-}\def\Csi{si-}\def\Cso{so-}\def\Csu{su-}%
%    \end{macrocode}
%
% The 5 T syllables.
%    \begin{macrocode}
\def\Cta{ta-}\def\Cte{te-}\def\Cti{ti-}\def\Cto{to-}\def\Ctu{tu-}%
%    \end{macrocode}
%
% The 4 W syllables.
%    \begin{macrocode}
\def\Cwa{wa-}\def\Cwe{we-}\def\Cwi{wi-}\def\Cwo{wo-}%
%    \end{macrocode}
%
% The 2 X syllables.
% \changes{v1.2}{2009/05/22}{There is no \cs{Cxo} syllable}
%    \begin{macrocode}
\def\Cxa{xa-}\def\Cxe{xe-}%
%    \end{macrocode}
%
% The 1 Z syllables.
%    \begin{macrocode}
\def\Czo{zo-}%
%    \end{macrocode}
%
% The 3 arguable syllables
%    \begin{macrocode}
\def\Cza{za-}\def\Cya{ya-}\def\Cyo{yo-}%
%    \end{macrocode}
%
% Close the macro definition.
%    \begin{macrocode}
} % end of \@translitC
%    \end{macrocode}
% \end{macro}
%
%
%    The end of this package.
%    \begin{macrocode}
%</usc>
%    \end{macrocode}
%
% \section{The map file}
%
% This is pretty short.
% \changes{v1.1}{2005/04/17}{Added the map file}
%    \begin{macrocode}
%<*map>
cypr10   Archaic-Cypriot  <cypr10.pfb
%</map>
%    \end{macrocode}
%
% 
% \StopEventually{
% \bibliographystyle{alpha}
% \begin{thebibliography}{GMS94}
%
% \bibitem[Cha87]{CHADWICK87}
% John Chadwick.
% \newblock \emph{Linear B and Related Scripts}.
% \newblock University of California Press/British Museum, 1987.
% (ISBN 0-520-06019-9)
%
% \bibitem[Dru95]{DRUCKER95}
% Johanna Drucker.
% \newblock \emph{The Alphabetic Labyrinth}.
% \newblock Thames and Hudson, 1995.
%
% \bibitem[Fir93]{FIRMAGE93}
% Richard A.~Firmage.
% \newblock \emph{The Alphabet Abecedarium}.
% \newblock David R.~Goodine, 1993.
%
% \bibitem[MG04]{COMPANION}
% Frank Mittelbach and Michel Goossens.
% \newblock \emph{The LaTeX Companion}.
% \newblock Addison-Wesley Publishing Company, second edition, 2004.
%
% \bibitem[Gor87]{GORDON87}
% Cyrus H.~Gordon.
% \newblock \emph{Forgotten Scripts}.
% \newblock Dorset Press, (Revised and enlarged edition) 1987.
%
% \bibitem[Wil99]{LINEARB}
% Peter R.~Wilson.
% \newblock \emph{The Linear~B Package}.
% \newblock 1999. (Available from CTAN in \texttt{fonts/archaic}).
%
% \end{thebibliography}
% \PrintIndex
% }
%
%
%     
%
% \section{The Metafont code} \label{sec:mf}
%
% \subsection{The parameters}
%
%    We deal with the parameters first, and start by announcing
% what it is for.
% \changes{v1.1}{2005/04/17}{Merged all the metafont files into one.}
%    \begin{macrocode}
%<*up>
%%% CYPR10.MF  Cypriot Bronze Age script 10 point design size.

%    \end{macrocode}
%    Specify the font size.
%    \begin{macrocode}

font_identifier:="Cypriot"; font_size 10pt#;

%    \end{macrocode}
%
%
% \DescribeVariable{penfudge}
%  Increase (decrease) this to get bolder (lighter) characters.
%    \begin{macrocode}
penfudge:=1.0;
%    \end{macrocode}
%  
%
% \DescribeVariable{heightfudge}
%  Increase (decrease) this to get taller (shorter) characters.
%    \begin{macrocode}
heightfudge:=1.0;
%    \end{macrocode}
%  
%
%    Define the very simple font values.
% \DescribeVariable{u} 
% The unit width.
%    \begin{macrocode}
u#:=.2pt#;                 % unit width
%    \end{macrocode}
%
% \DescribeVariable{ht} 
% The height of the characters. Computer Modern cap height is approximately
% |6.8pt|.
%    \begin{macrocode}
ht#:=heightfudge*10pt#;    % height of characters (CM cap-height is approx 6.8pt)
%    \end{macrocode}
%
% \DescribeVariable{s} 
%  Extra space at the left and right of a character.
%    \begin{macrocode}
s#:=1.5pt#;                % width correction (right and left)
%    \end{macrocode}
%
% \DescribeVariable{o} 
% Overshoot correction.
%    \begin{macrocode}
o#:=1/20pt#;               % overshoot
%    \end{macrocode}
%
% \DescribeVariable{px} 
% The horizontal width of the pen.
%    \begin{macrocode}
px#:=penfudge*0.7pt#;      % horizontal width of pen
%    \end{macrocode}
%
% \DescribeVariable{font-normal-space} 
% The width of a blank space.
%    \begin{macrocode}
font_normal_space:=7pt#;   % width of a blank space
%    \end{macrocode}
%
% \DescribeVariable{font-normal-shrink} 
% Possible width correction for a blank space.
%    \begin{macrocode}
font_normal_shrink:=.9pt#; % width correction for blank space
%    \end{macrocode}
%
% \DescribeVariable{font-x-height} 
% Just for completness, the height of |1ex|.
%    \begin{macrocode}
font_x_height:=4.5pt#;     % height of one ex
%    \end{macrocode}
%
% \DescribeVariable{font-quad}
% The width of |1em|.
%    \begin{macrocode}
font_quad:=10pt#;          % an em

%    \end{macrocode}
%
%    Now move on to the `driver' data for the font.
%
% \subsection{The driver data}
%
%    Switch into Metafont mode
%
%    \begin{macrocode}
font_coding_scheme:="Cypriot glyphs";
mode_setup;

%    \end{macrocode}
%
% \DescribeVariable{ho}
% \DescribeVariable{leftloc}
% \DescribeVariable{py}
%  Perform additional setup.
%    \begin{macrocode}
ho#:=o#;                   % horizontal overshoot
leftloc#:=s#;        % leftmost xcoord of character
py#:=.9px#;                % vertical thickness of the pen

define_pixels(s,u);
define_blacker_pixels(px,py);
define_good_x_pixels(leftloc);
define_corrected_pixels(o);             % turn on overshoot correction
define_horizontal_corrected_pixels(ho);  

%    \end{macrocode}
%  
%
% \DescribeVariable{midloc}
% \DescribeVariable{rightloc}
%    Variables for the middle xcoord and rightmost xcoord of a character.
%    \begin{macrocode}
numeric midloc, rightloc;
%    \end{macrocode}
%  
%
% \DescribeVariable{tiny}
% \DescribeVariable{small}
% \DescribeVariable{medium}
% \DescribeVariable{large}
% \DescribeVariable{huge}
%   Some lengths.
%    \begin{macrocode}
tiny#:=px#;
small#:=2px#;
medium#:=3px#;
large#:=4px#;
huge#:=5px#;
define_pixels(tiny,small,medium,large,huge);
%    \end{macrocode}
%  
% \DescribeVariable{NE} 
% \DescribeVariable{NW} 
% \DescribeVariable{SW} 
% \DescribeVariable{SE} 
% Shorthand for direction vectors corresponding to the designated compass point.
%    \begin{macrocode}
pair NE,NW,SW,SE;
NE:=(1,1);
NW:=(-1,1);
SW:=(-1,-1);
SE:=(1,-1);
%    \end{macrocode}
%  
%
% \DescribeVariable{stylus}
%    Define the pen.
%    \begin{macrocode}
pickup pencircle xscaled px yscaled py;
stylus:=savepen;

%    \end{macrocode}
%  
%
% \begin{routine}{draw_hdash}
%    |draw_hdash(1,len)| draws a horizontal line, length |len|, with its
% midpoint at |z1|.
%    \begin{macrocode}
def draw_hdash(suffix $)(expr len)=
  x$l=x$-len/2; x$r=x$+len/2; y$l=y$r=y$;
  draw z$l--z$r;
enddef;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{draw_vdash}
%    |draw_vdash(1,len)| draws a vertical line, length |len|, with its
% midpoint at |z1|.
%    \begin{macrocode}
def draw_vdash(suffix $)(expr len)=
  x$t=x$b=x$; y$t=y$+len/2; y$b=y$-len/2;
  draw z$t--z$b;
enddef;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{beginglyph}
%    A macro to save some typing of beginchar arguments.
%    \begin{macrocode}
def beginglyph(expr code, unit_width) =
  beginchar(code, unit_width*ht#+2s#, ht#, 0);
  midloc:=1/2w; rightloc:=(w-s);
  pickup stylus enddef;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{cmchar}
%    |cmchar| should precede each character
%    \begin{macrocode}
let cmchar=\;

%    \end{macrocode}
% \end{routine}
% 
%
% \subsection{The glyph code}
%
%    The following code generates the glyphs for the Cypriot font. 
%    \begin{macrocode}
%%%% Glyph code for the Cypriot font.

%    \end{macrocode}
%
% \subsubsection{The glyphs}
%
% There are 55 glyphs. These are composed of the five vowels 
% (a e i o u), and 50 syllables. First I define the vowels,
% then the remaining characters in syllable order 
% (e.g. \ldots nu, pa, pe, pi, po, pu, qa \ldots). The glyphs
% are encoded as roman upper and lower case characters and the digits.
%
%    The somewhat peculiar mapping to the alphanumerics is so that a
% companion Linear B syllabary can use an identical encoding for the
% syllables that are common between Linear B and Cypriot.
%
%    The vowels are mapped to their lowercase ASCII equivalents.
% A syllable "xa" is mapped to ASCII x and "xe" is mapped to X.
% Otherwise, the mapping appears random, although there is an 
% underlying methodology.
%
% \begin{routine}{a}
%    The sign \textit{a}. Like an asterisk.
%    \begin{macrocode}
cmchar "Cypriot sign a";
beginglyph("a",1.0);
x1=x6=leftloc; y1=0; y6=h;                % left points
x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4];  % middle points
x5=x2=rightloc; y5=0; y2=h;               % right points
draw z1--z2;                % bl to tr diagonal
draw z3--z4;                % vertical
draw z5--z6;                % br to tl diagonal
labels(0,1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{e}
%    The sign \textit{e}. Like the `a' but with an extra horizontal half stroke.
% crossbar.
%    \begin{macrocode}
cmchar "Cypriot sign e";
beginglyph("e",1.0);
x1=x6=leftloc; y1=0; y6=h;                % left points
x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4];  % middle points
x5=x2=rightloc; y5=0; y2=h;               % right points
x7=x2; y7=y0;
draw z1--z2;                % bl to tr diagonal
draw z3--z4;                % vertical
draw z5--z6;                % br to tl diagonal
draw z0--z7;                % short horizontal
labels(0,1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{i}
%    The sign \textit{i}. Like the `a' but short vertical.
%    \begin{macrocode}
cmchar "Cypriot sign i";
beginglyph("i",1.0);
x1=x6=leftloc; y1=0; y6=h;                % left points
x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4];  % middle points
x5=x2=rightloc; y5=0; y2=h;               % right points
draw z1--z2;                % bl to tr diagonal
draw z0--z4;                % vertical
draw z5--z6;                % br to tl diagonal
labels(0,1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{o}
%    The sign \textit{o}. Corporal's stripes on a horizontal base.
%    \begin{macrocode}
cmchar "Cypriot sign o";
beginglyph("o",1.0);
x1=x6=leftloc; y1=0; y6=h;                % left points
x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4];  % middle points
x5=x2=rightloc; y5=0; y2=h;               % right points
x7=x1; x8=x5; y7=y8=y0;
draw z6--z0--z2;            % top stripe
draw z7--z3--z8;            % bottom stripe
draw z1--z5;                % base
labels(0,1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{u}
%    The sign \textit{u}. A Y with the top arms bent.
%    \begin{macrocode}
cmchar "Cypriot sign u";
beginglyph("u",1.0);
numeric alpha, wid; alpha:=1/6;
wid:=(rightloc-leftloc);
x1=x2=midloc; y1=0; y2=h*(1-2alpha);    % stem
x3=leftloc; x6=rightloc;                % arms
y4=y5=h;
y3=y6=0.5[y2,y4];
x4=alpha[x3,x6]; x5=alpha[x6,x3];
draw z1--z2;                    % stem
draw z3--z4--z2--z5--z6;        % arms
labels(1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ga}
%    The sign \textit{ga}. Like |> <| with two dashes.
%    \begin{macrocode}
cmchar "Cypriot sign ga";
beginglyph("g",1.0);
numeric alpha, wid; alpha:=1/6;
wid:=(rightloc-leftloc);
numeric beta; beta:=small;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x2=midloc-beta; x5=midloc+beta; y2=y5=h/2;        % chevron centers
z11'=1/3[z5,z6]; z13'=2/3[z5,z6];                 % the dashes
z11=z11' shifted (tiny*NW); z13=z13' shifted (tiny*NW);
z12=z11 shifted (small*NW); z14=z13 shifted (small*NW);
draw z1--z2--z3; draw z4--z5--z6;            % chevrons
draw z11--z12; draw z13--z14;                % dashes
labels(1,2,3,4,5,6,7,8,11,12,13,14);
endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{ja}
% The sign \textit{ja}. A teardrop. (A rectangle with two interior lines.)
%    \begin{macrocode}
cmchar "Cypriot sign ja";
beginglyph("j",0.4);
x1=x3=midloc; y1=0; y3=h;
x2=leftloc; x4=rightloc; y2=y4=0.75[y1,y3];
draw z1..z2{up}..{right}z3;          % left half
draw z1..z4{up}..{left}z3;           % right half
labels(1,2,3,4); 
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{jo}
% The sign \textit{jo}. A W with a line under the bottom right point.
%    \begin{macrocode}
cmchar "Cypriot sign jo";
beginglyph("b",1.0);
x1=leftloc; x3=midloc; x5=rightloc;        % the W
x2=1/2[x1,x3]; x4=1/2[x5,x3]; y2=y4=0;
y1=y3=y5=0.5h;
x6=0.2[x3,x4]; x7=0.2[x5,x4]; y6=y7=0;     % horizontal
draw z1--z2--z3--z4--z5;                   % the W
draw z6--z7;                               % horizontal
labels(1,2,3,4,5,6,7,8); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{ka}
% The sign \textit{ka}. Upward arrow on a base.
%    \begin{macrocode}
cmchar "Cypriot sign ka";
beginglyph("k",0.6);
x1=leftloc; x2=rightloc; y1=y2=0;    % base
x3=x4=midloc; y3=0; y4=h;            % stem
x5=leftloc; x6=rightloc; y5=y6=0.7h; % arrowhead
draw z1--z2;        % base
draw z3--z4;        % stem
draw z5--z4--z6;    % arrowhead
labels(1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{ke}
%    The sign \textit{ke}. An E rotated 135 degrees with bottom arm and upright
% extended.
%    \begin{macrocode}
cmchar "Cypriot sign ke";
beginglyph("K",1.0);
numeric alpha, beta; alpha=medium;
x0ll=leftloc+alpha; x0lr=rightloc; y0ll=y0lr=alpha;    % E box
x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h;
%%zll=(xll,yll); zur=(xur,yur);
z1=z0ll shifted (alpha*right);
z4=z0ll shifted (alpha*up);
z1-z3=whatever*(z0ll-z0ur);        % lines parallel to box diagonal
z4-z5=whatever*(z0ll-z0ur);
x3=x0lr; y6=h;
z2=0.5[z1,z3]; z5=0.5[z4,z6];        % center of parallel lines
z7-z1=whatever*(z1-z3); y7=0;        % upright extension
z8-z1=whatever*(z1-z4); y8=0;        % arm extension
draw z1--z3;                               % E upright
draw z1--z4; draw z2--z5; draw z3--z6;     % E arms
draw z1--z7; draw z1--z8;                  % extensions
labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6,7,8); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ki}
%    The sign \textit{ki}. Like a Y with bent arms. (J\"{u}rgen Kraus
% adds a top bar to the Y).
%    \begin{macrocode}
cmchar "Cypriot sign ki";
beginglyph("c",1.0);
numeric alpha, wid; alpha:=1/6;
numeric beta; beta:=0.25;
wid:=(rightloc-leftloc);
x1=x2=midloc; y1=0; y2=h*(1-2alpha);    % stem
x3=leftloc; x6=rightloc;                % arms
y4=y5=h;
y3=y6=0.5[y2,y4];
x4=alpha[x3,x6]; x5=alpha[x6,x3];
x14=x4; x15=x5; y14=y15=0;              % base
z16=beta[z4,z5]; z17=beta[z5,z4];       % top bar
draw z1--z2;                    % stem
draw z3--z4--z2--z5--z6;        % arms
draw z14--z15;                  % base
draw z16--z17;                  % top bar
labels(1,2,3,4,5,6,7,8,14,15,16,17);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ko}
%    The sign \textit{ko}.
%    \begin{macrocode}
cmchar "Cypriot sign ko";
beginglyph("h",0.8);
numeric beta; beta:=0.2;
x1=leftloc; x4=rightloc; y1=y4=0;    % bottom points
x2=beta[x1,x4]; x3=beta[x4,x1]; y2=y3=h;  % top points
draw z1--z2--z3--z4;
labels(1,2,3,4); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ku}
%    The sign \textit{ku}.
%    \begin{macrocode}
cmchar "Cypriot sign ku";
beginglyph("v",0.8);
numeric beta; beta:=small;
x1=x6=leftloc; y6=h; y1=0.4h;  % left points
x3=x4=midloc; y3=0;            % center points
x5=x2=rightloc; y5=y1; y2=y6;  % right points
z0=whatever[z1,z2]=whatever[z5,z6];
y4=y0+beta;
z4-z8=whatever*(z0-z2); y8=h;
z4-z7=whatever*(z0-z6); y7=h;
draw z3--z0;                  % stem
draw z1--z2; draw z5--z6;     % the X
draw z7--z4--z8;              % upper angle
labels(0,1,2,3,4,5,6,7,8); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{la}
%    The sign \textit{la}. Like a V on a base.
%    \begin{macrocode}
cmchar "Cypriot sign la";
beginglyph("l",0.8);
numeric beta; beta:=medium;
x1=leftloc; x2=rightloc-beta; y1=y2=0;    % base
x3=x1; x4=0.5[x1,x2]; x5=x2; x6=rightloc; % V
y3=y5=h; y4=y1; y6=y5-beta;
draw z1--z2;           % base
draw z3--z4--z5--z6;   % V
labels(1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{le}
%    The sign \textit{le}. Like an 8.
%    \begin{macrocode}
cmchar "Cypriot sign le";
beginglyph("L",0.6);
x1=x2=leftloc; y1=1/4h; y2=3/4h;  % left points
x3=x4=midloc; y3=0; y4=h;         % middle points
x5=x6=rightloc; y5=y1; y6=y2;     % right points
draw z3..z1..z6..z4..z2..z5..cycle;   % the 8
labels(1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{li}
%    The sign \textit{li}. Like a $\leq$ symbol.
%    \begin{macrocode}
cmchar "Cypriot sign li";
beginglyph("d",0.6);
numeric beta; beta:=medium;
x1=leftloc; x2=rightloc; y1=y2=beta;  % base
x3=x5=x2; x4=x1; y3=y4=x1+beta; y5=h-beta;
draw z1--z2;     % base
draw z3--z4--z5; % < symbol
labels(1,2,3,4,5); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{lo}
%    The sign \textit{lo}. A cross.
%    \begin{macrocode}
cmchar "Cypriot sign lo";
beginglyph("f",0.5);
x0=midloc; y0=h/2;
x1=leftloc; x2=rightloc; y1=y2=y0;  % horizontal
x3=x4=x0; y3-y0=x2-x0; y0-y4=x2-x0; % vertical
draw z1--z2; draw z3--z4;
labels(1,2,3,4); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{lu}
%    The sign \textit{lu}. Like a dome over a U.
%    \begin{macrocode}
cmchar "Cypriot sign lu";
beginglyph("q",0.8);
numeric radb, rads; 
x1=leftloc; x2=rightloc; y1=y2=0;   % dome base points
radb:=0.5(x2-x1);
x3=x1; x4=x2; y3=y4=h-radb;         % dome mid points
x5=midloc; y5=h;                    % dome top point
rads:=1/2radb;
x15=x5; y15=y1;                     % U bottom point
x13=x15-rads; x14=x15+rads; y13=y14=y15+rads;   % U mid points
x11=x13; x12=x14; y11=y12=y13+2rads;            % U top points
draw z1---z3..z5..z4---z2;           % the Dome
draw z11---z13..z15..z14---z12;      % the U
labels(1,2,3,4,5,11,12,13,14,15); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{ma}
%    The sign \textit{ma}. Like |> <| with an upside down |^| at the top.
%    \begin{macrocode}
cmchar "Cypriot sign ma";
beginglyph("m",0.8);
numeric beta; beta:=small;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x2=midloc-beta; x5=midloc+beta; y2=y5=h/2;
x8=midloc; y8=y5+beta;
z7-z8=whatever*(z3-z2); z9-z8=whatever*(z6-z5); y7=y9=h;
draw z1--z2--z3;      % left angle
draw z4--z5--z6;      % right angle
draw z7--z8--z9;      % top angle
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{me}
%    The sign \textit{me}. An X with an i at the bottom.
%    \begin{macrocode}
cmchar "Cypriot sign me";
beginglyph("M",0.8);
numeric beta; beta:=tiny; %% beta:=small;
x0=midloc; y0=h/2;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x11=x12=midloc; x13=x11+beta; x14=x13+beta;
y12=beta; y13=0; y14=beta/2; y11=0.5[y12,y0];
draw z1--z6; draw z4--z3;              % the X
draw z11--z12{down}..z13{right}..z14;  % the i
labels(1,2,3,4,5,6,7,8,9,11,12,13,14); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{mi}
%    The sign \textit{mi}. A bit like a V with arms on a base.
%    \begin{macrocode}
cmchar "Cypriot sign mi";
beginglyph("y",0.8);
numeric beta; beta:=small;
x0=midloc; y0=h/2;
x1=leftloc; x5=rightloc;                        % V points
x2=0.15[x1,x5]; x3=0.5[x1,x5]; x4=0.15[x5,x1];
y2=y4=h; y3=0; y1=y5=y2-(x2-x1); 
x6=0.25[x1,x5]; x7=0.25[x5,x1]; y6=y7=y3;       % base points
draw z1--z2--z3--z4--z5;                        % V
draw z6--z7;                                    % base
labels(1,2,3,4,5,6,7,8,9); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{mo}
%    The sign \textit{mo}. An ellipse split by a vertical line.
%    \begin{macrocode}
cmchar "Cypriot sign mo";
beginglyph("A",0.8);
numeric beta; beta:=0.2h;
x0=midloc; y0=h/2;
x1=leftloc; x2=x4=midloc; x3=rightloc;
y1=y3=y0;  y2=h-beta; y4=beta;
draw z1..z2..z3..z4..cycle;          % ellipse
draw z2--z4;                         % vertical line
labels(1,2,3,4); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{mu}
%    The sign \textit{mu}. An X with vertical dashes at either side.
%    \begin{macrocode}
cmchar "Cypriot sign mu";
beginglyph("B",0.8);
numeric beta; beta:=0.2;
numeric gamma;
x0=midloc; y0=h/2;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x11=beta[x1,x0]; x12=beta[x4,x0];                   % for dashes
y11=y12=y0;
z10'=beta[z1,z0]; z30'=beta[z3,z0];
gamma:=0.5(y30'-y10');
draw z1--z6; draw z4--z3;              % the X
draw_vdash(11,gamma); draw_vdash(12,gamma);
labels(1,2,3,4,5,6,7,8,9,11,12); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{na}
% The sign \textit{na}. A T, but with 2 crossbars.
%    \begin{macrocode}
cmchar "Cypriot sign na";
beginglyph("n",0.4);
numeric beta; beta:=0.1h;
x1=leftloc; x2=rightloc; y1=y2=h;
x3=leftloc; x4=rightloc; y3=y4=y1-beta;
x5=x6=midloc; y5=0; y6=y3;
draw z1--z2; draw z3--z4;       % bars
draw z5--z6;                    % stem
labels(1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ne}
%    The sign \textit{ne}. A lightning flash between two dashes.
%    \begin{macrocode}
cmchar "Cypriot sign ne";
beginglyph("N",0.6);
numeric beta; 
beta:=0.1*(rightloc-leftloc);  
x0=midloc; y0=h/2;
x1=x0+beta; x4=x0-beta; y1=h; y4=0;      % lightning top and bottom
x2=x0-beta; x3=x0+beta;   % lightning middle points
y2=y0+0.5beta; y3=y0-0.5beta;
x11=x12=leftloc; y11=0.2h; y12=0.8h;    % left dash
x13=x14=rightloc; y13=y11; y14=y12;     % right dash
draw z11--z12; draw z13--z14;         % dashes
draw z1--z2--z3--z4;              % lightning
labels(1,2,3,4,11,12,13,14); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ni}
%    The sign \textit{ni}. An E rotated 135 degrees on a base.
%    \begin{macrocode}
cmchar "Cypriot sign ni";
beginglyph("C",1.0);
numeric alpha, beta; alpha=medium;
x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0;    % E box
x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h;
%%zll=(xll,yll); zur=(xur,yur);
z1=z0ll shifted (alpha*right);
z4=z0ll shifted (alpha*up);
z1-z3=whatever*(z0ll-z0ur);        % lines parallel to box diagonal
z4-z5=whatever*(z0ll-z0ur);
x3=x0lr; y6=h;
z2=0.5[z1,z3]; z5=0.5[z4,z6];    % center of parallel lines
z7=z0ll; x8=0.5[x2,x3]; y8=0;    % base
draw z1--z3;                               % E upright
draw z1--z4; draw z2--z5; draw z3--z6;     % E arms
draw z7--z8;                               % base
labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6,7,8); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{no}
%    The sign \textit{no}.  
%    \begin{macrocode}
cmchar "Cypriot sign no";
beginglyph("E",1.0);
numeric alpha, beta; 
alpha=medium; %% alpha=0.5medium;
x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0;    % E box
x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h;
z1=z0ll shifted (alpha*right);
z4=z0ll shifted (alpha*up);
z1-z3'=whatever*(z0ll-z0ur);        % lines parallel to box diagonal
z4-z6'=whatever*(z0ll-z0ur);
x3'=x0lr; y6'=h;
x11=x0ur; y11=y0ur-2alpha;          % the top ends
x12=x0ur-2alpha; y12=y0ur;
z3=whatever[z1,z3']=whatever[z11,z12];
z6=whatever[z4,z6']=whatever[z11,z12];
draw z1--z3--z11;
draw z4--z6--z12;
labels(0ll,0lr,0ul,0ur,1,2,3,3',4,5,6,6',11,12); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{nu}
%    The sign \textit{nu}. Like |>| with dashes at the right.
%    \begin{macrocode}
cmchar "Cypriot sign nu";
beginglyph("F",0.4);
numeric beta; beta:=small;
numeric gamma; gamma:=1/4h;        % dash length
x1=x3=leftloc; y1=0; y3=h;         % left points
x4=x6=rightloc; y4=1/4h; y6=3/4h;  % dash points
x2=x4-beta; y2=h/2;                % point of the <
draw z1--z2--z3;      % left angle
draw_vdash(4,gamma); draw_vdash(6,gamma);  % dashes
labels(1,2,3,4,5,6); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{pa}
%    The sign \textit{pa}. Like a Lorraine cross.
%    \begin{macrocode}
cmchar "Cypriot sign pa";
beginglyph("p",0.4);
x1=x2=midloc; y1=0; y2=h;  % stem
x3=x5=leftloc; y3=0.7h; y5=0.4h; 
x4=x6=rightloc; y4=y3; y6=y5;
draw z1--z2;               % stem
draw z3--z4; draw z5--z6;  % cross bars
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{pe}
%    The sign \textit{pe}. A lightning flash.
%    \begin{macrocode}
cmchar "Cypriot sign pe";
beginglyph("P",0.3);
numeric beta; 
beta:=0.5*(rightloc-leftloc);  
x0=midloc; y0=h/2;
x1=x0+beta; x4=x0-beta; y1=h; y4=0;      % lightning top and bottom
x2=x0-beta; x3=x0+beta;   % lightning middle points
y2=y0+0.5beta; y3=y0-0.5beta;
draw z1--z2--z3--z4;              % lightning
labels(1,2,3,4,11,12,13,14); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{pi}
%    The sign \textit{pi}. Corporal's stripes.
%    \begin{macrocode}
cmchar "Cypriot sign pi"; 
beginglyph("G",1.0);
x1=x6=leftloc; y1=0; y6=h;                % left points
x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4];  % middle points
x5=x2=rightloc; y5=0; y2=h;               % right points
x7=x1; x8=x5; y7=y8=y0;
draw z6--z0--z2;            % top stripe
draw z7--z3--z8;            % bottom stripe
labels(0,1,2,3,4,5,6,7,8);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{po}
%    The sign \textit{po}. A bit like a sickle.
%    \begin{macrocode}
cmchar "Cypriot sign po";
beginglyph("H",1.0);
numeric rad; 
x0=midloc; y0=h/2;
x1=leftloc; y1=0;
x5=rightloc; rad:=0.2(x5-x1); y5=h-rad;
x4=x5-rad; y4=h;
x3=x4-rad; y3=y5;
x2=x4; y2=y3-rad;
draw z1--z2;
draw z2..z3{up}..z4{right}..{down}z5;
labels(1,2,3,4,5); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{pu}
%    The sign \textit{pu}.  A bit like |<!>| on a base.
%    \begin{macrocode}
cmchar "Cypriot sign pu";
beginglyph("I",1.0);
x0=midloc; y0=h/2;
x1=x0; y1=0; x2=leftloc; y2=2/3h;    % left angle
x3=0.5[x2,x0]; y3=h;
z4=z1; x5=rightloc; y5=y2;           % right angle
x6=0.5[x5,x0]; y6=y3;
z7=z0;                               % vertical dash
x8=leftloc; x9=rightloc; y8=y9=0;    % base
draw z1--z2--z3; draw z4--z5--z6;    % angles
draw z4--z7;                         % dash
draw z8--z9;                         % base
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{ra}
%    The sign \textit{ra}. A dome on a base.
%    \begin{macrocode}
cmchar "Cypriot sign ra";
beginglyph("r",0.6);
numeric rad, beta;
x1=leftloc; x2=rightloc; y1=y2=0;      % base
z3=0.2[z1,z2]; z4=0.2[z2,z1];          % dome
rad:= 0.5*(x4-x3);
x7=midloc; y7=h;
x5=x3; x6=x4; y5=y6=y7-rad;
beta:=1.5;                 % for tension
draw z1--z2;               % base
%%draw z3--z5..z7..z6--z4;   % dome
draw z3{up}..tension beta..z7..tension beta..{down}z4;      % curve
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{re}
%    The sign \textit{re}. Two verticals with a roof.
%    \begin{macrocode}
cmchar "Cypriot sign re";
beginglyph("R",0.8); 
numeric beta; beta:=small;
x1=leftloc; x2=midloc; x3=rightloc; y2=h; y1=y3=2/3h; % roof
x4=x5=2/3[x1,x2]; x6=x7=2/3[x3,x2]; y4=y6=0;
y5=y7=2/3[y1,y2] - beta;
draw z1--z2--z3;            % roof
draw z4--z5; draw z6--z7;   % supports
labels(1,2,3,4,5,6,7); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ri}
%    The sign \textit{ri}. Like an E rotated 135 degrees.
%    \begin{macrocode}
cmchar "Cypriot sign ri";
beginglyph("O",1.0);
numeric alpha, beta; alpha=medium;
x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0;    % E box
x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h;
%%zll=(xll,yll); zur=(xur,yur);
z1=z0ll shifted (alpha*right);
z4=z0ll shifted (alpha*up);
z1-z3=whatever*(z0ll-z0ur);        % lines parallel to box diagonal
z4-z5=whatever*(z0ll-z0ur);
x3=x0lr; y6=h;
z2=0.5[z1,z3]; z5=0.5[z4,z6];    % center of parallel lines
draw z1--z3;                               % E upright
draw z1--z4; draw z2--z5; draw z3--z6;     % E arms
labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ro}
%    The sign \textit{ro}. Like $\alpha$ rotated 90 degrees.
%    \begin{macrocode}
cmchar "Cypriot sign ro";
beginglyph("U",0.6);
numeric rad, beta;
x0=midloc; y0=h/2;
x1=leftloc; x2=rightloc; y1=y2=0;  % base points
rad:=0.25*(x2-x1);
x3=x0-rad; x4=x0+rad; y3=y4=h-rad;
x5=x0; y5=h;
beta:=1.5;     % tension
draw z1..tension beta..z4{up}..z5{left}..z3{down}..tension beta..z2;
labels(1,2,3,4,5); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ru}
%    The sign \textit{ru}. Like |)\(|, but the slash is short.
%    \begin{macrocode}
cmchar "Cypriot sign ru"; 
beginglyph("V",0.6);
numeric beta; beta:=small;
x0=midloc; y0=h/2;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % the parens
y2=y5=y0; x2=x1+beta; x5=x4-beta;
z7=3/4[z1,z4]; x8=x0; y8=(x4-x7);   % dash
draw z1...z2{up}...z3;    % left half
draw z4...z5{up}...z6;    % right half
draw z7--z8;              % dash
labels(1,2,3,4,5,6,7,8); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{sa}
%    The sign \textit{sa}. Like a V.
%    \begin{macrocode}
cmchar "Cypriot sign sa";
beginglyph("s",0.6);
x1=leftloc; x2=midloc; x3=rightloc; 
y1=y3=h; y2=0;
draw z1--z2--z3;
labels(1,2,3); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{se}
%    The sign \textit{se}. 
%    \begin{macrocode}
cmchar "Cypriot sign se";
beginglyph("S",0.6);
x1=x3=x2=leftloc; y1=0; y2=h; y3=2/3[y1,y2];
x4=x5=midloc; x6=x7=rightloc;
y4=y6=y3; y5=y7=y2;
draw z1--z2;               % upright
draw z3--z6;               % horizontal
draw z4--z5; draw z6--z7;  % short uprights
labels(1,2,3,4,5,6,7); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{si}
%    The sign \textit{si}. A roof over an L over a base.
%    \begin{macrocode}
cmchar "Cypriot sign si";
beginglyph("Y",0.6);
x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h;  % roof
x4=leftloc; x5=rightloc; y4=y5=0;       % base
x6=x7=midloc; x8=rightloc; y7=y8=1/4h;  % stem
y6=0.5[y1,y2];
draw z1--z2--z3;  % roof 
draw z4--z5;      % base
draw z6--z7--z8;  % stem
labels(1,2,3,4,5,6,7,8); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{so}
%    The sign \textit{so}.  Corporal's stripes over two bases.
%    \begin{macrocode}
cmchar "Cypriot sign so";
beginglyph("1",1.0);
x1=x2=x3=x4=leftloc; x5=x6=midloc; x7=x8=x9=x10=rightloc;
y1=y7=0; y4=y10=h;
y2=y5=y8=0.2h;
y3=y9=0.5[y2,y4];
y6-y5=y4-y3;
draw z1--z7;      % lower base
draw z2--z8;      % upper base
draw z3--z5--z9;  % lower stripe
draw z4--z6--z10; % upper stripe
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{su}
%    The sign \textit{su}. Like an upside down |)Y|.
%    \begin{macrocode}
cmchar "Cypriot sign su";
beginglyph("2",1.0);
numeric beta; beta:=small;
x0=midloc; y0=h/2;
x1=x3=leftloc; y1=0; y3=h; x2=x1+beta; y2=h/2;   % the parens
x4=x2; x5=rightloc; y4=y5=y1;          % bottom of Y
x6=x7=0.5[x4,x5]; y6=1/3h; y7=y3;      % stem of Y
x9=0.5[x6,x5]; y9=0.5[y6,y7];          % horizontal right
x8'=leftloc; y8'=y9;
path p; 
p=z1..z2..z3;
z8 = (z9--z8') intersectionpoint p;
draw p;                        % paren
draw z4--z6--z5; draw z6--z7;  % Y
draw z9--z8;                   % horizontal
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ta}
%    The sign \textit{ta}. 
%    \begin{macrocode}
cmchar "Cypriot sign ta";
beginglyph("t",0.4);
x1=x2=leftloc; y1=0; y2=h;            % left vertical
z3=0.5[z1,z2];                        % horizontal
x4=rightloc; y4=y3;
draw z1--z2; draw z3--z4;
labels(1,2,3,4);
endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{te}
%    The sign \textit{te}. A downward arrow on a base.
%    \begin{macrocode}
cmchar "Cypriot sign te";
beginglyph("T",0.6);
x1=leftloc; x2=midloc; x3=rightloc; y1=y3=1/3h; y2=0;  % arrowhead
x4=leftloc; x5=rightloc; y4=y5=0;       % base
x6=midloc; y6=h;                        % stem
draw z1--z2--z3;  % arrowhead
draw z4--z5;      % base
draw z6--z2;      % stem
labels(1,2,3,4,5,6,7,8); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{ti}
%    The sign \textit{ti}. An upward arrow.
%    \begin{macrocode}
cmchar "Cypriot sign ti";
beginglyph("3",0.6);
x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h;  % roof
x4=midloc; y4=0;  % stem
draw z1--z2--z3;  % roof 
draw z4--z2;  % stem
labels(1,2,3,4,5,6,7,8); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{to}
%    The sign \textit{to}. Like an F.
%    \begin{macrocode}
cmchar "Cypriot sign to";
beginglyph("4",0.6);
numeric alpha; alpha:=0.25;
x1=leftloc; x2=rightloc; y1=y2=h;     % top bar
x3=x4=alpha[x1,x2]; y3=0; y4=y1;       % stem
z5=2/3[z3,z4]; x6=x2; y6=y5;          % short arm
draw z1--z2;    % top
draw z3--z4;    % stem
draw z5--z6;    % short
labels(1,2,3,4,5,6); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{tu}
%    The sign \textit{tu}. Like an slanted F with dashes under lower arm.
%    \begin{macrocode}
cmchar "Cypriot sign tu";
beginglyph("5",0.6);
numeric alpha, beta; alpha:=0.2;  % slant
x3=leftloc; x2=rightloc; y3=0; y2=h;  % minmax points
x1=alpha[x3,x2]; y1=y2;               % top bar
x7-x3=x2-x1; y7=0; 
z5=2/3[z3,z1]; z6=2/3[z7,z2];         % short arm
%%z8=0.7[z3,z7];
z8=z7 shifted (small*left);
beta=0.5*(y6-y3);     % dash size
z9=z7 shifted (beta*up);
z10=z8 shifted (beta*up);
draw z1--z2;                % top
draw z3--z1;                % stem
draw z5--z6;                % short
draw z7--z9; draw z8--z10;  % dashes
labels(1,2,3,4,5,6,8,9,10); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{wa}
%    The sign \textit{wa}. Like |> <| with a |^| at the bottom.
%    \begin{macrocode}
cmchar "Cypriot sign wa";
beginglyph("w",0.8);
numeric beta; beta:=small;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x2=midloc-beta; x5=midloc+beta; y2=y5=h/2;
x8=midloc; y8=y5-beta;
z7-z8=whatever*(z1-z2); z9-z8=whatever*(z4-z5); y7=y9=0;
draw z1--z2--z3;      % left angle
draw z4--z5--z6;      % right angle
draw z7--z8--z9;      % bottom angle
labels(1,2,3,4,5,6,7,8,9); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{we}
%    The sign \textit{we}. A capital I.
%    \begin{macrocode}
cmchar "Cypriot sign we";
beginglyph("W",0.4);
x1=x2=midloc; y1=0; y2=h;
x3=x4=leftloc; x5=x6=rightloc; 
y3=y5=0; y4=y6=h;
draw z1--z2;   % stem
draw z3--z5; draw z4--z6;
labels(1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{wi}
%    The sign \textit{wi}. Like |>`<|.
%    \begin{macrocode}
cmchar "Cypriot sign wi";
beginglyph("6",0.8);
numeric beta; beta:=small;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;  % minmax points
x2=midloc-beta; x5=midloc+beta; y2=y5=h/2;
x8=midloc; y8=y5+beta;
%%z7-z8=whatever*(z1-z2); z9-z8=whatever*(z4-z5); y7=y9=0;
x9=x8; y9=h;
draw z1--z2--z3;      % left angle
draw z4--z5--z6;      % right angle
draw z8--z9;          % top line
labels(0,1,2,3,4,5,6,7,8,9); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{wo}
%    The sign \textit{wo}. Like a left turn arrow.
%    \begin{macrocode}
cmchar "Cypriot sign wo";
beginglyph("7",0.6);
numeric rad;
x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h;  % head
x4=x1; x5=0.5[x4,x2]; y4=y5=0;  % bottom points
rad:=(x2-x5);
x6=x2; y6=y5+rad;
draw z1--z2--z3;         % arrow head
draw z4--z5..z6--z2;     % stem
labels(1,2,3,4,5,6,7,8); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{xa}
%    The sign \textit{xa}. Like |)(|.
%    \begin{macrocode}
cmchar "Cypriot sign xa";
beginglyph("x",0.6);
numeric beta; beta:=small;
x0=midloc; y0=h/2;
x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h;
y2=y5=y0; x2=x1+beta; x5=x4-beta;
draw z1...z2{up}...z3;    % left half
draw z4...z5{up}...z6;    % right half
labels(0,1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{xe}
%    The sign \textit{xe}. Like |(-!|.
%    \begin{macrocode}
cmchar "Cypriot sign xe";
beginglyph("X",0.6);
numeric beta; beta:=small;
x0=midloc; y0=h/2;
x2=leftloc; x1=x3=x2+beta; y1=0; y2=y0; y3=h; % the parenthesis
x4=x1+beta; y4=y5=y0;
x5=x6=x7=rightloc; y6=beta; y7=h-beta;
draw z1...z2{up}...z3;    % the paren
draw z4--z5; draw z6--z7; % righr half
labels(0,1,2,3,4,5,6); endchar;

%    \end{macrocode}
% \end{routine}
%
%
% \begin{routine}{zo}
%    The sign \textit{zo}. Two lightning flashes.
%    \begin{macrocode}
cmchar "Cypriot sign zo";
beginglyph("9",0.6);
%%beginglyph("P",0.3);
numeric beta; 
beta:=0.25*(rightloc-leftloc);  
xl=leftloc; xr=rightloc;
x0=0.25[xl,xr]; y0=h/2;      % left flash
%%x0=midloc; y0=h/2;
x1=x0+beta; x4=x0-beta; y1=h; y4=0;      % lightning top and bottom
x2=x0-beta; x3=x0+beta;                  % lightning middle points
y2=y0+0.5beta; y3=y0-0.5beta;
x0'=0.75[xl,xr]; y0'=y0;     % right flash
x11=x0'+beta; x14=x0'-beta; y11=h; y14=0;      % lightning top and bottom
x12=x0'-beta; x13=x0'+beta;                    % lightning middle points
y12=y0'+0.5beta; y13=y0'-0.5beta;
draw z1--z2--z3--z4;              % left flash
draw z11--z12--z13--z14;          % right flash
labels(0,0',1,2,3,4,11,12,13,14); endchar;
 
%    \end{macrocode}
% \end{routine}
%
% \subsubsection{The word divider}
%
%    There is a word divider.
% Hyphenation was, of course, unknown but it might be useful to
% leave the normal character position for the hyphen (i.e., octal 055)
% empty allowing, perhaps, \TeX{} to perform hyphenation but without
% marking it.
%
% \begin{routine}{,}
%    A word divider coded as a comma. It is a short vertical line above the
% text baseline.
%    \begin{macrocode}
cmchar "Cypriot word divider (1)";
beginglyph(",",0.1);
x1=x2=midloc; y1=0.2h; y2=0.4h;
draw z1--z2;
labels(1,2); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{:}
%    A word divider coded as a colon. It is a short vertical line above the
% text baseline.
%    \begin{macrocode}
cmchar "Cypriot word divider (2)";
beginglyph(":",0.1);
x1=x2=midloc; y1=0.2h; y2=0.4h;
draw z1--z2;
labels(1,2); endchar;

%    \end{macrocode}
% \end{routine}
%
% \begin{routine}{/}
%    A word divider coded as a forward slash. It is a short vertical line above the
% text baseline.
%    \begin{macrocode}
cmchar "Cypriot word divider (3)";
beginglyph("/",0.1);
x1=x2=midloc; y1=0.2h; y2=0.4h;
draw z1--z2;
labels(1,2); endchar;

%    \end{macrocode}
% \end{routine}
%
%
%    The end of this file
%    \begin{macrocode} 
end

%</up> 
%    \end{macrocode}
%
%
%
% \Finale
%
\endinput

%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}


