home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0010 - 0019 / ibm0010-0019 / ibm0010.tar / ibm0010 / CDOSDSK5.ZIP / CDOSDSK5.TD0 / XIOS / NATDATA.A86 < prev    next >
Encoding:
Text File  |  1989-01-26  |  16.3 KB  |  584 lines

  1. ; NATDATA.A86
  2. title 'National Public Data'
  3. pagesize 60+11
  4. ;****************************************
  5. ;*                    *
  6. ;*    PUBLIC XIOS NATIONAL DATA    *
  7. ;*    CDOS 6.0 XIOS            *
  8. ;*    DRI OS ENGR, GMS        *
  9. ;*                    *
  10. ;****************************************
  11.  
  12. ; 10 OCT 88 -- increased daed key tables for new N utility    GMS
  13. ;  9 OCT 87 -- extra tables added for 386 pc version        GMS
  14. ; 19 MAR 87 -- update for enhanced keyboard support        GMS
  15.  
  16. ; include COPYRITE.TXT
  17.  
  18. nolist
  19. include CDOS.EQU
  20. include ASCII.EQU
  21. include NAT.EQU
  22. list
  23. ; These have been included:
  24. ; include CDOS.EQU
  25. ; include ASCII.EQU
  26. ; include NAT.EQU
  27.  
  28.  
  29. ;; Variables used in KEYBOARD.A86, LISTNAT.A86, STATLINE.A86
  30.  
  31.     dseg
  32.  
  33. public    NX_tmp_us_flg$,    NX_mode_table$,    NX_countries$
  34. public    NX_ascii$, NX_shift$, NX_ctrl$
  35. public    NX_backdoor$, NX_language$, NX_kbd_type$
  36. public    NX_natnlmode$, NX_natnlstat$, NX_graph_esc$
  37. public    lv_table$, NX_dead_key$, NX_dead_ascii$, NX_dead_set$
  38. public    NX_eps_l$, NX_eps_a$, NX_spec_char$
  39. public    NX_dw_special$, NX_eps_sp_a$, NX_eps_sp_l$
  40. public    NX_dw_l$, NX_dw_a$, NX_dw_dead$
  41. public    NX_dw_esc1$, NX_dw_esc2$, NX_ncasetbl$
  42. public    NX_n7to8tbl$, NX_n7to8chr$, NX_deadtable$
  43. public    NX_alt_table$, NX_alt_chars$
  44. public    NX_dkeyv$, NX_dkeyx$
  45. public    NX_last_dkey$, NX_dkey_buff$
  46. public    key_table$, shift_table$, control_table$
  47. public    NX_nasciitable$, NX_nshifttable$, NX_nctrltable$
  48. public    NX_ctrlalt$, NX_ctrlalt_shft$
  49.  
  50. if V386
  51. public    NX_pc_ascii$, NX_pc_shift$, NX_pc_ctrl$
  52. public    NX_pc_dead$
  53. endif
  54.  
  55.     cseg
  56.     
  57. extrn    io_list_normal@ :near                ; in LISTNAT.A86
  58.  
  59.     dseg
  60.  
  61. ;****************************************
  62. ;*     National keyboard Data
  63. ;****************************************
  64.  
  65. NX_tmp_us_flg$    db    FALSE        ;false ;temporarily disable 7 -> 8 xlt
  66.  
  67. NX_mode_table$    db    0        ;8 bit US
  68.         db    6        ;8 bit national
  69.         db    1        ;7 bit US
  70.         db    7        ;7 bit national
  71.         db    3        ;7 bit national /w US screen display
  72.  
  73. NX_countries$    db    'US', ' F'    ;USA, France
  74.         db    ' D', 'UK'    ;Germany, Britain
  75.         db    'DK', ' S'    ;Denmark, Sweden/Finland
  76.         db    ' I', ' E'    ;Italy, Spain
  77.         db    ' N'        ;Norway
  78.  
  79. NX_ascii$    dw    key_table$    ;point to current kbd/unshifted table
  80. NX_shift$    dw    shift_table$    ;point to kbd/shift table
  81. NX_ctrl$    dw    control_table$    ;point to kbd/control table
  82. ;
  83. ;    The following table presents a backdoor to all
  84. ;    "European" tables. Its address is made public
  85. ;    by putting a 'DW NX_backdoor' right after the
  86. ;    XIOS header. This enables our 3.1 version of
  87. ;    the NATIONAL utility to patch all these tables.
  88. ;                05-Feb-84 (JW)
  89. ;
  90. NX_backdoor$    dw    offset NX_language$    ;0 NRSX language code (0-7)
  91.         dw    offset NX_natnlstat$    ;1 initial NRSX status (bits)
  92.         dw    offset NX_natnlmode$    ;2 initial NRSX mode (0-4)
  93.         dw    offset NX_nasciitable$    ;3 default translate table
  94.         dw    offset NX_nshifttable$    ;4 Shift translate table
  95.         dw    offset NX_nctrltable$    ;5 Ctrl translate table
  96.         dw    offset NX_ncasetbl$    ;6 national CapsLock characters
  97.         dw    offset NX_n7to8tbl$    ;7 7 bit characters
  98.         dw    offset NX_n7to8chr$    ;8 8 bit equivalents
  99.         dw    offset NX_deadtable$    ;9 national dead keys
  100.         dw    offset NX_prn_tbl    ;10 daisy printer table
  101.         dw    offset NX_dw_l$    ;11 daisy overstrike characters
  102.         dw    offset NX_dw_a$    ;12 daisy ascii characters
  103.         dw    offset NX_dw_special$    ;13 daisy special char equiv's
  104.         dw    offset NX_version    ;14 version string
  105.         dw    offset NX_dw_dead$    ;15 daisy dead key codes
  106.         dw    offset NX_dw_esc1$    ;16 ESC x nn type sequences
  107.         dw    offset NX_dw_esc2$    ;17 ESC x mm nn type sequences
  108.  
  109.         dw    offset NX_kbd_type$    ;18 extended keyboard?
  110.         dw    offset NX_alt_table$    ;19 
  111.         dw    offset NX_alt_chars$    ;20 
  112. if V386
  113.         dw    offset NX_pc_ascii$    ;21 for 386 PC terminals
  114.         dw    offset NX_pc_shift$    ;22
  115.         dw    offset NX_pc_ctrl$    ;23
  116. else
  117.         dw    0000h            ;21 reserved DOSPLUS
  118.         dw    0000h            ;22 reserved DOSPLUS
  119.         dw    0000H            ;23 reserved DOSPLUS
  120. endif
  121.         dw    offset NX_dead_key$    ;24 
  122.         dw    offset NX_ctrlalt$    ;25 ALT GR table 
  123.         dw    offset NX_ctrlalt_shft$    ;26 SHIFT ALT GR table
  124. if V386
  125.         dw    offset NX_pc_dead$    ;27 for 386 PC terminals
  126. else
  127.         dw    0000h            ;27 unused
  128. endif        
  129. NX_version    db    '<< Uninstalled >>',0
  130.         rb    40 - length NX_version
  131.  
  132. NX_language$    db    0        ;0=US, 1=FR, 2=D, 3=GB, 4=DK,
  133.                     ;5=S, 6=I, 7=E
  134.                     
  135. NX_natnlmode$    db    0        ;mode 0 thru 5 (Ctrl/Alt/F1 thru F5)
  136. NX_natnlstat$    db    0        ;7/8, Euro/US kbd, Euro/US screen
  137.  
  138. NX_graph_esc$    db    'KL',0,0,0,0,0
  139.  
  140. lv_table$    dw    lv_lst0, lv_lst1, lv_lst2, lv_lst3, lv_lst4
  141.  
  142. NX_prn_tbl    rb    0
  143. lv_lst0        db    0            ; printer number
  144.         db    NX_noxlat        ; printer type
  145.         dw    0            ; printer capabilities
  146.         dw    offset io_list_normal@    ; initial handler state
  147.         dw    0            ; graphics character count
  148.         db    NX_l_no        ; initial language
  149.         db    0,0            ; char, set
  150.  
  151. lv_lst1        db    1            ; printer number
  152.         db    NX_noxlat        ; printer type
  153.         dw    0            ; printer capabilities
  154.         dw    offset io_list_normal@    ; initial handler state
  155.         dw    0            ; graphics character count
  156.         db    NX_l_no        ; initial language
  157.         db    0,0            ; char, set
  158.  
  159. lv_lst2        db    2            ; printer number
  160.         db    NX_noxlat        ; printer type
  161.         dw    0            ; printer capabilities
  162.         dw    offset io_list_normal@    ; initial handler state
  163.         dw    0            ; graphics character count
  164.         db    NX_l_no        ; initial language
  165.         db    0,0            ; char, set
  166.  
  167. lv_lst3        db    3            ; printer number
  168.         db    NX_noxlat        ; printer type
  169.         dw    0            ; printer capabilities
  170.         dw    offset io_list_normal@    ; initial handler state
  171.         dw    0            ; graphics character count
  172.         db    NX_l_no        ; initial language
  173.         db    0,0            ; char, set
  174.  
  175. lv_lst4        db    4            ; printer number
  176.         db    NX_noxlat        ; printer type
  177.         dw    0            ; printer capabilities
  178.         dw    offset io_list_normal@    ; initial handler state
  179.         dw    0            ; graphics character count
  180.         db    NX_l_no        ; initial language
  181.         db    0,0            ; char, set
  182.  
  183.  
  184. NX_dead_ascii$    db    0feh, '^', '''', '`', '~' ; Dead keys for national keyboard
  185. NX_dead_set$    db    NX_l_fr, NX_l_us, NX_l_us, NX_l_us
  186.  
  187. ;
  188. ;    eps_l[c-128] defines the EPSON character set
  189. ;    in which IBM character "c" is defined.
  190. ;
  191. NX_eps_l$    db    NX_l_fr, NX_l_gr, NX_l_fr, NX_l_d1
  192.         db    NX_l_gr, NX_l_fr, NX_l_dk, NX_l_fr
  193.         db    NX_l_d1, NX_l_d0, NX_l_fr, NX_l_d0
  194.         db    NX_l_d1, NX_l_it, NX_l_gr, NX_l_dk
  195.         db    NX_l_d2, NX_l_dk, NX_l_dk, NX_l_d1
  196.         db    NX_l_gr, NX_l_it, NX_l_d1, NX_l_fr
  197.         db    NX_l_d0, NX_l_gr, NX_l_gr, NX_l_us
  198.         db    NX_l_uk, NX_l_ja, NX_l_sp, NX_l_us
  199.         db    NX_l_d2, NX_l_d2, NX_l_d2, NX_l_d2
  200.         db    NX_l_sp, NX_l_sp, NX_l_us, NX_l_us
  201.         db    NX_l_sp, NX_l_no, NX_l_no, NX_l_no
  202.         db    NX_l_no, NX_l_sp, NX_l_us, NX_l_us
  203.  
  204. ;
  205. ;    eps_a[c-128] defines the EPSON ascii character
  206. ;    that is the equivalent of the IBM character "c".
  207. ;
  208. NX_eps_a$    db    5ch, 7dh, 7bh, 'a', 7bh, 40h, 7dh, 5ch
  209.         db    'e', 'e', 7dh, 'i', 'i', 7eh, 5bh, 5dh
  210.         db    'E', 7bh, 5bh, 'o', 7ch, 7ch, 'u', 7ch
  211.         db    'y', 5ch, 5dh, 'c', 23h, 5ch, 23h, 'f'
  212.         db    'a', 'i', 'o', 'u', 7ch, 5ch, 'a', 'o'
  213.         db    5dh, BEL, BEL, BEL, BEL, 5bh, 27h, 60h
  214.  
  215. NX_spec_char$    db    236,  225,  248,  230,  237,  0
  216. NX_dw_special$    db    0,    0,    0,    0,    0,    0
  217. NX_eps_sp_a$    db    40h,  7eh,  5bh,  7,    7ch,  0
  218. NX_eps_sp_l$    db    NX_l_gr, NX_l_gr, NX_l_fr
  219.         db    NX_l_no, NX_l_dk, 0
  220.  
  221. NX_dw_l$    rb    48
  222. NX_dw_a$    rb    48
  223. NX_dw_dead$    rb    8
  224. NX_dw_esc1$    db    RDS, US, 0,0,0,0,0,0,0
  225. NX_dw_esc2$    db    0,0,0,0,0,0,0,0,0
  226.  
  227. NX_ncasetbl$    db    132, 142, 148, 153, 129, 154, 0
  228.         rb    16 - (length NX_ncasetbl$)    ;pad
  229.  
  230. NX_n7to8tbl$    db    '@~[\]{|}', 0
  231.         rb    16 - (length NX_n7to8tbl$)    ;pad
  232.  
  233. NX_n7to8chr$    db    236, 225, 142, 153, 154, 132, 148, 129, 0
  234.         rb    16 - (length NX_n7to8chr$)    ;pad
  235.  
  236. NX_deadtable$    db    0
  237.         rb    16 - (length NX_deadtable$)    ;pad
  238.  
  239. NX_alt_table$    db    0; 03H, 04H, 05H, 07H, 1AH, 1BH, 2BH, 9AH, 9BH, 0ABH
  240.         rb    32 - (length NX_alt_table$)    ;pad
  241. NX_alt_chars$    db    0; '@', '#', '$', '^', '[', ']', '\', '{', '}', '|'
  242.         rb    32 - (length NX_alt_chars$)    ;pad
  243.  
  244. NX_dkeyv$    dw    NX_dka0, NX_dka1, NX_dka2, NX_dka3, NX_dka4
  245. NX_dkeyx$    dw    NX_dkey0, NX_dkey1, NX_dkey2, NX_dkey3, NX_dkey4
  246.  
  247. ; The following 9 arrays must be kept together as they are now setup
  248. ; by the N utility and use the above pointers
  249.  
  250. NX_dead_key$    db    0feh, '^', '''', '`','~'    ; screen representation
  251. NX_dka0        db    'AaOoUueiy',0            ; .. 
  252.         rb    16 - (length NX_dka0)        ;pad
  253. NX_dka1        db      'aouei',    0        ; ^
  254.         rb    16 - (length NX_dka1)        ;pad
  255. NX_dka2        db      'aoueiE',    0        ; '
  256.         rb    16 - (length NX_dka2)        ;pad
  257. NX_dka3        db      'aouei',    0        ; `
  258.         rb    16 - (length NX_dka3)        ;pad
  259. NX_dka4        db      'nN',    0            ; ~
  260.          rb    16 - (length NX_dka4)        ;pad
  261.  
  262. NX_dkey0    db    08eH, 084H, 099H, 094H, 09aH, 081H, 089H, 08bH, 098H
  263.         rb    16 - (length NX_dkey0)    ;pad
  264. NX_dkey1    db    083H, 093H, 096H, 088H, 08cH
  265.         rb    16 - (length NX_dkey1)    ;pad
  266. NX_dkey2    db    0a0H, 0a2H, 0a3H, 082H, 0a1H, 090H
  267.         rb    16 - (length NX_dkey2)    ;pad
  268. NX_dkey3    db    085H, 095H, 097H, 08aH, 08dH
  269.         rb    16 - (length NX_dkey3)    ;pad
  270. NX_dkey4    db    0a4H, 0a5H
  271.          rb    16 - (length NX_dkey4)    ;pad
  272.  
  273.  
  274. NX_last_dkey$    dw    0FFFFh            ; none initially
  275. NX_dkey_buff$    db    0            ; initially no character
  276.  
  277. NX_kbd_type$    db    not NX_enhanced        ; not extended keyboard
  278.  
  279. eject
  280.  
  281. ;********************************************************
  282. ;*                            *
  283. ;*        KEYBOARD TRANSLATION TABLES        *
  284. ;*                            *
  285. ;********************************************************
  286.  
  287. ;    Keyboard translation tables follow.  The IBM PC returns
  288. ;    a "scan code" from the keyboard which is used as an index into
  289. ;    the following tables.
  290. ;    KEY_TABLE contains ASCII for keys that have no other keys held
  291. ;    down simultaneously.  The SHIFT_TABLE is for keys depressed
  292. ;    when the shift, capslocks, or numslock keys are also down
  293. ;    The CTRL_TABLE is for keys depressed when the CTRL is down.
  294.  
  295. ;    0FFH in the translation table designates an illegal key code.
  296.  
  297. ;    The NX_ctrlalt table and the NX_ctrlalt_shft table are used
  298. ;    when an enhanced keyboard is being used in national modes.
  299. ;    The tables are accessed when an ALT-GR key or CTRL\ALT key 
  300. ;    combination is used.
  301.  
  302. key_table$:
  303.     ;    translation        keyboard scan code
  304.     ;    -----------        ------------------
  305.  
  306.     db    0ffH            ;0 - doesn't exist
  307.     db    ESC            ;1
  308.     db    '1234567890-='        ;2-13 (1st row)
  309.     db    BS,HT            ;14-15 (backspace, horizontal tab)
  310.     db    'qwertyuiop[]'        ;16-27 (2nd row)
  311.     db    CR, 0ffh        ;28-29 (carriage return)
  312.     db    'asdfghjkl;''`'        ;30-41 (3rd row)
  313.     db    0ffh            ;42 (left shift)
  314.     db    '\zxcvbnm,./'        ;43-53 (4th row)
  315.  
  316. ;    db    0ffh            ;54 (right shift)
  317. ;    db    '*'            ;55
  318. ;    db    0ffh            ;56 (alt)
  319. ;    db    ' '            ;57 (space bar)
  320. ;    db    0ffh            ;58 (caps lock)
  321.  
  322.     db    0ffh            ;54 (extra key for national 102 keyb)
  323.  
  324. shift_table$:
  325.     ;    translation        keyboard scan code
  326.     ;    -----------        ------------------
  327.  
  328.     db    0ffH            ;0 - doesn't exist
  329.     db    ESC            ;1
  330.     db    '!@#$%^&*()_+'        ;2-13 (1st row)
  331.     db    BS,NUL            ;14-15 (backspace, back-tab)
  332.     db    'QWERTYUIOP{}'        ;16-27 (2nd row)
  333.     db    CR            ;28 (carriage return)
  334.     db    0ffh            ;29 (ctrl)
  335.     db    'ASDFGHJKL:"~'        ;30-41 (3rd row)
  336.     db    0ffh            ;42 (left shift)
  337.     db    '|ZXCVBNM<>?'        ;43-53 (4th row)
  338.  
  339. ;    db    0ffh            ;54 (right shift)
  340. ;    db    7ch + 80h        ;55 (Print Screen key)
  341. ;    db    0ffh            ;56 (Alt)
  342. ;    db    ' '            ;57 (space bar)
  343. ;    db    0ffh            ;58 (Caps Lock)
  344.  
  345.     db    0ffh            ;54 (extra key for national 102 keyb)
  346.  
  347. control_table$:
  348.     ;    translation        keyboard scan code
  349.     ;    -----------        ------------------
  350.  
  351.     db    0ffh            ;0 (no such key code)
  352.     db    ESC            ;1
  353.     db    0ffh            ;2
  354.     db    NUL            ;3 (ctrl @)
  355.     db    0ffh,0ffh,0ffh        ;4-6
  356.     db    RDS            ;7 (ctrl ^)
  357.     db    0ffh,0ffh,0ffh,0ffh    ;8-11
  358.     db    US            ;12 (ctrl _)
  359.     db    0ffh            ;13
  360.     db    DEL            ;14 (left arrow)
  361.     db    0ffh            ;15
  362.     db    DC1,ETB,ENQ,DC2        ;16-19 (ctrl q,w,e,r)
  363.     db    DC4,EM,NAK,HT        ;20-23 (ctrl t,y,u,i)
  364.     db    SHI,DLE,ESC,GS        ;24-27 (ctrl o,p,[,])
  365.     db    LF            ;28 (ctrl cr=lf for word perf)
  366.     db    0ffh            ;29
  367.     db    SOH,DC3,EOT,ACK        ;30-33 (ctrl a,s,d,f)
  368.     db    BEL,BS,LF,VT        ;34-37 (ctrl g,h,j,k)
  369.     db    FF            ;38 (ctrl l)
  370.     db    0ffh,0ffh,0ffh,0ffh    ;39-42
  371.     db    FS,SUBB,CAN,ETX        ;43-47 (ctrl \,z,x,c)
  372.     db    SYN,STX,SO,CR        ;47-50 (ctrl v,b,n,m)
  373.     db    0ffh,0ffh,0ffh        ;51-53
  374.  
  375. ;    db    0ffh            ;54
  376. ;    db    DLE            ;55 (^PrtSc = ^P)
  377. ;    db    0ffh,' ',0ffh        ;56-58
  378.  
  379.     db    0ffh            ;54 (extra key for national 102 keyb)
  380.  
  381.  
  382.  
  383. NX_nasciitable$:
  384.     ;
  385.     ;    translation        keyboard scan code
  386.     ;    -----------        ------------------
  387.  
  388.     db    0ffH            ;0 - doesn't exist
  389.     db    ESC            ;1
  390.     db    '1234567890-='        ;2-13 (1st row)
  391.     db    BS,HT            ;14-15 (backspace, horizontal tab)
  392.     db    'qwertyuiop[]'        ;16-27 (2nd row)
  393.     db    CR, 0ffh        ;28-29 (carriage return)
  394.     db    'asdfghjkl;''`'        ;30-41 (3rd row)
  395.     db    0ffh            ;42 (left shift)
  396.     db    '\zxcvbnm,./'        ;43-53 (4th row)
  397.  
  398. ;    db    0ffH
  399. ;    db    '*'
  400. ;    db    0ffH,' ',0ffH
  401.  
  402.     db    60h            ;54 (extra key for national 102 keyb)
  403.  
  404. NX_nshifttable$:
  405.     ;
  406.     ;    translation        keyboard scan code
  407.     ;    -----------        ------------------
  408.  
  409.     db    0ffH            ;0 - doesn't exist
  410.     db    ESC            ;1
  411.     db    '!@#$%^&*()_+'        ;2-13 (1st row)
  412.     db    BS,NUL            ;14-15 (backspace, back-tab)
  413.     db    'QWERTYUIOP{}'        ;16-27 (2nd row)
  414.     db    CR            ;28 (carriage return)
  415.     db    0ffh            ;29 (ctrl)
  416.     db    'ASDFGHJKL:"~'        ;30-41 (3rd row)
  417.     db    0ffh            ;42 (left shift)
  418.     db    '|ZXCVBNM<>?'        ;43-53 (4th row)
  419.  
  420. ;    db    0ffH
  421. ;    db    7ch + 80h
  422. ;    db    0ffH,' ',0ffH
  423.  
  424.     db    0aah            ;54 (extra key for national 102 keyb)
  425.  
  426. NX_nctrltable$:
  427.     ;
  428.     ;    translation        keyboard scan code
  429.     ;    -----------        ------------------
  430.  
  431.     db    0ffh            ;0 (no such key code)
  432.     db    ESC            ;1
  433.     db    0ffh            ;2
  434.     db    NUL            ;3 (ctrl @)
  435.     db    0ffh,0ffh,0ffh        ;4-6
  436.     db    RDS            ;7 (ctrl ^)
  437.     db    0ffh,0ffh,0ffh,0ffh    ;8-11
  438.     db    US            ;12 (ctrl _)
  439.     db    0ffh            ;13
  440.     db    DEL            ;14 (left arrow)
  441.     db    0ffh            ;15
  442.     db    DC1,ETB,ENQ,DC2        ;16-19 (ctrl q,w,e,r)
  443.     db    DC4,EM,NAK,HT        ;20-23 (ctrl t,y,u,i)
  444.     db    SHI,DLE,ESC,GS        ;24-27 (ctrl o,p,[,])
  445.     db    LF            ;28 (ctrl cr=lf for word perf)
  446.     db    0ffh            ;29
  447.     db    SOH,DC3,EOT,ACK        ;30-33 (ctrl a,s,d,f)
  448.     db    BEL,BS,LF,VT        ;34-37 (ctrl g,h,j,k)
  449.     db    FF            ;38 (ctrl l)
  450.     db    0ffh,0ffh,0ffh,0ffh    ;39-42
  451.     db    FS,SUBB,CAN,ETX        ;43-47 (ctrl \,z,x,c)
  452.     db    SYN,STX,SO,CR        ;47-50 (ctrl v,b,n,m)
  453.     db    0ffh,0ffh,0ffh        ;51-53
  454.  
  455. ;    db    0ffH,16
  456. ;    db    0ffH,' ',0ffH
  457.  
  458.     db    0ffh            ;54 (extra key for national 102 keyb)
  459.  
  460.  
  461. ; Enhanced keyboard ALT-GR (CTRL\ALT) tables
  462.  
  463. NX_ctrlalt$:
  464.     db    0ffH
  465.     db    ESC
  466.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  467.     db    BS, HT
  468.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  469.     db    CR, 0ffH
  470.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  471.     db    0ffH
  472.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  473.  
  474. ;    db    0ffH,0ffh
  475. ;    db    0ffH,' ',0ffH
  476.  
  477.     db    0ddh            ;54 (extra key for national 102 keyb)
  478.  
  479. NX_ctrlalt_shft:
  480.     db    0ffH
  481.     db    ESC
  482.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  483.     db    BS, HT
  484.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  485.     db    CR, 0ffH
  486.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  487.     db    0ffH
  488.     db    0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
  489.  
  490. ;    db    0ffH,0ffh
  491. ;    db    0ffH,' ',0ffH
  492.  
  493.     db    0ffh            ;54 (extra key for national 102 keyb)
  494.  
  495.  
  496. if V386
  497.  
  498. NX_pc_dead$    db    0
  499.         rb    16 - (length NX_pc_dead$)    ;pad
  500.  
  501.  
  502. NX_pc_ascii$:
  503.     ;
  504.     ;    translation        keyboard scan code
  505.     ;    -----------        ------------------
  506.  
  507.     db    0ffH            ;0 - doesn't exist
  508.     db    ESC            ;1
  509.     db    '1234567890-='        ;2-13 (1st row)
  510.     db    BS,HT            ;14-15 (backspace, horizontal tab)
  511.     db    'qwertyuiop[]'        ;16-27 (2nd row)
  512.     db    CR, 0ffh        ;28-29 (carriage return)
  513.     db    'asdfghjkl;''`'        ;30-41 (3rd row)
  514.     db    0ffh            ;42 (left shift)
  515.     db    '\zxcvbnm,./'        ;43-53 (4th row)
  516.  
  517. ;    db    0ffH
  518. ;    db    '*'
  519. ;    db    0ffH,' ',0ffH
  520.  
  521.     db    60h            ;54 (extra key for national 102 keyb)
  522.  
  523. NX_pc_shift$:
  524.     ;
  525.     ;    translation        keyboard scan code
  526.     ;    -----------        ------------------
  527.  
  528.     db    0ffH            ;0 - doesn't exist
  529.     db    ESC            ;1
  530.     db    '!@#$%^&*()_+'        ;2-13 (1st row)
  531.     db    BS,NUL            ;14-15 (backspace, back-tab)
  532.     db    'QWERTYUIOP{}'        ;16-27 (2nd row)
  533.     db    CR            ;28 (carriage return)
  534.     db    0ffh            ;29 (ctrl)
  535.     db    'ASDFGHJKL:"~'        ;30-41 (3rd row)
  536.     db    0ffh            ;42 (left shift)
  537.     db    '|ZXCVBNM<>?'        ;43-53 (4th row)
  538.  
  539. ;    db    0ffH
  540. ;    db    7ch + 80h
  541. ;    db    0ffH,' ',0ffH
  542.  
  543.     db    0aah            ;54 (extra key for national 102 keyb)
  544.  
  545. NX_pc_ctrl$:
  546.     ;
  547.     ;    translation        keyboard scan code
  548.     ;    -----------        ------------------
  549.  
  550.     db    0ffh            ;0 (no such key code)
  551.     db    ESC            ;1
  552.     db    0ffh            ;2
  553.     db    NUL            ;3 (ctrl @)
  554.     db    0ffh,0ffh,0ffh        ;4-6
  555.     db    RDS            ;7 (ctrl ^)
  556.     db    0ffh,0ffh,0ffh,0ffh    ;8-11
  557.     db    US            ;12 (ctrl _)
  558.     db    0ffh            ;13
  559.     db    DEL            ;14 (left arrow)
  560.     db    0ffh            ;15
  561.     db    DC1,ETB,ENQ,DC2        ;16-19 (ctrl q,w,e,r)
  562.     db    DC4,EM,NAK,HT        ;20-23 (ctrl t,y,u,i)
  563.     db    SHI,DLE,ESC,GS        ;24-27 (ctrl o,p,[,])
  564.     db    LF            ;28 (ctrl cr=lf for word perf)
  565.     db    0ffh            ;29
  566.     db    SOH,DC3,EOT,ACK        ;30-33 (ctrl a,s,d,f)
  567.     db    BEL,BS,LF,VT        ;34-37 (ctrl g,h,j,k)
  568.     db    FF            ;38 (ctrl l)
  569.     db    0ffh,0ffh,0ffh,0ffh    ;39-42
  570.     db    FS,SUBB,CAN,ETX        ;43-47 (ctrl \,z,x,c)
  571.     db    SYN,STX,SO,CR        ;47-50 (ctrl v,b,n,m)
  572.     db    0ffh,0ffh,0ffh        ;51-53
  573.  
  574. ;    db    0ffH,16
  575. ;    db    0ffH,' ',0ffH
  576.  
  577.     db    0ffh            ;54 (extra key for national 102 keyb)
  578.  
  579.  
  580.  
  581. endif
  582.  
  583.     end
  584.