home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff369.lzh / VaxTerm / src / keymaps.c < prev    next >
C/C++ Source or Header  |  1990-08-15  |  14KB  |  544 lines

  1. #include <exec/types.h>
  2. #include <devices/keymap.h>
  3. #include <libraries/dos.h>
  4. #include "keymap.h"
  5.  
  6. UBYTE replacements[] =
  7. { 0,1,2,3,4,5,6,7,8,9,10,11,12,16,17,21,26,27,32,41,42,43,49,55,56,57,58,QR };
  8. UBYTE qual_repl[] = { 0,8,12,26,27,42,43 };
  9.  
  10. ULONG *fi_map[] = {
  11.     KEY('\xb0','`','~','`'),
  12.     KEY('!','1','!','1'),
  13.     KEY('@','2','"','2'),
  14.     KEY('#','3','£','3'),
  15.     KEY('\\','4','$','4'),
  16.     KEY('\x1e','\x1d','%','5'),
  17.     KEY('^','6','&','6'),
  18.     KEY('&','7','/','7'),
  19.     KEY('*','8','(','8'),
  20.     KEY('(','9',')','9'),
  21.     KEY(')','0','=','0'),
  22.     KEY('_','-','?','+'),
  23.     KEY('+','=','`','\x27'),
  24.     KEY('\xc5','\xe5','Q','q'),
  25.     KEY('\xb0','\xb0','W','w'),
  26.     KEY('\xa5','\xa4','Y','y'),
  27.     KEY('\xc5','\xe5','{','['),
  28.     KEY('^','\xa8','}',']'),
  29.     STR(&akey),
  30.     KEY(':','\x2c','\xd6','\xf6'),
  31.     KEY('"','\x27','\xC4','\xE4'),
  32.     KEY('\xdc','\xfc','*','\x27'),
  33.     KEY('\xac','\xb1','Z','z'),
  34.     KEY('\xbf','\xb8','M','m'),
  35.     KEY('<',',',';',','),
  36.     KEY('>','.',':','.'),
  37.     KEY('?','/','_','-'),
  38.     VAL(0) };
  39.  
  40. ULONG *ag_map[] = {
  41.     KEY('\xb0','~','^','~'),
  42.     KEY('!','1','!','1'),
  43.     KEY('"','2','"','2'),
  44.     KEY('\xa7','3','\xa7','3'),
  45.     KEY('$','4','$','4'),
  46.     KEY('\x1e','\x1d','%','5'),
  47.     KEY('{','6','&','6'),
  48.     KEY('}','7','/','7'),
  49.     KEY('(','8','(','8'),
  50.     KEY(')','9',')','9'),
  51.     KEY('=','0','=','0'),
  52.     KEY('?','\xdf','?','\xdf'),
  53.     STR(&rlacc),
  54.     KEY('\xc5','\xe5','Q','q'),
  55.     KEY('\xb0','\xb0','W','w'),
  56.     KEY('\xa5','\xa4','Z','z'),
  57.     KEY('\xdc','\xfc','\\','@'),
  58.     KEY('*','+','*','+'),
  59.     STR(&akey),
  60.     KEY('\xd5','\xf5','\xd5','\xf5'),
  61.     KEY('\xc4','\xe4','[',']'),
  62.     KEY('\x27','#','\x27','#'),
  63.     KEY('\xac','\xb1','Y','y'),
  64.     KEY('\xbf','\xb8','M','m'),
  65.     KEY(';',',',';',','),
  66.     KEY(':','.',':','.'),
  67.     KEY('_','-','_','-'),
  68.     VAL(PLEQ) };
  69.  
  70. ULONG *bf_map[] = {
  71.     STR(&laacc),
  72.     KEY('1','~','1','&'),
  73.     KEY('2','\xe9','2','\xe9'),
  74.     KEY('3','"','3','"'),
  75.     KEY('4','\x27','4','\x27'),
  76.     KEY('\x1e','\x1d','5','('),
  77.     KEY('{','[','6','\xa7'),
  78.     KEY('}',']','7','\xe8'),
  79.     KEY('8','^','8','!'),
  80.     KEY('9','\xe7','9','\xe7'),
  81.     KEY('0','\xc1','0','\xc1'),
  82.     KEY('\xb0',')','\xb0',')'),
  83.     KEY('_','-','_','-'),
  84.     STR(&akey),
  85.     KEY('\xb0','\xb0','Z','z'),
  86.     KEY('\xa5','\xa4','Y','y'),
  87.     STR(&hdacc),
  88.     KEY('*','£','*','$'),
  89.     KEY('\xc5','\xe5','Q','q'),
  90.     KEY('M','m','M','m'),
  91.     KEY('%','\\','%','\xdc'),
  92.     KEY('@','#','@','#'),
  93.     KEY('\xac','\xb1','W','w'),
  94.     KEY('\xbf','\xb8','?',','),
  95.     KEY('.',';','.',';'),
  96.     KEY('/',':','/',':'),
  97.     KEY('+','=','+','='),
  98.     VAL(CORN|UFCR|AQSW) };
  99.  
  100. ULONG *br_map[] = {
  101.     STR(&aoacc),
  102.     KEY('~','1','!','1'),
  103.     KEY('"','2','"','2'),
  104.     KEY('#','3','£','3'),
  105.     KEY('$','4','$','4'),
  106.     KEY('\x1e','\x1d','%','5'),
  107.     KEY('^','6','&','6'),
  108.     KEY('\x27','7','\x27','7'),
  109.     KEY('(','8','(','8'),
  110.     KEY(')','9',')','9'),
  111.     KEY('=','0','=','0'),
  112.     KEY('_','-','_','-'),
  113.     KEY('\xc5','\xc6','\xc5','\xc6'),
  114.     KEY('\xc5','\xe5','Q','q'),
  115.     KEY('\xb0','\xb0','W','w'),
  116.     KEY('\xa5','\xa4','Y','y'),
  117.     KEY('\\','|','\xa7','@'),
  118.     KEY('[',']','[',']'),
  119.     STR(&akey),
  120.     KEY('+',';','+',';'),
  121.     KEY('{','}','*',':'),
  122.     STR(&hlacc),
  123.     KEY('\xac','\xb1','Z','z'),
  124.     KEY('\xbf','\xb8','M','m'),
  125.     KEY(',',',',',',','),
  126.     KEY('.','.','.','.'),
  127.     KEY('?','/','?','/'),
  128.     VAL(CORN|LNCR) };
  129.  
  130. ULONG *cf_map[] = {
  131.     STR(&aoacc),
  132.     KEY('~','1','!','1'),
  133.     KEY('"','2','"','2'),
  134.     KEY('/','3','/','3'),
  135.     KEY('£','4','$','4'),
  136.     KEY('\x1e','\x1d','%','5'),
  137.     KEY('^','6','?','6'),
  138.     KEY('&','7','&','7'),
  139.     KEY('*','8','*','8'),
  140.     KEY('{','9','(','9'),
  141.     KEY('}','0',')','0'),
  142.     KEY('_','-','_','-'),
  143.     KEY('+','=','+','='),
  144.     STR(&akey),
  145.     KEY('\xb0','\xb0','W','w'),
  146.     KEY('\xa5','\xa4','Y','y'),
  147.     KEY('[',']','\xc7','\xe7'),
  148.     KEY('@','#','@','#'),
  149.     KEY('\xc5','\xe5','Q','q'),
  150.     KEY(':',';',':',';'),
  151.     STR(&hdacc),
  152.     KEY('|','\\','|','\\'),
  153.     KEY('\xac','\xb1','Z','z'),
  154.     KEY('\xbf','\xb8','M','m'),
  155.     KEY('\x27',',','\x27',','),
  156.     KEY('.','.','.','.'),
  157.     KEY('\xc8','\xe8','\xc8','\xe8'),
  158.     VAL(CORN|LFCR|AQSW) };
  159.  
  160. ULONG *dn_map[] = {
  161.     STR(&aoacc),
  162.     KEY('~','1','!','1'),
  163.     KEY('"','2','"','2'),
  164.     KEY('@','3','\xa7','3'),
  165.     KEY('£','4','$','4'),
  166.     KEY('\x1e','\x1d','%','5'),
  167.     KEY('^','6','&','6'),
  168.     KEY('/','7','/','7'),
  169.     KEY('{','8','(','8'),
  170.     KEY('}','9',')','9'),
  171.     KEY('=','0','=','0'),
  172.     KEY('{','}','?','+'),
  173.     STR(&rlacc),
  174.     KEY('\xc5','\xe5','Q','q'),
  175.     KEY('\xb0','\xb0','W','w'),
  176.     KEY('\xa5','\xa4','Y','y'),
  177.     KEY('[',']','\xc5','\xe5'),
  178.     STR(&dhacc),
  179.     STR(&akey),
  180.     KEY('\xc6','\xe6','\xc6','\xe6'),
  181.     KEY('\\','#','\xd8','\xf8'),
  182.     KEY('*','\x27','*','\x27'),
  183.     KEY('\xac','\xb1','Z','z'),
  184.     KEY('\xbf','\xb8','M','m'),
  185.     KEY(';',',',';',','),
  186.     KEY(':','.',':','.'),
  187.     KEY('_','-','_','-'),
  188.     VAL(CORN|PLEQ|UNCR) };
  189.  
  190. ULONG *du_map[] = {
  191.     STR(&aoacc),
  192.     KEY('1','\xbc','1','\xbc'),
  193.     KEY('[','2','\xbd','2'),
  194.     KEY(']','3','£','3'),
  195.     KEY('$','4','$','4'),
  196.     KEY('\x1e','\x1d','%','5'),
  197.     KEY('^','6','#','6'),
  198.     KEY('&','7','&','7'),
  199.     KEY('(','8','(','8'),
  200.     KEY(')','9',')','9'),
  201.     KEY('\\','0','\xa7','0'),
  202.     KEY('"','\x27','"','\x27'),
  203.     KEY(':','/',':','/'),
  204.     KEY('\xc5','\xe5','q','Q'),
  205.     KEY('\xb0','\xb0','w','W'),
  206.     KEY('\xa5','\xa4','y','Y'),
  207.     STR(&hlacc),
  208.     KEY('~','*','!','*'),
  209.     STR(&akey),
  210.     KEY('_','-','_','-'),
  211.     KEY('`','\x27','`','\x27'),
  212.     KEY('|','@','|','@'),
  213.     KEY('\xac','\xb1','z','Z'),
  214.     KEY('\xbf','\xb8','m','M'),
  215.     KEY('?',',','?',','),
  216.     KEY(';','.',';','.'),
  217.     KEY('+','=','+','='),
  218.     VAL(CORN|UFCR) };
  219.  
  220. ULONG *fl_map[] = {
  221.     STR(&laacc),
  222.     KEY('1','~','1','&'),
  223.     KEY('2','\xc8','2','\xc8'),
  224.     KEY('3','^','3','"'),
  225.     KEY('4','\x27','4','\x27'),
  226.     KEY('\x1e','\x1d','5','('),
  227.     KEY('6','[','6','\xa7'),
  228.     KEY('7',']','7','\xe8'),
  229.     KEY('8','!','8','!'),
  230.     KEY('{','\xe7','9','\xe7'),
  231.     KEY('}','\xc1','0','\xc1'),
  232.     KEY('\xb0',')','\xb0',')'),
  233.     KEY('_','-','_','-'),
  234.     STR(&akey),
  235.     KEY('\xb0','\xb0','Z','z'),
  236.     KEY('\xa5','\xa4','Y','y'),
  237.     STR(&hdacc),
  238.     KEY('*','£','*','$'),
  239.     KEY('\xc5','\xe5','Q','q'),
  240.     KEY('M','m','M','m'),
  241.     KEY('%','\\','%','\xfc'),
  242.     KEY('@','#','@','#'),
  243.     KEY('\xac','\xb1','W','w'),
  244.     KEY('\xbf','\xb8','?',','),
  245.     KEY('.',';','.',';'),
  246.     KEY('/',':','/',':'),
  247.     KEY('+','=','+','='),
  248.     VAL(CORN|UFCR|AQSW) };
  249.  
  250. ULONG *ic_map[] = {
  251.     STR(&lhacc),
  252.     KEY('~','1','!','1'),
  253.     KEY('"','2','"','2'),
  254.     KEY('#','3','#','3'),
  255.     KEY('£','4','$','4'),
  256.     KEY('\x1e','\x1d','%','5'),
  257.     KEY('^','6','&','6'),
  258.     KEY('/','7','/','7'),
  259.     KEY('(','8','(','8'),
  260.     KEY(')','9',')','9'),
  261.     KEY('=','0','=','0'),
  262.     KEY('\xd6','\xf6','\xd6','\xf6'),
  263.     KEY('_','-','_','-'),
  264.     KEY('\xc5','\xe5','Q','q'),
  265.     KEY('\xb0','\xb0','W','w'),
  266.     KEY('\xa5','\xa4','Y','y'),
  267.     KEY('@','\\','@','\\'),
  268.     KEY('?','\x27','?','\x27'),
  269.     STR(&akey),
  270.     KEY('{','}','[',']'),
  271.     KEY('`','\x27','`','\x27'),
  272.     KEY('*','+','*','+'),
  273.     KEY('\xac','\xb1','Z','z'),
  274.     KEY('\xbf','\xb8','M','m'),
  275.     KEY(';',',',';',','),
  276.     KEY(':','.',':','.'),
  277.     KEY('\xd8','\xf8','\xd8','\xf8'),
  278.     VAL(CORN) };
  279.  
  280. ULONG *it_map[] = {
  281.     STR(&laacc),
  282.     KEY('1','@','1','£'),
  283.     KEY('2','#','2','\xe9'),
  284.     KEY('3','~','3','"'),
  285.     KEY('4','\x27','4','\x27'),
  286.     KEY('\x1e','\x1d','5','('),
  287.     KEY('6','^','6','_'),
  288.     KEY('7','\xe8','7','\xe8'),
  289.     STR(&ital8),
  290.     KEY('9','[','9','\xe7'),
  291.     KEY('0',']','0','\xe0'),
  292.     KEY('\xb0',')','\xb0',')'),
  293.     KEY('+','-','+','-'),
  294.     KEY('\xc5','\xe5','Q','q'),
  295.     KEY('\xb0','\xb0','Z','z'),
  296.     KEY('\xa5','\xa4','Y','y'),
  297.     KEY('{','}','=','\xed'),
  298.     KEY('&','$','&','$'),
  299.     STR(&akey),
  300.     KEY('M','m','M','m'),
  301.     KEY('%','\xfa','%','\xfa'),
  302.     KEY('\\','*','\xa7','*'),
  303.     KEY('\xac','\xb1','W','w'),
  304.     KEY('\xbf','\xb8','?',','),
  305.     KEY('.',';','.',';'),
  306.     KEY('/',':','/',':'),
  307.     KEY('!','\xf3','!','\xf3'),
  308.     VAL(CORN|ITA8) };
  309.  
  310. ULONG *no_map[] = {
  311.     STR(&aoacc),
  312.     KEY('~','1','!','1'),
  313.     KEY('"','2','"','2'),
  314.     KEY('@','3','\xa7','3'),
  315.     KEY('£','4','$','4'),
  316.     KEY('\x1e','\x1d','%','5'),
  317.     KEY('^','6','&','6'),
  318.     KEY('/','7','/','7'),
  319.     KEY('{','8','(','8'),
  320.     KEY('}','9',')','9'),
  321.     KEY('=','0','=','0'),
  322.     KEY('{','}','?','+'),
  323.     STR(&rlacc),
  324.     KEY('\xc5','\xe5','Q','q'),
  325.     KEY('\xb0','\xb0','W','w'),
  326.     KEY('\xa5','\xa4','Y','y'),
  327.     KEY('[',']','\xc5','\xe5'),
  328.     STR(&dhacc),
  329.     STR(&akey),
  330.     KEY('\xd8','\xf8','\xd8','\xf8'),
  331.     KEY('\\','#','\xc6','\xe6'),
  332.     KEY('*','\x27','*','\x27'),
  333.     KEY('\xac','\xb1','Z','z'),
  334.     KEY('\xbf','\xb8','M','m'),
  335.     KEY(';',',',';',','),
  336.     KEY(':','.',':','.'),
  337.     KEY('_','-','_','-'),
  338.     VAL(CORN|PLEQ|UNCR) };
  339.  
  340. ULONG *po_map[] = {
  341.     KEY('\xb0','\\','|','\\'),
  342.     KEY('~','1','!','1'),
  343.     KEY('@','2','@','2'),
  344.     KEY('#','3','#','3'),
  345.     KEY('£','4','$','4'),
  346.     KEY('\x1e','\x1d','%','5'),
  347.     KEY('^','6','"','6'),
  348.     KEY('&','7','&','7'),
  349.     KEY('*','8','*','8'),
  350.     KEY('(','9','(','9'),
  351.     KEY(')','0',')','0'),
  352.     KEY('_','-','_','-'),
  353.     KEY('+','=','+','='),
  354.     KEY('\xc5','\xe5','Q','q'),
  355.     KEY('\xb0','\xb0','W','w'),
  356.     KEY('\xa5','\xa4','Y','y'),
  357.     STR(&rlacc),
  358.     KEY('}',']','}',']'),
  359.     STR(&akey),
  360.     KEY('\xc7','\xe7','\xc7','\xe7'),
  361.     STR(&ahacc),
  362.     KEY('{','[','{','['),
  363.     KEY('\xac','\xb1','Z','z'),
  364.     KEY('\xbf','\xb8','M','m'),
  365.     KEY(';',',',';',','),
  366.     KEY(':','.',':','.'),
  367.     KEY('?','/','?','/'),
  368.     VAL(UFCR|LFCR) };
  369.  
  370. ULONG *sp_map[] = {
  371.     KEY('\xa1','\xbf','\\','@'),
  372.     KEY('~','1','!','1'),
  373.     KEY('"','2','"','2'),
  374.     KEY('\xb0','3','#','3'),
  375.     KEY('£','4','$','4'),
  376.     KEY('\x1e','\x1d','%','5'),
  377.     KEY('^','6','&','6'),
  378.     KEY('/','7','/','7'),
  379.     KEY('{','8','(','8'),
  380.     KEY('}','9',')','9'),
  381.     KEY('=','0','=','0'),
  382.     KEY('?','\x27','?','\x27'),
  383.     KEY('[',']','\xb1','\xba'),
  384.     KEY('\xc5','\xe5','Q','q'),
  385.     KEY('\xb0','\xb0','W','w'),
  386.     KEY('\xa5','\xa4','Y','y'),
  387.     STR(&lhacc),
  388.     KEY('*','+','*','+'),
  389.     STR(&akey),
  390.     KEY('\xd1','\xf1','\xd1','\xf1'),
  391.     STR(&rdacc),
  392.     STR(&caacc),
  393.     KEY('\xac','\xb1','Z','z'),
  394.     KEY('\xbf','\xb8','M','m'),
  395.     KEY(';',',',';',','),
  396.     KEY(':','.',':','.'),
  397.     KEY('_','-','_','-'),
  398.     VAL(UFCR|LFCR|LNCR) };
  399.  
  400. ULONG *sw_map[] = {
  401.     STR(&aoacc),
  402.     KEY('~','1','!','1'),
  403.     KEY('"','2','"','2'),
  404.     KEY('@','3','\xa7','3'),
  405.     KEY('£','4','$','4'),
  406.     KEY('\x1e','\x1d','%','5'),
  407.     KEY('^','6','&','6'),
  408.     KEY('/','7','/','7'),
  409.     KEY('(','8','(','8'),
  410.     KEY(')','9',')','9'),
  411.     KEY('=','0','=','0'),
  412.     KEY('?','+','?','+'),
  413.     STR(&hlacc),
  414.     KEY('\xc5','\xe5','Q','q'),
  415.     KEY('\xb0','\xb0','W','w'),
  416.     KEY('\xa5','\xa4','Y','y'),
  417.     KEY('[',']','\xc5','\xe5'),
  418.     KEY('\\','#','\xdc','\xfc'),
  419.     STR(&akey),
  420.     KEY('{','}','\xd6','\xf6'),
  421.     KEY('£','|','\xc4','\xe4'),
  422.     KEY('*','\x27','*','\x27'),
  423.     KEY('\xac','\xb1','Z','z'),
  424.     KEY('\xbf','\xb8','M','m'),
  425.     KEY(';',',',';',','),
  426.     KEY(':','.',':','.'),
  427.     KEY('_','-','_','-'),
  428.     VAL(CORN|PLEQ) };
  429.  
  430. ULONG *sf_map[] = {
  431.     KEY('\xb0','!','\xb0','!'),
  432.     KEY('~','1','+','1'),
  433.     KEY('"','2','"','2'),
  434.     KEY('#','3','*','3'),
  435.     KEY('@','4','\xe7','4'),
  436.     KEY('\x1e','\x1d','%','5'),
  437.     KEY('^','6','&','6'),
  438.     KEY('/','7','/','7'),
  439.     KEY('{','8','(','8'),
  440.     KEY('}','9',')','9'),
  441.     KEY('=','0','=','0'),
  442.     KEY('{','}','?','\x27'),
  443.     STR(&hlacc),
  444.     KEY('\xc5','\xe5','Q','q'),
  445.     KEY('\xb0','\xb0','W','w'),
  446.     KEY('\xa5','\xa4','Z','z'),
  447.     KEY('\\','\xe9','\xfc','\xe9'),
  448.     STR(&daacc),
  449.     STR(&akey),
  450.     KEY('[','\xe8','\xf6','\xe8'),
  451.     KEY(']','\xe1','\xe4','\xe1'),
  452.     KEY('#','$','£','$'),
  453.     KEY('\xac','\xb1','Y','y'),
  454.     KEY('\xbf','\xb8','M','m'),
  455.     KEY(';',',',';',','),
  456.     KEY(':','.',':','.'),
  457.     KEY('_','-','_','-'),
  458.     VAL(PLEQ|UNCR) };
  459.  
  460. ULONG *sg_map[] = {
  461.     KEY('\xb0','!','\xb0','!'),
  462.     KEY('~','1','+','1'),
  463.     KEY('"','2','"','2'),
  464.     KEY('#','3','*','3'),
  465.     KEY('@','4','\xe7','4'),
  466.     KEY('\x1e','\x1d','%','5'),
  467.     KEY('^','6','&','6'),
  468.     KEY('/','7','/','7'),
  469.     KEY('{','8','(','8'),
  470.     KEY('}','9',')','9'),
  471.     KEY('=','0','=','0'),
  472.     KEY('{','}','?','\x27'),
  473.     STR(&hlacc),
  474.     KEY('\xc5','\xe5','Q','q'),
  475.     KEY('\xb0','\xb0','W','w'),
  476.     KEY('\xa5','\xa4','Z','z'),
  477.     KEY('\\','\xfc','\xe9','\xfc'),
  478.     STR(&daacc),
  479.     STR(&akey),
  480.     KEY('[','\xf6','\xe8','\xf6'),
  481.     KEY(']','\xe4','\xe1','\xe4'),
  482.     KEY('#','$','#','$'),
  483.     KEY('\xac','\xb1','Y','y'),
  484.     KEY('\xbf','\xb8','M','m'),
  485.     KEY(';',',',';',','),
  486.     KEY(':','.',':','.'),
  487.     KEY('_','-','_','-'),
  488.     VAL(PLEQ|UNCR) };
  489.  
  490. ULONG *us_map[] = {
  491.     KEY('~','`','~','`'),
  492.     KEY('!','1','!','1'),
  493.     KEY('\xb0','2','@','2'),
  494.     KEY('£','3','#','3'),
  495.     KEY('$','4','$','4'),
  496.     KEY('\x1e','\x1d','%','5'),
  497.     KEY('^','6','^','6'),
  498.     KEY('&','7','&','7'),
  499.     KEY('*','8','*','8'),
  500.     KEY('(','9','(','9'),
  501.     KEY(')','0',')','0'),
  502.     KEY('_','-','_','-'),
  503.     KEY('+','=','+','='),
  504.     KEY('\xc5','\xe5','Q','q'),
  505.     KEY('\xb0','\xb0','W','w'),
  506.     KEY('\xa5','\xa4','Y','y'),
  507.     KEY('{','[','{','['),
  508.     KEY('}',']','}',']'),
  509.     STR(&akey),
  510.     KEY(':',';',':',';'),
  511.     KEY('"','\x27','"','\x27'),
  512.     KEY('|','\\','|','\\'),
  513.     KEY('\xac','\xb1','Z','z'),
  514.     KEY('\xbf','\xb8','M','m'),
  515.     KEY(',',',',',',','),
  516.     KEY('.','.','.','.'),
  517.     KEY('?','/','?','/'),
  518.     VAL(0) };
  519.  
  520. replace(ULONG **key)
  521. {
  522. register    ULONG   val;
  523. register    USHORT  cnt = 0;
  524.  
  525. while (replacements[cnt] != QR) {
  526.     lokeymap[replacements[cnt]] = *key++;
  527.     cnt++;
  528.     }
  529. val = (ULONG)*key;
  530. for (cnt = 0; cnt < REPC; cnt++) {
  531.     if (val & (1 << cnt)) lotypes[qual_repl[cnt]] = KCF_SHIFT|KCF_DEAD;
  532.     else lotypes[qual_repl[cnt]] = KCF_SHIFT|KCF_ALT;
  533.     }
  534. if (val & AQSW) {
  535.     lotypes[16] = KCF_SHIFT|KCF_CONTROL|KCF_ALT|KCF_DEAD;
  536.     lotypes[32] = KCF_SHIFT|KCF_CONTROL|KCF_ALT;
  537.     }
  538. else {
  539.     lotypes[16] = KCF_SHIFT|KCF_CONTROL|KCF_ALT;
  540.     lotypes[32] = KCF_SHIFT|KCF_CONTROL|KCF_ALT|KCF_DEAD;
  541.     }
  542. return(0);
  543. }
  544.