home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / D / CLISP / CLISPSRC.TAR / clisp-1995-01-01 / utils / charset / cvatariascii.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-23  |  5.0 KB  |  169 lines

  1. /* Konversionsprogramm Atari-Zeichensatz -> ASCII-Zeichensatz */
  2. /* Bruno Haible 13.12.1991 */
  3.  
  4. #include <stdio.h>
  5.  
  6. main ()
  7. { static long tabelle[256];
  8.   /* Tabelle initialisieren: */
  9.   int atari;
  10.   long ascii;
  11. #define ATARI(x) atari=x;
  12. #define ASCII(y) ascii=y;
  13. #define ASCII2(y1,y2) ascii=(y2<<8)|y1;
  14. #define ASCII3(y1,y2,y3) ascii=(y3<<16)|(y2<<8)|y1;
  15. #define _ tabelle[atari]=ascii;
  16.   { int i;
  17.     for (i=0;i<128;i++) { ATARI(i) ASCII(i) _ }
  18.   }
  19.   ATARI(128) ASCII('C') _ /* ╟ */
  20.   ATARI(129) ASCII2('u','e') _ /* ⁿ */
  21.   ATARI(130) ASCII2('\'','e') _ /* Θ */
  22.   ATARI(131) ASCII2('^','a') _ /* Γ */
  23.   ATARI(132) ASCII2('a','e') _ /* Σ */
  24.   ATARI(133) ASCII2('`','a') _ /* α */
  25.   ATARI(134) ASCII('a') _ /* σ */
  26.   ATARI(135) ASCII('c') _ /* τ */
  27.   ATARI(136) ASCII2('^','e') _ /* Ω */
  28.   ATARI(137) ASCII2('\"','e') _ /* δ */
  29.   ATARI(138) ASCII2('`','e') _ /* Φ */
  30.   ATARI(139) ASCII2('\"','i') _ /* ∩ */
  31.   ATARI(140) ASCII2('^','i') _ /* ε */
  32.   ATARI(141) ASCII2('`','i') _ /* ∞ */
  33.   ATARI(142) ASCII2('A','e') _ /* ─ */
  34.   ATARI(143) ASCII('A') _ /* ┼ */
  35.   ATARI(144) ASCII2('\'','E') _ /* ╔ */
  36.   ATARI(145) ASCII2('a','e') _ /* µ */
  37.   ATARI(146) ASCII2('A','E') _ /* ╞ */
  38.   ATARI(147) ASCII2('^','o') _ /* ⌠ */
  39.   ATARI(148) ASCII2('o','e') _ /* ÷ */
  40.   ATARI(149) ASCII2('`','o') _ /* ≥ */
  41.   ATARI(150) ASCII2('^','u') _ /* √ */
  42.   ATARI(151) ASCII2('`','u') _ /* ∙ */
  43.   ATARI(152) ASCII2('\"','y') _ /*   */
  44.   ATARI(153) ASCII2('O','e') _ /* ╓ */
  45.   ATARI(154) ASCII2('U','e') _ /* ▄ */
  46.   ATARI(155) ASCII('c') _ /* ó */
  47.   ATARI(156) ASCII2('l','b') _ /* ú */
  48.   ATARI(157) ASCII3('y','e','n') _ /* Ñ */
  49.   ATARI(158) ASCII2('s','s') _ /* ▀ */
  50.   ATARI(159) ASCII2('f','l') _
  51.   ATARI(160) ASCII2('\'','a') _ /* ß */
  52.   ATARI(161) ASCII2('\'','i') _ /* φ */
  53.   ATARI(162) ASCII2('\'','o') _ /* ≤ */
  54.   ATARI(163) ASCII2('\'','u') _ /* · */
  55.   ATARI(164) ASCII2('~','n') _ /* ± */
  56.   ATARI(165) ASCII2('~','N') _ /* ╤ */
  57.   ATARI(166) ASCII('a') _ /* ¬ */
  58.   ATARI(167) ASCII('o') _ /* ║ */
  59.   ATARI(168) ASCII('?') _ /* ┐ */
  60.   ATARI(169) ASCII(0) _
  61.   ATARI(170) ASCII3('n','o','t') _ /* ¼ */
  62.   ATARI(171) ASCII3('1','/','2') _ /* ╜ */
  63.   ATARI(172) ASCII3('1','/','4') _ /* ╝ */
  64.   ATARI(173) ASCII('!') _ /* í */
  65.   ATARI(174) ASCII2('<','<') _ /* ½ */
  66.   ATARI(175) ASCII2('>','>') _ /* ╗ */
  67.   ATARI(176) ASCII2('~','a') _ /* π */
  68.   ATARI(177) ASCII2('~','o') _ /* ⌡ */
  69.   ATARI(178) ASCII('O') _ /* ╪ */
  70.   ATARI(179) ASCII('o') _ /* ° */
  71.   ATARI(180) ASCII2('o','e') _ /* oe */
  72.   ATARI(181) ASCII2('O','e') _ /* OE */
  73.   ATARI(182) ASCII2('`','A') _ /* └ */
  74.   ATARI(183) ASCII2('~','A') _ /* ├ */
  75.   ATARI(184) ASCII2('~','O') _ /* ╒ */
  76.   ATARI(185) ASCII('\"') _ /* ¿ */
  77.   ATARI(186) ASCII('\'') _ /* ┤ */
  78.   ATARI(187) ASCII('+') _ /* + */
  79.   ATARI(188) ASCII('P') _ /* ╢ */
  80.   ATARI(189) ASCII3('(','c',')') _ /* ⌐ */
  81.   ATARI(190) ASCII3('(','R',')') _ /* « */
  82.   ATARI(191) ASCII2('T','M') _ /* TM */
  83.   ATARI(192) ASCII2('i','j') _
  84.   ATARI(193) ASCII2('I','J') _
  85.   ATARI(194) ASCII(0) _
  86.   ATARI(195) ASCII(0) _
  87.   ATARI(196) ASCII(0) _
  88.   ATARI(197) ASCII(0) _
  89.   ATARI(198) ASCII(0) _
  90.   ATARI(199) ASCII(0) _
  91.   ATARI(200) ASCII(0) _
  92.   ATARI(201) ASCII(0) _
  93.   ATARI(202) ASCII(0) _
  94.   ATARI(203) ASCII(0) _
  95.   ATARI(204) ASCII(0) _
  96.   ATARI(205) ASCII(0) _
  97.   ATARI(206) ASCII(0) _
  98.   ATARI(207) ASCII(0) _
  99.   ATARI(208) ASCII(0) _
  100.   ATARI(209) ASCII(0) _
  101.   ATARI(210) ASCII(0) _
  102.   ATARI(211) ASCII(0) _
  103.   ATARI(212) ASCII(0) _
  104.   ATARI(213) ASCII(0) _
  105.   ATARI(214) ASCII(0) _
  106.   ATARI(215) ASCII(0) _
  107.   ATARI(216) ASCII(0) _
  108.   ATARI(217) ASCII(0) _
  109.   ATARI(218) ASCII(0) _
  110.   ATARI(219) ASCII(0) _
  111.   ATARI(220) ASCII(0) _
  112.   ATARI(221) ASCII2('S','S') _ /* º */
  113.   ATARI(222) ASCII('^') _
  114.   ATARI(223) ASCII2('o','o') _
  115.   ATARI(224) ASCII(0) _
  116.   ATARI(225) ASCII(0) _
  117.   ATARI(226) ASCII(0) _
  118.   ATARI(227) ASCII(0) _
  119.   ATARI(228) ASCII(0) _
  120.   ATARI(229) ASCII(0) _
  121.   ATARI(230) ASCII('u') _ /* ╡ */
  122.   ATARI(231) ASCII(0) _
  123.   ATARI(232) ASCII(0) _
  124.   ATARI(233) ASCII(0) _
  125.   ATARI(234) ASCII(0) _
  126.   ATARI(235) ASCII(0) _
  127.   ATARI(236) ASCII(0) _
  128.   ATARI(237) ASCII(0) _
  129.   ATARI(238) ASCII2('i','n') _
  130.   ATARI(239) ASCII('n') _
  131.   ATARI(240) ASCII('=') _
  132.   ATARI(241) ASCII2('+','-') _ /* ▒ */
  133.   ATARI(242) ASCII2('>','=') _
  134.   ATARI(243) ASCII2('<','=') _
  135.   ATARI(244) ASCII(0) _
  136.   ATARI(245) ASCII(0) _
  137.   ATARI(246) ASCII(':') _ /* ≈ */
  138.   ATARI(247) ASCII('=') _
  139.   ATARI(248) ASCII2('^','0') _ /* ░ */
  140.   ATARI(249) ASCII(0) _
  141.   ATARI(250) ASCII(0) _
  142.   ATARI(251) ASCII(0) _
  143.   ATARI(252) ASCII(0) _
  144.   ATARI(253) ASCII2('^','2') _ /* ▓ */
  145.   ATARI(254) ASCII2('^','3') _ /* │ */
  146.   ATARI(255) ASCII(0) _ /* » */
  147. #undef _
  148. #undef ASCII3
  149. #undef ASCII2
  150. #undef ASCII
  151. #undef ATARI
  152.   { int fehler = 0;
  153.     int c;
  154.     while (!((c = getchar()) == EOF))
  155.       { long cx = tabelle[c];
  156.         if (cx == 0)
  157.           { fehler++; }
  158.           else
  159.           { do { putchar(cx & 0xFF); cx = cx>>8; } while (!(cx == 0)); }
  160.       }
  161.     if (!(fehler == 0))
  162.       { fprintf(stderr,"%d illegal characters\n",fehler); exit(1); }
  163.       else
  164.       if (ferror(stdin) || ferror(stdout))
  165.         { exit(1); }
  166.         else
  167.         { exit(0); }
  168. } }
  169.