% File:       MF Inputs ibygrk.map
% Author:     Pierre A. MacKay
% Internet:   mackay@cs.washington.edu
% Date:       Friday, 06 May 1994
% Copyright 1994 by Pierre A. MacKay
% The contents of this file are licensed free for
% use and redistribution under the terms of the  
% GNU General Public License.  For the terms of  
% this license see any publication of the Free   
% Software Foundation or any software packages   
% distributed by the Free Software Foundation.   
% 
%
% These macros make it possible to read *.map files as either
% \TeX{} or METAFONT input
% See the parallel ../tex directory for use of this file as TeX input
%
% A well-known conditional test in METAFONT; 
% It creates mismatch of character tokens 'k' and 'n' in TeX
\if known cmbase: %                              Interpret as a METAFONT file
     let re_catcode=relax; let let_=gobble; let no_let=gobble;
  else: 
     message "Must have cmbase loaded for this, or else some macros from it" ;
%
% END OF METAFONT INTERPRETATION---TeX INTERPRETATION FOLLOWS
%
  \else %                                             Interpret as a TeX file
     \catcode`\_11 % allow underscore in csnames as in METAFONT
     \def\re_catcode{\catcode`\=12 \catcode`\;12 \catcode`\_8}%
     \def\ignore_to_comment#1#2{}%
% Now activate all the characters from ^^80 to ^^ff
     \count255=`\^^80
     \loop \ifnum\count255 < `\^^ff
       \catcode\count255\active \advance\count255 by 1 \repeat
     % \catcode`\^^ff\active % If you want it, I don't in this case.
     \expandafter\input\the\digraphs % Filename in a \toks register
     \catcode`\;0 % treat the first ; (required by METAFONT) as an escape 
     \catcode`\=14 % treat the = in the METAFONT part as a comment character
     \let\let_\let \let\no_let\ignore_to_comment
  \fi
%
% This is a rather specialized version of the map file,
% developed for Greek only.  There are certain restrictions
% in this case, because we do not want to alter Silvio Levy's
% source code---only the mappings.  
% The upper level codes (^^80---^^ff) are based on a version of
% Greek Keys, but the mapping is worked out by experience,
% not from any documentation.  We are not sure whether Greek Keys
% even has a consistent code page from one version to the next,
% and even if it does, customization seems to make consistency
% rather unlikely.  Consistency is provided by the ASCII digraphs
% and trigraphs to which all word-processor codes are remapped
% before they are used in TeX.  These digraphs and trigraphs
% (even tetragraphs in the case of iota subscript) are very close
% to Ibycus/TLG betacode, except for the unfortunate uppercasing
% of betacode.
%
%  a known set of word-processor        Some "hidden" characters
%  equivalents is "let_" for TeX      Only METAFONT needs to know
%  \no_let is used where there          what is in this column
%  seems to be no certain mapping
%
\let_ ^^80;oxy_tone    = ASCII"'";       boundarychar := oct"377";
\let_ ^^81;bary_tone   = ASCII"`";       final_sigma=ASCII"j";
\let_ ^^82;peri_spomenon  = ASCII"=";    iotasub  = ASCII"|";
\let_ ^^83;sp_lenis    = ASCII")";       lenis_glyph = ASCII">";
\let_ ^^84;sp_asper    = ASCII"(";       asper_glyph = ASCII"<";
\let_ ^^85;lenis_oxy   = oct"136";       r_len  = oct"374";
\let_ ^^86;lenis_bary  = oct"137";       r_aspr = oct"373"; % Mapped to "="!!
\let_ ^^87;lenis_peri  = oct"134";       lunate_Cigma=oct"004";
\let_ ^^88;asper_oxy   = oct"207";       lunate_cigma=ASCII"J"; 
\let_ ^^89;asper_bary  = oct"203";       % It's uppercase J because 
\let_ ^^8a;asper_peri  = oct"100";       % that's all that's left
\no_let \dmy;diaeroxy  = oct"043";       digamma = ASCII"v";
\no_let \dmy;diaerbary = oct"044";       en_dash = 0;
\no_let \dmy;quoteleft  = oct"034";      em_dash = oct"177";
\no_let \dmy;quoteright = oct"035";      null_space = ASCII" ";
%
% alpha with accents
%
\let_ ^^8b;a_oxy       = oct"210";       diaer = oct"053"; % plus sign
\let_ ^^8c;a_bary      = oct"200";       sampi = oct"003";
\let_ ^^8d;a_peri      = oct"220";       Koppa = oct"001";
\let_ ^^8e;a_len       = oct"202";       koppa = oct"002";
\let_ ^^8f;a_aspr      = oct"201";       guillemotleft = ASCII"{";
\let_ ^^90;a_lenoxy    = oct"212";       guillemotright = ASCII"}";
\let_ ^^91;a_asproxy   = oct"211";       % two small heraldic awks.
\let_ ^^92;a_lenbary   = oct"223";       colongreek = ASCII";";
\let_ ^^93;a_asprbary  = oct"213";       % Note that this serves as the
\let_ ^^94;a_lenperi   = oct"222";       % semicolon, rather than the 
\let_ ^^95;a_asprperi  = oct"221";       % modern two-dot colon 
%
% alpha with accents and iota subscript
%
\let_ ^^fb;a_isub          = oct"370";
\let_ ^^96;a_oxyisub       = oct"214";
\let_ ^^97;a_baryisub      = oct"204";
\let_ ^^98;a_periisub      = oct"224";
\let_ ^^99;a_lenisub       = oct"206";
\let_ ^^9a;a_asprisub      = oct"205";
\let_ ^^9b;a_lenoxyisub    = oct"216";
\let_ ^^9c;a_asproxyisub   = oct"215";
\let_ ^^9d;a_lenbaryisub   = oct"227";
\let_ ^^9e;a_asprbaryisub  = oct"217";
\let_ ^^9f;a_lenperiisub   = oct"226";
\let_ ^^a0;a_asprperiisub  = oct"225";
%
% epsilon with accents
%
\let_ ^^a1;e_oxy      = oct"350";
\let_ ^^a2;e_bary     = oct"340";
\let_ ^^a4;e_len      = oct"342";
\let_ ^^a5;e_aspr     = oct"341";
\let_ ^^a6;e_lenoxy   = oct"352";
\let_ ^^a7;e_asproxy  = oct"351";
\let_ ^^a8;e_lenbary  = oct"343";
\let_ ^^a9;e_asprbary = oct"353";
%
% eta with accents
%
\let_ ^^ae;h_oxy       = oct"240";
\let_ ^^af;h_bary      = oct"230";
\let_ ^^b0;h_peri      = oct"250";
\let_ ^^b1;h_len       = oct"232";
\let_ ^^b2;h_aspr      = oct"231";
\let_ ^^b3;h_lenoxy    = oct"242";
\let_ ^^b4;h_asproxy   = oct"241";
\let_ ^^b5;h_lenbary   = oct"243";
\let_ ^^b6;h_asprbary  = oct"233";
\let_ ^^b7;h_lenperi   = oct"252";
\let_ ^^b8;h_asprperi  = oct"251";
%
% eta with accents and iota subscript
%
\let_ ^^fa;h_isub          = oct"371";
\let_ ^^b9;h_oxyisub       = oct"244";
\let_ ^^ba;h_baryisub      = oct"234";
\let_ ^^bb;h_periisub      = oct"254";
\let_ ^^bc;h_lenisub       = oct"236";
\let_ ^^bd;h_asprisub      = oct"235";
\let_ ^^be;h_lenoxyisub    = oct"246";
\let_ ^^bf;h_asproxyisub   = oct"245";
\let_ ^^c0;h_lenbaryisub   = oct"247";
\let_ ^^c1;h_asprbaryisub  = oct"237";
\let_ ^^c2;h_lenperiisub   = oct"256";
\let_ ^^c3;h_asprperiisub  = oct"255";
%
%iota with accents
%
\let_ ^^db;i_oxy       = oct"320";
\let_ ^^dc;i_bary      = oct"310";
\let_ ^^dd;i_peri      = oct"330";
\let_ ^^de;i_len       = oct"312";
\let_ ^^df;i_aspr      = oct"311";
\let_ ^^e0;i_lenoxy    = oct"322";
\let_ ^^e1;i_asproxy   = oct"321";
\let_ ^^e2;i_lenbary   = oct"323";
\let_ ^^e3;i_asprbary  = oct"313";
\let_ ^^e4;i_lenperi   = oct"332";
\let_ ^^e5;i_asprperi  = oct"331";
\let_ ^^f3;i_diaer     = oct"360";
\let_ ^^fd;i_oxydiaer  = oct"362";
\let_ ^^fe;i_barydiaer = oct"361";
%
% omicron with accents
%
\let_ ^^f1;o_oxy      = oct"354";
\let_ ^^f2;o_bary     = oct"344";
\let_ ^^f4;o_len      = oct"346";
\let_ ^^f5;o_aspr     = oct"345";
\let_ ^^f6;o_lenoxy   = oct"356";
\let_ ^^f7;o_asproxy  = oct"355";
\let_ ^^f8;o_lenbary  = oct"357";
\let_ ^^f9;o_asprbary = oct"347";
%
% upsilon with accents
%
\let_ ^^e6;u_oxy       = oct"324";
\let_ ^^e7;u_bary      = oct"314";
\let_ ^^e8;u_peri      = oct"334";
\let_ ^^e9;u_len       = oct"316";
\let_ ^^ea;u_aspr      = oct"315";
\let_ ^^eb;u_lenoxy    = oct"326";
\let_ ^^ec;u_asproxy   = oct"325";
\let_ ^^ed;u_lenbary   = oct"327";
\let_ ^^ee;u_asprbary  = oct"317";
\let_ ^^ef;u_lenperi   = oct"336";
\let_ ^^f0;u_asprperi  = oct"335";
\no_let \dmy;u_diaer     = oct"364";
\no_let \dmy;u_oxydiaer  = oct"366";
\let_ ^^a3;u_barydiaer = oct"365";
%
% omega with accents
%
\let_ ^^c5;w_oxy       = oct"270";
\let_ ^^c6;w_bary      = oct"260";
\let_ ^^c7;w_peri      = oct"300";
\let_ ^^c8;w_len       = oct"262";
\let_ ^^c9;w_aspr      = oct"261";
\let_ ^^ca;w_lenoxy    = oct"272";
\let_ ^^cb;w_asproxy   = oct"271";
\let_ ^^cc;w_lenbary   = oct"273";
\let_ ^^cd;w_asprbary  = oct"263";
\let_ ^^ce;w_lenperi   = oct"302";
\let_ ^^cf;w_asprperi  = oct"301";
%
% omega with accents and iota subscript
%
\let_ ^^c4;w_isub      = oct"372";
\let_ ^^d0;w_oxyisub       = oct"274";
\let_ ^^d1;w_baryisub      = oct"264";
\let_ ^^d2;w_periisub      = oct"304";
\let_ ^^d3;w_lenisub       = oct"266";
\let_ ^^d4;w_asprisub      = oct"265";
\let_ ^^d5;w_lenoxyisub    = oct"276";
\let_ ^^d6;w_asproxyisub   = oct"275";
\let_ ^^d7;w_lenbaryisub   = oct"277";
\let_ ^^d8;w_asprbaryisub  = oct"267";
\let_ ^^d9;w_lenperiisub   = oct"306";
\let_ ^^da;w_asprperiisub  = oct"305";

\re_catcode