From 8ac6e36c79c88abb1ba5cbcdc3b0b0c3eac10eb4 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 24 May 2009 22:30:03 +0000
Subject: archaic (cypriot) update (24may09)

git-svn-id: svn://tug.org/texlive/trunk@13448 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/fonts/archaic/cypriot.dtx | 2740 ++++++++++----------
 1 file changed, 1370 insertions(+), 1370 deletions(-)

(limited to 'Master/texmf-dist/source/fonts/archaic/cypriot.dtx')

diff --git a/Master/texmf-dist/source/fonts/archaic/cypriot.dtx b/Master/texmf-dist/source/fonts/archaic/cypriot.dtx
index 3ff0f5facbd..947dd58f978 100644
--- a/Master/texmf-dist/source/fonts/archaic/cypriot.dtx
+++ b/Master/texmf-dist/source/fonts/archaic/cypriot.dtx
@@ -3,7 +3,7 @@
 % cypriot.dtx
 %
 %  Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
-%  Copyright 1999--2005 Peter R. Wilson
+%  Copyright 1999--2009 Peter R. Wilson
 %
 %  This work may be distributed and/or modified under the
 %  conditions of the Latex Project Public License, either
@@ -108,9 +108,11 @@
 % \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
@@ -258,7 +260,7 @@
 % 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}
@@ -276,6 +278,7 @@
 % 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}
@@ -317,1776 +320,1773 @@
 % would do: \\
 % |\renewcommand{\translitcyprfont}{\sffamily\bfseries}|
 %
-% 
-% \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}
+% \section{The font definition files} \label{sec:fd}
 %
-%    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#;
-
+%<*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}
 %
 %
-% \DescribeVariable{penfudge}
-%  Increase (decrease) this to get bolder (lighter) characters.
 %    \begin{macrocode}
-penfudge:=1.0;
+%<*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}
-%  
 %
-% \DescribeVariable{heightfudge}
-%  Increase (decrease) this to get taller (shorter) characters.
-%    \begin{macrocode}
-heightfudge:=1.0;
-%    \end{macrocode}
-%  
+% \section{The \Lpack{cypriot} package code} \label{sec:code}
 %
-%    Define the very simple font values.
-% \DescribeVariable{u} 
-% The unit width.
+%    Announce the name and version of the package, which requires
+% \LaTeXe{}.
 %    \begin{macrocode}
-u#:=.2pt#;                 % unit width
+%<*usc>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cypriot}[2009/05/22 v1.2 package for Cypriot font]
 %    \end{macrocode}
 %
-% \DescribeVariable{ht} 
-% The height of the characters. Computer Modern cap height is approximately
-% |6.8pt|.
+%   We need to check the encoding default for the document.
+% \begin{macro}{\Tienc}
 %    \begin{macrocode}
-ht#:=heightfudge*10pt#;    % height of characters (CM cap-height is approx 6.8pt)
+\providecommand{\Tienc}{T1}
 %    \end{macrocode}
+% \end{macro}
 %
-% \DescribeVariable{s} 
-%  Extra space at the left and right of a character.
+%
+% \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}
-s#:=1.5pt#;                % width correction (right and left)
+\ifx\Tienc\encodingdefault
+  \newcommand{\cyprfamily}{\usefont{T1}{cypr}{m}{n}}
+\else
+  \newcommand{\cyprfamily}{\usefont{OT1}{cypr}{m}{n}}
+\fi
 %    \end{macrocode}
+% \end{macro}
 %
-% \DescribeVariable{o} 
-% Overshoot correction.
+% \begin{macro}{\textcypr}
+%    Text command for the Cypriot font family.
 %    \begin{macrocode}
-o#:=1/20pt#;               % overshoot
+\DeclareTextFontCommand{\textcypr}{\cyprfamily}
 %    \end{macrocode}
+% \end{macro}
 %
-% \DescribeVariable{px} 
-% The horizontal width of the pen.
+%    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}
-px#:=penfudge*0.7pt#;      % horizontal width of pen
+\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}
 %
-% \DescribeVariable{font-normal-space} 
-% The width of a blank space.
+% \begin{macro}{\Cga}
+% The 1 G syllables.
 %    \begin{macrocode}
-font_normal_space:=7pt#;   % width of a blank space
+\chardef\Cga=`g
 %    \end{macrocode}
+% \end{macro}
 %
-% \DescribeVariable{font-normal-shrink} 
-% Possible width correction for a blank space.
+% \begin{macro}{\Cja}
+% \begin{macro}{\Cjo}
+% The 2 J syllables.
 %    \begin{macrocode}
-font_normal_shrink:=.9pt#; % width correction for blank space
+\chardef\Cja=`j
+\chardef\Cjo=`b
 %    \end{macrocode}
+% \end{macro}
+% \end{macro}
 %
-% \DescribeVariable{font-x-height} 
-% Just for completness, the height of |1ex|.
+%
+% \begin{macro}{\Cka}
+% \begin{macro}{\Cke}
+% \begin{macro}{\Cki}
+% \begin{macro}{\Cko}
+% \begin{macro}{\Cku}
+% The 5 K syllables.
 %    \begin{macrocode}
-font_x_height:=4.5pt#;     % height of one ex
+\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}
 %
-% \DescribeVariable{font-quad}
-% The width of |1em|.
+% \begin{macro}{\Cla}
+% \begin{macro}{\Cle}
+% \begin{macro}{\Cli}
+% \begin{macro}{\Clo}
+% \begin{macro}{\Clu}
+% The 5 L syllables.
 %    \begin{macrocode}
-font_quad:=10pt#;          % an em
-
+\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}
 %
-%    Now move on to the `driver' data for the font.
-%
-% \subsection{The driver data}
-%
-%    Switch into Metafont mode
 %
+% \begin{macro}{\Cma}
+% \begin{macro}{\Cme}
+% \begin{macro}{\Cmi}
+% \begin{macro}{\Cmo}
+% \begin{macro}{\Cmu}
+% The 5 M syllables.
 %    \begin{macrocode}
-font_coding_scheme:="Cypriot glyphs";
-mode_setup;
-
+\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}
 %
-% \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{macro}{\Cna}
+% \begin{macro}{\Cne}
+% \begin{macro}{\Cni}
+% \begin{macro}{\Cno}
+% \begin{macro}{\Cnu}
+% The 5 N syllables.
 %    \begin{macrocode}
-numeric midloc, rightloc;
+\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}
 %
-% \DescribeVariable{tiny}
-% \DescribeVariable{small}
-% \DescribeVariable{medium}
-% \DescribeVariable{large}
-% \DescribeVariable{huge}
-%   Some lengths.
+% \begin{macro}{\Cpa}
+% \begin{macro}{\Cpe}
+% \begin{macro}{\Cpi}
+% \begin{macro}{\Cpo}
+% \begin{macro}{\Cpu}
+% The 5 P syllables.
 %    \begin{macrocode}
-tiny#:=px#;
-small#:=2px#;
-medium#:=3px#;
-large#:=4px#;
-huge#:=5px#;
-define_pixels(tiny,small,medium,large,huge);
+\chardef\Cpa=`p
+\chardef\Cpe=`P
+\chardef\Cpi=`G
+\chardef\Cpo=`H
+\chardef\Cpu=`I
 %    \end{macrocode}
-%  
-% \DescribeVariable{NE} 
-% \DescribeVariable{NW} 
-% \DescribeVariable{SW} 
-% \DescribeVariable{SE} 
-% Shorthand for direction vectors corresponding to the designated compass point.
+% \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}
-pair NE,NW,SW,SE;
-NE:=(1,1);
-NW:=(-1,1);
-SW:=(-1,-1);
-SE:=(1,-1);
+\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}
 %
-% \DescribeVariable{stylus}
-%    Define the pen.
+% \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}
-pickup pencircle xscaled px yscaled py;
-stylus:=savepen;
-
+\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{routine}{draw_hdash}
-%    |draw_hdash(1,len)| draws a horizontal line, length |len|, with its
-% midpoint at |z1|.
+% \begin{macro}{\Cwa}
+% \begin{macro}{\Cwe}
+% \begin{macro}{\Cwi}
+% \begin{macro}{\Cwo}
+% The 4 W syllables.
 %    \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;
-
+\chardef\Cwa=`w
+\chardef\Cwe=`W
+\chardef\Cwi=`6
+\chardef\Cwo=`7
 %    \end{macrocode}
-% \end{routine}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
-% \begin{routine}{draw_vdash}
-%    |draw_vdash(1,len)| draws a vertical line, length |len|, with its
-% midpoint at |z1|.
+% \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}
-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;
-
+\chardef\Cxa=`x
+\chardef\Cxe=`X
 %    \end{macrocode}
-% \end{routine}
+% \end{macro}
+% \end{macro}
 %
-% \begin{routine}{beginglyph}
-%    A macro to save some typing of beginchar arguments.
+% \begin{macro}{\Czo}
+% The 1 Z syllables.
 %    \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;
-
+\chardef\Czo=`9
 %    \end{macrocode}
-% \end{routine}
+% \end{macro}
 %
-% \begin{routine}{cmchar}
-%    |cmchar| should precede each character
+% \begin{macro}{\Cza}
+% \begin{macro}{\Cya}
+% \begin{macro}{\Cya}
+% The 3 arguable syllables.
 %    \begin{macrocode}
-let cmchar=\;
-
+\chardef\Cza=`g
+\chardef\Cya=`j
+\chardef\Cyo=`b
 %    \end{macrocode}
-% \end{routine}
-% 
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
-% \subsection{The glyph code}
 %
-%    The following code generates the glyphs for the Cypriot font. 
+% \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}
-%%%% Glyph code for the Cypriot font.
-
+\newcommand{\translitcyprfont}{\itshape}
+\newcommand{\translitcypr}[1]{{%
+  \@translitC\translitcyprfont #1}}
 %    \end{macrocode}
+% \end{macro}
+% \end{macro}
 %
-% \subsubsection{The glyphs}
+% \begin{macro}{\@translitC}
+%    This macro redefines all the character producing commands for use
+% in |\translitcypr|.
 %
-% 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.
+% 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 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 1 G syllables.
+%    \begin{macrocode}
+\def\Cga{ga-}%
+%    \end{macrocode}
 %
-%    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.
+% The 2 J syllables.
+%    \begin{macrocode}
+\def\Cja{ja-}\def\Cjo{jo-}%
+%    \end{macrocode}
 %
-% \begin{routine}{a}
-%    The sign \textit{a}. Like an asterisk.
+% The 5 K syllables.
 %    \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;
-
+\def\Cka{ka-}\def\Cke{ke-}\def\Cki{ki-}\def\Cko{ko-}\def\Cku{ku-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{e}
-%    The sign \textit{e}. Like the `a' but with an extra horizontal half stroke.
-% crossbar.
+% The 5 L syllables.
 %    \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;
-
+\def\Cda{da-}\def\Cde{de-}\def\Cdi{di-}\def\Cdo{do-}\def\Cdu{du-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{i}
-%    The sign \textit{i}. Like the `a' but short vertical.
+% The 5 M syllables.
 %    \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;
-
+\def\Cma{ma-}\def\Cme{me-}\def\Cmi{mi-}\def\Cmo{mo-}\def\Cmu{mu-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{u}
-%    The sign \textit{u}. A Y with the top arms bent.
+% The 5 N syllables.
 %    \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;
-
+\def\Cna{na-}\def\Cne{ne-}\def\Cni{ni-}\def\Cno{no-}\def\Cnu{nu-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{ga}
-%    The sign \textit{ga}. Like |> <| with two dashes.
+% The 5 P syllables.
 %    \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;
-
+\def\Cpa{pa-}\def\Cpe{pe-}\def\Cpi{pi-}\def\Cpo{po-}\def\Cpu{pu-}%
 %    \end{macrocode}
-% \end{routine}
 %
 %
-% \begin{routine}{ja}
-% The sign \textit{ja}. A teardrop. (A rectangle with two interior lines.)
+% The 5 R syllables.
 %    \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;
-
+\def\Cra{ra-}\def\Cre{re-}\def\Cri{ri-}\def\Cro{ro-}\def\Cru{ru-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{jo}
-% The sign \textit{jo}. A W with a line under the bottom right point.
+% The 5 S syllables.
 %    \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;
-
+\def\Csa{sa-}\def\Cse{se-}\def\Csi{si-}\def\Cso{so-}\def\Csu{su-}%
 %    \end{macrocode}
-% \end{routine}
-%
 %
-% \begin{routine}{ka}
-% The sign \textit{ka}. Upward arrow on a base.
+% The 5 T syllables.
 %    \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;
-
+\def\Cta{ta-}\def\Cte{te-}\def\Cti{ti-}\def\Cto{to-}\def\Ctu{tu-}%
 %    \end{macrocode}
-% \end{routine}
-%
 %
-% \begin{routine}{ke}
-%    The sign \textit{ke}. An E rotated 135 degrees with bottom arm and upright
-% extended.
+% The 4 W syllables.
 %    \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;
-
+\def\Cwa{wa-}\def\Cwe{we-}\def\Cwi{wi-}\def\Cwo{wo-}%
 %    \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).
+% The 2 X syllables.
+% \changes{v1.2}{2009/05/22}{There is no \cs{Cxo} syllable}
 %    \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;
-
+\def\Cxa{xa-}\def\Cxe{xe-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{ko}
-%    The sign \textit{ko}.
+% The 1 Z syllables.
 %    \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;
- 
+\def\Czo{zo-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{ku}
-%    The sign \textit{ku}.
+% The 3 arguable syllables
 %    \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;
- 
+\def\Cza{za-}\def\Cya{ya-}\def\Cyo{yo-}%
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{la}
-%    The sign \textit{la}. Like a V on a base.
+% Close the macro definition.
 %    \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 of \@translitC
 %    \end{macrocode}
-% \end{routine}
+% \end{macro}
 %
 %
-% \begin{routine}{le}
-%    The sign \textit{le}. Like an 8.
+%    The end of this package.
 %    \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;
-
+%</usc>
 %    \end{macrocode}
-% \end{routine}
 %
+% \section{The map file}
 %
-% \begin{routine}{li}
-%    The sign \textit{li}. Like a $\leq$ symbol.
+% This is pretty short.
+% \changes{v1.1}{2005/04/17}{Added the map file}
 %    \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;
-
+%<*map>
+cypr10   Archaic-Cypriot  <cypr10.pfb
+%</map>
 %    \end{macrocode}
-% \end{routine}
 %
+% 
+% \StopEventually{
+% \bibliographystyle{alpha}
+% \begin{thebibliography}{GMS94}
 %
-% \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}
+% \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.
 %
-% \begin{routine}{lu}
-%    The sign \textit{lu}. Like a dome over a U.
+% \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}
-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;
+%<*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}
-% \end{routine}
 %
 %
-% \begin{routine}{ma}
-%    The sign \textit{ma}. Like |> <| with an upside down |^| at the top.
+% \DescribeVariable{penfudge}
+%  Increase (decrease) this to get bolder (lighter) characters.
 %    \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;
- 
+penfudge:=1.0;
 %    \end{macrocode}
-% \end{routine}
+%  
 %
-% \begin{routine}{me}
-%    The sign \textit{me}. An X with an i at the bottom.
+% \DescribeVariable{heightfudge}
+%  Increase (decrease) this to get taller (shorter) characters.
 %    \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;
- 
+heightfudge:=1.0;
 %    \end{macrocode}
-% \end{routine}
+%  
 %
-% \begin{routine}{mi}
-%    The sign \textit{mi}. A bit like a V with arms on a base.
+%    Define the very simple font values.
+% \DescribeVariable{u} 
+% The unit width.
 %    \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;
-
+u#:=.2pt#;                 % unit width
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{mo}
-%    The sign \textit{mo}. An ellipse split by a vertical line.
+% \DescribeVariable{ht} 
+% The height of the characters. Computer Modern cap height is approximately
+% |6.8pt|.
 %    \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;
- 
+ht#:=heightfudge*10pt#;    % height of characters (CM cap-height is approx 6.8pt)
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{mu}
-%    The sign \textit{mu}. An X with vertical dashes at either side.
+% \DescribeVariable{s} 
+%  Extra space at the left and right of a character.
 %    \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;
- 
+s#:=1.5pt#;                % width correction (right and left)
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{na}
-% The sign \textit{na}. A T, but with 2 crossbars.
+% \DescribeVariable{o} 
+% Overshoot correction.
 %    \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;
-
+o#:=1/20pt#;               % overshoot
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{ne}
-%    The sign \textit{ne}. A lightning flash between two dashes.
+% \DescribeVariable{px} 
+% The horizontal width of the pen.
 %    \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;
-
+px#:=penfudge*0.7pt#;      % horizontal width of pen
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{ni}
-%    The sign \textit{ni}. An E rotated 135 degrees on a base.
+% \DescribeVariable{font-normal-space} 
+% The width of a blank space.
 %    \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;
-
+font_normal_space:=7pt#;   % width of a blank space
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{no}
-%    The sign \textit{no}.  
+% \DescribeVariable{font-normal-shrink} 
+% Possible width correction for a blank space.
 %    \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;
-
+font_normal_shrink:=.9pt#; % width correction for blank space
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{nu}
-%    The sign \textit{nu}. Like |>| with dashes at the right.
+% \DescribeVariable{font-x-height} 
+% Just for completness, the height of |1ex|.
 %    \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;
- 
+font_x_height:=4.5pt#;     % height of one ex
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{pa}
-%    The sign \textit{pa}. Like a Lorraine cross.
+% \DescribeVariable{font-quad}
+% The width of |1em|.
 %    \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;
- 
+font_quad:=10pt#;          % an em
+
 %    \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}
+%    Now move on to the `driver' data for the font.
+%
+% \subsection{The driver data}
+%
+%    Switch into Metafont mode
 %
-% \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;
+font_coding_scheme:="Cypriot glyphs";
+mode_setup;
 
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{po}
-%    The sign \textit{po}. A bit like a sickle.
+% \DescribeVariable{ho}
+% \DescribeVariable{leftloc}
+% \DescribeVariable{py}
+%  Perform additional setup.
 %    \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;
+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}
-% \end{routine}
+%  
 %
-% \begin{routine}{pu}
-%    The sign \textit{pu}.  A bit like |<!>| on a base.
+% \DescribeVariable{midloc}
+% \DescribeVariable{rightloc}
+%    Variables for the middle xcoord and rightmost xcoord of a character.
 %    \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;
- 
+numeric midloc, rightloc;
 %    \end{macrocode}
-% \end{routine}
-%
+%  
 %
-% \begin{routine}{ra}
-%    The sign \textit{ra}. A dome on a base.
+% \DescribeVariable{tiny}
+% \DescribeVariable{small}
+% \DescribeVariable{medium}
+% \DescribeVariable{large}
+% \DescribeVariable{huge}
+%   Some lengths.
 %    \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;
- 
+tiny#:=px#;
+small#:=2px#;
+medium#:=3px#;
+large#:=4px#;
+huge#:=5px#;
+define_pixels(tiny,small,medium,large,huge);
 %    \end{macrocode}
-% \end{routine}
+%  
+% \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}
+%  
 %
-% \begin{routine}{re}
-%    The sign \textit{re}. Two verticals with a roof.
+% \DescribeVariable{stylus}
+%    Define the pen.
 %    \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;
- 
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
 %    \end{macrocode}
-% \end{routine}
+%  
 %
-% \begin{routine}{ri}
-%    The sign \textit{ri}. Like an E rotated 135 degrees.
+% \begin{routine}{draw_hdash}
+%    |draw_hdash(1,len)| draws a horizontal line, length |len|, with its
+% midpoint at |z1|.
 %    \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;
+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}{ro}
-%    The sign \textit{ro}. Like $\alpha$ rotated 90 degrees.
+% \begin{routine}{draw_vdash}
+%    |draw_vdash(1,len)| draws a vertical line, length |len|, with its
+% midpoint at |z1|.
 %    \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;
- 
+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}{ru}
-%    The sign \textit{ru}. Like |)\(|, but the slash is short.
+% \begin{routine}{beginglyph}
+%    A macro to save some typing of beginchar arguments.
 %    \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;
- 
+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}{sa}
-%    The sign \textit{sa}. Like a V.
+% \begin{routine}{cmchar}
+%    |cmchar| should precede each character
 %    \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;
+let cmchar=\;
 
 %    \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;
- 
+% \subsection{The glyph code}
+%
+%    The following code generates the glyphs for the Cypriot font. 
+%    \begin{macrocode}
+%%%% Glyph code for the Cypriot font.
+
 %    \end{macrocode}
-% \end{routine}
 %
-% \begin{routine}{si}
-%    The sign \textit{si}. A roof over an L over a base.
+% \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 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;
+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}{so}
-%    The sign \textit{so}.  Corporal's stripes over two bases.
+% \begin{routine}{e}
+%    The sign \textit{e}. Like the `a' but with an extra horizontal half stroke.
+% crossbar.
 %    \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;
- 
+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}{su}
-%    The sign \textit{su}. Like an upside down |)Y|.
+% \begin{routine}{i}
+%    The sign \textit{i}. Like the `a' but short vertical.
 %    \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;
- 
+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}{ta}
-%    The sign \textit{ta}. 
+% \begin{routine}{o}
+%    The sign \textit{o}. Corporal's stripes on a horizontal base.
 %    \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);
+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}{te}
-%    The sign \textit{te}. A downward arrow on a base.
+% \begin{routine}{u}
+%    The sign \textit{u}. A Y with the top arms bent.
 %    \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;
- 
+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}{ti}
-%    The sign \textit{ti}. An upward arrow.
+% \begin{routine}{ga}
+%    The sign \textit{ga}. Like |> <| with two dashes.
 %    \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;
+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}{to}
-%    The sign \textit{to}. Like an F.
+%
+% \begin{routine}{ja}
+% The sign \textit{ja}. A teardrop. (A rectangle with two interior lines.)
 %    \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;
- 
+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}{tu}
-%    The sign \textit{tu}. Like an slanted F with dashes under lower arm.
+% \begin{routine}{jo}
+% The sign \textit{jo}. A W with a line under the bottom right point.
 %    \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;
- 
+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}{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{routine}{ka}
+% The sign \textit{ka}. Upward arrow on a base.
 %    \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;
+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}{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{routine}{ke}
+%    The sign \textit{ke}. An E rotated 135 degrees with bottom arm and upright
+% extended.
 %    \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;
- 
+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}{xa}
-%    The sign \textit{xa}. Like |)(|.
+% \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 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;
+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}{xe}
-%    The sign \textit{xe}. Like |(-!|.
+% \begin{routine}{ko}
+%    The sign \textit{ko}.
 %    \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;
-
+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}{zo}
-%    The sign \textit{zo}. Two lightning flashes.
+% \begin{routine}{ku}
+%    The sign \textit{ku}.
 %    \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;
+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}
 %
-% \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{routine}{la}
+%    The sign \textit{la}. Like a V on a base.
 %    \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;
+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}{:}
-%    A word divider coded as a colon. It is a short vertical line above the
-% text baseline.
+%
+% \begin{routine}{le}
+%    The sign \textit{le}. Like an 8.
 %    \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;
+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}{/}
-%    A word divider coded as a forward slash. It is a short vertical line above the
-% text baseline.
+%
+% \begin{routine}{li}
+%    The sign \textit{li}. Like a $\leq$ symbol.
 %    \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;
+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}
 %
 %
-%    The end of this file
-%    \begin{macrocode} 
-end
+% \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;
 
-%</up> 
 %    \end{macrocode}
+% \end{routine}
 %
 %
-%
-% \section{The font definition files} \label{sec:fd}
-%
+% \begin{routine}{lu}
+%    The sign \textit{lu}. Like a dome over a U.
 %    \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>
+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}
-%<*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>
+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}
 %
-% \section{The \Lpack{cypriot} package code} \label{sec:code}
-%
-%    Announce the name and version of the package, which requires
-% \LaTeXe{}.
+% \begin{routine}{me}
+%    The sign \textit{me}. An X with an i at the bottom.
 %    \begin{macrocode}
-%<*usc>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{cypriot}[1999/06/20 v1.0 package for Cypriot font]
+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}
 %
-%   We need to check the encoding default for the document.
-% \begin{macro}{\Tienc}
+% \begin{routine}{mi}
+%    The sign \textit{mi}. A bit like a V with arms on a base.
 %    \begin{macrocode}
-\providecommand{\Tienc}{T1}
+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{macro}
-%
+% \end{routine}
 %
-% \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{routine}{mo}
+%    The sign \textit{mo}. An ellipse split by a vertical line.
 %    \begin{macrocode}
-\ifx\Tienc\encodingdefault
-  \newcommand{\cyprfamily}{\usefont{T1}{cypr}{m}{n}}
-\else
-  \newcommand{\cyprfamily}{\usefont{OT1}{cypr}{m}{n}}
-\fi
+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{macro}
+% \end{routine}
 %
-% \begin{macro}{\textcypr}
-%    Text command for the Cypriot font family.
+% \begin{routine}{mu}
+%    The sign \textit{mu}. An X with vertical dashes at either side.
 %    \begin{macrocode}
-\DeclareTextFontCommand{\textcypr}{\cyprfamily}
+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{macro}
+% \end{routine}
 %
-%    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{routine}{na}
+% The sign \textit{na}. A T, but with 2 crossbars.
 %    \begin{macrocode}
-\chardef\Ca=`a
-\chardef\Ce=`e
-\chardef\Ci=`i
-\chardef\Co=`o
-\chardef\Cu=`u
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cga}
-% The 1 G syllables.
+% \begin{routine}{ne}
+%    The sign \textit{ne}. A lightning flash between two dashes.
 %    \begin{macrocode}
-\chardef\Cga=`g
+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{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cja}
-% \begin{macro}{\Cjo}
-% The 2 J syllables.
+% \begin{routine}{ni}
+%    The sign \textit{ni}. An E rotated 135 degrees on a base.
 %    \begin{macrocode}
-\chardef\Cja=`j
-\chardef\Cjo=`b
+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{macro}
-% \end{macro}
-%
+% \end{routine}
 %
-% \begin{macro}{\Cka}
-% \begin{macro}{\Cke}
-% \begin{macro}{\Cki}
-% \begin{macro}{\Cko}
-% \begin{macro}{\Cku}
-% The 5 K syllables.
+% \begin{routine}{no}
+%    The sign \textit{no}.  
 %    \begin{macrocode}
-\chardef\Cka=`k
-\chardef\Cke=`K
-\chardef\Cki=`c
-\chardef\Cko=`h
-\chardef\Cku=`v
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cla}
-% \begin{macro}{\Cle}
-% \begin{macro}{\Cli}
-% \begin{macro}{\Clo}
-% \begin{macro}{\Clu}
-% The 5 L syllables.
+% \begin{routine}{nu}
+%    The sign \textit{nu}. Like |>| with dashes at the right.
 %    \begin{macrocode}
-\chardef\Cla=`l
-\chardef\Cle=`L
-\chardef\Cli=`d
-\chardef\Clo=`f
-\chardef\Clu=`q
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \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{macro}{\Cma}
-% \begin{macro}{\Cme}
-% \begin{macro}{\Cmi}
-% \begin{macro}{\Cmo}
-% \begin{macro}{\Cmu}
-% The 5 M syllables.
+% \begin{routine}{pe}
+%    The sign \textit{pe}. A lightning flash.
 %    \begin{macrocode}
-\chardef\Cma=`m
-\chardef\Cme=`M
-\chardef\Cmi=`y
-\chardef\Cmo=`A
-\chardef\Cmu=`B
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \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{macro}{\Cna}
-% \begin{macro}{\Cne}
-% \begin{macro}{\Cni}
-% \begin{macro}{\Cno}
-% \begin{macro}{\Cnu}
-% The 5 N syllables.
+% \begin{routine}{po}
+%    The sign \textit{po}. A bit like a sickle.
 %    \begin{macrocode}
-\chardef\Cna=`n
-\chardef\Cne=`N
-\chardef\Cni=`C
-\chardef\Cno=`E
-\chardef\Cnu=`F
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cpa}
-% \begin{macro}{\Cpe}
-% \begin{macro}{\Cpi}
-% \begin{macro}{\Cpo}
-% \begin{macro}{\Cpu}
-% The 5 P syllables.
+% \begin{routine}{pu}
+%    The sign \textit{pu}.  A bit like |<!>| on a base.
 %    \begin{macrocode}
-\chardef\Cpa=`p
-\chardef\Cpe=`P
-\chardef\Cpi=`G
-\chardef\Cpo=`H
-\chardef\Cpu=`I
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
 %
-% \begin{macro}{\Cra}
-% \begin{macro}{\Cre}
-% \begin{macro}{\Cri}
-% \begin{macro}{\Cro}
-% \begin{macro}{\Cru}
-% The 5 R syllables.
+% \begin{routine}{ra}
+%    The sign \textit{ra}. A dome on a base.
 %    \begin{macrocode}
-\chardef\Cra=`r
-\chardef\Cre=`R
-\chardef\Cri=`O
-\chardef\Cro=`U
-\chardef\Cru=`V
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \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
+% \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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cta}
-% \begin{macro}{\Cte}
-% \begin{macro}{\Cti}
-% \begin{macro}{\Cto}
-% \begin{macro}{\Ctu}
-% The 5 T syllables.
+% \begin{routine}{ri}
+%    The sign \textit{ri}. Like an E rotated 135 degrees.
 %    \begin{macrocode}
-\chardef\Cta=`t
-\chardef\Cte=`T
-\chardef\Cti=`3
-\chardef\Cto=`4
-\chardef\Ctu=`5
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cwa}
-% \begin{macro}{\Cwe}
-% \begin{macro}{\Cwi}
-% \begin{macro}{\Cwo}
-% The 4 W syllables.
+% \begin{routine}{ro}
+%    The sign \textit{ro}. Like $\alpha$ rotated 90 degrees.
 %    \begin{macrocode}
-\chardef\Cwa=`w
-\chardef\Cwe=`W
-\chardef\Cwi=`6
-\chardef\Cwo=`7
+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{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cxa}
-% \begin{macro}{\Cxe}
-% \begin{macro}{\Cxo}
-% The 3 X syllables.
+% \begin{routine}{ru}
+%    The sign \textit{ru}. Like |)\(|, but the slash is short.
 %    \begin{macrocode}
-\chardef\Cxa=`x
-\chardef\Cxe=`X
-\chardef\Cxo=`z
+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{macro}
-% \end{macro}
-% \end{macro}
+% \end{routine}
 %
-% \begin{macro}{\Czo}
-% The 1 Z syllables.
+% \begin{routine}{sa}
+%    The sign \textit{sa}. Like a V.
 %    \begin{macrocode}
-\chardef\Czo=`9
+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{macro}
+% \end{routine}
 %
-% \begin{macro}{\Cza}
-% \begin{macro}{\Cya}
-% \begin{macro}{\Cya}
-% The 3 arguable syllables.
+% \begin{routine}{se}
+%    The sign \textit{se}. 
 %    \begin{macrocode}
-\chardef\Cza=`g
-\chardef\Cya=`j
-\chardef\Cyo=`b
+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{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
+% \end{routine}
 %
-% \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{routine}{si}
+%    The sign \textit{si}. A roof over an L over a base.
 %    \begin{macrocode}
-\newcommand{\translitcyprfont}{\itshape}
-\newcommand{\translitcypr}[1]{{%
-  \@translitC\translitcyprfont #1}}
+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{macro}
-% \end{macro}
-%
-% \begin{macro}{\@translitC}
-%    This macro redefines all the character producing commands for use
-% in |\translitcypr|.
+% \end{routine}
 %
-% Start with the 5 vowels. We have to make sure that there are no extraneous
-% spaces within the command.
+% \begin{routine}{so}
+%    The sign \textit{so}.  Corporal's stripes over two bases.
 %    \begin{macrocode}
-\newcommand{\@translitC}{%
-\def\Ca{a-}\def\Ce{e-}\def\Ci{i-}\def\Co{o-}\def\Cu{u-}%
-%    \end{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}
 %
-% The 1 G syllables.
+% \begin{routine}{su}
+%    The sign \textit{su}. Like an upside down |)Y|.
 %    \begin{macrocode}
-\def\Cga{ga-}%
+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}
 %
-% The 2 J syllables.
+% \begin{routine}{ta}
+%    The sign \textit{ta}. 
 %    \begin{macrocode}
-\def\Cja{ja-}\def\Cjo{jo-}%
+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}
 %
-% The 5 K syllables.
+% \begin{routine}{te}
+%    The sign \textit{te}. A downward arrow on a base.
 %    \begin{macrocode}
-\def\Cka{ka-}\def\Cke{ke-}\def\Cki{ki-}\def\Cko{ko-}\def\Cku{ku-}%
+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}
 %
-% The 5 L syllables.
+% \begin{routine}{ti}
+%    The sign \textit{ti}. An upward arrow.
 %    \begin{macrocode}
-\def\Cda{da-}\def\Cde{de-}\def\Cdi{di-}\def\Cdo{do-}\def\Cdu{du-}%
+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}
 %
-% The 5 M syllables.
+% \begin{routine}{to}
+%    The sign \textit{to}. Like an F.
 %    \begin{macrocode}
-\def\Cma{ma-}\def\Cme{me-}\def\Cmi{mi-}\def\Cmo{mo-}\def\Cmu{mu-}%
+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}
 %
-% The 5 N syllables.
+% \begin{routine}{tu}
+%    The sign \textit{tu}. Like an slanted F with dashes under lower arm.
 %    \begin{macrocode}
-\def\Cna{na-}\def\Cne{ne-}\def\Cni{ni-}\def\Cno{no-}\def\Cnu{nu-}%
+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}
 %
-% The 5 P syllables.
+% \begin{routine}{wa}
+%    The sign \textit{wa}. Like |> <| with a |^| at the bottom.
 %    \begin{macrocode}
-\def\Cpa{pa-}\def\Cpe{pe-}\def\Cpi{pi-}\def\Cpo{po-}\def\Cpu{pu-}%
+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}
 %
-%
-% The 5 R syllables.
+% \begin{routine}{we}
+%    The sign \textit{we}. A capital I.
 %    \begin{macrocode}
-\def\Cra{ra-}\def\Cre{re-}\def\Cri{ri-}\def\Cro{ro-}\def\Cru{ru-}%
+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}
 %
-% The 5 S syllables.
+% \begin{routine}{wi}
+%    The sign \textit{wi}. Like |>`<|.
 %    \begin{macrocode}
-\def\Csa{sa-}\def\Cse{se-}\def\Csi{si-}\def\Cso{so-}\def\Csu{su-}%
+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}
 %
-% The 5 T syllables.
+% \begin{routine}{wo}
+%    The sign \textit{wo}. Like a left turn arrow.
 %    \begin{macrocode}
-\def\Cta{ta-}\def\Cte{te-}\def\Cti{ti-}\def\Cto{to-}\def\Ctu{tu-}%
+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}
 %
-% The 4 W syllables.
+% \begin{routine}{xa}
+%    The sign \textit{xa}. Like |)(|.
 %    \begin{macrocode}
-\def\Cwa{wa-}\def\Cwe{we-}\def\Cwi{wi-}\def\Cwo{wo-}%
+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}
 %
-% The 3 X syllables.
+% \begin{routine}{xe}
+%    The sign \textit{xe}. Like |(-!|.
 %    \begin{macrocode}
-\def\Cxa{xa-}\def\Cxe{xe-}\def\Cxo{xo-}%
+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}
 %
-% The 1 Z syllables.
+%
+% \begin{routine}{zo}
+%    The sign \textit{zo}. Two lightning flashes.
 %    \begin{macrocode}
-\def\Czo{zo-}%
+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}
 %
-% The 3 arguable syllables
+% \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}
-\def\Cza{za-}\def\Cya{ya-}\def\Cyo{yo-}%
+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}
 %
-% Close the macro definition.
+% \begin{routine}{:}
+%    A word divider coded as a colon. It is a short vertical line above the
+% text baseline.
 %    \begin{macrocode}
-} % end of \@translitC
+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{macro}
-%
+% \end{routine}
 %
-%    The end of this package.
+% \begin{routine}{/}
+%    A word divider coded as a forward slash. It is a short vertical line above the
+% text baseline.
 %    \begin{macrocode}
-%</usc>
+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}
 %
-% \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>
+%    The end of this file
+%    \begin{macrocode} 
+end
+
+%</up> 
 %    \end{macrocode}
 %
 %
-- 
cgit v1.2.3

