%% This OTP/OCP translates the keys entered by a US keyboard %% into consonants and vowels in the MAKOR2 encoding for use by %% Omega. Cantorial marks and other special purpose stuff is handled %% by other OTPs. %% In case there is markup that depends upon the original meaning of %% keyed-in data, this material will be treated here as well. One %% good example is the commands for fine-tuning accents and trope. %% The numerals in these coordinates need to be assigned accoridng to %% the original key meanings. %% At the `conclusion' of this OTP, the input has been converted from Ascii %% input into a stream of Hebrew characters. input: 1; output: 1; aliases: OKALPH = (`b'|`c'|`d'|`i'|`m'|`n'|`p'|`s'|`t') ; % only these needed to specify units (bp, cm, pt, etc) ARG = (43|45|46|48-57|{OKALPH} ) % digits, -, +, OK letters are valid ; U = 95 % underscore ; C = 94 % circumflex ; COMMA = 44 ; SEMI = 59 % semicolon ; ALPHA = 65-90 ; alpha = 97-122 ; CON = ({ALPHA}|{alpha}|85|176-181|192-199) ; DOT = 46 % decimal point (period) ; DIGIT = 48-57 ; SGN = (43|45) % plu/minus signs ; ORD = ({SGN}|{DIGIT}|{DOT}|{ALPHA}|{alpha}) ; ORDINATE = {ORD}<1,9> ; expressions: %% Trope... `['`e'`t'`n'`a'`h'`t'`a'`]' => 209 ; `['`s'`e'`g'`o'`l'`]' => 210 ; `['`s'`h'`a'`l'`s'`h'`e'`l'`e'`t'`]' => 211 ; `['`z'`a'`q'`e'`f'`q'`a'`t'`a'`n'`]' => 212 ; `['`z'`a'`q'`e'`f'`g'`a'`d'`o'`l'`]' => 213 ; `['`t'`i'`p'`e'`h'`a'`]' => 214 ; `['`r'`e'`v'`i'`a'`]' => 215 ; `['`z'`a'`r'`q'`a'`]' => 216 ; `['`p'`a'`s'`h'`t'`a'`]' => 217 ; `['`y'`e'`t'`i'`v'`]' => 218 ; `['`t'`e'`v'`i'`r'`]' => 219 ; `['`g'`e'`r'`e'`s'`h'`]' => 220 ; `['`g'`e'`r'`e'`s'`h'`m'`u'`q'`d'`a'`m'`]' => 221 ; `['`g'`e'`r'`s'`h'`a'`y'`i'`m'`]' => 222 ; `['`q'`a'`r'`n'`e'`y'`p'`a'`r'`a'`]' => 223 ; `['`t'`e'`l'`i'`s'`h'`a'`g'`e'`d'`o'`l'`a'`]' => 224 ; `['`p'`a'`z'`e'`r'`]' => 225 ; `['`m'`u'`n'`a'`h'`]' => 227 ; `['`m'`a'`h'`a'`p'`a'`k'`h'`]' => 228 ; `['`m'`e'`r'`k'`h'`a'`]' => 229 ; `['`m'`e'`r'`h'`k'`h'`a'`k'`e'`f'`u'`l'`a'`]' => 230 ; `['`d'`a'`r'`g'`a'`]' => 231 ; `['`q'`a'`d'`m'`a'`]' => 232 ; `['`t'`e'`l'`i'`s'`h'`a'`q'`e'`t'`a'`n'`a'`]' => 233 ; `['`y'`e'`r'`a'`h'`b'`e'`n'`y'`o'`m'`o'`]' => 234 ; `['`o'`l'`e'`]' => 235 ; `['`i'`l'`u'`y'`]' => 236 ; `['`d'`e'`h'`i'`]' => 237 ; `['`z'`i'`n'`o'`r'`]' => 238 ; `['`m'`a'`s'`o'`r'`a'`c'`i'`r'`c'`l'`e'`]' => 239 ; %% ODDMENTS, PUNCTUATION, etc.: `-'`-'`-' => 143 % em-dash ; `-'`-' => 127 % en-dash ; `|' `|' => 80 % long vertical bar ; %% CONSONANTS: 3+ char inputs... `s' `h' `^' => 176 % shin plus upperdot ; `^' `s' `h' => 177 % upperdot plu sin ; %% CONSONANTS: 2 char inputs `c' `h' => 103 % chet ; `s' `h' => 121 % shin ; `t' `s' => 118 % tsadi ; `k' `h' => 107 % chaf ; `t' `h' => 122 % saf ; `.' `t' => 104 % tet ; `.' `s' => 113 % samekh ; %% VOWELS: 2 char inputs `a' `e' => 69 % tsere ; `e' `i' => 69 % tsere ; `a' `u' => 72 % qamats ; `o' `o' => 149 % shuruk ; `:' `a' => 66 % hataf patah ; `:' `e' => 65 ; `:' `+' => 67 ; `|' 34 => 187 % meteg tsere ; `|' `i' => 182 ; `|' `a' => 184 ; `|' `e' => 185 ; `|' `+' => 186 ; `|' 39 => 183 % meteg sheva ; `|' `:' => 183 % meteg sheva ; `?' `!' => 188 % interrobang ; `!' `?' => 188 % interrobang; alt encoding ; `*'`*' => 139 % new shekel symbol ; %% CONSONANTS: single-char inputs: %% (The case of alef is handles by m2aleph.otp!) %% `v' => 97 % vet ; `b' => 145 % bet ; `g' =>98 % gimel ; `d' => 99 % dalet ; `h' => 100 % he ; `w' => 101 % vav ; `z' => 102 % zayin ; `y' => 105 % yod ; `k' => 155 % kaf ; `l' => 108 % lamed ; `m' => 110 % mem ; `n' => 112 % nun ; 96 => 114 % left single quote maps to ayin. ; `f' => 116 % fe ; `p' => 164 % pe ; `q' => 119 % qof ; `r' => 120 % resh ; `s' => 122 % alternative coding for sav ; `t' => 170 % tav ; %% VOWElS: single-char `|' => 77 % meteg ; `a' => 71 % patah ; `e' => 70 ; `i' => 68 ; `o' => 73 ; `O' => 85 ; `u' => 75 ; `-' => 78 % rafe ; `=' => 45 % hyphen ; `+' => 72 % a single char alternative for qamats ; %%PUNCTUATION, SPECIAL SYMS, and other single-char inputs... 32 => 32 % space ; %% Some other Ascii chars map to themselves... 33-59 => \1 ; 61 => \1 ; 63 => \1 ; 91-95 => \1 ; 254 => \1 ; %% Everything else is invalid... . => 208 % generic box is a sign of invalidity... ;