DIRECTORY IO, FileIO, Rope; MakeCodeSchemes: CEDAR PROGRAM IMPORTS IO, FileIO, Rope = BEGIN codeScheme: ARRAY CHAR OF CARDINAL; WriteScheme: PROC [fileName: Rope.ROPE] = TRUSTED { p: LONG POINTER TO ARRAY CHAR OF CARDINAL _ @codeScheme; unsafeBlock: IO.UnsafeBlock _ [base: p, startIndex: 0, stopIndexPlusOne: 2*SIZE[ARRAY CHAR OF CARDINAL]]; stream: IO.STREAM _ FileIO.Open[fileName.Concat[".codeScheme"], overwrite]; stream.UnsafePutBlock[unsafeBlock]; stream.Close[]; }; Default: PROC[bc, ec: CHAR] = { FOR char: CHAR IN CHAR DO codeScheme[char] _ 255 ENDLOOP; FOR char: CHAR IN [bc..ec] DO codeScheme[char] _ LOOPHOLE[char] ENDLOOP; }; Code: PROC[octalChar, set, code: [0..256)] = { codeScheme[LOOPHOLE[octalChar]] _ CARDINAL[set]*256+code; }; Default[' , '~]; WriteScheme["Ascii"]; Default[' , ' -1]; WriteScheme["Pi"]; Default[' , ' -1]; WriteScheme["Graphic"]; Default[' , '~]; codeScheme['$] _ 244B; codeScheme['^] _ 255B; codeScheme['_] _ 254B; codeScheme['-] _ CARDINAL[41b]*256+75B; -- hyphen Code[200B, 360b, 63b]; -- A umlaut Code[201B, 360b, 73b]; -- O umlaut Code[202B, 360b, 41b]; -- A circle Code[203B, 360b, 75b]; -- U umlaut Code[204B, 360b, 243b]; -- C cedilla Code[205B, 0, 351b]; -- Norw. slashed O Code[206B, 0, 341b]; -- AE Code[207B, 0, 352b]; -- OE Code[210B, 0, 313b]; -- cedilla Code[211B, 0, 255]; -- underdot Code[212B, 0, 255]; -- undercomma Code[213B, 0, 255]; -- some kind of lowered accent Code[220B, 360b, 360b]; -- ff Code[221B, 360b, 361b]; -- ffi Code[222B, 360b, 362b]; -- ffl Code[223B, 360b, 363b]; -- fi Code[224B, 360b, 364b]; -- fl Code[225B, 0, 373b]; -- ess-zed Code[226B, 0, 366b]; -- ij Code[227B, 0, 346b]; -- IJ Code[230B, 0, 40b]; Code[231B, 0, 40b]; Code[232B, 0, 40b]; Code[233B, 377b, 44b]; -- en dash Code[234B, 377b, 45b]; -- em dash Code[235B, 0, 55b]; -- minus Code[236B, 0, 255]; -- some kind of dot Code[200B, 360b, 62b]; -- a umlaut Code[201B, 360b, 74b]; -- o umlaut Code[202B, 360b, 42b]; -- a circle Code[203B, 360b, 76b]; -- u umlaut Code[204B, 360b, 244b]; -- c cedilla Code[205B, 0, 371b]; -- Norw. slashed o Code[206B, 0, 361b]; -- ae Code[207B, 0, 372b]; -- oe WriteScheme["XeroxOIS"]; END. Code[200B, c]; Code[201B, c]; Code[202B, c]; Code[203B, c]; Code[204B, c]; Code[205B, c]; Code[206B, c]; Code[207B, c]; Code[210B, c]; Code[211B, c]; Code[212B, c]; Code[213B, c]; Code[214B, c]; Code[215B, c]; Code[216B, c]; Code[217B, c]; Code[220B, c]; Code[221B, c]; Code[222B, c]; Code[223B, c]; Code[224B, c]; Code[225B, c]; Code[226B, c]; Code[227B, c]; Code[230B, c]; Code[231B, c]; Code[232B, c]; Code[233B, c]; Code[234B, c]; Code[235B, c]; Code[236B, c]; Code[237B, c]; Code[240B, c]; Code[241B, c]; Code[242B, c]; Code[243B, c]; Code[244B, c]; Code[245B, c]; Code[246B, c]; Code[247B, c]; Code[250B, c]; Code[251B, c]; Code[252B, c]; Code[253B, c]; Code[254B, c]; Code[255B, c]; Code[256B, c]; Code[257B, c]; Code[260B, c]; Code[261B, c]; Code[262B, c]; Code[263B, c]; Code[264B, c]; Code[265B, c]; Code[266B, c]; Code[267B, c]; Code[270B, c]; Code[271B, c]; Code[272B, c]; Code[273B, c]; Code[274B, c]; Code[275B, c]; Code[276B, c]; Code[277B, c]; Code[300B, c]; Code[301B, c]; Code[302B, c]; Code[303B, c]; Code[304B, c]; Code[305B, c]; Code[306B, c]; Code[307B, c]; Code[310B, c]; Code[311B, c]; Code[312B, c]; Code[313B, c]; Code[314B, c]; Code[315B, c]; Code[316B, c]; Code[317B, c]; Code[320B, c]; Code[321B, c]; Code[322B, c]; Code[323B, c]; Code[324B, c]; Code[325B, c]; Code[326B, c]; Code[327B, c]; Code[330B, c]; Code[331B, c]; Code[332B, c]; Code[333B, c]; Code[334B, c]; Code[335B, c]; Code[336B, c]; Code[337B, c]; Code[340B, c]; Code[341B, c]; Code[342B, c]; Code[343B, c]; Code[344B, c]; Code[345B, c]; Code[346B, c]; Code[347B, c]; Code[350B, c]; Code[351B, c]; Code[352B, c]; Code[353B, c]; Code[354B, c]; Code[355B, c]; Code[356B, c]; Code[357B, c]; Code[360B, c]; Code[361B, c]; Code[362B, c]; Code[363B, c]; Code[364B, c]; Code[365B, c]; Code[366B, c]; Code[367B, c]; Code[370B, c]; Code[371B, c]; Code[372B, c]; Code[373B, c]; Code[374B, c]; Code[375B, c]; Code[376B, c]; Code[377B, c]; ςMakeCodeSchemes.mesa A hack to build character coding scheme files. Michael Plass, January 17, 1983 1:46 pm. Eight-bit codes 20X 21X 22X 23X 24X Template Eight-bit codes 20X 21X 22X 23X 24X 25X 26X 27X 30X 31X 32X 33X 34X 35X 36X 37X ΚΆ˜J™J™.J™(IunitšΟk œœ˜šœœ˜Jšœœ˜Jšœ˜Kš œ œœœœ˜#šΟn œœœ ˜3Jšœœœœœœœœ˜9Jš œ œ<œœœœœ˜iJšœœœ:˜KJšœ#˜#Jšœ˜J˜—šžœœ œ˜Jš œœœœœœ˜9Jš œœœ œœœ˜IJšœ˜—šžœœ$˜.Jšœ œœ˜9Jšœ˜—Kšœ&˜&Kšœ%˜%Kšœ*˜*šœ˜Jšœ˜Jšœ˜Jšœ˜JšœœΟc ˜1™™JšœŸ ˜"JšœŸ ˜"JšœŸ ˜"JšœŸ ˜"JšœŸ ˜$JšœŸ˜'JšœŸ˜JšœŸ˜—™JšœŸ ˜JšœŸ ˜JšœŸ ˜!JšœŸ˜2—™JšœŸ˜JšœŸ˜JšœŸ˜JšœŸ˜JšœŸ˜JšœŸ ˜JšœŸ˜JšœŸ˜—™J˜J˜J˜JšœŸ ˜!JšœŸ ˜!JšœŸ˜Jšœ'˜'—™JšœŸ ˜"JšœŸ ˜"JšœŸ ˜"JšœŸ ˜"JšœŸ ˜$JšœŸ˜'JšœŸ˜JšœŸ˜——Jšœ˜—Kšœ˜—™™™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜—™J˜J˜J˜J˜J˜J˜J˜J˜——K™——…—τœ