home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckc095.zip / ckmiso.h < prev    next >
Text File  |  1989-08-22  |  7KB  |  261 lines

  1. /* ckmiso.h -- mapping between 8859/1 and Apple format */
  2. /* March 15, 1989  Paul Placeway */
  3.  
  4. /*
  5.  * Note that the mapping is incomplete both ways.  This poses quite a
  6.  * problem: do we just leave the blank ones out, or do we cross refrence
  7.  * unrelated characters?  If we do the latter, how do we tell the difference
  8.  * between like and unlike glyphs?
  9.  */
  10.  
  11. #define ISO1toApple(c)    (((((c) & 0xff) < 0x80) ? ((c) & 0xff) : \
  12.               (_l1toa[((c) & 0xff) - 0x80])) & 0xff)
  13. #define AppletoISO1(c)    (((((c) & 0xff) < 0x80) ? ((c) & 0xff) : \
  14.               (_atol1[((c) & 0xff) - 0x80])) & 0xff)
  15.  
  16. char _l1toa[128] = {
  17. /* these are more control characters in all 8859 char sets */
  18.   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  19.   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  20.  
  21.     0xCA,    /* non-printing space */
  22.     0xC1,    /* inverted ! */
  23.     0xA2,    /* cent */
  24.     0xA3,    /* sterling */
  25.     0xDB,    /* generic curency */
  26.     0xB4,    /* yen */
  27.        0,    /* broken vert. bar */
  28.     0xA4,    /* section */
  29.     0xAC,    /* dieresis (AKA umlaut) */
  30.     0xA9,    /* copyright   ( (C) ) */
  31.     0xBB,    /* feminine ordinal (underlined superscript a) */
  32.     0xC7,    /* left guillemot (like << ) */
  33.     0xC2,    /* logical not */
  34.     0xD0 /* maybe */,    /* en dash */
  35.     0xA8,    /* registered  ( (R) ) */
  36.     0xF8,    /* macron */
  37.  
  38.     0xA1,    /* superscript ring */
  39.     0xB1,    /* plus minus */
  40.        0,    /* superscript 2 */
  41.        0,    /* superscript 3 */
  42.     0xAB,    /* acute accent */
  43.     0xB5,    /* greek lowercase mu */
  44.     0xA6,    /* paragraph */
  45.     0xA5,    /* bullet */
  46.     0xFC,    /* cedilla */
  47.        0,    /* superscript 1 */
  48.     0xBC,    /* masculine ordinal (underlined superscript o) */
  49.     0xC8,    /* right guillemot (like >> ) */
  50.        0,    /* 1/4 */
  51.        0,    /* 1/2 */
  52.        0,    /* 3/4 */
  53.     0xC0,    /* inverted ? */
  54.  
  55.     0xCB,    /* A grave */
  56.     0xE7,    /* A accute */
  57.     0xE5,    /* A circumflex */
  58.     0xCC,    /* A tilde */
  59.     0x80,    /* A dieresis */
  60.     0x81,    /* A ring */
  61.     0xAE,    /* AE */
  62.     0x82,    /* C cedilla */
  63.     0xE9,    /* E grave */
  64.     0x83,    /* E accute */
  65.     0xE6,    /* E circumflex */
  66.     0xE8,    /* E dieresis */
  67.     0xED,    /* I grave */
  68.     0xEA,    /* I accute */
  69.     0xEB,    /* I circumflex */
  70.     0xEC,    /* I dieresis */
  71.  
  72.        0,    /* Uppercase Eth */
  73.     0x84,    /* N tilde */
  74.     0xF1,    /* O grave */
  75.     0xEE,    /* O accute */
  76.     0xEF,    /* O circumflex */
  77.     0xCD,    /* O tilde */
  78.     0x85,    /* O dieresis */
  79.        0,    /* X mark */
  80.     0xAF,    /* O slash */
  81.     0xF4,    /* U grave */
  82.     0xF2,    /* U accute */
  83.     0xF3,    /* U circumflex */
  84.     0x86,    /* U dieresis */
  85.        0,    /* Y accute */
  86.        0,    /* Uppercase Thorn */
  87.     0xA7,    /* Es-sed (German double s) */
  88.  
  89.     0x88,    /* a grave */
  90.     0x87,    /* a accute */
  91.     0x89,    /* a circumflex */
  92.     0x8B,    /* a tilde */
  93.     0x8A,    /* a dieresis */
  94.     0x8C,    /* a ring */
  95.     0xBE,    /* ae */
  96.     0x8D,    /* c cedilla */
  97.     0x8F,    /* e grave */
  98.     0x8E,    /* e accute */
  99.     0x90,    /* e circumflex */
  100.     0x91,    /* e dieresis */
  101.     0x93,    /* i grave */
  102.     0x92,    /* i accute */
  103.     0x94,    /* i circumflex */
  104.     0x95,    /* i dieresis */
  105.  
  106.        0,    /* lowercase eth */
  107.     0x96,    /* n tilde */
  108.     0x98,    /* o grave */
  109.     0x97,    /* o accute */
  110.     0x99,    /* o circumflex */
  111.     0x9B,    /* o tilde */
  112.     0x9A,    /* o dieresis */
  113.     0xD6,    /* divide */
  114.     0xBF,    /* o slash */
  115.     0x9D,    /* u grave */
  116.     0x9C,    /* u accute */
  117.     0x9E,    /* u circumflex */
  118.     0x9F,    /* u dieresis */
  119.        0,    /* y accute */
  120.        0,    /* lowercase thorn */
  121.     0xD8    /* y dieresis */
  122. };
  123.  
  124. char _atol1[128] = {
  125.     0xC4,    /* A dieresis */
  126.     0xC5,    /* A ring */
  127.     0xC7,    /* C cedilla */
  128.     0xC9,    /* E accute */
  129.     0xD1,    /* N tilde */
  130.     0xD6,    /* O dieresis */
  131.     0xDC,    /* U dieresis */
  132.     0xE1,    /* a accute */
  133.     0xE0,    /* a grave */
  134.     0xE2,    /* a circumflex */
  135.     0xE4,    /* a dieresis */
  136.     0xE3,    /* a tilde */
  137.     0xE5,    /* a ring */
  138.     0xE7,    /* c cedilla */
  139.     0xE9,    /* e accute */
  140.     0xE8,    /* e grave */
  141.  
  142.     0xEA,    /* e circumflex */
  143.     0xEB,    /* e dieresis */
  144.     0xED,    /* i accute */
  145.     0xEC,    /* i grave */
  146.     0xEE,    /* i circumflex */
  147.     0xEF,    /* i dieresis */
  148.     0xF1,    /* n tilde */
  149.     0xF3,    /* o accute */
  150.     0xF2,    /* o grave */
  151.     0xF4,    /* o circumflex */
  152.     0xF6,    /* o dieresis */
  153.     0xF5,    /* o tilde */
  154.     0xFA,    /* u accute */
  155.     0xF9,    /* u grave */
  156.     0xFB,    /* u circumflex */
  157.     0xFC,    /* u dieresis */
  158.  
  159.        0,    /* dagger */
  160.     0xB0,    /* superscript ring */
  161.     0xA2,    /* cent */
  162.     0xA3,    /* sterling */
  163.     0xA7,    /* section */
  164.     0xB7,    /* bullet */
  165.     0xB6,    /* paragraph */
  166.     0xDF,    /* Es-sed (German double s) */
  167.     0xAE,    /* registered  ( (R) ) */
  168.     0xA9,    /* copyright   ( (C) ) */
  169.        0,    /* trade mark */
  170.     0xB4,    /* acute accent */
  171.     0xA8,    /* dieresis (AKA umlaut) */
  172.        0,    /* not equal */
  173.     0xC6,    /* AE */
  174.     0xD8,    /* O slash */
  175.  
  176.        0,    /* infinity */
  177.     0xB1,    /* plus minus */
  178.        0,    /* less than or equal to */
  179.        0,    /* greater than or equal to */
  180.     0xA5,    /* yen */
  181.     0xB5,    /* greek lowercase mu */
  182.        0,    /* partial */
  183.        0,    /* Uppercase Sigma (Summation) */
  184.        0,    /* Uppercase Pi (Power) */
  185.        0,    /* lowercase pi */
  186.        0,    /* integral */
  187.     0xAA,    /* feminine ordinal (underlined superscript a) */
  188.     0xBA,    /* masculine ordinal (underlined superscript o) */
  189.        0,    /* Uppercase Omega */
  190.     0xE6,    /* ae */
  191.     0xF8,    /* o slash */
  192.  
  193.     0xBF,    /* inverted ? */
  194.     0xA1,    /* inverted ! */
  195.     0xAC,    /* logical not */
  196.        0,    /* radical (square root) */
  197.        0,    /* florin */
  198.        0,    /* approx equal */
  199.        0,    /* Uppercase Delta */
  200.     0xAB,    /* left guillemot (like << ) */
  201.     0xBB,    /* right guillemot (like >> ) */
  202.        0,    /* elipsis (...) */
  203.     0xA0,    /* non-printing space */
  204.     0xC0,    /* A grave */
  205.     0xC3,    /* A tilde */
  206.     0xD5,    /* O tilde */
  207.        0,    /* OE */
  208.        0,    /* oe */
  209.  
  210.     0xAD /* maybe */,    /* en dash */
  211.        0,    /* em dash */
  212.        0,    /* left doublequote ( `` ) */
  213.        0,    /* right doublequote ( '' ) */
  214.        0,    /* left singlequote ( ` ) */
  215.        0,    /* right singlequote ( ' ) */
  216.     0xF7,    /* divide */
  217.        0,    /* lozenge (open diamond) */
  218.     0xFF,    /* y dieresis */
  219.        0,    /* Y dieresis */
  220.        0,    /* divide (a / with less slope) */
  221.     0xA4,    /* generic curency */
  222.        0,    /* single left guil (like < ) */
  223.        0,    /* single left guil (like > ) */
  224.        0,    /* fi */
  225.        0,    /* fl */
  226.  
  227.        0,    /* double dagger */
  228.        0,    /* centered (small) dot */
  229.        0,    /* baseline single close quote */
  230.        0,    /* baseline double close quote */
  231.        0,    /* per thousand */
  232.     0xC2,    /* A circumflex */
  233.     0xCA,    /* E circumflex */
  234.     0xC1,    /* A accute */
  235.     0xCB,    /* E dieresis */
  236.     0xC8,    /* E grave */
  237.     0xCD,    /* I accute */
  238.     0xCE,    /* I circumflex */
  239.     0xCF,    /* I dieresis */
  240.     0xCC,    /* I grave */
  241.     0xD3,    /* O accute */
  242.     0xD4,    /* O circumflex */
  243.  
  244.        0,    /* (closed) Apple */
  245.     0xD2,    /* O grave */
  246.     0xDA,    /* U accute */
  247.     0xDB,    /* U circumflex */
  248.     0xD9,    /* U grave */
  249.        0,    /* dotless i */
  250.        0,    /* circumflex */
  251.        0,    /* tilde */
  252.     0xAF,    /* macron */
  253.        0,    /* breve */
  254.        0,    /* dot accent */
  255.        0,    /* ring accent */
  256.     0xB8,    /* cedilla */
  257.        0,    /* Hungarian umlaut */
  258.        0,    /* ogonek */
  259.        0    /* caron */
  260. };
  261.