diff options
Diffstat (limited to '')
-rw-r--r-- | private/os2/os2ses/i386/bekbd.asm | 778 | ||||
-rw-r--r-- | private/os2/os2ses/i386/cfkbd.asm | 794 | ||||
-rw-r--r-- | private/os2/os2ses/i386/dkkbd.asm | 790 | ||||
-rw-r--r-- | private/os2/os2ses/i386/frkbd.asm | 1153 | ||||
-rw-r--r-- | private/os2/os2ses/i386/grkbd.asm | 768 | ||||
-rw-r--r-- | private/os2/os2ses/i386/itkbd.asm | 1127 | ||||
-rw-r--r-- | private/os2/os2ses/i386/jpkbd.asm | 1482 | ||||
-rw-r--r-- | private/os2/os2ses/i386/kbdxlat.asm | 2470 | ||||
-rw-r--r-- | private/os2/os2ses/i386/lakbd.asm | 788 | ||||
-rw-r--r-- | private/os2/os2ses/i386/nlkbd.asm | 784 | ||||
-rw-r--r-- | private/os2/os2ses/i386/nokbd.asm | 791 | ||||
-rw-r--r-- | private/os2/os2ses/i386/pokbd.asm | 773 | ||||
-rw-r--r-- | private/os2/os2ses/i386/sfkbd.asm | 788 | ||||
-rw-r--r-- | private/os2/os2ses/i386/sgkbd.asm | 788 | ||||
-rw-r--r-- | private/os2/os2ses/i386/spkbd.asm | 786 | ||||
-rw-r--r-- | private/os2/os2ses/i386/sukbd.asm | 785 | ||||
-rw-r--r-- | private/os2/os2ses/i386/svkbd.asm | 785 | ||||
-rw-r--r-- | private/os2/os2ses/i386/ukkbd.asm | 1129 | ||||
-rw-r--r-- | private/os2/os2ses/i386/uskbd.asm | 761 |
19 files changed, 18320 insertions, 0 deletions
diff --git a/private/os2/os2ses/i386/bekbd.asm b/private/os2/os2ses/i386/bekbd.asm new file mode 100644 index 000000000..24f464713 --- /dev/null +++ b/private/os2/os2ses/i386/bekbd.asm @@ -0,0 +1,778 @@ +;; SCCSID = @(#)bekbd.asm 12.2 89/04/07 +;MJ- Page 58,132 + Title BEKBD - Translate Table Structure for CP/DOS 1.1 + Name BEKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: BEKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Belgium * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Change Activity: * +;* * +;* PTM 3567 - Add support for e-circumflex for AT keyboards, * +;* (reference FRKBD.ASM). pjr * +;* * +;* PTM 5609 - Add superscript n to 437 EN scan code 41 decimal.pjr* +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK BEKBD; ** +;** RELOC BEKBD.EXE BEKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ- + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +Public _Ow2BE437001 ;*************** +_Ow2BE437001 Label Byte ;Beginning of the table. BE 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,1,1,1,1,0,0,AT,Len1,'BE','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 15h, '6', '^', 0, 0 ; 7 15h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', 0, 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', 0, 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ umlaut + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 97h, '%', 0, 0, 0 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 0E6h, 9Ch, 0, 0, 0 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'i',8Ch,'e',88h,'o',93h,'u',96h,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2BE437001 + +;****************************************************************************** + +Public _Ow2BE437011 ;*************** +_Ow2BE437011 Label Byte ;Beginning of the table. BE 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,1,1,0,1,0,0,EN,Len2,'BE','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 7Ch, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 15h, '6', '^', 0, 0 ; 7 15h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '{', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '}', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 11, 0,0,0,0,0,0,0, 97h, '%', 3, 0, 3 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh, 0, 0, 0, 0 ; 41 superscript 2 + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 0E6h, 9Ch, 4, 0, 4 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 11, 0,0,0,0,0,0,0, '=', '+', 5, 0, 5 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <0FEh,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <0FEh,26,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',53,0,0,0,53,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2BE437011 + +;****************************************************************************** + +Public _Ow2BE850000 ;*************** +_Ow2BE850000 Label Byte ;Beginning of the table. BE 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,1,0,1,1,0,0,AT,Len3,'BE','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 0F5h, '6', '^', 0, 0 ; 7 F5h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', 0, 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', 0, 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ umlaut + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 97h, '%', 0, 0, 0 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 0E6h, 9Ch, 0, 0, 0 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2BE850000 + +;****************************************************************************** + +Public _Ow2BE850010 ;*************** +_Ow2BE850010 Label Byte ;Beginning of the table. BE 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,1,0,0,1,0,0,EN,Len4,'BE','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 7Ch, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 0F5h, '6', '^', 0, 0 ; 7 F5h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '{', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '}', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 11, 0,0,0,0,0,0,0, 97h, '%', 3, 0, 3 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh,0FCh, 0, 0, 0 ; 41 FDh FCh + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 0E6h, 9Ch, 4, 0, 4 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 11, 0,0,0,0,0,0,0, '=', '+', 5, 0, 5 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt<'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <0EFh,40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,'y',0ECh,'Y',0EDh,' ',0EFh> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',53,0,0,0,53,'a',0C6h,'o',0E4h,'n',0A4h,'A',0C7h,'O',0E5h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2BE850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/cfkbd.asm b/private/os2/os2ses/i386/cfkbd.asm new file mode 100644 index 000000000..7a457ef91 --- /dev/null +++ b/private/os2/os2ses/i386/cfkbd.asm @@ -0,0 +1,794 @@ +;; SCCSID = @(#)cfkbd.asm 12.1 88/03/18 +; Page 58,132 + Title CFKBD - Translate Table Structure for CP/DOS 1.1 + Name CFKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: CFKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Canadian French * +;* * +;* * +;* Status: CP/DOS Version 1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Change Activity: * +;* * +;* Added L/R angle quotes to Enhanced kbd scan * +;* codes 2Fh and 30h, and the degree symbol to scan * +;* code 31h for code pages 863 and 850 (PTM 186). pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK CFKBD; ** +;** RELOC CFKBD.EXE CFKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ- + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +Public _Ow2CF863001 ;****** +_Ow2CF863001 Label Byte ;Beginning of the table. CF 863 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 863,1,0,0,0,1,0,0,0,0,AT,Len1,'CF','058' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0F1h, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '/', 9Ch, 0, 0 ; 4 3 / + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 9Bh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 98h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '?',0AAh, 0, 0 ; 7 6 ? + KeyDef 4, 0,0,0,0,0,0,0, '7', '&',0A0h, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*',0FDh, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(',0A6h, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')',0ACh, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_',0ABh, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+',0ADh, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,0,1,1,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,0,1,1,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,0,1,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,0,0,0,1,0,0, 'o', 'O', 8Fh, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 86h, 0, 0 ; 25 p P + KeyDef 11, 1,0,0,0,0,0,0, 1, 1, '[', 0, 1 ; 26 circumflex + KeyDef 11, 0,1,1,0,0,0,0, 2, 3, ']', 0, 2 ; 27 cedilla diaresis + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,0,0,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', '~', 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', '{', 0, 0 ; 39 ; : + KeyDef 11, 0,0,0,1,0,0,0, 4, 4, '}', 0, 4 ; 40 grave + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', '#', 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V',0AEh, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B',0AFh, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N',0F8h, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', "'",0A7h, 0, 0 ; 51 , ' + KeyDef 4, 0,0,0,0,0,0,0, '.', '.', 0, 0, 0 ; 52 . . + KeyDef 3, 0,0,0,0,1,0,0, 82h, 90h, 5, 0, 0 ; 53 e E (acute) + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',84h,'E',92h,'I',0A8h,'O',99h,'U',9Eh,1,'^',' ','^'> + +AccEnt <0A5h,27,29,27,0,27,'c',87h,'C',80h,2,0A5h,' ',0A5h> + +AccEnt <0A4h,27,29,27,0,0,'e',89h,'i',8Bh,'u',81h,'E',94h,'I',95h,'U',9Ah,3,0A4h,' ',0A4h> + +AccEnt <'`',40,0,0,0,40,'a',85h,'e',8Ah,'u',97h,'A',8Eh,'E',91h,'U',9Dh,4,'`',' ','`'> + +AccEnt <0A1h,53,0,0,0,0,'e',82h,'o',0A2h,'u',0A3h,'E',90h,5,0A1h,' ',0A1h> + +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2CF863001 + +;****************************************************************************** + +Public _Ow2CF863011 ;****** +_Ow2CF863011 Label Byte ;Beginning of the table. CF 863 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 863,0,0,1,0,1,0,0,0,0,EN,Len2,'CF','058' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0F1h, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '/', 9Ch, 0, 0 ; 4 3 / + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 9Bh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 98h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '?',0AAh, 0, 0 ; 7 6 ? + KeyDef 4, 0,0,0,0,0,0,0, '7', '&',0A0h, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*',0FDh, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(',0A6h, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')',0ACh, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_',0ABh, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+',0ADh, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,0,1,1,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,0,1,1,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,0,1,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,0,0,0,1,0,0, 'o', 'O', 8Fh, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 86h, 0, 0 ; 25 p P + KeyDef 11, 1,0,0,0,0,0,0, 1, 1, '[', 0, 1 ; 26 circumflex + KeyDef 11, 0,1,1,0,0,0,0, 2, 3, ']', 0, 2 ; 27 cedilla diaresis + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,0,0,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', '~', 0, 0 ; 39 ; : + KeyDef 11, 0,0,0,1,0,0,0, 4, 4, '{', 0, 4 ; 40 grave + KeyDef 4, 0,0,0,0,0,0,0, '#', '|', '\', 0, 0 ; 41 # | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '}', 0, 0 ; 43 < > + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V',0AEh, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B',0AFh, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N',0F8h, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', "'",0A7h, 0, 0 ; 51 , ' + KeyDef 4, 0,0,0,0,0,0,0, '.', '.', 0, 0, 0 ; 52 . . + KeyDef 3, 0,0,0,0,1,0,0, 82h, 90h, 5, 0, 0 ; 53 e E (acute) + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, 0AEh,0AFh,0F8h, 0, 0 ; 86 AEh AFh + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',84h,'E',92h,'I',0A8h,'O',99h,'U',9Eh,1,'^',' ','^'> + +AccEnt <0A5h,27,29,27,0,27,'c',87h,'C',80h,2,0A5h,' ',0A5h> + +AccEnt <0A4h,27,29,27,0,0,'e',89h,'i',8Bh,'u',81h,'E',94h,'I',95h,'U',9Ah,3,0A4h,' ',0A4h> + +AccEnt <'`',40,0,0,0,40,'a',85h,'e',8Ah,'u',97h,'A',8Eh,'E',91h,'U',9Dh,4,'`',' ','`'> + +AccEnt <0A1h,53,0,0,0,0,'e',82h,'o',0A2h,'u',0A3h,'E',90h,5,0A1h,' ',0A1h> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2CF863011 + +;***************************************************************************** + +Public _Ow2CF850000 ;****** +_Ow2CF850000 Label Byte ;Beginning of the table. CF 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,1,0,0,0,0,0,0,0,0,AT,Len3,'CF','058' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0F1h, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '/', 9Ch, 0, 0 ; 4 3 / + KeyDef 4, 0,0,0,0,0,0,0, '4', '$',0BDh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0CFh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '?',0AAh, 0, 0 ; 7 6 ? + KeyDef 4, 0,0,0,0,0,0,0, '7', '&',0DDh, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*',0FDh, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(',0FCh, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')',0ACh, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_',0ABh, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+',0F3h, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,0,1,1,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,0,1,1,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,0,1,1,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,0,1,1,1,0,0, 'o', 'O',0F5h, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P',0F4h, 0, 0 ; 25 p P + KeyDef 11, 1,0,0,0,0,0,0, 1, 1, '[', 0, 1 ; 26 circumflex + KeyDef 11, 0,1,1,0,0,0,0, 2, 3, ']', 0, 2 ; 27 cedilla diaresis + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,0,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', '~', 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', '{', 0, 0 ; 39 ; : + KeyDef 11, 0,0,0,1,0,0,0, 4, 4, '}', 0, 4 ; 40 grave + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', '#', 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V',0AEh, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B',0AFh, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N',0F8h, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', "'",0EEh, 0, 0 ; 51 , ' + KeyDef 4, 0,0,0,0,0,0,0, '.', '.', 0, 0, 0 ; 52 . . + KeyDef 3, 0,0,0,0,1,0,0, 82h, 90h, 5, 0, 0 ; 53 e E (acute) + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,1,'^',' ','^'> + +AccEnt <0F7h,27,29,27,0,27,'c',87h,'C',80h,2,0F7h,' ',0F7h> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,3,0F9h,' ',0F9h> + +AccEnt <'`',40,0,0,0,40,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,4,'`',' ','`'> + +;AccEnt #5 +db 0EFh,53, 0,0, 0,0 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh +db 5,0EFh, ' ',0EFh, 0,0, 0,0, 0,0, 0,0 +db 0,0, 0,0 + +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2CF850000 + +;***************************************************************************** + +Public _Ow2CF850010 ;****** +_Ow2CF850010 Label Byte ;Beginning of the table. CF 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,0,0,0,EN,Len4,'CF','058' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0F1h, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '/', 9Ch, 0, 0 ; 4 3 / + KeyDef 4, 0,0,0,0,0,0,0, '4', '$',0BDh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0CFh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '?',0AAh, 0, 0 ; 7 6 ? + KeyDef 4, 0,0,0,0,0,0,0, '7', '&',0DDh, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*',0FDh, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(',0FCh, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')',0ACh, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_',0ABh, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+',0F3h, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,0,1,1,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,0,1,1,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,0,1,1,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,0,1,1,1,0,0, 'o', 'O',0F5h, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P',0F4h, 0, 0 ; 25 p P + KeyDef 11, 1,0,0,0,0,0,0, 1, 1, '[', 0, 1 ; 26 circumflex + KeyDef 11, 0,1,1,0,0,0,0, 2, 3, ']', 0, 2 ; 27 cedilla diaresis + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,0,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', '~', 0, 0 ; 39 ; : + KeyDef 11, 0,0,0,1,0,0,0, 4, 4, '{', 0, 4 ; 40 grave + KeyDef 4, 0,0,0,0,0,0,0, '#', '|', '\', 0, 0 ; 41 # | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '}', 0, 0 ; 43 < > + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V',0AEh, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B',0AFh, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N',0F8h, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', "'",0EEh, 0, 0 ; 51 , ' + KeyDef 4, 0,0,0,0,0,0,0, '.', '.', 0, 0, 0 ; 52 . . + KeyDef 3, 0,0,0,0,1,0,0, 82h, 90h, 5, 0, 0 ; 53 e E (acute) + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, 0AEh,0AFh,0F8h, 0, 0 ; 86 AEh AFh + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,1,'^',' ','^'> + +AccEnt <0F7h,27,29,27,0,27,'c',87h,'C',80h,2,0F7h,' ',0F7h> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,3,0F9h,' ',0F9h> + +AccEnt <'`',40,0,0,0,40,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,4,'`',' ','`'> + +;AccEnt #5 +db 0EFh,53, 0,0, 0,0 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh +db 5,0EFh, ' ',0EFh, 0,0, 0,0, 0,0, 0,0 +db 0,0, 0,0 + +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2CF850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/dkkbd.asm b/private/os2/os2ses/i386/dkkbd.asm new file mode 100644 index 000000000..d8304d115 --- /dev/null +++ b/private/os2/os2ses/i386/dkkbd.asm @@ -0,0 +1,790 @@ +;; SCCSID = @(#)dkkbd.asm 12.2 89/02/16 + Page 58,132 + Title DKKBD - Translate Table Structure for CP/DOS 1.1 + Name DKKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: DKKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Denmark * +;* * +;* * +;* Status: OS/2 Version 1.2 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* Added AltAcChar of 0/27 for Accent 3 in EN 850. PTM * +;* 5674. pjr * +;* * +;* Fixed stand-alone acute accent for codepage 865. PTR * +;* 3081. wak * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK DKKBD; ** +;** RELOC DKKBD.EXE DKKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +;AltPadMap Label Byte +Public _Ow2DK865001 ;*************** +_Ow2DK865001 Label Byte ;Beginning of the table. DK 865 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 865,1,0,0,0,1,0,1,0,0,AT,Len1,'DK','159' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0AFh, '$', 0, 0 ; 5 4 monetary + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, ':', ';', 0 ; 39 oE dipthong + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, '"', "'", 0 ; 40 o O (slash) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0FEh,13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2DK865001 + +;****************************************************************************** + +Public _Ow2DK865011 ;*************** +_Ow2DK865011 Label Byte ;Beginning of the table. DK 865 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 865,0,0,1,0,1,0,1,0,0,EN,Len2,'DK','159' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0AFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', 0, 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 7Ch, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, 0, 0, 0 ; 39 aE dipthong + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, 0, 0, 0 ; 40 o O (slash) + KeyDef 4, 0,0,0,0,0,0,0, 0ABh, 15h, 0, 0, 0 ; 41 one-half section + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0FEh,13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2DK865011 + +;***************************************************************************** + +Public _Ow2DK850000 ;*************** +_Ow2DK850000 Label Byte ;Beginning of the table. DK 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,1,0,0,0,0,0,1,0,0,AT,Len3,'DK','159' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4',0CFh, '$', 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, ':', ';', 0 ; 39 aE dipthong + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, '"', "'", 0 ; 40 o O (slash) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2DK850000 + +;***************************************************************************** + +Public _Ow2DK850010 ;*************** +_Ow2DK850010 Label Byte ;Beginning of the table. DK 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'DK','159' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0CFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', 0, 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 7Ch, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, 0, 0, 0 ; 39 aE dipthong + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, 0, 0, 0 ; 40 o O (slash) + KeyDef 4, 0,0,0,0,0,0,0, 0ABh,0F5h, 0, 0, 0 ; 41 one-half section + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,27,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'~',27,29,27,0,0,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2DK850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/frkbd.asm b/private/os2/os2ses/i386/frkbd.asm new file mode 100644 index 000000000..62d3e8b83 --- /dev/null +++ b/private/os2/os2ses/i386/frkbd.asm @@ -0,0 +1,1153 @@ +;; SCCSID = @(#)frkbd.asm 12.3 89/06/30 + Page 58,132 + Title FRKBD - Translate Table Structure for CP/DOS 1.1 + Name FRKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: FRKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for France * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Change Activity: * +;* * +;* PTM 3317 - Changed Char1 for Scan Code 40d from A3h (accent * +;* acute) to 97h (accent grave) for the 437 EN and * +;* 850 EN keyboard tables. pjr * +;* * +;* PTM 3567 - Add support for e circumflex to all tables. pjr * +;* * +;* PTM 5609 - Add superscript n to 437 EN scan code 41 decimal.pjr* +;* * +;* lt (10/9/87) - changed decimal point to comma on DEL key * +;* for 120 layout && PTM 883 * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK FRKBD; ** +;** RELOC FRKBD.EXE FRKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +;AltPadMap Label Byte +; db 7,8,9,-1 + +Public _Ow2FR437001 ;*************** +_Ow2FR437001 Label Byte ;Beginning of the table. FR 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,1,1,1,1,0,1,AT,Len1,'FR','189' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 15h, '6', '^', 0, 0 ; 7 15h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', 0, 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', 0, 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ umlaut + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 97h, '%', 0, 0, 0 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 0E6h, 9Ch, 0, 0, 0 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2FR437001 + +;****************************************************************************** + +Public _Ow2FR437011 ;*************** +_Ow2FR437011 Label Byte ;Beginning of the table. FR 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,1,1,0,1,0,1,EN,Len2,'FR','189' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 3, 0,0,1,0,0,0,0, 82h, '2', 3, 0, 3 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', '{', 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', '[', 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, '-', '6', '|', 0, 0 ; 7 - 6 + KeyDef 3, 0,0,0,1,0,0,0, 8Ah, '7', 4, 0, 4 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '_', '8', '\', 0, 0 ; 9 _ 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '^', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '@', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')', 'ø', ']', 0, 0 ; 12 ) ø + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', '}', 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,0,1,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 26 ^ diaresis + KeyDef 4, 0,0,0,0,0,0,0, '$', 'œ', 0, 0, 0 ; 27 $ œ + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 097h, '%', 0, 0, 0 ; 40 u-grave % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh, 0, 0, 0, 0 ; 41 superscript 2 + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '*',0E6h, 0, 0, 0 ; 43 * micro + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,1,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '!', 15h, 0, 0, 0 ; 53 ! 15h + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'~',53,0,0,0,53,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2FR437011 + + +;****************************************************************************** + +Public _Ow2FR437111 ;************************** +_Ow2FR437111 Label Byte ;Beginning of the table. FR 437 EN Kbd New Std + ;************************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,1,1,0,1,0,1,EN,Len3,'FR','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 7Ch, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 15h, '6', '^', 0, 0 ; 7 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '{', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '}', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')', 'ø', 0, 0, 0 ; 12 ) ø + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ diaresis + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 11, 0,0,0,0,0,0,0, 97h, '%', 3, 0, 3 ; 40 u-grave % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh, 0, 0, 0, 0 ; 41 FDh FCh + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 0E6h, 'œ', 4, 0, 4 ; 43 micro œ + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 11, 0,0,0,0,0,0,0, '=', '+', 5, 0, 5 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <0FEh,40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',53,0,0,0,53,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2FR437111 + + +;****************************************************************************** + +Public _Ow2FR850000 ;*************** +_Ow2FR850000 Label Byte ;Beginning of the table. FR 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,1,0,1,1,0,1,AT,Len4,'FR','189' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 0F5h, '6', '^', 0, 0 ; 7 F5h 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 ! 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', 0, 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', 0, 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')',0F8h, 0, 0, 0 ; 12 ) F8h + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ umlaut + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 97h, '%', 0, 0, 0 ; 40 97h % + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 0E6h, 9Ch, 0, 0, 0 ; 43 E6h 9Ch + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2FR850000 + +;****************************************************************************** + +Public _Ow2FR850010 ;*************** +_Ow2FR850010 Label Byte ;Beginning of the table. FR 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,1,0,0,1,0,1,EN,Len5,'FR','189' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 0, 0, 0 ; 2 & 1 + KeyDef 3, 0,0,1,0,0,0,0, 82h, '2', 3, 0, 3 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', '{', 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', '[', 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, '-', '6',07Ch, 0, 0 ; 7 - 6 + KeyDef 3, 0,0,0,1,0,0,0, 8Ah, '7', 4, 0, 4 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '_', '8', '\', 0, 0 ; 9 _ 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '^', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '@', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')', 'ø', ']', 0, 0 ; 12 ) ø + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', '}', 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,0,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,0,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 26 ^ diaresis + KeyDef 4, 0,0,0,0,0,0,0, '$', 'œ',0CFh, 0, 0 ; 27 $ œ + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 4, 0,0,0,0,0,0,0, 097h, '%', 0, 0, 0 ; 40 u-grave % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh, 0, 0, 0, 0 ; 41 FDh FCh + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '*',0E6h, 0, 0, 0 ; 43 * micro + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,1,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 4, 0,0,0,0,0,0,0, '!',0F5h, 0, 0, 0 ; 53 ! F5h + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'~',53,0,0,0,53,'a',0C6h,'o',0E4h,'n',0A4h,'A',0C7h,'O',0E5h,'N',0A5h,' ','~'> +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> +AccEnt <> +AccEnt <> +AccEnt <> + +Len5 EQU $ - _Ow2FR850010 + +;****************************************************************************** + +Public _Ow2FR850011 ;************************* +_Ow2FR850011 Label Byte ;Beginning of the table. FR 850 EN Kbd New Std + ;************************* +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,1,0,0,1,0,1,EN,Len6,'FR','120' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '&', '1', 7Ch, 0, 0 ; 2 & 1 + KeyDef 4, 0,0,0,0,0,0,0, 82h, '2', '@', 0, 0 ; 3 82h 2 + KeyDef 4, 0,0,0,0,0,0,0, '"', '3', '#', 0, 0 ; 4 " 3 + KeyDef 4, 0,0,0,0,0,0,0, "'", '4', 0, 0, 0 ; 5 ' 4 + KeyDef 4, 0,0,0,0,0,0,0, '(', '5', 0, 0, 0 ; 6 ( 5 + KeyDef 4, 0,0,0,0,0,0,0, 0F5h, '6', '^', 0, 0 ; 7 6 + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, '7', 0, 0, 0 ; 8 8Ah 7 + KeyDef 4, 0,0,0,0,0,0,0, '!', '8', 0, 0, 0 ; 9 _ 8 + KeyDef 4, 0,0,0,0,0,0,0, 87h, '9', '{', 0, 0 ; 10 87h 9 + KeyDef 4, 0,0,0,0,0,0,0, 85h, '0', '}', 0, 0 ; 11 85h 0 + KeyDef 4, 0,0,0,0,0,0,0, ')', 'ø', 0, 0, 0 ; 12 ) ø + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 13 - _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 16 a A + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 17 z Z + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 ^ diaresis + KeyDef 4, 0,0,0,0,0,0,0, '$', '*', ']', 0, 0 ; 27 $ * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 30 q Q + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 39 m M + KeyDef 11, 0,0,0,0,0,0,0, 97h, '%', 3, 0, 3 ; 40 u-grave % + KeyDef 4, 0,0,0,0,0,0,0, 0FDh,0FCh, 0, 0, 0 ; 41 ý ü + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 0E6h, 9Ch, 4, 0, 4 ; 43 micro œ + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 44 w W + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 2, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 50 , ? + KeyDef 4, 0,0,0,0,0,0,0, ';', '.', 0, 0, 0 ; 51 ; . + KeyDef 4, 0,0,0,0,0,0,0, ':', '/', 0, 0, 0 ; 52 : / + KeyDef 11, 0,0,0,0,0,0,0, '=', '+', 5, 0, 5 ; 53 = + + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'^',26,27,26,0,26,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <0EFh,40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,'y',0ECh,'Y',0EDh,' ',0EFh> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',53,0,0,0,53,'a',0C6h,'o',0E4h,'n',0A4h,'A',0C7h,'O',0E5h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len6 EQU $ - _Ow2FR850011 + + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/grkbd.asm b/private/os2/os2ses/i386/grkbd.asm new file mode 100644 index 000000000..eb4101961 --- /dev/null +++ b/private/os2/os2ses/i386/grkbd.asm @@ -0,0 +1,768 @@ +;; SCCSID = @(#)grkbd.asm 12.1 88/03/18 + Page 58,132 + Title GRKBD - Translate Table Structure for CP/DOS 1.1 + Name GRKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: GRKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Germany * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK GRKBD; ** +;** RELOC GRKBD.EXE GRKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + + db 7,8,9,-1 + db 4,5,6,-1 + +Public _Ow2GR437001 ;*************** +_Ow2GR437001 Label Byte ;Beginning of the table. GR 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,1,0,0,AT,Len1,'GR','129' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 15h, 0, 0, 0 ; 4 3 15h + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, 0E1h, '?', 0, 0, 0 ; 12 E1h ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 81h, 9Ah, '[', 0, 0 ; 26 81h 9Ah + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 94h 99h + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 84h 8Eh + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '^', 0, 0, 0 ; 43 # * + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtS + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLoc + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pa + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pa + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefine + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefine + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2GR437001 + +;****************************************************************************** + +Public _Ow2GR437011 ;*************** +_Ow2GR437011 Label Byte ;Beginning of the table. GR 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,1,1,0,1,0,0,EN,Len2,'GR','129' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 15h,0FCh, 0, 0 ; 4 3 15h + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, 0E1h, '?', '\', 0, 0 ; 12 1Eh ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 81h, 9Ah, 0, 0, 0 ; 26 u U (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, '^',0F8h, 0, 0, 0 ; 41 ^ F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', "'", 0, 0, 0 ; 43 # ' + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '|', 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2GR437011 + +;****************************************************************************** + +Public _Ow2GR850000 ;*************** +_Ow2GR850000 Label Byte ;Beginning of the table. GR 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,1,0,0,AT,Len3,'GR','129' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3',0F5h, 0, 0, 0 ; 4 3 F5h + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, 0E1h, '?', 0, 0, 0 ; 12 E1h ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 81h, 9Ah, '[', 0, 0 ; 26 81h 9Ah + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 94h 99h + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 84h 8Eh + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '^', 0, 0, 0 ; 43 # ^ + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtS + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLoc + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pa + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pa + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefine + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefine + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0EFh,13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,' ',0EFh> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2GR850000 + +;****************************************************************************** + +Public _Ow2GR850010 ;*************** +_Ow2GR850010 Label Byte ;Beginning of the table. GR 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,1,0,0,1,0,0,EN,Len4,'GR','129' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3',0F5h,0FCh, 0, 0 ; 4 3 F5h + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, 0E1h, '?', '\', 0, 0 ; 12 1Eh ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 81h, 9Ah, 0, 0, 0 ; 26 u U (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, '^',0F8h, 0, 0, 0 ; 41 ^ F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', "'", 0, 0, 0 ; 43 # ' + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '|', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0EFh,13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,' ',0EFh> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2GR850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/itkbd.asm b/private/os2/os2ses/i386/itkbd.asm new file mode 100644 index 000000000..3d77bb37e --- /dev/null +++ b/private/os2/os2ses/i386/itkbd.asm @@ -0,0 +1,1127 @@ +; SCCSID = @(#)itkbd.asm 12.1 88/03/18 + Page 58,132 + Title ITKBD - Translate Table Structure for CP/DOS 1.1 + Name ITKBD +;********************* Start of Specifications ************************* +;* * +;* Source File Name: ITKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Italy * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* * +;* wak (10/9/87) - corrected EN,850,141 && PTM 802 * +;* lt (10/9/87) - changed decimal point to comma on DEL key * +;* for 142 layout && PTM 883 * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK ITKBD; ** +;** RELOC ITKBD.EXE ITKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + + db 4,5,6,-1 + db 1,2,3 + +Public _Ow2IT437001 ;*************** +_Ow2IT437001 Label Byte ;Beginning of the table. IT 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,1,AT,Len1,'IT','141' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, '[', 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, '@', 0, 0, 0 ; 39 95h @ + KeyDef 4, 0,0,0,0,0,0,0, 85h, '#', 0, 0, 0 ; 40 85h # + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h, 15h, 0, 0, 0 ; 43 97h 15h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2IT437001 + +;**************************************************************************** + +Public _Ow2IT437011 ;*************** +_Ow2IT437011 Label Byte ;Beginning of the table. IT 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,0,0,1,EN,Len2,'IT','141' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, '[', 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, 87h, '@', 0, 0 ; 39 95h 87h + KeyDef 4, 0,0,0,0,0,0,0, 85h,0F8h, '#', 0, 0 ; 40 85h F8h + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h, 15h, 0, 0, 0 ; 43 97h 15h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2IT437011 + + +;**************************************************************************** + +Public _Ow2IT437111 ;*********************** +_Ow2IT437111 Label Byte ;Beginning of the table. IT 437 EN Kbd New Std + ;*********************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,0,0,1,EN,Len3,'IT','142' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, 0, 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, 87h, 0, 0, 0 ; 39 95h 87h + KeyDef 4, 0,0,0,0,0,0,0, 85h,0F8h, 0, 0, 0 ; 40 85h F8h + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h, 15h, "`", 0, 0 ; 43 97h 15h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> ; Grave accent (see scan code 43) +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2IT437111 + + +;**************************************************************************** + +Public _Ow2IT850000 ;*************** +_Ow2IT850000 Label Byte ;Beginning of the table. IT 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,1,AT,Len4,'IT','141' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, '[', 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, '@', 0, 0, 0 ; 39 95h @ + KeyDef 4, 0,0,0,0,0,0,0, 85h, '#', 0, 0, 0 ; 40 85h # + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h,0F5h, 0, 0, 0 ; 43 97h F5h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2IT850000 + +;**************************************************************************** + +Public _Ow2IT850010 ;*************** +_Ow2IT850010 Label Byte ;Beginning of the table. IT 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,0,0,1,EN,Len5,'IT','141' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, '[', 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, 87h, '@', 0, 0 ; 39 95h 87h + KeyDef 4, 0,0,0,0,0,0,0, 85h,0F8h, '#', 0, 0 ; 40 85h F8h + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h,0F5h, 0, 0, 0 ; 43 97h F5h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> ; Grave accent (see scan code 43) +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len5 EQU $ - _Ow2IT850010 + + +;**************************************************************************** + +Public _Ow2IT850011 ;*********************** +_Ow2IT850011 Label Byte ;Beginning of the table. IT 850 EN Kbd New Std + ;*********************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,0,0,1,EN,Len6,'IT','142' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 8Dh, '^', 0, 0, 0 ; 13 8Dh ^ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, 8Ah, 82h, 0, 0, 0 ; 26 8Ah 82h + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, 95h, 87h, 0, 0, 0 ; 39 95h 87h + KeyDef 4, 0,0,0,0,0,0,0, 85h,0F8h, 0, 0, 0 ; 40 85h F8h + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, 97h,0F5h, "`", 0, 0 ; 43 97h F5h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len6 EQU $ - _Ow2IT850011 + + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/jpkbd.asm b/private/os2/os2ses/i386/jpkbd.asm new file mode 100644 index 000000000..a5e54c118 --- /dev/null +++ b/private/os2/os2ses/i386/jpkbd.asm @@ -0,0 +1,1482 @@ +;; SCCSID = @(#)jpkbd.asm 5.3 88/08/03 +; Page 58,132 + +; Feb.28 : KazuM +; MS OS/2-J BAK Final version + + Title JPKBD - Translate Table Structure for OS/2 1.1 + Name JPKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: JPKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Japan. * +;* * +;* Status: OS/2 Version 1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK JPKBD; ** +;** RELOC JPKBD.EXE JPKBD.TBL ** +;** ** +;*********************************************************************** + +ifdef JAPAN +.386p ; V-AkihiS + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING +Public _Ow2JP932011AX ;****** +_Ow2JP932011AX Label Byte ;Begging of the table. JP 932 AX Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 932,0,0,0,0,1,0,0,0,0,JP_OEM,Len1,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 27, 27 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 'Ç', 'Ç' ; 2 1 ! Ç + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 'Ì', 'Ì' ; 3 2 @ Ì + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, '±', '§' ; 4 3 # ± § + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, '³', '©' ; 5 4 $ ³ © + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, '´', 'ª' ; 6 5 % ´ ª + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 'µ', '«' ; 7 6 ^ µ « + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 'Ô', '¬' ; 8 7 & Ô ¬ + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 'Õ', '' ; 9 8 * Õ + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 'Ö', '®' ; 10 9 ( Ö ® + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 'Ü', '¦' ; 11 0 ) Ü ¦ + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 'Î', 'Î' ; 12 - _ Î + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 'Í', 'Í' ; 13 = + Í + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 8, 127 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 'À', 'À' ; 16 q Q À + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 'Ã', 'Ã' ; 17 w W à + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, '²', '¨' ; 18 e E ² ¨ + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, '½', '½' ; 19 r R ½ + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, '¶', '¶' ; 20 t T ¶ + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 'Ý', 'Ý' ; 21 y Y Ý + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 'Å', 'Å' ; 22 u U Å + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 'Æ', 'Æ' ; 23 i I Æ + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, '×', '×' ; 24 o O × + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, '¾', '¾' ; 25 p P ¾ + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 'Þ', 'Þ' ; 26 [ { Þ + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 'ß', '¢' ; 27 ] } ß ¢ + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 13, 10 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 'Á', 'Á' ; 30 a A Á + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 'Ä', 'Ä' ; 31 s S Ä + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, '¼', '¼' ; 32 d D ¼ + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 'Ê', 'Ê' ; 33 f F Ê + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, '·', '·' ; 34 g G · + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, '¸', '¸' ; 35 h H ¸ + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 'Ï', 'Ï' ; 36 j J Ï + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 'É', 'É' ; 37 k K É + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 'Ø', 'Ø' ; 38 l L Ø + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 'Ú', 'Ú' ; 39 ; : Ú + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, '¹', '¹' ; 40 ' " ¹ + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 'Ñ', '£' ; 41 ` ~ Ñ £ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, '°', '°' ; 43 \ | ° + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 'Â', '¯' ; 44 z Z  ¯ + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, '»', '»' ; 45 x X » + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, '¿', '¿' ; 46 c C ¿ + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 'Ë', 'Ë' ; 47 v V Ë + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 'º', 'º' ; 48 b B º + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 'Ð', 'Ð' ; 49 n N Ð + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 'Ó', 'Ó' ; 50 m M Ó + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 'È', '¤' ; 51 , < È + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 'Ù', '¡' ; 52 . > Ù ¡ + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 'Ò', '¥' ; 53 / ? Ò ¥ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, ' ', ' ' ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 'Û', 'Û' ; 86 \ | Û + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 21, 0,0,0,0,0,0,0, 0abh,0ach,0adh,0aeh, 0 ; 90 mu-henkan (3xBox) + KeyDef 21, 0,0,0,0,0,0,0, 0a7h,0a8h,0a9h,0aah, 0 ; 91 henkan (3xBox) + KeyDef 21, 0,0,0,0,0,0,0, 0d2h,0d3h,0d4h,0d5h, 0 ; 92 ax (3xBox) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ax (ProtMode) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 18, 0,0,0,0,0,0,0, 80h, 01h, 0, 0, 0 ; 104 Kanji Shift + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 19, 0,0,0,0,0,0,0, 02h, 04h, 40h, 02h, 0 ; 112 Kana Shift + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 20, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 115 \ | Kana RO + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 21, 0,0,0,0,0,0,0, 0a7h,0a8h,0a9h,0aah, 0 ; 121 henkan + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 (undefined) + KeyDef 21, 0,0,0,0,0,0,0, 0abh,0ach,0adh,0aeh, 0 ; 123 mu-henkan + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 (undefined) + KeyDef 21, 0,0,0,0,0,0,0, 03ah,03ah, 0, 0, 0 ; 125 3xBox Kanji + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2JP932011AX + +;****************************************************************************** + +Public _Ow2JP437011AX ;****** +_Ow2JP437011AX Label Byte ;Beginning of the table. JP 437 AX Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,JP_OEM,Len2,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 86 \ | (3xBox) + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ax (3xBox) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ax (ProtMode) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 18, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 Kanji Shift + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 19, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 Kana Shift + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 115 \ | Kana RO + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 121 Space (Xfer) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 (undefined) + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 123 Space (Nfer) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 (undefined) + KeyDef 21, 0,0,0,0,0,0,0, 03ah,03ah, 0, 0, 0 ; 125 3xBox Kanji + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2JP437011AX + +;***************************************************************************** + + +Public _Ow2JP932011IBM101 ;****** +_Ow2JP932011IBM101 Label Byte ;Begging of the table. JP 932 101 Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 932,0,0,0,0,1,0,0,0,0,JP_OEM,Len3,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 27, 27 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 'Ç', 'Ç' ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 'Ì', 'Ì' ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, '±', '§' ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, '³', '©' ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, '´', 'ª' ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 'µ', '«' ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 'Ô', '¬' ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 'Õ', '' ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 'Ö', '®' ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 'Ü', '¦' ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 'Î', 'Î' ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 'Í', 'Í' ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 8, 127 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 'À', 'À' ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 'Ã', 'Ã' ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, '²', '¨' ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, '½', '½' ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, '¶', '¶' ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 'Ý', 'Ý' ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 'Å', 'Å' ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 'Æ', 'Æ' ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, '×', '×' ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, '¾', '¾' ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 'Þ', 'Þ' ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 'ß', '¢' ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 13, 10 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 'Á', 'Á' ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 'Ä', 'Ä' ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, '¼', '¼' ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 'Ê', 'Ê' ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, '·', '·' ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, '¸', '¸' ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 'Ï', 'Ï' ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 'É', 'É' ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 'Ø', 'Ø' ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 'Ú', 'Ú' ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, '¹', '¹' ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 'Ñ', '£' ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, '°', '°' ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 'Â', '¯' ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, '»', '»' ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, '¿', '¿' ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 'Ë', 'Ë' ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 'º', 'º' ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 'Ð', 'Ð' ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 'Ó', 'Ó' ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 'È', '¤' ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 'Ù', '¡' ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 'Ò', '¥' ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, ' ', ' ' ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2JP932011IBM101 + +;***************************************************************************** + + +Public _Ow2JP437011IBM101 ;****** +_Ow2JP437011IBM101 Label Byte ;Beginning of the table. JP 437 101 Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 932,0,0,0,0,1,0,0,0,0,JP_OEM,Len4,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2JP437011IBM101 + +;***************************************************************************** + + +Public _Ow2JP932011IBM002 ;****** +_Ow2JP932011IBM002 Label Byte ;Begging of the table. JP 932 IBM02 Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 932,0,0,0,0,1,0,0,0,0,JP_OEM,Len5,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 27, 27 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 'Ç', 'Ç' ; 2 1 ! Ç + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 'Ì', 'Ì' ; 3 2 " Ì + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, '±', '§' ; 4 3 # ± § + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, '³', '©' ; 5 4 $ ³ © + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, '´', 'ª' ; 6 5 % ´ ª + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 'µ', '«' ; 7 6 & µ « + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 'Ô', '¬' ; 8 7 ' Ô ¬ + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 'Õ', '' ; 9 8 ( Õ + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 'Ö', '®' ; 10 9 ) Ö ® + KeyDef 4, 0,0,0,0,0,0,0, '0', '~', 0, 'Ü', '¦' ; 11 0 ~ Ü ¦ + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 'Î', 'Î' ; 12 - = Î + KeyDef 4, 0,0,0,0,0,0,0, '^', '_', 0, 'Í', 'Í' ; 13 ^ _ Í + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 8, 127 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 'À', 'À' ; 16 q Q À + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 'Ã', 'Ã' ; 17 w W à + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, '²', '¨' ; 18 e E ² ¨ + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, '½', '½' ; 19 r R ½ + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, '¶', '¶' ; 20 t T ¶ + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 'Ý', 'Ý' ; 21 y Y Ý + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 'Å', 'Å' ; 22 u U Å + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 'Æ', 'Æ' ; 23 i I Æ + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, '×', '×' ; 24 o O × + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, '¾', '¾' ; 25 p P ¾ + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 'ß', '¢' ; 26 [ { ß ¢ + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 'Ñ', '£' ; 27 ] } Ñ £ + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 13, 10 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 'Á', 'Á' ; 30 a A Á + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 'Ä', 'Ä' ; 31 s S Ä + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, '¼', '¼' ; 32 d D ¼ + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 'Ê', 'Ê' ; 33 f F Ê + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, '·', '·' ; 34 g G · + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, '¸', '¸' ; 35 h H ¸ + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 'Ï', 'Ï' ; 36 j J Ï + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 'É', 'É' ; 37 k K É + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 'Ø', 'Ø' ; 38 l L Ø + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 'Ú', 'Ú' ; 39 ; + Ú + KeyDef 4, 0,0,0,0,0,0,0, ":", '*', 0, '¹', '¹' ; 40 : * ¹ + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 'Þ', 'Þ' ; 41 @ ` Þ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, '°', '°' ; 43 \ | ° + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 'Â', '¯' ; 44 z Z  ¯ + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, '»', '»' ; 45 x X » + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, '¿', '¿' ; 46 c C ¿ + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 'Ë', 'Ë' ; 47 v V Ë + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 'º', 'º' ; 48 b B º + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 'Ð', 'Ð' ; 49 n N Ð + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 'Ó', 'Ó' ; 50 m M Ó + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 'È', '¤' ; 51 , < È + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 'Ù', '¡' ; 52 . > Ù ¡ + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 'Ò', '¥' ; 53 / ? Ò ¥ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, ' ', ' ' ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '_', 0, 'Û', 'Û' ; 115 \ _ Û + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len5 EQU $ - _Ow2JP932011IBM002 + +;***************************************************************************** + +Public _Ow2JP437011IBM002 ;****** +_Ow2JP437011IBM002 Label Byte ;Begging of the table. JP 437 IBM02 Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,JP_OEM,Len6,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 0, 0 ; 8 7 ' + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '~', 0, 0, 0 ; 11 0 ~ + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 12 - = + KeyDef 4, 0,0,0,0,0,0,0, '^', '_', 0, 0, 0 ; 13 ^ _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 0, 0 ; 39 ; + + KeyDef 4, 0,0,0,0,0,0,0, ":", '*', 0, 0, 0 ; 40 : * + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 0, 0 ; 41 @ ` + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '_', 0, 0, 0 ; 115 \ _ + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len6 EQU $ - _Ow2JP437011IBM002 + +;***************************************************************************** + +Public _Ow2JP932011IBMA01 ;****** +_Ow2JP932011IBMA01 Label Byte ;Begging of the table. JP 932 106 Kbd + ;**************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 932,0,0,0,0,1,0,0,0,0,JP_OEM,Len7,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 27, 27 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 'Ç', 'Ç' ; 2 1 ! Ç + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 'Ì', 'Ì' ; 3 2 " Ì + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, '±', '§' ; 4 3 # ± § + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, '³', '©' ; 5 4 $ ³ © + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, '´', 'ª' ; 6 5 % ´ ª + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 'µ', '«' ; 7 6 & µ « + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 'Ô', '¬' ; 8 7 ' Ô ¬ + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 'Õ', '' ; 9 8 ( Õ + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 'Ö', '®' ; 10 9 ) Ö ® + KeyDef 4, 0,0,0,0,0,0,0, '0', '~', 0, 'Ü', '¦' ; 11 0 ~ Ü ¦ + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 'Î', 'Î' ; 12 - = Î + KeyDef 4, 0,0,0,0,0,0,0, '^', '_', 0, 'Í', 'Í' ; 13 ^ _ Í + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 8, 127 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 'À', 'À' ; 16 q Q À + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 'Ã', 'Ã' ; 17 w W à + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, '²', '¨' ; 18 e E ² ¨ + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, '½', '½' ; 19 r R ½ + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, '¶', '¶' ; 20 t T ¶ + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 'Ý', 'Ý' ; 21 y Y Ý + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 'Å', 'Å' ; 22 u U Å + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 'Æ', 'Æ' ; 23 i I Æ + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, '×', '×' ; 24 o O × + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, '¾', '¾' ; 25 p P ¾ + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 'Þ', 'Þ' ; 26 @ ` Þ + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 'ß', '¢' ; 27 [ { ß ¢ + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 13, 10 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 'Á', 'Á' ; 30 a A Á + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 'Ä', 'Ä' ; 31 s S Ä + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, '¼', '¼' ; 32 d D ¼ + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 'Ê', 'Ê' ; 33 f F Ê + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, '·', '·' ; 34 g G · + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, '¸', '¸' ; 35 h H ¸ + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 'Ï', 'Ï' ; 36 j J Ï + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 'É', 'É' ; 37 k K É + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 'Ø', 'Ø' ; 38 l L Ø + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 'Ú', 'Ú' ; 39 ; + Ú + KeyDef 4, 0,0,0,0,0,0,0, ":", '*', 0, '¹', '¹' ; 40 : * ¹ + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 41 (undefined) + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 'Ñ', '£' ; 43 ] } Ñ £ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 'Â', '¯' ; 44 z Z  ¯ + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, '»', '»' ; 45 x X » + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, '¿', '¿' ; 46 c C ¿ + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 'Ë', 'Ë' ; 47 v V Ë + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 'º', 'º' ; 48 b B º + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 'Ð', 'Ð' ; 49 n N Ð + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 'Ó', 'Ó' ; 50 m M Ó + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 'È', '¤' ; 51 , < È + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 'Ù', '¡' ; 52 . > Ù ¡ + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 'Ò', '¥' ; 53 / ? Ò ¥ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, ' ', ' ' ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '_', 0, 'Û', 'Û' ; 115 \ _ Û + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, '°', '°' ; 125 \ | ° + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len7 EQU $ - _Ow2JP932011IBMA01 + +;***************************************************************************** + +Public _Ow2JP437011IBMA01 ;****** +_Ow2JP437011IBMA01 Label Byte ;Begging of the table. JP 437 106 Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +; cp a b c d e f g h i kb l cc cs oem id oem key +; | | | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,JP_OEM,Len8,'JP','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 0, 0 ; 8 7 ' + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '~', 0, 0, 0 ; 11 0 ~ + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 12 - = + KeyDef 4, 0,0,0,0,0,0,0, '^', '_', 0, 0, 0 ; 13 ^ _ + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 9, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 0, 0 ; 26 @ ` + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 27 [ { + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 0, 0 ; 39 ; + + KeyDef 4, 0,0,0,0,0,0,0, ":", '*', 0, 0, 0 ; 40 : * + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 41 (undefined) + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 43 ] } + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '_', 0, 0, 0 ; 115 \ _ + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 125 \ | + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len8 EQU $ - _Ow2JP437011IBMA01 + +_TEXT ends +endif + END diff --git a/private/os2/os2ses/i386/kbdxlat.asm b/private/os2/os2ses/i386/kbdxlat.asm new file mode 100644 index 000000000..5f282b9be --- /dev/null +++ b/private/os2/os2ses/i386/kbdxlat.asm @@ -0,0 +1,2470 @@ +; SCCSID = @(#)kbdxlat.asm 12.21 89/07/25 +;OS2SS- Page 58,132 + +;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ +;$$ +;$$ Module: kbdxlat.asm Version: 1.2 ABIOS +;$$ +;$$ History: This module was derived from the 1.2 AT source code. +;$$ ABIOS changes were made according to the deltas between +;$$ the 1.1 ABIOS and 1.1 AT drivers. The 1.1 ABIOS driver +;$$ was done by John Nels Fuller (Wyse). The 1.2 ABIOS +;$$ driver was done by Alan J. Cotterman (NCR). +;$$ +;$$ Notes: Wherever possible the original 1.2 AT code is preserved. +;$$ All changes are marked with ";$$". +;$$ +;$$ The only modification to this module is in testing for +;$$ keyboard type. References to "IDFlags" have been +;$$ replaced with tests of the contents of "KbdHWIDs". +;$$ +;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + Title KBDXLAT - Translation Process + Name KBDXLAT +;*********************************************************************** +;** ** +;** Keyboard Device Driver Scan Code Translation ** +;** ** +;** ** +;** This file contains the scan code to character translation process ** +;** code. The code in this file is only called once by KBDDD and is ** +;** not accessed by anyone else. So the entire translation process ** +;** can be replaced by replacing the routine in this file. The data ** +;** that is only used by the code in this file is in the file ** +;** KBDXDATA.ASM and it too would be replaced if this code is to be ** +;** replaced. ** +;** ** +;** 6/22/93 MJarus line with os2ss were modified by os2ss. ** +;*********************************************************************** +.386p ;OS2SS-.286 +.sall +.xcref +;@@ The following files are included, but xlist'd out: + +.xlist + Include struc.inc ;Structured assembly macros. + Include kbddd.inc ;Keyboard Device Driver structures & equates. + Include kbdxlat.inc ;Translation structures & equates. +.list + + Extrn _Ow2MiscFlags:Byte ; 704,747,771,931,1188 (EnhancedKbd) + Extrn _Ow2MiscFlags3:Byte ; 1089,1154,1166,...(AltPacket SecAltNumPad PauseLatch E0Packet) + Extrn _Ow2KCBShFlgs:Word ; 2299 + Extrn _Ow2KbdHWIDs:Word ;$$ Extrn IDFlags:Word + ;Extrn OtherFlags:Byte ; (Test OtherFlags,InterruptTime) moved to [EDI] + ;Extrn AltTable:Byte ; 275 + ;Extrn AltPadMap:Byte ; 562 + ;Extrn CtlPadMap:Byte ; 601 + ;Extrn NewExtSC:Byte ; only CheckExtended() + ;Extrn NewExtSCLen:ABS ; only CheckExtended() + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +AltPadMap Label Byte + db 7,8,9,-1 + db 4,5,6,-1 + db 1,2,3 + db 0,-1 + +CtlPadMap Label Byte +; db 119,-1,132,-1 +; db 115,-1,116,-1 +; db 117,-1,118 +; db -1,-1 + db 119,141,132,142 ;@@ Keypad 7, 8, 9, - (PTM 5024) + db 115,143,116,144 ;@@ Keypad 4, 5, 6, + (PTM 5024) + db 117,145,118 ;@@ Keypad 1, 2, 3 (PTM 5024) + db 146,147 ;@@ Keypad 0, . (PTM 5024) + +;***** +;* Translation for keypresses on AlphaKeys with Alt pressed. This +;* translation is ALWAYS indexed by the Char1 value less 96 (which +;* is ascii "a"). The translation value is the scan code that +;* would come in on a regular PC keyboard (or PC/AT keyboard in +;* compatability mode). +;***** +AltTable Label Byte +; a, b, c, d, e, f, g, h, i, j, k, l, m + db 30,48,46,32,18,33,34,35,23,36,37,38,50 ; +; n, o, p, q, r, s, t, u, v, w, x, y, z + db 49,24,25,16,19,31,20,22,47,17,45,21,44 ; + +NewExtSC LABEL BYTE + +;@@ ALT+ +;@@ [ ] ; ' ` \ , . / Tab + db 1Ah,1Bh,27h,28h,29h,2Bh,33h,34h,35h,0Fh + +NewExtSCLen equ $-NewExtSC ;@@ Used by interrupt handler. + +Even ;Make sure we're an even number of bytes. * +; * +; * +;*** END OF THE TRANSLATION TABLE ********************************** + + +;OS2SS-... +; ULONG +; Ow2KbdXlate( +; ULONG ScanCode, +; PKBD_XLATE_VARS pFlagArea, +; PKBD_MON_PACKAGE pMonitorPack, +; PVOID pTransTable +; ); + +Public _Ow2KbdXlate@16 +_Ow2KbdXlate@16 Proc ;------------------------------------------------------\ + + push ebp + mov ebp,esp + sub esp,8 ; for local arguments + push ebx + push ecx + push edx + push edi + push esi + +; +; now: +; +; ebp-8 Pointer to DD of XlateTable entry for this scan code. +; ebp-4 Pointer to DD holding Offset of top of XlateTable +; +; ebp+0 old ebp +; ebp+4 Return Address +; ebp+8 ScanCode +; ebp+12 pFlagArea +; ebp+16 pMonitorPack +; ebp+20 pTransTable +; + + mov eax, [ebp+8] + mov edi, [ebp+12] + mov esi, [ebp+16] + mov ebx, [ebp+20] +; cmp ebx,0 +; jnz HaveTable +; ; if no translate table +; mov ebx,Offset XlateTable ; set the default one +; +;HaveTable: + call KbdXlate + mov al,0 ; Error ? + jnc EndXlate ; yes - no packet + test [esi].DDFlags,MultiMake + jnz EndXlate ; ignore multiple make of toggle key + test [edi].XPSGFlags, PrevAccent + jnz EndXlate ; ignore accent char till next keystroke + mov ah,byte ptr [esi].DDFlags + and ah,KeyTypeMask + cmp ah,UndefKey ; Is this key undefined? + je EndXlate ; yes - ignore + cmp byte Ptr [esi+KeyPacketLen].MonFlags,-1 ; do we have two packets? + mov al,1 ; assume not + jnz EndXlate + mov al,2 ; 2 packets + +EndXlate: + and eax,0FFh ; returns in al number of packets + pop esi + pop edi + pop edx + pop ecx + pop ebx + mov esp,ebp + pop ebp + ret 16 + +_Ow2KbdXlate@16 Endp ;-------------------------------------------------------/ + +KbdXlate Proc ;------------------------------------------------------\ + +;*********************************************************************** +;* * +;* Subroutine Name: KbdXlate * +;* * +;* Descriptive Name: Keyboard Scan Code Translation * +;* * +;* Function: This routine translates the scan code received from * +;* the keyboard and places it in the Monitor Key Packet. * +;* It also sets all flags that are based on the scan code * +;* received. * +;* * +;* Entry Point: KbdXlate Linkage: Near * +;* * +;* Input: AL=Raw Scan Code EDI = Ptr to translation flag area * +;* ESI = Ptr to Monitor KeyPacket * +;* EBX = Ptr to Translate Table * +;* * +;* Exit-Normal: Monitor Key Packet filled in * +;* AL=Raw scan code if translation successful * +;* * +;* Exit-Error: If found a break of a shift key that had seen no * +;* make, returns 0 and CX hold the unexpected shift bits. * +;* * +;* Effects: All regs except SI, DI and the Seg regs may be altered * +;* Key Packet filled in * +;* * +;* Internal References: * +;* Routines: UnPauseChk * +;* AccCheckout * +;* * +;* External References: * +;* Routines: None. * +;* * +;* * +;*********************************************************************** + Or Byte Ptr [ESI].MonFlags,NotInserted ;OS2SS-Key isn't monitor inserted. + And [EDI].XlateFlags,Not NormalAlt ;OS2SS-@@ Turn flag off to start + Mov AH,AL ;Copy scan code into AH + Or AH,AH ;Check if key break bit in + .If <s> ;If it is + Or [ESI].DDFlags,KeyBreak ;OS2SS-Set Flag + And AH,Not BreakBit ;Clear the break bit from the scan code + .Endif ;Endif key break bit on + + Mov DL,AL ;OS2SS-Now calculate... + And EDX,07Fh ;OS2SS-...the index into... + Dec EDX ;OS2SS- ...XlateTable for... + IMul EDX,KDefLen ;OS2SS- ...this scan code. + Add EDX,KDefs ;OS2SS-Point past header to keydefs. + Add EDX,EBX ;OS2SS-Add offset into table. + Mov [EBP-8],EDX ;OS2SS-Save Pointer to XlateTable entry for this scan code. + Mov [EBP-4],EBX ;OS2SS-Put table start offset on the stack. + Mov BX,[EDX].XlateOp ;OS2SS-Get Xlate Operation word. + And EBX,ActionMask ;OS2SS-Isolate translate action field. + + Mov [ESI].Key.Scan,AH ;OS2SS-Put scan code in key packet + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if saw E0 prefix last time + .If <nz> ;If we did + Or [ESI].DDFlags,SecondaryKey ;OS2SS-@@ Indicate so. + ;@@ PTM 4359 + .If <AL eq 53> ;@@ If this is '/' on Numpad + Test [ESI].Key.Shift,AltFlag ;OS2SS-@@ PTM 5024 + .If <nz> ;@@ If ALT Key is down + Mov [ESI].Key.Scan,0A4h ;OS2SS-@@ Set extended scan code + .Else ;@@ Else no Alt down + Test [ESI].Key.Shift,CtlFlag ;OS2SS-@@ Check if Ctl key down + .If <nz> ;@@ If it is + Mov [ESI].Key.Scan,095h ;OS2SS-@@ Set extended scan code + .Else ;@@ Else no Alt or Ctl key down + Mov [ESI].Key.Char,'/' ;OS2SS-@@ then it is always '/' regardless + Mov [ESI].Key.Scan,OtherKey ;OS2SS-@@ and the scan code is EO + .Endif ;@@ Endif Ctl key down + .Endif ;@@ End PTM 5024 + Jmp EndActionCase ;@@ of country/code page. + .Endif + .Endif + + ;From now on, ES:EDX (;OS2SS-)points to the Xlate table entry. If running in + ;3xBox(;OS2SS-can't be), that pointer may have been created by a LOADALL, so don't + ;allow interrupts, nor change Seg Regs. Also, the beginning offset + ;of the translate table itself is on the top of stack. + + Mov CX,Word Ptr [EDX+2] ;OS2SS-@@ Get Char1 and Char2 values. + Mov DX,[ESI].Key.Shift ;OS2SS-Get the current shift status from Key. + + .If <BX ne 7> AND ;@@ If not a padkey clear possible Alt-nnn entry. + .If <BX ne 14> ;@@ Don't clear on Alt key, either. + Mov [EDI].XAltKeyPad,0 ;OS2SS-@@ Clear Alt-nnn entry. + .Endif + Mov AL,CL ;Copy Char1 for use later. + .If <BX gt MaxAct> ;@@ Was the action number too big? + Jmp NoXlate ;Yes, so don't try to translate. + .Endif + Shl BX,2 ;Make action number an offset. + Add EBX,Offset XJumpTable ;OS2SS-@@ Point to processor address. + Jmp [EBX] ;OS2SS-Go translate. + + ;Following is the branch table for the various actions that + ;can be performed on a keystroke. Processing re-merges at the + ;bottom of this CASE structure, at label "EndActionCase". + +Public NoXlate, AlphaKey, SpecKey, SpecKeyC, SpecKeyA, SpecKeyCA +Public FuncKey, PadKey, SpecCtlKey, PrtScr, SysReq, AccentKeyType +Public ShiftKeys, ToggleKey, AltKey, NumLock, CapsLock, ScrollLock +Public XShiftKey, XToggleKey, SpecKeyCS, SpecKeyAS +Even +XJumpTable: + dd NoXlate ;0 Invalid action code, no translate done. + dd AlphaKey ;1 Alphabetical character key. + dd SpecKey ;2 Special non-alpha key, no CAPSLOCK or ALT. + dd SpecKeyC ;3 Special non-alpha key, with CAPSLOCK. + dd SpecKeyA ;4 Special non-alpha key, with ALT. + dd SpecKeyCA ;5 Special non-alpha key, w/CAPSLOCK and ALT. + dd FuncKey ;6 Function keys. + dd PadKey ;7 Numeric keypad keys. + dd SpecCtlKey ;8 Keys that do special things with CTL. + dd PrtScr ;9 The print screen key. + dd SysReq ;A The system request key. + dd AccentKeyType ;B A key that affects the NEXT key (dead key). + dd ShiftKeys ;C The LSHIFT, RSHIFT, and CTL keys. + dd ToggleKey ;D General Toggle key. + dd AltKey ;E The ALT key. + dd NumLock ;F The NUMLOCK key. + dd CapsLock ;10 The CAPSLOCK key. + dd ScrollLock ;11 The SCROLL LOCK key. + dd XShiftKey ;12 Extended shift key (for DBCS use). + dd XToggleKey ;13 Extended toggle key (for DBCS use). + dd SpecKeyCS ;14 Special key for NLS support. + dd SpecKeyAS ;15 Special key for NLS support. + +; On entering the following routines, the following regs are set: +; +; CL = Char1 and CH = Char2 (both from XlateTable entry) +; DX = ShiftFlags (same as in Key CharData record) +; AL = Char1 also AH = Received scan code (Breakbit cleared) +;OS2SS- ESI = Pointer to Key Packet +;OS2SS- EDI = Pointer to current PSG +;OS2SS- [EBP-8] = Pointer to XlateTable entry for this scan code. +;OS2SS- [EBP-4] = Pointer to Offset of top of XlateTable +; +; Also, Key.Scan = AH and Key.Char = 0 on entry to the routines. + +AlphaKey: ;Alphabetical character key. +ifdef JAPAN +; MSKK Aug.15.1993 V-AkihiS +; Support SBCS katakana + Test [ESI].Key.DShift, Katakana ;OS2SS Check if Katakana or not + .If <nz> + Mov EBX,[EBP-8] ;OS2SS- + Mov AL,[EBX].Char4 ;OS2SS-Get Char4 and Char5 values. + Mov CX,Word Ptr [EBX+5] ;OS2SS- + .Endif +endif + Test DL,AltFlag ;Check if Alt key is pressed. + .If <nz> ;Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + Xor EBX,EBX ;OS2SS-Yes, so make Char1 an offset. + Mov BL,AL ;OS2SS-Now make it the base. + Mov AH,[AltTable+EBX-"a"] ;OS2SS-Fetch Alt-[] mapped code. + Mov [ESI].Key.Scan,AH ;OS2SS-Put in Key record. + Xor AL,AL ;Set `extended char' code. + .Endif + Jmp NewLbl1 + .Endif ;OS2SS- (A2053)## Endif Alt is down. + ;OS2SS- .Else + Test DL,CtlFlag ;Else, check if Ctl key is pressed. + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + .If <nz> ;&& translations are independent. + ;@@ PTM 5992 - End + ;Check limit on char1 value! + Sub AL,"a"-1 ;Yes, so convert Char1 to control code. + .If <CL eq 'c'> ;Is this Ctrl-C? + ;@@ Tell dd it's the PSUEDO-BREAK KEY. + Or [ESI].DDFlags,PSBreakKey ;OS2SS- + Jmp NoPauseCheck ;@@ Do not check if paused, Ctl-C + ;@@ has priority over resuming output + .ElseIf <CL eq 'p'> ;Is this Ctrl-P? + ;@@ Tell dd it's PSUEDO-PRTECHO KEY. + Or [ESI].DDFlags,PSPrintEchoKey ;OS2SS- + Jmp NoPauseCheck ;@@ Do not check if paused, Ctl-P + ;@@ has priority over resuming output + .ElseIf <CL eq 's'> ;Is this Ctrl-S? + ;1.3-## PTR b790266 + Test [ESI].DDFlags,KeyBreak ;OS2SS-1.3-## Make sure it isn't key break + .If <z> AND ;1.3-## If zero, then its a make + .If <[EDI].XInputMode eq 0> ;OS2SS-@@ Right, are we in cooked mode? + ;@@ Yes, tell dd it's PSUEDO-PAUSE KEY. + Or [ESI].DDFlags,PSPauseKey ;OS2SS- + .Endif + .Endif + .Else ;Check for regular shifts/capslock. +ifdef JAPAN +; MSKK Aug.15.1993 V-AkihiS +; When Mode is katakana, CapsLock has no affect on this key. + Test [ESI].Key.DShift, Katakana ;OS2SS Check if Katakana or not + .If <nz> ;OS2SS + Mov BL,0 ;OS2SS indicate that CapsTogl has no + ;OS2SS affect on this key. + .Else + Mov BL, CapsTogl ;OS2SS Set indicator that CapsLock and + ;OS2SS ShiftLock affect key. + .Endif +else + Mov BL, CapsTogl ;## Set indicator that CapsLock and + ;## ShiftLock affect key. +endif + Call CapsCheck ;## Determine the shifting of the char. + .Endif ;## Endif Ctrl or Interrupt time. + ;OS2SS- .Endif ;## Endif Alt is down. +NewLbl1: ;OS2SS- + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + +NoPauseCheck: + Mov [ESI].Key.Char,AL ;OS2SS-Put xlated character into Key rec. + ;&& PTM 2217 BEGIN: + Test [ESI].DDFlags,KeyBreak ;OS2SS-&& Check if this a break or make. + .If <z> ;&& If it isn't then go and check accent. + ;@@ PTM 6860 - Begin + Call AccCheckout ;Go check if accent combo going on. + ;@@ PTM 6860 - End + .Endif ;&& Endif this is a make. + ;&& PTM 2217 END: + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + +SpecKey: ;Special non-alpha key, no CAPSLOCK or ALT. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check if Alt key is pressed. + .If <nz> ;Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-## Check if it's the AltGraph + .If <z> ;## If alt key is AltGraph + ;## which is undefined for this key + Mov [ESI].Key.Char,AL ;OS2SS-## put it in CDR + Call AccCheckout ;## Go check if acc. combo going on. + Jmp EndActionCase ;## Go to bottom of Xlate Action + .Endif ;## case table + Jmp NoXlate ;## then Key combo is undefined + .Endif ;@@ Endif Alt Key down + ;## PTM 2287: BEGIN + Mov EBX,[EBP-8] ;OS2SS-## Put it in BX + Test [EBX].XTFlags1,ShiftLock ;OS2SS-## Check if SHIFTLOCK keyboard. + .If <nz> ;## If it is + Mov BL,CapsTogl ;## Indicate a CAPSLOCK check. + .Endif ;## PTM 2287: END + Test DL, CtlFlag ;## Check if Ctrl key down. + .If <nz> ;## If so ... + Call SKCtlCheck ;## check if char has special + ;## control code. + .Else ;## Else Ctrl key not down, + Mov BL,0 ;1.3-@@ PTR B713838 Clear ShifLock Flag + Call CapsCheck ;## Check for shifting. + .Endif ;## Endif Ctrl down. + Mov [ESI].Key.Char,AL ;OS2SS-## Put Char in Key rec. + Call AccCheckout ;## PTR B705184 + Jmp EndActionCase ;## Go to bottom of Xlate Action. + +SpecKeyC: ;Special non-alpha key, with CAPSLOCK. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check if Alt key is pressed. + .If <nz> ;Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + Mov EBX,[EBP-8] ;OS2SS- + .If <[EBX].Char4 eq 0> ;OS2SS-@@ then check if char 4 is 0 + ;@@ PTM 5024 - Begin + Call CheckExtended ;@@ See if new extended code + ;@@ is defined + .If <c> ;## If it is defined. + Call AccCheckout ;## Go check if acc. combo going on. + Jmp EndActionCase ;## Go to bottom of Xlate Action + .Endif ;@@ PTM 5024 - End + Jmp NoXlate ;## the key combo is undefined + .Else ;@@ else if char 4 isn't 0 + Mov AL,[EBX].Char4 ;OS2SS-@@ then use it + .Endif ;@@ Endif Char 4 is 0 + .Endif ;@@ Endif Alt key is normal Alt. + Jmp SpecAccent ;@@ Go check if this is an accent + .Endif ;@@ Endif Alt Key down + Test DL, CtlFlag ;## Check if Ctrl key down. + .If <nz> ;## If so ... + Call SKCtlCheck ;## check if char has special + ;## control code. + .Else ;## Else Ctrl is not down. + ;## PTR B704944 CapsCheck in Else + Mov BL,CapsTogl ;Indicate check CAPSLOCK. + Call CapsCheck ;## Check for shifting. + .Endif + +SpecAccent: + .If <AL b 8> ;@@ Indicate this is unprocessed + Or [ESI].DDFlags,AccentKey ;OS2SS-@@ accent. + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check for the key BREAK. + .If <z> ;@@ Is it? + And [EDI].XPSGFlags,Not PrevAccent ;OS2SS-@@ No, clear previous + ;@@ accent number. + Or Byte Ptr [EDI].XPSGFlags,AL ;OS2SS-&& Save accent number + ;&& for the next key. + .Endif + Jmp EndActionCase ;## Go to bottom of Xlate Action case table. + .Endif + Mov [ESI].Key.Char,AL ;OS2SS-## Put Char in Key rec. + Call AccCheckout ;## PTR B705184 + Jmp EndActionCase ;@@ Go to bottom of Xlate Action case table. + +SpecKeyA: ;Special non-alpha key, with ALT. +ifdef JAPAN +; MSKK Aug.15.1993 V-AkihiS +; Support SBCS katakana + Test [ESI].Key.DShift, Katakana ;OS2SS Check if Katakana or not + .If <nz> + Mov EBX,[EBP-8] ;OS2SS- + Mov AL,[EBX].Char4 ;OS2SS-Get Char4 and Char5 values. + Mov CX,Word Ptr [EBX+5] ;OS2SS- + .Endif +endif + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + ;## PTM 2287: BEGIN + Mov EBX,[EBP-8] ;OS2SS-## Put it in BX + Test [EBX].XTFlags1,ShiftLock ;OS2SS-## Check if SHIFTLOCK keyboard. + .If <nz> ;## If it is + Mov BL,CapsTogl ;## Indicate a CAPSLOCK check. + .Endif ;## PTM 2287: END + Test DL, AltFlag ;## Check if Alt is down, + .If <nz> ;## If it is... + Call SKAltCheck ;## Check for extended code. + .Else ;## If it is not down, + .if <bit dl nz CtlFlag> ;## PTM 3327 start + Call SKCtlCheck ;## Check for spec. Ctrl code. + .else + Mov BL,0 ;1.3-@@ PTR B713838 Clear ShifLock Flag + Call CapsCheck ;## Check for Shifting. + .endif ;## PTM 3327 end + Mov [ESI].Key.Char,AL ;OS2SS-## Put Char in Key rec. + .Endif ;## Endif Alt is down. + Call AccCheckout ;## PTM 3126 fix stand alone accent + Jmp EndActionCase ;## Go to bottom of Xlate Action. + +SpecKeyCA: ;Special non-alpha key, w/CAPSLOCK and ALT. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Mov BL,CapsTogl ;Indicate check CAPSLOCK. + Test DL, AltFlag ;## Check if Alt is down, + .If <nz> ;## If it is... + Call SKAltCheck ;## Check for extended code. + .Else ;## If it is not down, + Call CapsCheck ;## Check for Shifting. + Test DL, CtlFlag ;## Check if Ctrl is down, + .If <nz> ;## If it is then... + Call SKCtlCheck ;## Check for spec. Ctrl code. + .Endif ;## Endif Ctrl is down. + .Endif ;## Endif Alt is down. + Mov [ESI].Key.Char,AL ;OS2SS-## Put Char in Key rec. + Jmp EndActionCase ;## Go to bottom of Xlate Action. + +FuncKey: ;Function keys. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check Alt Key. + .If <nz> ;Is it down? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + .If <CL gt 10> ;Yes, so check if F11 or F12. + Add CL,128 ;If so, extended code is 139 or 140 + .Else + Add CL,103 ;Extended code is range 104-113. + .Endif ;@@ + .Else ;@@ Else ALt key was Atl-Graph + ;@@ PTM 6860 - Begin + Mov [ESI].Key.Char,AL ;OS2SS-@@ Move char 3 to key packet + Mov CL,[ESI].Key.Scan ;OS2SS-@@ Move scan to CL + ;@@ PTM 6860 - End + .Endif ;@@ Endif Alt or AltGraph check + .Else ;@@ Endif no Alt key down + Test DL,CtlFlag ;Check Ctl Key. + .If <nz> ;Is it down? + .If <CL gt 10> ;Yes, so check if F11 or F12. + Add CL,126 ;If so, extended code is 137 or 138. + .Else + Add CL,93 ;Extended code is range 94-103. + .Endif + .Else + Test DL,RShiftFlag+LShiftFlag ;Check Shift Keys. + .If <nz> ;Is one down? + .If <CL gt 10> ;Yes, so check if F11 or F12. + Add CL,124 ;If so, extended code is 135 or 136. + .Else + Add CL,83 ;Extended code is range 84-93. + .Endif + .Else ;Else this is a non-shifted FKey. + .If <CL gt 10> ;Check if F11 or F12. + Add CL,122 ;If so, extended code is 133 or 134. + .Else + Add CL,58 ;Extended code is range 59-68. + .Endif + .Endif + .Endif + .Endif + Mov [ESI].Key.Scan,CL ;OS2SS-Put code in CharData rec. + ;@@ PTM 6860 - Begin + Call AccCheckout ;Go check if accent combo going on. + ;@@ PTM 6860 - End + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + + +PadKey: ;Numeric keypad keys. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Xor EBX,EBX ;OS2SS-Clear for use later. + Test DL,AltFlag ;Check if Alt key down. + .If <nz> NEAR ;Are we entering Alt-nnn? + ;Maybe. First check for reboot request. + .If <CL eq 12> AND ;@@ And is current key mapped to Del? + ;@@ PTM 6350 - Begin + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check if this a break + .If <z> AND ;@@ If it isn't (only reboot on make of Del) + ;@@ PTM 6350 - End + Test DL,CtlFlag ;Maybe. First check for reboot request. + .If <nz> OR ;Is Ctl down too + ;@@ for this KCB OR + ;@@ PTM 5992 - Begin + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + .If <nz> ;&& translations are independent. + ;@@ PTM 5992 - End + ;@@ Tell dd it's the REBOOT KEY. + ;OS2SS-BUGBUG shouldn't get here + Or [ESI].DDFlags,RebootKey ;OS2SS-@@ + Jmp EndActionCase ;Quit now. + .Endif + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + ;@@ PTM 5024 - BEGIN + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> ;@@ If it is + Add [ESI].Key.Scan,50h ;OS2SS-@@ Make scan extended code + Mov [ESI].Key.Char,0 ;OS2SS-@@ Make char extended code + .Else ;@@ Else primary pad key + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check if is a key break. + .If <z> ;Is it? + Mov BL,CL ;No, so make Char1 value the index. + Mov CL,[EBX+AltPadMap] ;OS2SS-Get numeric value of the key. + Or CL,CL ;Check if value is -1. + .If <s> ;Is it. + Mov [EDI].XAltKeyPad,0 ;OS2SS-@@ Not numeric, reset. + .If <AH eq 83> ;@@ If this is DEL key + Jmp NoXlate ;@@ No extended value, undefined + .Else ;@@ Else extended char + Jmp EndActionCase ;@@ Mark char defined + .Endif ;@@ Endif Extended Char exists + .Else + Mov AL,10 ;Else multiply old... + Mul [EDI].XAltKeyPad ;OS2SS-@@ ...accumulator by 10. + Add AL,CL ;And add new key. + Mov [EDI].XAltKeyPad,AL ;OS2SS-@@ Save modified accum. + Jmp NoXlate ;Mark keystroke undefined + .Endif + .Else ;@@ PTM 6860 - Begin Else a break + Jmp NoXlate ;@@ Mark keystroke undefined + .Endif + .Endif ;@@ Endif primary or secondary key + ;@@ End PTM 5024 + .Else ;@@ + Mov [ESI].Key.Char,AL ;OS2SS-@@ Put Char into Key rec. + Test [ESI].DDFlags,SecondaryKey ;OS2SS-@@ Check if G keyboard dup key. + .If <nz> ;@@ Is it? + Mov [ESI].Key.Scan,OtherKey ;OS2SS-@@ Yes, so mark it so. + .Endif ;@@ + .Endif ;@@ Endif normal ALT + .Else NEAR ;No Alt key down. + ;@@ PTM 5024 + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> ;@@ If it is + Mov AL,OtherKey ;@@ Set Char to E0 + .Else ;@@ Else regular pad key + Xor AL,AL ;@@ Set Char to "extended" + .Endif ;@@ End PTM 5024 + Test DL,CtlFlag ;Check if Ctl key down. + .If <nz> ;Is it? + Mov BL,CL ;Yes, so make Char1 value the index. + Mov AH,[EBX+CtlPadMap] ;OS2SS-Get extended value of the key. + Mov [ESI].Key.Scan,AH ;OS2SS-Set extended code for this key. + .Else ;Not Alt- or Ctl-, so figure out Num status. + .If <CL eq 3> OR ;Is this the minus key? + .If <CL eq 7> ;Or is this the plus key? + Mov AL,CH ;Yes, so use Char2 regarless of shifts. + .Else + Test DL,RShiftFlag+LShiftFlag ;Check for shift key. + .If <nz> ;Is one down? + Or BL,NumTogl ;Yes, so set NumLock bit. + .Endif + And DL,NumTogl ;Clear all shift bits but NumLock. + Xor DL,BL ;Flip it if shift key was down. + .If <nz> ;Is the case Num Lock? + Mov AL,CH ;Yes, so use Char2. + .Endif + ;@@ PTM 7358 - Begin + .If <z> OR ;@@ If we should not shift + Test [ESI].DDFlags,SecondaryKey ;OS2SS-@@ if G keyboard dup key. + .If <nz> ;@@ If it is + .If <CL eq 11> ;Is this the Ins key? + Test [ESI].DDFlags,KeyBreak ;OS2SS-Yes check if key BREAK. + .If <nz> ;Is it? + And [EDI].ToggleFlags,Not InsKeyDown ;OS2SS-@@ Yes clear latch. + .Else ;Not Ins Key Break. + Test [EDI].ToggleFlags,InsKeyDown ;OS2SS-@@ Check if seen Ins. + .If <z> ;Have we? + Or [EDI].ToggleFlags,InsKeyDown ;OS2SS-@@ No, so set latch. + Xor Byte Ptr [ESI].Key.Shift,InsTogl ;OS2SS-Toggle in CDR + .Else ;Otherwise this is a repeat of the make. + Or [ESI].DDFlags,MultiMake ;OS2SS-So indicate so. + .Endif + .Endif + .Endif + .Endif ;@@ Endif we should set/clear insert toggle + ;@@ PTM 7358 - End + .Endif + .Endif + Mov [ESI].Key.Char,AL ;OS2SS-Put character value in Key rec. + Test [ESI].DDFlags,SecondaryKey ;OS2SS-Check if G keyboard dup key. + .If <nz> ;Is it? + Mov [ESI].Key.Char,OtherKey ;OS2SS-Yes, so mark it so. + .Endif + .Endif ;Endif Alt key down or not check + ;@@ PTM 6860 - Begin + Call AccCheckout ;Go check if accent combo going on. + ;@@ PTM 6860 - End + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + + +SpecCtlKey: ;Keys that do special things with CTL. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check if Alt key down. + .If <nz> ;Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + ;@@ PTM 5024 - Begin + Xor AL,AL ;@@ Set Char to be extended + .If <AH eq 1Ch> AND ;@@ If this is the Enter key + Test [ESI].DDFlags,SecondaryKey ;OS2SS- + .If <nz> ;@@ on the pad keys + ;&& PTM 1270 - Don't overwrite scan + Mov [ESI].Key.Scan,0A6h ;OS2SS-@@ Set extended code + .Endif + .Endif ;@@ PTM 5024 End + + Jmp SetCharField ;&& PTM 1520 now go set char field + .Endif + ;&& PTM 1270 - Begin + Test [ESI].DDFlags,SecondaryKey ;OS2SS-@@ Check if G keyboard dup key. + .If <nz> ;@@ Is it? + Mov [ESI].Key.Scan,OtherKey ;OS2SS-@@ Yes, so mark it so. + .Endif + Test DL,CtlFlag ;Check if Ctl key down. + .If <nz> ;Is it? + Mov AL,CH ;Yes, so use Char2. + .Endif + SetCharField: ;&& PTM 1520 Alt should have + ;&& precedence when Ctrl and Alt + ;&& are down. + + Mov [ESI].Key.Char,AL ;OS2SS-Put Char into Key rec. + ;&& PTM 1270 - End + ;@@ PTM 6860 - Begin + Call AccCheckout ;Go check if accent combo going on. + ;@@ PTM 6860 - End + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + +;OS2SS-BUGBUG-shouldn't get here +PrtScr: ;The print screen key. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check if Alt key down. + .If <nz> ;Is it? + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> OR ;@@ If it is OR... + Test _Ow2MiscFlags,EnhancedKbd ;@@ Check if enhanced kbd + .If <z> OR ;@@ OR...If it's a regular kbd +;$$ +;$$ 'IDFlags' does not exist in the 1.2 ABIOS +;$$ version. We need to get this information from KbdHWIDs. +;$$ + +;$$ Test IDFlags, SuperSport ;## Check if it is a 122 kbd + + .If < _Ow2KbdHWIDs e 0AB85h > ;$$ If it is a 122 kbd + Test DL,CtlFlag ;@@ Check if Ctl key is down + .If <nz> OR ;@@ If it is + ;@@ for this KCB + ;@@ PTM 5992 - Begin + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + .If <nz> ;&& translations are independent. + ;@@ PTM 5992 - End + Or [ESI].DDFlags,PrintFlushKey ;OS2SS-@@ Indicate this is FlushPrtbuf + Jmp EndActionCase ;@@ Go to bottom of Xlate Action + ;@@ case table. + .Endif + Jmp NoXlate ;Else that's undefined for this key. + ;@@ PTM 5024 begin + .Else ;@@ Else it Pad Key * on G kbd + Xor AL,AL ;@@ Set extended code + .Endif ;@@ Endif PrtScr or * + .Else NEAR ;@@ Else no Alt key down + Test DL,CtlFlag ;Check if Ctl key down. + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + ;@@ PTM 5992 - End + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> OR ;@@ If it is OR... + Test _Ow2MiscFlags,EnhancedKbd ;@@ Check if enhanced kbd + .If <z> OR ;@@ OR...If it's a regular kbd +;$$ +;$$ 'IDFlags' does not exist in the 1.2 ABIOS +;$$ version. We need to get this information from KbdHWIDs. +;$$ + +;$$ Test IDFlags, SuperSport ;## Check if it is a 122 kbd + + .If < _Ow2KbdHWIDs e 0AB85h > ;$$ If it is a 122 kbd + Xor AL,AL ;Yes so set extended code... + Mov [ESI].Key.Scan,CH ;OS2SS-...for the Ctl-PrSc combination. + Or [ESI].DDFlags,PrintEchoKey ;OS2SS-@@ Tell dd it's the PRINT + ;@@ ECHO KEY. + ;@@ PTM 5024 - Begin + .Else ;@@ Else its the keypad * + Xor AL,AL ;@@ so set extended code... + Mov [ESI].Key.Scan,96h ;OS2SS-@@ for scan and char + .Endif ;@@ PTM 5024 - end + .Else ;@@ Else Ctrl key not down. + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> OR ;@@ If it is OR... + Test DL,RShiftFlag+LShiftFlag ;@@ Check if a shift flag down. + .If <nz> AND ;@@ If a shift key is down AND... + Test _Ow2MiscFlags,EnhancedKbd ;@@ Check if enhanced kbd + .If <z> OR ;@@ AND...If it's a regular kbd + +;$$ Test IDFlags, SuperSport ;## Check if it is a 122 kbd +;$$ +;$$ 'IDFlags' does not exist in the 1.2 ABIOS +;$$ version. We need to get this information from KbdHWIDs. +;$$ + .If < _Ow2KbdHWIDs e 0AB85h > ;$$ If it is a 122 kbd + + Xor AL,AL ;Yes, so clear char code. + Or [ESI].DDFlags,PrtScrKey ;OS2SS-@@ Tell dd it's PRINT SCREEN KEY. + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check for the key BREAK. + .If <nz> ;Is it? + And [EDI].XlateFlags,Not PSKeyDown ;OS2SS-@@ Yes, clear PS Key latch + .Else + Test [EDI].XlateFlags,PSKeyDown ;OS2SS-@@ Check if seen PS key yet. + .If <z> ;Have we? + Or [EDI].XlateFlags,PSKeyDown ;OS2SS-@@ No, set latch saying have. + .Else ;Otherwise this is a repeat of the make. + Or [ESI].DDFlags,MultiMake ;OS2SS-So indicate so. + .Endif ;Endif no PS key yet check + .Endif ;Endif Key break or not check + .Else ;@@ PTM 2606: Shift keys not + ;@@ down or not enhanced kbd. + Test [ESI].DDFlags, KeyBreak ;OS2SS-@@ If this is a break of the + .If < nz > ;@@ PrtScr key, + And [EDI].XlateFlags,Not PSKeyDown ;OS2SS-@@ Ensure latch is + ;@@ cleared. + .Endif ;@@ Endif PrtScr break. + .Endif ;Endif shift key down + .Endif ;Endif Ctl down or not check + .Endif ;@@ Endif Alt key down check + Mov [ESI].Key.Char,AL ;OS2SS-Put character in Key rec. + ;@@ PTM 6860 - Begin + Call AccCheckout ;Go check if accent combo going on. + ;@@ PTM 6860 - End + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + + +AccentKeyType: ;A key that affects the NEXT key (dead key). + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;Check if ALT down. + .If <nz> ;Is one? + Or [EDI].XlateFlags,Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ check if it was Altgraph key + .If <z> ;@@ If it was AltGraph key + .If <CL a 7> ;@@ If char 3 wasn't accent + Mov [ESI].Key.Char,CL ;OS2SS-@@ Put char in CDR + Mov [ESI].Key.Scan,AH ;OS2SS-@@ Put scan in CDR + Call AccCheckOut ;@@ Go check if accent combo (p6860) + Jmp EndActionCase ;@@ And quit now + .Else ;@@ Else char3 was an accent or 0 + .If <CL eq 0> ;@@ If Char 3 was 0 + Jmp NoXlate ;@@ Mark Key packet undefined + .Else ;@@ Else it was an accent + Xor BH,BH ;@@ Flag no shift check + Jmp ShiftAccent + .Endif ;@@ Endif Char3 was 0 or not + .Endif ;@@ Endif Char3 accent or not + .Endif ;@@ Endif Altgraph key down + .Endif ;@@ Endif ANY Alt key down + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> OR ;@@ If alt key is normal Alt + Test DL,CtlFlag + .If <nz> ;@@ OR CTL key is down + Mov EBX,[EBP-8] ;OS2SS- + Mov CL,[EBX].Char5 ;OS2SS-@@ Get accent entry index + ;@@ for CTL or ALT character + XOR EBX,EBX ;OS2SS- + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + Mov EBX,AltAcChar ;OS2SS-@@ So get Alt-Accent offset. + .Endif + Test DL,CtlFlag + .If <nz> ;@@ If its the CTL key + Mov EBX,CtlAcChar ;OS2SS-@@ So get Ctl-Accent offset. + .Endif + And ECX,0FFh ;OS2SS-Make accent number a word. + Dec ECX ;OS2SS-Accent 1 is offset zero. + IMul ECX,AccEntryLen ;OS2SS-Set offset of accent table entry. + Add ECX,Accents ;OS2SS-Add offset of accent entries. + Add ECX,EBX ;OS2SS-@@ Add offset for Ctl or Alt + ;@@ accent + Add ECX,[EBP-4] ;OS2SS-Point into translate table. + Mov EBX,ECX ;OS2SS-Put pointer in base reg. + Mov BX,Word Ptr [EBX] ;OS2SS-Fetch char and scan. + Or BX,BX ;Check if a Scan/Char mapping for this key. + .If <z> ;Is there? + Jmp NoXlate ;No, so go mark untranslated. + .Endif ;Else, use the mapping. + Mov Word Ptr [ESI].Key.Char,BX ;OS2SS-Put them into Key. + ;@@ PTM 6860 + Call AccCheckout ;Go check if accent combo going on + Jmp EndActionCase ;Quit now. + .Endif + ;## PTR B700738 Move 0 into BL to + Mov BL,0 ;## indicate that CapsTogl has no + ;## affect on this key. + Call CapsCheck ;## Determine shifting of character. + +ShiftAccent: ;@@ Merge here for accent process + .If <nz> ;@@ If we should shift + Mov CL,CH + .Endif + .If <CL a 7> ;@@ Is translate table entry + ;@@ actually a character + Mov [ESI].Key.Char,CL ;OS2SS-@@ Put character in CDR + + .IF <bit [ESI].DDFlags z KeyBreak> ;OS2SS-## PTM 3324 start + Call AccCheckOut ;@@ Go check if accent combo + .ENDIF ;## PTM 3324 end + + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + + .Else ;@@ Else actually an accent + Or CL,CL ;@@ check if accent defined. + .If <z> ;@@ Is it? + Jmp NoXlate ;@@ No, so go mark undefined. + .Endif + Xor CH,CH ;Make accent number a word. + Mov BX,[EDI].XPSGFlags ;OS2SS-&& Get the translation flags + And BX,PrevAccent ;&& Clear all bits but previous + ;&& accent number (in BL) + Mov AL,CL ;@@ Save accent number + .If <BL eq CL> AND ;@@ If this is same accent number + ;@@ as last time AND + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check if this is a BREAK + .If <z> AND ;@@ AND it is not a break + + Mov EBX,[EBP-8] ;OS2SS- + Mov BX,[EBX].XlateOp ;OS2SS-@@ Get accent flags + Mov CL,7 ;@@ Set highest accent number + Sub CL,AL ;@@ Subtract actual accent number + Shl BX,CL ;@@ Put accent flag in high bit + .If <s> ;@@ AND if an accent is defined + Mov DX,[ESI].Key.Shift ;OS2SS-@@ Get the current shift status from Key. + Call AccCheckOut ;@@ Go process this key + .Endif + ;Indicate this is an unprocessed accent. + Or [ESI].DDFlags,AccentKey ;OS2SS-@@ + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check for the key BREAK. + .If <z> NEAR ;Is it? + And [EDI].XPSGFlags,Not PrevAccent ;OS2SS-@@ No, clear prev accent + Or Byte Ptr [EDI].XPSGFlags,AL ;OS2SS-&& Save accent number for next + ;&& key. + .Endif + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + .Endif ;@@ +SysReq: ;The system request key. + + ;@@ PTM 4247 - the PrtScr key on an Enhanced Keyboard + ;@@ sends the SysReq scan code if the Alt Key is down + ;@@ which it must be for the Print Buffer flush key combo + ;@@ (Ctl-Alt-PrtScr). Therefore we must check for it here. + + Test _Ow2MiscFlags,EnhancedKbd ;@@ Check if enhanced kbd + .If <nz> AND ;@@ If it is AND.... + Test [ESI].DDFlags,KeyBreak ;@@ Check if this is a break + .If <z> AND ;@@ ...AND If it's NOT (a make) + Test DL,AltFlag ;@@ Check if Alt key down. + .If <nz> AND ;@@ If it is AND.... + Test DL,CtlFlag ;@@ Check if Ctl key is down + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> ;@@ PTM 5992 - End + ;@@ No, so make sure this shift key's flag is set. + Or [ESI].Key.Shift,CX ;OS2SS- + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or [EDI].XHotKeyShift,CX ;OS2SS-@@ Also set in hot key shift state + .Endif + ;@@ Indicate this is Flush Prt buf + Or [ESI].DDFlags,PrintFlushKey ;OS2SS- + Jmp EndActionCase ;@@ Go to bottom of Xlate Action + ;@@ case table. + .Else ;@@ Else (PTM 4990) + Or [ESI].DDFlags,SysReqKey ;OS2SS-@@ Indicate this is SysReq key + .Endif + + +ShiftKeys: ;The LSHIFT, RSHIFT, and CTL keys. +AltKey: ;And the ALT key. + Test [EDI].XlateFlags,E1Prefix ;OS2SS-@@ CHeck if scan code proceeded + .If <nz> AND ;@@ by E1, if so AND + Test CX,CtlFlag ;@@ check if this is Ctrl key + .If <nz> ;@@ AND if it is Ctrl + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check if this is a break + .If <z> ;@@ if it is not + Or [EDI].XlateFlags,PseudoCtl ;OS2SS-@@ Flag this as not actually + ;@@ a Ctrl key but a code + ;@@ sent by Enhanced Kbd + .Endif + Jmp NoXlate ;@@ Mark key packet undefined + .Endif + ;&& PTM 3002 BEGIN: + ;&& Setup alternate shift bits + ;&& before checking for MultiMake. + Mov EBX,[EBP-8] ;OS2SS-Put XlateTable offset into a base reg. + Mov AH,[EBX].Char3 ;OS2SS-Get alternate shift bits from entry. + Mov EBX,[EBP-4] ;OS2SS- + Mov BX,[EBX].XTFlags1 ;OS2SS-@@ Get the XT header flags + Test [ESI].DDFlags,SecondaryKey ;OS2SS-Check if G keyboard dup key. + .If <nz> ;Is it? + Test CX,RShiftFlag+LShiftFlag ;@@ Is the key a shift key + .If <nz> ;@@ If so.... + + ;@@ If it is then this is coming from a "G" keyboard secondary + ;@@ pad key, and NUMLOCK is on. This combination sends + ;@@ the following scan codes: E0, left shift make, E0, + ;@@ pad key make, E0, pad key break, E0, left shift break. + ;@@ In this case, we don't want to change the shift flags + ;@@ anywhere. + + Jmp NoXlate ;@@ Mark key packet undefined + + .Endif ;@@ Endif shift key + + Xchg CH,AH ;Yes, so swap shift bit mask with alternate. + .Endif ;&& PTM 3002 END: + ;@@ PTM 6446 - BEGIN + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check if this is a MAKE + .If <z> ;@@ If it is + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> AND + Test Byte Ptr [EDI].XHotKeyShift+1,CH ;OS2SS-@@ Check if this key down + ;@@ In the system already + ;@@ for Ctl and Alt + .If <nz> OR ;@@ If it is OR + Test CX,RShiftFlag+LShiftFlag ;@@ Is the key a shift key + .If <nz> AND ;@@ If so AND.... + Test [ESI].DDFlags,SecondaryKey ;OS2SS-@@ And if this is NOT a secondary + .If <z> AND ;@@ shift key code sent by a pad + ;@@ key (PTM 7506) + Test Byte Ptr [EDI].XHotKeyShift,CL ;OS2SS-@@ Check if this key down + .If <nz> ;@@ If it is + ;@@ In the system already + ;@@ PTM 3138 BEGIN: Flag as shift + ;@@ key also, do not put in KIB. + Or [ESI].DDFlags,MultiMake+ShiftMask ;OS2SS-@@ Indicate so and do not + ;@@ update shift state. + ;@@ PTM 3138 END: + Jmp EndActionCase ;@@ Complete translation + .Endif ;@@ Endif this is a multimake + .Endif ;@@ Endif this is a key make + ;@@ PTM 6446 - END + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check if this is key break. + .If <nz> AND ;If it is AND... + Test DX,CX ;And is a key make pending for this shift flag? + .If <z> ;If not, this key belongs in another SG. + Xor AL,AL ;Indicate not our keystroke. + ClC ;Differentiate from other key-break return above. + Ret ;Quit now. + .Endif + Test CX,RShiftFlag+LShiftFlag+SysRqFlag ;Is the key other... + .If <nz> ;...than Ctl or Alt? + And [EDI].XlateFlags,NOT DumpKeyOnce ;OS2SS-@@ Cancel Dump sequence. + .Endif + Or [ESI].DDFlags,ShiftMask ;OS2SS-@@ Indicate this is a shift key. + Test BX,ShiftLock ;@@ ShiftLock keyboard? + .If <nz> AND ;Is it shift lock and... + Test BX,ShiftToggle ;@@ ShiftToggle Kbd? + .If <z> AND ;@@ Is it NOT shift toggle and.. + Test CL,RShiftFlag+LShiftFlag ;...is this key one of.. + .If <nz> AND ; ...two shift keys? + Test [ESI].DDFlags,KeyBreak ;Check for the key BREAK. + .If <z> ;If not, make sure ShiftLock is off. + And DL,Not CapsTogl ;Turn it off. + + ;@@ Turn it off in the interrupt driven shift state for + ;@@ hot keys also + + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift+1,Not CapsTogl ;OS2SS- + .Endif + .Endif + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check for the key BREAK. + .If <z> ;Is it? + Test CX,DX ;@@ No, its a MAKE + .If <nz> ;@@ So check if we've seen it + Or [ESI].DDFlags,MultiMake ;@@ If we have, indicate so. + .Endif ;@@ Endif Multimake + Or DX,CX ;No, so make sure this shift key's flag is set. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or [EDI].XHotKeyShift,CX ;OS2SS-@@ Also set in hot key shift state + .Endif + jmp NewLbl2 + .Endif ;OS2SS- (A2053)## Endif Alt is down. + ;OS2SS- .Else ;Else process key-break. + .If <AL eq AltFlag> ;Check is this the AltKey? + Xor AL,AL ;@@ Clear out a reg + Xchg AL,[EDI].XAltKeyPad ;OS2SS-@@ Swap with the ALT-nnn accumulator. + Or AL,AL ;Check if any accumulation going on. + .If <nz> ;Was there? + Mov [ESI].Key.Char,AL ;OS2SS-Yes so make a Char from total. + Mov [ESI].Key.Scan,0 ;OS2SS-And make the scan code zero. + ;## PTR AK00370 + Test [ESI].DDFlags,SecondaryKey ;OS2SS-## If this isn't an AltPad seq. + .If <z> ;## with right (secondary) Alt key. + And [ESI].DDFlags,Not (KeyBreak+KeyTypeMask) ;OS2SS-Fix flags. + .Endif ;## Endif right Alt key. + ;## PTR AK00370 + Or _Ow2MiscFlags3,AltPacket ;&& DCR 1713 : Indicate that + ;&& we will send two packets. + ;@@ PTM 6860 - Begin + Call AccCheckout ;@@ check if accent combo going on. + ;@@ PTM 6860 - End + .Endif ;Endif accumulation going on + .Endif ;@@ Endif this was an ALT key + Mov BX,CX ;Save shift key values + Not CX ;Make shift flags into a mask. + ;@@ PTM 3905 - Topview does not send cursor key scan codes through + ;@@ and if this is a Ferrari keyboard, we only get E0s from the + ;@@ secondary cursor keys. Then if the left ALT is pressed + ;@@ to remove the popup, we think the ALT make was actually + ;@@ the right alt make because it was preceded by an E0 from a + ;@@ cursor key. And the break does not clear things up. + + Test BL,RShiftFlag+LShiftFlag ;...is this key one of.. + .If <z> ; ...two shift keys? + Test DH,BH ;@@ Check if this key is actually + ;@@ the one that's down + .If <z> ;@@ If it isn't + And DH,CL ;@@ Clear bit for key actually down + .Else ;@@ Else we've got the right key + And DH,CH ;Clear upper byte shift flag for this shift key. + .Endif + Test DH,AH ;Check if other shift key is down. + .If <z> ;Is primary or secondary shift key still down? + And DL,CL ;No, so clear lower byte shift flag. + .Endif + + ;@@ PTM 4075 - A system wide word for the shift state + ;@@ must be maintained that is only modified by interrupts + ;@@ and is only used for Hot Key Checking + + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. ;&& translations are independent. + .If <nz> + Push EDX ;OS2SS-@@ Save new key packet shift + Mov DX,[EDI].XHotKeyShift ;OS2SS-@@ Get hot key shift state + Test DH,BH ;@@ Check if this key is actually + ;@@ the one that's down + .If <z> ;@@ If it isn't + And DH,CL ;@@ Clear bit for key actually down + .Else ;@@ Else we've got the right key + And DH,CH ;Clear upper byte shift flag for this shift + .Endif + Test DH,AH ;Check if other shift key is down. + .If <z> ;Is primary or secondary shift key still down? + And DL,CL ;No, so clear lower byte shift flag. + .Endif + Mov [EDI].XHotKeyShift,DX ;OS2SS- + Pop EDX ;OS2SS- + .Endif + .Else + And DL,CL ;No, so clear lower byte shift flag. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift,CL ;OS2SS- + .Endif + .Endif + ;OS2SS- .Endif +NewLbl2: ;OS2SS- + Mov [ESI].Key.Shift,DX ;OS2SS-Also save in Key rec. + + Test _Ow2MiscFlags3,AltPacket ;&& DCR 1713 BEGIN: Check to see if an + ;&& Alt-Num operation was completed. + .If <nz> ;&& If so then.. + ;## PTR AK00370: BEGIN + Test [ESI].DDFlags,SecondaryKey ;OS2SS-## If this is an AltPad seq. + .If <z> ;## with Left (normal) Alt key. + Call AltPadPacket ;&& setup second of two packets for + ;&& Alt-Numpad sequence. + .Else ;## Else this is an AltPad seq. with + ;## the right (secondary) Alt key. + Test [ESI].DDFlags,KeyBreak ;OS2SS-## If this is a break for the right + .If <nz> ;## Alt key then... + Or _Ow2MiscFlags3, SecAltNumPad ;## Flag that we will have to send an + .Endif ;## accumulation packet after break + ;## of the Alt key in Int Handler. + .Endif ;## PTR AK00370: END + .Endif ;&& DCR 1713: END + ;## AltPadPacket is only called for + ;## AltNumPad seq. with left Alt. key. + ;## PTR AK00370: END + + Jmp EndActionCase ;Go to bottom of Xlate Action case table. + +ScrollLock: ;The SCROLL LOCK key. + ;@@ This is special case of ToggleKeys because of Ctl-Break. + ;@@ On an Enhanced keyboard, the Ctl-Break sends the following + ;@@ set of scan codes: + ;@@ Ctrl make-E0-ScrollLock make-E0-ScrollLock break-Ctrl break + ;@@ so we must check if it was an AT keyboard or preceded by EO + ;@@ before identifying it as Ctl-Break. + + And [EDI].XlateFlags,NOT DumpKeyOnce ;OS2SS-@@ Cancel Dump sequence. + Test [EDI].XlateFlags,SecPrefix ;OS2SS-@@ Check if secondary key + .If <nz> OR ;@@ If it is OR... + Test _Ow2MiscFlags,EnhancedKbd ;@@ Check if enhanced kbd + .If <z> OR ;@@ OR...If it's a regular kbd +;$$ +;$$ 'IDFlags' does not exist in the 1.2 ABIOS +;$$ version. We need to get this information from KbdHWIDs. +;$$ + +;$$ Test IDFlags, SuperSport ;## Check if it is a 122 kbd + + .If < _Ow2KbdHWIDs e 0AB85h > ;$$ If it is a 122 kbd + + Test DL,CtlFlag ;Check if Ctl also pressed. + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + ;@@ PTM 5992 - End + Mov [ESI].Key.Scan,0 ;OS2SS-Set Ctl-Break extended code. + ;Tell dev driver it's the BREAK KEY. + Or [ESI].DDFlags,BreakKey ;OS2SS-@@ + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check if this is the key break. + .If <nz> ;If so, clear Scroll Lock down bit in Packet & PSG. + And Byte Ptr [ESI].Key.Shift+1,Not (ScrollFlag ShR 8) + ;OS2SS-@@ Clear bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift+1,Not (ScrollFlag ShR 8) ;OS2SS- + .Endif + .Else ;Set Scroll Lock down bit in packet & PSG. + Or Byte Ptr [ESI].Key.Shift+1,(ScrollFlag ShR 8) + ;OS2SS-@@ Set bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or Byte Ptr [EDI].XHotKeyShift+1,(ScrollFlag ShR 8) ;OS2SS- + .Endif + .Endif + Jmp EndActionCase ;@@ PTM 4106: Leave translation. + .Else ;Not Ctl-Break, fall thru to ToggleKey processing. + Jmp ToggleKey ;@@ + .Endif + .Else ;Not Ctl-Break, fall thru to ToggleKey processing. + Jmp ToggleKey ;@@ + .Endif +NumLock: ;The NUMLOCK key. + ;@@ We must check if this is the Enhanced keyboard + ;@@ which will emulate Ctrl being down (PseudoCtl Flag + ;@@ will be set) for the PAUSE key or an AT kbd w/ Ctl down. + + Test [EDI].XlateFlags,PseudoCtl ;OS2SS-@@ Check if secondary kbd + ;@@ emuating the Ctl key + .If <nz> OR ;@@ If it is OR... + ;## PTM 3128 BEGIN: + .If <_Ow2KbdHWIDs ne FERRARI_P> AND ;## If it's not an 88/89 AND + .If <_Ow2KbdHWIDs ne FERRARI_G> AND ;## If it's not a 101/102 AND + .If <BX ne JAGUAR> AND ;1.3-## If it's not a 122 Key JAGUAR + ;## PTM 3128 END: + Test DL,CtlFlag ;@@ Check if Ctl also pressed. + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;OS2SS-@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + ;@@ PTM 5992 - End + ;@@ PTM 4004: + Test DL, AltFlag ;@@ Check for Alt key down. + .If < z > ;@@ No alt key, process Ctl-NumLk, + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check if this is a key break + .If <nz> + And [EDI].XlateFlags,Not PseudoCtl ;OS2SS-@@ Clear flag + + Test _Ow2MiscFlags3,PauseLatch ;&& PTM 2344 BEGIN: If the NumLock + ;&& make preceded the Ctrl make + .If <z> ;&& then this is not the break of + ;&& of a Pause. Therefore do not + ;&& throw the key away. Treat it + Jmp ToggleKey ;&& as a normal shift break. + .Endif ;&& Endif this was not the Pause. + And _Ow2MiscFlags3,Not PauseLatch ;&& Reset the Pause sequence flag. + ;&& PTM 2344 END: + + Jmp NoXlate ;@@ Mark Key Packet undefined + .Else ;@@ Else it's a make scan code + Or [ESI].DDFlags,PauseKey ;OS2SS-@@ So tell dd it's the PAUSE KEY. + Or _Ow2MiscFlags3,PauseLatch ;&& PTM 2344: Flag the make of the + ;&& NumLock to be used as a latch. + Jmp EndActionCase ;@@ Completed translation + .Endif ;@@ Endif key break or not + .Else ;&& PTM 2383: Else Alt is down + And [EDI].XlateFlags,Not PseudoCtl ;OS2SS-@@ Clear flag + Test DL,CtlFlag ;&& so test if Ctrl is also down. + .If <z> ;&& If Ctrl is not down then the + Jmp NoXlate ;&& key sequence Alt-Pause Key + ;&& is undefined. + .Endif ;&& Endif Ctrl is down with Alt. + .Endif ;@@ End alt key down check. PTM 4004 + .Endif + Test DL,CtlFlag ;Check if Ctl also pressed. + ;@@ for this KCB + ;@@ PTM 5992 - Begin + .If <nz> OR ;@@ Is it OR? + Test [EDI].XHotKeyShift,CtlFlag ;@@ Also check in interrupt shift + ;@@ state + .If <nz> AND ;@@ Is it being held down at all + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + ;@@ PTM 5992 - End + Test DL,AltFlag ;Yes, check Alt key also. + .If <nz> ;Is it? + Test [EDI].XlateFlags,DumpKeyOnce ;OS2SS-@@ Yes check if second time. + .If <nz> ;Is it? + Or [ESI].DDFlags,DumpKey ;OS2SS-@@ So tell dd it's the DUMP KEY. + .Else + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check if this's key break. + .If <nz> ;Is it? + Or [EDI].XlateFlags,DumpKeyOnce ;OS2SS-@@ Yes indicate seen once. + .Endif + .Endif + .Endif + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check if this's the key break. + .If <nz> ;If so, clear Num Lock down bit in Packet & PSG. + And Byte Ptr [ESI].Key.Shift+1,Not (NumFlag ShR 8) + ;@@ Clear bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift+1,Not (NumFlag ShR 8) ;OS2SS- + .Endif + Test [EDI].XlateFlags,DumpKeyOnce ;OS2SS-@@ PTM 7078 - Begin + .If <z> ;@@ If this wasn't the dump key + Or [ESI].DDFlags,ShiftMask ;OS2SS-@@ PTM 6937 + ;@@ Indicate this is a shift key. + .Endif ;@@ PTM 7078 - End + + Test _Ow2MiscFlags3,PauseLatch ;&& PTM 2344 BEGIN: If the NumLock + ;&& make preceded the Ctrl make + .If <z> ;&& then this is not the break of + ;&& of a Pause. Therefore do not + ;&& throw the key away. Treat it + Jmp ToggleKey ;&& as a normal shift break. + .Endif ;&& Endif this was not the Pause. + And _Ow2MiscFlags3,Not PauseLatch ;&& Reset the Pause sequence flag. + ;&& PTM 2344 END: + + .Else ;Set Num Lock down bit in packet & PSG. + Or Byte Ptr [ESI].Key.Shift+1,(NumFlag ShR 8) ;OS2SS- + ;@@ Set bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or Byte Ptr [EDI].XHotKeyShift+1, (NumFlag ShR 8) ;OS2SS- + .Endif + Test [EDI].XlateFlags,DumpKeyOnce ;OS2SS-@@ PTM 7078 - Begin + .If <z> ;@@ If this wasn't the dump key + Or [ESI].DDFlags,ShiftMask ;OS2SS-@@ PTM 6937 + ;@@ Indicate this is a shift key. + .Endif ;@@ PTM 7078 - End + Or _Ow2MiscFlags3,PauseLatch ;&& PTM 2344: Flag the make of the + ;&& NumLock to be used as a latch. + .Endif + .Else NEAR ;Not Ctl-Numlock, fall thru to common Toggle key check. + +CapsLock: ;The CapsLock key itself. +ToggleKey: ;Or any general Toggle key. + Mov EBX,[EBP-8] ;OS2SS-Get translate table offset. + Test [ESI].DDFlags,SecondaryKey ;OS2SS-Check if G kbd dup key. + .If <nz> ;Is it? + Mov CH,[EBX].Char3 ;OS2SS-Yes, so get mask for that key. + .Endif + And [EDI].XlateFlags,NOT DumpKeyOnce ;OS2SS-@@ Cancel Dump sequence. + Mov EBX,[EBP-4] ;OS2SS-Get translate table offset. + Or [ESI].DDFlags,ShiftMask ;OS2SS-@@ Indicate this is a shift key. + Test Word Ptr [EBX+XTFlags1],ShiftLock ;OS2SS-ShiftLock type? + .If <nz> AND ;Is it shift lock and... + Test Word Ptr [EBX+XTFlags1],ShiftToggle ;OS2SS-@@ ShiftLock Toggle? + .If <z> AND ;@@ Is it shift lock latch and... + .If <AL eq CapsTogl> ;...is it the CapsLock key? + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check for the key BREAK. + .If <z> ;If not, set ShiftLock on. + Or [ESI].Key.Shift,CX ;OS2SS-And in the Key rec. + ;@@ Set bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or [EDI].XHotKeyShift,CX ;OS2SS- + .Endif + .Else ;On key-break, only clear DOWN bit. + Not CX ;Make shift bits a mask. + And Byte Ptr [ESI].Key.Shift+1,CH ;OS2SS-And in the Key rec. + ;@@ Clear bit in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift+1,CH ;OS2SS- + .Endif + .Endif + .Else ;This is not a shift-lock keyboard. + Test [ESI].DDFlags,KeyBreak ;OS2SS-Check for the key BREAK. + .If <nz> ;Is it? + Not CX ;Yes, so make shift bits a mask. + And Byte Ptr [ESI].Key.Shift+1,CH ;OS2SS-And in the Key rec. + + ;@@ Clear bit in hot key shift status also + + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + And Byte Ptr [EDI].XHotKeyShift+1,CH ;OS2SS- + .Endif + And [EDI].ToggleFlags,CL ;OS2SS-@@ Clear latch for this key. + .Else + Or Byte Ptr [ESI].Key.Shift+1,CH ;OS2SS-And in the Key rec. + + ;@@ Set bit in hot key shift status also + + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Or Byte Ptr [EDI].XHotKeyShift+1,CH ;OS2SS- + .Endif + Test [EDI].ToggleFlags,CL ;OS2SS-@@ Check if seen this key yet. + .If <z> ;Have we? + Or [EDI].ToggleFlags,CL ;OS2SS-@@ No so set latch saying we have. + Xor Byte Ptr [ESI].Key.Shift,CL ;OS2SS-And in the Key rec. + ;@@ Set Latch in hot key shift status also + Test [EDI].OtherFlags,InterruptTime ;OS2SS-&& PTM 3191: Make sure KBDXlate + ;&& translations are independent. + .If <nz> + Xor Byte Ptr [EDI].XHotKeyShift,CL + .Endif + .Else ;Otherwise this is a repeat of the make. + Or [ESI].DDFlags,MultiMake ;OS2SS-So indicate so. + .Endif + .Endif + .Endif + .Endif ;Endif from NumLock plus Ctl test above. + Jmp EndActionCase ;Go bottom of Xlate Action case table. + +SpecKeyCS: ;@@ Special key for NLS support. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;@@ Check if Alt key down. + .If <nz> ;@@ Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + ;@@ PTM 5024 - Begin + Call CheckExtended ;@@ See if new extended code + ;@@ is defined + .If <c> ;## If it is ... + Jmp EndActionCase ;## the key combo is defined + .Endif ;## Endif there was one defined + Jmp NoXlate ;## get out now. + .Endif ;## Endif normal Alt. + Jmp SKCSEnd ;## + .Else NEAR ;@@ Else no Alt key down + Test DL,RShiftFlag+LShiftFlag ;@@ Is a shift key down + Mov EBX,[EBP-8] ;OS2SS-Get translate table offset. + .If <nz> ;@@ Yes so, + Test DL,CapsTogl ;@@ See if capslock is on + .If <nz> ;@@ If it is + Mov AL,[EBX].Char5 ;OS2SS-@@ Use character 5 + .Else ;@@ If it is not then... + Mov AL,CH ;@@ Use char 2 + .Endif ;@@ Endif CapsLock is on. + .Else NEAR ;@@ Else no shift key down + Test DL,CapsTogl ;@@ See if capslock is on + .If <nz> ;@@ If it is + Mov AL,[EBX].Char4 ;OS2SS-@@ Use character 4 + .Endif + .Endif ;## Endif shift key down. + Test DL, CtlFlag ;## Check if Ctrl is down, + .If <nz> ;## If it is then... + Call SKCtlCheck ;## Check for spec. Ctrl code. + .Endif ;## Endif Ctrl is down. + .Endif ;## Endif Alt is down. +SKCSEnd: + .If <AL b 8> AND ;## If this was an accent key index + .If <AL a 0> ;## + Or [ESI].DDFlags,AccentKey ;OS2SS-## Indicate this is an + ;## unprocessed accent. + Test [ESI].DDFlags,KeyBreak ;OS2SS-## Check for the key BREAK. + .If <z> ;## Is it? + And [EDI].XPSGFlags,Not PrevAccent;OS2SS-## No, clear prev accent num + Or Byte Ptr [EDI].XPSGFlags,AL ;OS2SS-## Save accent num for next key + .Endif + .Else ;## Else this is not an accent table entry + Mov [ESI].Key.Char,AL ;OS2SS-## Put character into key packet + Call AccCheckOut ;## Check for valid accent + .Endif ;## Endif this is an accent index. + Jmp EndActionCase ;## Go to bottom of Xlate Action case table. + +SpecKeyAS: ;@@ Special key for NLS support. + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <nz> ;@@ + Call UnPauseChk ;Go check if in pause state. + .Endif ;@@ + Test DL,AltFlag ;@@ Check if Alt key down. + .If <nz> ;@@ Is it? + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + Mov EBX,[EBP-8] ;OS2SS-Get translate table offset. + Mov AL,[EBX].Char4 ;OS2SS-@@ Use char4 + Mov [ESI].Key.Scan,AL ;OS2SS-@@ Put it in the scan code field to + Jmp SpecKeyEnd ;@@ Go to merge + .Endif + .Else ;@@ Else no Alt key down + Test DL,RShiftFlag+LShiftFlag ;@@ Is a shift key down + .If <nz> ;@@ Yes so, + Mov AL,CH ;@@ Use char 2 + Jmp SpecKeyEnd ;@@ Go to merge + .Endif ;@@ Else no shift key down + .Endif ;## Endif Alt key down. + Test DL, CtlFlag ;## Check if Ctrl is down + .If <nz> ;## If it is then... + Call SKCtlCheck ;## Check for special control code. + .Endif ;## Endif Ctrl is down + +SpecKeyEnd: + .If <AL b 8> AND ;@@ If this was an accent key index + .If <AL a 0> + Or [ESI].DDFlags,AccentKey ;OS2SS-@@ Indicate this is an + ;@@ unprocessed accent. + Test [ESI].DDFlags,KeyBreak ;OS2SS-@@ Check for the key BREAK. + .If <z> ;@@ Is it? + And [EDI].XPSGFlags,Not PrevAccent ;OS2SS-## No, clear prev accent num + Or Byte Ptr [EDI].XPSGFlags,AL ;OS2SS-## Save accent num for next key + .Endif + .Else ;## Else this is not an accent table entry + Mov [ESI].Key.Char,AL ;OS2SS-## Put character into key packet + Call AccCheckOut ;## Check for vaild accent. + .Endif ;## Endif this is an accent table entry. + Jmp EndActionCase ;## Go to bottom of Xlate Action case table. + +XShiftKey: ;Extended shift key (for DBCS use). +XToggleKey: ;Extended toggle key (for DBCS use). + +NoXlate: ;Invalid action code, no translate done. + And [EDI].XlateFlags,NOT DumpKeyOnce ;OS2SS-@@ Cancel Dump sequence. + Or [ESI].DDFlags,UndefKey ;OS2SS-@@ Mark this key undefined. + + +EndActionCase: ;*** This is the end of the Xlate Action case table ***. + + Test [ESI].DDFlags, UndefKey ;OS2SS-## DCR 357: BEGIN + .If <z> AND ;## This logic tests to see if the + Test _Ow2MiscFlags3, AltPacket ;## current keypacket is for an + .If <z> ;## extended keystroke or not. + Mov BL,[ESI].Key.Char ;OS2SS-## If it is then bit 1 of the Status + .If <BL eq 0> OR ;## field in the keypacket is turned + Test [EDI].XlateFlags, SecPrefix ;OS2SS-## on. + .If <nz> ;## + Or [ESI].Key.Status, EXTENDEDCODE ;OS2SS-## Turn the bit on in the Status. + .Endif ;## + .Endif ;## DCR 357: END + ;## PTR B702484: BEGIN + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + ;## create an extra packet for the E0. + .If <nz> AND ;## PTR B702484: END + Test [EDI].XlateFlags,SecPrefix ;OS2SS-&& PTM 2382: Test to see if an E0 or E1 + ;&& came before this packet. + .If <nz> AND ;&& If E0 or E1 did precede then, + Test [EDI].XlateFlags, E1Prefix ;OS2SS-&& Check to see if it was an E0. + .If <z> ;&& If it was the E0 then, + Or _Ow2MiscFlags3, E0Packet ;&& signal an E0 packet coming up. + Call MakeE0Packet ;&& Call MakeE0Packet to manufacture an + ;&& extra packet to precede this one. + .Endif ;&& Endif an E0 preceded this packet. + + + Mov BX,[ESI].DDFlags ;OS2SS-&& PTM 965 - Always zero out + .If <BX eq ShiftMask> OR ;&& char and scan fields for + .If <BX eq ShiftMask+KeyBreak> OR ;&& shift packets + .If <BX eq ShiftMask+SecondaryKey> OR + .If <BX eq ShiftMask+KeyBreak+SecondaryKey> + Mov Word Ptr [ESI].Key.Char, 0 ;OS2SS-@@ PTM 2244: Zero out Character/ + ;@@ Scan Code fields in CharData + ;@@ Record for Japan compatability. + And [ESI].Key.Status, NOT EXTENDEDCODE + ;OS2SS-## DCR 357: Do NOT indicate that this + ;## is an extended scan instead of + ;## an E0 char., if this is a shift pac. + Test [EDI].XInputMode,SHIFTREPORT ;OS2SS-&& (P13303) Are we in Shift rep. mode? + .If <nz> ;@@ If so...... + Or [ESI].Key.Status,1 ;OS2SS-@@ Flag as shift report packet + .Endif ;@@ Endif Shift Report + .Endif ;@@ Endif Shift Report + And [EDI].XlateFlags,Not SecPrefix+E1Prefix ;OS2SS-Clear indicator. + Mov AL,Byte Ptr [ESI].MonFlags+1 ;OS2SS-Get the original scan code back. + Stc ;OS2SS- + Ret + +KbdXlate Endp ;-------------------------------------------------------/ + +Public CapsCheck +CapsCheck Proc ;-----------------------------------------------------\ +;************** START OF SPECIFICATIONS ******************************** +;* * +;* Subroutine Name: CapsCheck * +;* * +;* Descriptive Name: Check IF character should be shifted * +;* * +;* Function: This routine checks IF a characer should be shifted. * +;* It checks IF CapsLock, ShiftLock or the shift key * +;* effect this key. IF the char should be shifted, * +;* then it places Char2 in AL. * +;* * +;* Notes: * +;* * +;* Entry Point: CapsCheck Linkage: Near * +;* * +;* Input: AL = CHAR1 from translate table * +;* CH = CHAR2 from translate table * +;* DX = ShiftFlags * +;* AH = Scan code w/ break bit cleared * +;* BX = SHIFTLOCK & CAPSLOCK effect indicators * +;* * +;* Exit-Normal: AL = ASCII character after shift checking * +;* * +;* Exit-Error: None * +;* * +;* Effects: AX, BX, registers, carry flag changed. * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + Xor BH,BH ;## Prepare a byte. + Test DL,RShiftFlag+LShiftFlag ;## Check if Shift key down. + .If <nz> ;## Is one of them? + Or BH,CapsTogl ;## Yes, so prepare to check Capslock. + .Endif ;## Endif a shift key is down + And DL,BL ;## Isolate Capslock flag. + Push EBX ;OS2SS-## Save BX for now + Mov EBX,[EBP-4] ;OS2SS-## And put it in BX + Test [EBX].XTFlags1,ShiftLock ;OS2SS-## Check if Shiftlock kbd + Pop EBX ;OS2SS-## Restore BX + .If <nz> ;## If it is then... + Test BL, CapsTogl ;## Check if shift lock effects key type. + .If <nz> ;## If it does then... + Or BH,DL ;## either Capslock, Shift, + ;## or both will cause shifting + .Else ;## If it does not + Or BH,BH ;## fix the zero flag. + .Endif ;## Endif shift lock effects key type. + .Else ;## Else its a CapsLock kbd + Test BL, CapsTogl ;## Check if CapsLock effects key type. + .If <nz> ;## If it does then... + Xor BH,DL ;## Add Capslock & ShiftFlag to decide state. + .Else ;## If it does not + Or BH,BH ;## fix the zero flag. + .Endif ;## Endif CapsLock effects key type. + .Endif ;## Endif shift lock keyboard. + .If <nz> ;## Should key be capitalized? + Mov AL,CH ;## Yes, so use Char2. + .Endif ;## + Ret + +CapsCheck Endp ;-------------------------------------------------------/ + +Public SKCtlCheck +SKCtlCheck Proc ;-----------------------------------------------------\ +;************** START OF SPECIFICATIONS ******************************** +;* * +;* Subroutine Name: SKCtlCheck * +;* * +;* Descriptive Name: Check IF character has special control code * +;* * +;* Function: This routine checks IF a character or scan code has a * +;* special control code associated with it. * +;* IF it does then it sets the appropriate ASCII/scan * +;* codes. * +;* * +;* Notes: Ctl key is already known to be down * +;* * +;* Entry Point: SKCtlCheck Linkage: Near * +;* * +;* Input: AH = Scan code w/ break bit cleared * +;* * +;* Exit-Normal: AL = ASCII character after special control code check * +;* * +;* Exit-Error: None * +;* * +;* Effects: AX * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + .If <AH eq 3> ;@@ Is this Ctl-2? + Xor AL,AL ;@@ Yes, so set extended code. + .ElseIf <AH eq 7> ;@@ Is this Ctl-6? + Mov AL,30 ;@@ Yes, so set ASCII "RS" code. + ;@@ PTR B702484 and PTM 5024 - Begin + .ElseIf <AH eq 15> ;@@ Is this Ctl-Tab? + Xor AL,AL ;@@ Yes, so set extended code. + Mov [ESI].Key.Scan,94h ;OS2SS-@@ Yes, so set extended code. + ;@@ PTR B702484 and PTM 5024 - End + .ElseIf <AH eq 26> ;@@ Is this Ctl-[? + Mov AL,27 ;@@ Yes, so set "Esc" code. + .ElseIf <AH eq 27> ;@@ Is this Ctl-]? + Mov AL,29 ;@@ Yes, so set ASCII "GS" code. + .ElseIf <AH eq 43> ;@@ Is this Ctl-\? + Mov AL,28 ;@@ Yes, so set ASCII "FS" code. + .ElseIf <AL eq "-"> ;@@ Is this Ctl-dash? + Mov AL,31 ;@@ Yes, so set ASCII "US" code. + ;1.3-## PTR 4862 BEGIN: + .ElseIf <AH eq 12> ;1.3-## Is this the key for scan code 12. + Mov AL,31 ;1.3-## Yes, so set ASCII "US" code. + ;1.3-## PTR 4862 END. + .ElseIf <AL eq " "> ;@@ Is this the space key? + ;Value in AL is correct. ;@@ Yes, so leave as is. + .Else ;@@ If here, combo is undefined. + Mov AL, -1 ;@@ Go mark Undefined. + Or [ESI].DDFlags,UndefKey ;OS2SS-## PTR B702142 Mark this key undefined. + .Endif ;@@ + Ret ;@@ Endif Ctl key down check + +SKCtlCheck Endp ;-------------------------------------------------------/ + +Public SKAltCheck +SKAltCheck Proc ;-----------------------------------------------------\ +;************** START OF SPECIFICATIONS ******************************** +;* * +;* Subroutine Name: SKAltCheck * +;* * +;* Descriptive Name: Check IF character has extended code * +;* * +;* Function: This routine checks IF a characer or scan code has a * +;* special extended code associated with it. * +;* IF it does then it sets the appropriate ASCII/scan * +;* codes. * +;* * +;* Notes: Alt key is already known to be down * +;* * +;* Entry Point: SKAltCheck Linkage: Near * +;* * +;* Input: DI = Per Session Data Area Address * +;* SI = Key Packet Address * +;* DX = ShiftFlags * +;* AH = Scan code w/ break bit cleared * +;* * +;* Exit-Normal: AL = ASCII character after special control code check * +;* * +;* Exit-Error: None * +;* * +;* Effects: AX, BX, registers, carry flag changed. * +;* * +;* Internal References: * +;* Routines: AltGraphCheck CheckExtended * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + And [EDI].XlateFlags,Not Use3Index ;OS2SS-@@ Use Char3 if AltGraph + Call AltGraphCheck ;@@ Process if AltGraph + Test [EDI].XlateFlags,NormalAlt ;OS2SS-@@ Check if it's not the AltGraph + .If <nz> ;@@ If alt key is normal Alt + .If <AL eq " "> ;@@ Is this the space key? + Mov [ESI].Key.Char,AL ;OS2SS-@@ Yes, so leave as is. + ;@@ PTM 5024 - Begin + .Else ;@@ Set extended code for others + Call CheckExtended ;@@ Go check if this is new extended + ;@@ scan code + .If <nc> ;@@ If it is, everything is set up + ;@@ otherwise it's old so + Add AH,118 ;@@ calculate extended code. + Mov [ESI].Key.Scan,AH ;OS2SS-@@ Put extended code in Key rec. + .Endif + ;@@ PTM 5024 - End + .Endif + .Else ;@@ else it was AltGraph + Mov [ESI].Key.Char,AL ;OS2SS-@@ Yes, so leave as is. + .Endif ;@@ Endif UNDEFINED or normal ALT + Ret + +SKAltCheck Endp ;-----------------------------------------------------/ + +Public AccCheckOut +AccCheckout Proc ;-----------------------------------------------------\ +;*********************************************************************** +;* * +;* Subroutine Name: AccCheckout * +;* * +;* Descriptive Name: Check and Process Valid Accents * +;* * +;* Function: This routine is called from KbdXlate and checks if an * +;* accent key was hit prior to the current key. If so, * +;* a check is made to see if the key is affected by that * +;* accent and if it is * +;* the value specified by the accent table entry is put in * +;* the key packet and control returns to KbdXlate. * +;* If the key is not affected by that accent, then it is * +;* put in a seperate keypacket and control returns to * +;* KbdXlate to process the current key. * +;* * +;* Entry Point: AccCheckout Linkage: Near * +;* * +;* Input: Beginning offset of translate table on the stack * +;* * +;* Exit-Normal: Monitor Key Packet filled in * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: BX * +;* * +;* Internal References: * +;* Routines: BadAccent * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + + ;Check if last key seen was an accent key. + Push EBX ;OS2SS-@@ Save BX + Mov BX,[EDI].XPSGFlags ;OS2SS-&& Get flags from PSG. + And BX,PrevAccent ;&& Isolate previous accent number + ;&& field. + .If <nz> NEAR ;Was there one? + Push EDI ;OS2SS-Yes, save index reg for now. + + ;Translate table offset now four words back on the stack. + + And EBX,0FFh ;OS2SS-Clear upper byte of accent number. + Mov EDI,EBX ;OS2SS-Put accent number in index reg. + Dec EDI ;OS2SS-Accent entry 1 has offset zero. + IMul EDI,AccEntryLen ;OS2SS-Set offset of correct accent table entry. + Add EDI,Accents ;OS2SS-Set offset within overall translate table. + Add EDI,[EBP-4] ;OS2SS-Add offset of translate table itself. + Push ECX ;OS2SS-And save... + Push EDX ;OS2SS-..other regs. + Mov EDX,[EBP-8] ;OS2SS-Get Xlate Operation word. + Mov DX,[EDX].XlateOp ;OS2SS-Get Xlate Operation word. + Mov CL,7 ;Set # of bits to highest accent no. + Sub CL,BL ;Subtract actual accent number. + Mov EBX,EDI ;OS2SS-Save accent table entry offset. + Or DX,DX ;## PTM 2329: Make sure that if the max. number + ;## of accents are used that the flags bits are + ;## correctly for DX. + Shl DX,CL ;Shift Accent Flags left by calculated count. + .If <ns> ;So is this key affected by the previous accent? + Mov ECX,[EBP-4] ;OS2SS-@@ Get the XT header + Mov CX,[ECX].XTFlags1 ;OS2SS-@@ Get the XT header flags. + Mov EDI,[ESP+8] ;OS2SS- Restore OtherFlag index. + Call BadAccent ;No! Go take care of things. + .Else ;Accent flags say this key is accented. + Pop EDX ;OS2SS-Restore shift flags for now. + Push EDX ;OS2SS-But leave them saved. + Push EAX ;OS2SS-Save AX for now. + Mov AL,[ESI].Key.Char ;OS2SS-@@ PTM 6860 + Mov ECX,20 ;OS2SS-Set max pairs in Accent table entry. + Add EDI,AcMap1 ;Point to first pair in accent table entry. +TLoop: ;Top of loop looking for current scan code in accent table entry. + Mov DX,[EDI] ;OS2SS-Pick up next pair. + .If <DX eq 0> ;@@ PTM 6860 - Begin If we are at the end + ;@@ of the list + Mov ECX,1 ;OS2SS-@@ Set end of loop condition + .ElseIf <AL eq DL> ;@@ Else Have we found a match? + Jmp Short XLoop ;Yes, so exit from loop. + .Endif + Add EDI,2 ;Increment our pointer. + Loop TLoop ;Repeat. +XLoop: Or CX,CX ;Check if no match before end of entry. + .If <z> ;Is that true? + Mov ECX,[EBP-4] ;OS2SS-@@ Get the XT header + Mov CX,[ECX].XTFlags1 ;OS2SS-@@ Get the XT header flags. + Mov EDI,[ESP+12] ;OS2SS- Restore OtherFlag index. + Call BadAccent ;No! Go take care of things. + .Else ;Else we found our accented character value! + Mov [ESI].Key.Char,DH ;OS2SS-Put it in CharData rec. +; Mov [ESI].Key.Scan,0 ;OS2SS-Zero scan code for accented chars. + Or [ESI].DDFlags,AccentedKey ;OS2SS-Indicate accent affected key. + .Endif + Pop EAX ;Restore AX. + .Endif + Pop EDX ;Restore the... + Pop ECX ;..altered regs. + Pop EDI ;Restore PSG index. + And [EDI].XPSGFlags,Not PrevAccent ;OS2SS-@@ Clear previous accent field. + .Endif + Pop EBX ;@@ Restore BX + Test [ESI].DDFlags,AccentedKey ;OS2SS-Check if accent affected key. + .If <nz> OR ;Did it? + .If <[ESI].DDFlags e BadKeyCombo> ;OS2SS-@@ check if this was an invalid combo? + Pop EBX ;OS2SS-Throw away original return address. + Jmp EndActionCase ;And quit now. + .Endif + Ret ;Else return. + +AccCheckout Endp ;-----------------------------------------------------/ + +Public BadAccent +BadAccent Proc ;------------------------------------------------------\ + +;*********************************************************************** +;* * +;* Subroutine Name: BadAccent * +;* * +;* Descriptive Name: Process an Accent that does Not Apply to a Char * +;* * +;* Function: Set up a KeyPacket that must be passed as a standalone * +;* character * +;* * +;* Entry Point: BadAccent Linkage: Near * +;* * +;* Input: SI = @ of KeyPacket * +;* Empty KeyPacket2 immediately follows KeyPacket * +;* ES:BX = @ of Accent Table Entry for accent to pass * +;* CX = Translate Table Header Flags * +;* * +;* Exit-Normal: Monitor Key Packet filled in * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: CX * +;* * +;* Internal References: * +;* Routines: CopyPacket * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + Push ESI ;OS2SS- + Push EDI ;OS2SS- + Test CX,AccentPass ;@@ Check if key packets should be passed + .If <z> OR ;@@ If not... OR + Test [EDI].OtherFlags,InterruptTime ;OS2SS-@@ If it's interrupt time + .If <z> ;@@ Tell Int Handler to beep + Mov [ESI].DDFlags,BadKeyCombo ;OS2SS-@@ or strategy proc to return invalid parm. + .Else ;@@ Else key packets should be passed + Call CopyPacket ;&& PTM 2382: Make a copy of the first + ;&& packet into the extra packet. + + ;Now ESI has incremented to point to KeyPacket2. + Mov Byte Ptr [ESI].MonFlags+1,0 ;OS2SS-Zero the original scan code field. + Mov [ESI].DDFlags,AccentedKey+AccentKey ;OS2SS-@@ Indicate printable accent char. + Mov CX,[EBX] ;OS2SS-Get char/scan to pass from accent entry. + Mov Word Ptr [ESI].Key.Char,CX ;OS2SS-Put in KeyPacket2. + Mov Byte Ptr [ESI].MonFlags,-1 ;OS2SS-Tell KBDDD to pass two packets. + .Endif + Pop EDI + Pop ESI + Ret + +BadAccent Endp ;------------------------------------------------------/ + +Public AltPadPacket +AltPadPacket Proc ;---------------------------------------------\ + +;*********************************************************************** +;* * +;* Subroutine Name: AltPadPacket * +;* * +;* Descriptive Name: Set up a KeyPacket for the Break of the Alt Key * +;* * +;* Function: A monitor packet is set up so that on Alt-Numpad * +;* sequences the break of the Alt key is not lost. * +;* * +;* Entry Point: AltPadPacket Linkage: Near * +;* * +;* Input: SI = @ of KeyPacket * +;* Empty KeyPacket2 immediately follows KeyPacket * +;* * +;* Exit-Normal: Monitor Key Packet filled in * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: None, Registers are preserved. * +;* * +;* Internal References: * +;* Routines: CopyPacket * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + ;&& DCR 1713 BEGIN: + Push ESI ;OS2SS-&& Save the registers + Push EDI ;OS2SS-&& that we will use here + Push ECX ;OS2SS-&& to duplicate the first packet. + Call CopyPacket ;&& PTM 2382: Make a copy of the first + ;&& packet into the extra packet. + + ;&& Now ESI has been incremented to point to KeyPacket2. + + Or [ESI].DDFlags,ShiftMask+KeyBreak ;OS2SS-&& Indicate that this is shift packet. + Mov word ptr [ESI].Key.Char,0 ;OS2SS-&& Zero out the original char field. + Mov Byte Ptr [ESI].MonFlags,-1 ;OS2SS-&& Tell KBDDD to pass two packets. + Pop ECX ;OS2SS-&& Restore registers. + Pop EDI ;OS2SS-&& + Test [EDI].XInputMode,SHIFTREPORT ;OS2SS-&& Are we in shift report mode ? + .If <nz> ;&& If so then... + Or [ESI].Key.Status,1 ;OS2SS-&& flag this as a shift report packet. + .Endif ;&& Endif a shift report packet. + Pop ESI ;OS2SS-&& + Ret ;&& DCR 1713 END: + +AltPadPacket Endp ;------------------------------------------------------/ + +Public MakeE0Packet +MakeE0Packet Proc ;---------------------------------------------\ + +;*********************************************************************** +;* * +;* Subroutine Name: MakeE0Packet * +;* * +;* Descriptive Name: Set up a KeyPacket for the E0 scan code * +;* * +;* Function: A monitor packet is set up for the E0 scan code packet * +;* that should have preceded the current scan code. * +;* * +;* Note: This routine added for CP111 PTM 2382. An E0 keypacket * +;* is now manufactured and passed in combination with the * +;* packet that follows the E0 scan code. This change was * +;* made in order to ensure that the E0 packet would always * +;* end up in the correct screen group. * +;* * +;* Entry Point: MakeE0Packet Linkage: Near * +;* * +;* Input: SI = @ of KeyPacket * +;* Empty KeyPacket2 immediately follows KeyPacket * +;* * +;* Exit-Normal: Monitor Key Packet filled in * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: None, Registers are preserved. * +;* * +;* Internal References: * +;* Routines: CopyPacket * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + ;&& PTM 2382 BEGIN: + Push ESI ;OS2SS-&& Save the registers + Push EDI ;OS2SS-&& that we will use here + Push ECX ;OS2SS-&& to duplicate the first packet. + + Call CopyPacket ;&& PTM 2382: Make a copy of the first + ;&& packet into the extra packet. + + ;&& Now ESI has been incremented to point to KeyPacket2. + + Mov Byte Ptr [ESI].MonFlags,0 ;OS2SS-&& Init monitor flags low byte to zero. + Mov Byte Ptr [ESI].MonFlags+1,OtherKey ;OS2SS-&& Put Scan Code in MonFlags high byte. + Mov [ESI].DDFlags, 0 ;OS2SS-&& Clear the flag bits for new packet. + Or [ESI].DDFlags, SecPrefixCode ;OS2SS-&& Indicate this is a secondary prefix. + Mov CX, [_Ow2KCBShFlgs] ;&& Get the saved Shift Flags. + Mov [ESI].Key.Shift,CX ;OS2SS-&& Put Shift Flags in packet. + Mov [ESI].Key.Char,0 ;OS2SS-&& Zero out the original char field. + Mov [ESI].Key.Scan,0 ;OS2SS-&& Zero out the original Scan field. + + Mov Byte Ptr [ESI].MonFlags,-1 ;OS2SS-&& Tell KBDDD to pass two packets. + + Pop ECX ;OS2SS-&& Restore registers. + Pop EDI ;OS2SS-&& + Pop ESI ;OS2SS-&& + Ret ;&& PTM 2382 END: + +MakeE0Packet Endp ;------------------------------------------------------/ + +Public CopyPacket +CopyPacket Proc ;-----------------------------------------------------\ +;*********************************************************************** +;* * +;* Subroutine Name: CopyPacket * +;* * +;* Descriptive Name: Copy KeyPacket1 to KeyPacket2 * +;* * +;* Function: This routine is called from BadAccent, AltPadPacket, * +;* and MakeE0Packet. It's purpose is to duplicate the * +;* first keypacket to the extra keypacket which follows * +;* the first. This is done so that the Interrupt Handler * +;* can pass both keypackets on the same interrupt. * +;* * +;* Entry Point: CopyPacket Linkage: Near * +;* * +;* Input: SI = @ of KeyPacket * +;* Empty KeyPacket2 immediately follows KeyPacket * +;* * +;* Exit-Normal: Monitor Key Packet copyed * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + Mov ECX,KeyPacketLen ;OS2SS-&& Set length of packets. + Mov EDI,ESI ;OS2SS-&& Point to... + Add EDI,ECX ;OS2SS-&& ...KeyPacket2. +CopyLoop: ;&& Loop copying packet. + Mov CH,[ESI] ;OS2SS-&& Get byte from first packet. + Mov [EDI],CH ;OS2SS-&& Put in Packet2. + Xor CH,CH ;&& Fix counter reg. + Inc ESI ;OS2SS-&& Increment source ptr. + Inc EDI ;OS2SS-&& Increment dest ptr. + Loop CopyLoop ;&& Repeat for all bytes. + Ret + +CopyPacket Endp ;------------------------------------------------------/ + + +Public UnPauseChk +UnPauseChk Proc ;-----------------------------------------------------\ +;*********************************************************************** +;* * +;* Subroutine Name: UnPauseChk * +;* * +;* Descriptive Name: Check For Key to End Pause Mode * +;* * +;* Function: Checks if key signalled the end of Pause mode. * +;* If it did, this routine resets the flag and * +;* returns to the the end of KbdXlate. Otherwise * +;* it just returns * +;* * +;* Entry Point: UnPauseChk Linkage: Near * +;* * +;* Input: None * +;* * +;* Exit-Normal: Nothing affected * +;* * +;* Exit-Error: N/A * +;* * +;* Effects: Nothing * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + + And [EDI].XlateFlags,NOT DumpKeyOnce ;OS2SS-@@ If here, also cancels Dump sequence. + Test [EDI].XPSGFlags,NowPaused ;OS2SS-@@ Check if in paused state. + .If <nz> AND ;Are we? + Test [ESI].DDFlags,KeyBreak ;OS2SS-Yes, and is this a key Make? + .If <z> ;Is it? + And [ESI].DDFlags, NOT KeyTypeMask ;OS2SS-&& PTM 3940: Indicate Wake-Up key. + Or [ESI].DDFlags,WakeUpKey ;OS2SS-&& PTM 3940: + Pop ECX ;OS2SS-Purge return address. + Jmp EndActionCase ;That's all. + .Endif + Ret + +UnPauseChk Endp ;-----------------------------------------------------/ + +Public AltGraphCheck +AltGraphCheck Proc ;@@ ------------------------------------------\ +;@@ B +;************** START OF SPECIFICATIONS ******************************** +;* * +;* Subroutine Name: AtlGraphCheck * +;* * +;* Descriptive Name: Process an Alt-Graph character input * +;* * +;* Function: This routine processes a key type that is affected * +;* by Alt-Graph if an Alt key is down. If the Alt key * +;* down is not the Alt-Graph key or the Alt-Graph combo, * +;* it will set the carry and return. * +;* * +;* Notes: Upon entry to this routine, an Alt key is known to be * +;* down * +;* * +;* Entry Point: AltGraphCheck Linkage: Near * +;* * +;* Input: DI = Per Session Data Area Address * +;* SI = Key Packet Address * +;* ES = Translate Table Selector * +;* SS:SP+2 = Offset of translate table * +;* BP = Offset of scan code entry in translate table * +;* DX = ShiftFlags * +;* CharToUse = Which character to use if Alt-Graph is down * +;* * +;* Exit-Normal: Carry set = process as normal Alt key down * +;* Carry clear = key has been processed * +;* AL= ASCII character to use * +;* OR * +;* CharToUse = UNDEFINED * +;* Exit-Error: None * +;* * +;* Effects: AX, registers, carry flag changed. * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** +;@@ E + Push EBX ;OS2SS- + Push ESI ;OS2SS- + Mov EBX, [EBP-8] ;OS2SS-Pointer to XlateTable entry for this scan code. + Mov ESI, [EBP-4] ;OS2SS-Pointer to XlateTable top + + .If <[EBX].Char3 eq 0> ;OS2SS-@@ If Char 3 is 0 + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate that only Normal ALT is down + .Else NEAR ;@@ Else Alt-Graph character is defined + Mov AL,[EBX].Char3 ;OS2SS-@@ Get Char3 from translate table + .If <[ESI].XTKbdType eq ATKbd> ;OS2SS-@@ If an AT kbd translate table + Test [ESI].XTFlags1,ShftAlt ;OS2SS-@@ check if we should use Shift-Alt as + .If <nz> ;@@ as the Alt-Graph combo, if so... + Test DL,RShiftFlag+LShiftFlag ;@@ Check if a shift key is down + .If <nz> ;@@ If it is + And [EDI].XlateFlags,Not NormalAlt ;OS2SS-@@ specify to caller + ;@@ that it's Alt-Graph + Test [EDI].XlateFlags,Use3Index ;OS2SS-@@ if we're supposed to use it + .If <nz> ;@@ as an index + Mov CL,AL + Xor AL,AL + .Endif + .Else ;@@ supposed to use Shift-Alt combo, but shift isn't down + Mov AL,[EBX].Char1 ;OS2SS-@@ Restore Char1 + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate that only Normal ALT is down + .Endif ;@@ Endif shift key down check + .Else ;@@ Shift-Alt is not Alt-Graph combo, so it is Ctl-Alt + Test DL,CtlFlag ;@@ Check if a ctl key is down + .If <nz> ;@@ If it is + And [EDI].XlateFlags,Not NormalAlt ;OS2SS-@@ specify to caller + ;@@ that it's Alt-Graph + Test [EDI].XlateFlags,Use3Index ;OS2SS-@@ if we're supposed to use it + .If <nz> ;@@ as an index + Mov CL,AL + Xor AL,AL + .Endif + .Else ;@@ supposed to use Ctl-Alt combo, but Ctl isn't down + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate only Normal ALT is down + Mov AL,[EBX].Char1 ;OS2SS-@@ Restore Char1 + .Endif ;@@ Endif Ctlt key down check + .Endif ;@@ Endif Shift-Alt is Alt-Graph combo or not check + .Else ;@@ Else it's an Enhanced Keyboard + Test [ESI].XTFlags1,AltGrafL ;OS2SS-@@ check if we should use Left Alt key + .If <nz> ;@@ as the Alt-Graph key, if so... + Test DX,LAltFlag ;@@ Check if left Alt key is down + .If <nz> ;@@ If it is + And [EDI].XlateFlags,Not NormalAlt ;OS2SS-@@ specify to caller + ;@@ that it's Alt-Graph + Test [EDI].XlateFlags,Use3Index ;OS2SS-@@ if we're supposed to use it + .If <nz> ;@@ as an index + Mov CL,AL + Xor AL,AL + .Endif + .Else ;@@ supposed to use Left Alt key, but it isn't the one down + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate that only + ;@@ Normal ALT is down + Mov AL,[EBX].Char1 ;OS2SS-@@ Restore Char1 + .Endif ;@@ Endif Left Alt key down check + .Else ;@@ Left Alt Key is not Alt-Graph key, so check if it is Right + + Test [ESI].XTFlags1,AltGrafR ;OS2SS-@@ check if we should use Right Alt key + .If <nz> ;@@ as the Alt-Graph key, if so... + Test DX,RAltFlag ;@@ Check if right Alt Key is down + .If <nz> ;@@ If it is + And [EDI].XlateFlags,Not NormalAlt ;OS2SS-@@ specify that it's Alt-Graph + Test [EDI].XlateFlags,Use3Index ;OS2SS-@@ if we're supposed to use it + .If <nz> ;@@ as an index + Mov CL,AL + Xor AL,AL + .Endif + .Else ;@@ supposed to use Right Alt Key, but it isn't down + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate that only Normal + Mov AL,[EBX].Char1 ;@@ Restore Char1 + .Endif ;@@ Endif Right Alt Key down check + .Else ;@@ Else Alt-Graph is neither Left nor Right Alt Key + Or [EDI].XlateFlags,NormalAlt ;OS2SS-@@ indicate that only Normal + Mov AL,[EBX].Char1 ;@@ Restore Char1 + .Endif ;@@ Endif Right key is Alt-Graph or not check + .Endif ;@@ Endif Left ALt key is Alt-Graph or not check + .Endif ;@@ Endif At or Enhanced Keyboard + .Endif ;@@ Endif Char 3 is 0 or not + Pop ESI ;OS2SS- + Pop EBX ;OS2SS- + Ret + +AltGraphCheck Endp ;@@-------------------------------------------/ + +Public CheckExtended +CheckExtended Proc ;@@ ------------------------------------------\ +;@@ B +;************** START OF SPECIFICATIONS ******************************** +;* * +;* Subroutine Name: CheckExtended * +;* * +;* Descriptive Name: Checks for extended codes. * +;* * +;* Function: This routine checks if a scan code has an associated * +;* extended scan code that goes with it. If it does, * +;* it sets the appropriate fields (scan & char) in the * +;* key packet and returns. * +;* * +;* Notes: Upon entry to this routine, an Alt key is known to be * +;* down * +;* * +;* Entry Point: CheckExtended Linkage: Near * +;* * +;* Input: DI = Per Session Data Area Address * +;* SI = Key Packet Address * +;* DX = ShiftFlags * +;* AH = Scan code w/ break bit cleared * +;* * +;* Exit-Normal: Carry set = Key has new extended code associated w/ it * +;* Carry clear = Key does not have new extended code * +;* * +;* Exit-Error: None * +;* * +;OS2SS- Effects: AX, registers, carry flag changed. * +;* * +;* Internal References: * +;* Routines: None * +;* * +;* External References: * +;* Routines: None * +;* * +;*********************************************************************** + Push EBX ;OS2SS- + ;@@ PTM 5024 - BEGIN + Mov EBX, Offset NewExtSC ;OS2SS-@@ Get the offset of the table that + ;@@ contains the scan codes that have new + ;@@ extended codes associated with them + Mov CX,0 ;@@ Start at beginning of table + .While <CX ne NewExtSCLen> ;@@ While we haven't searched entire table + .If <AH eq [EBX]> ;OS2SS-@@ If we found the scan code + Mov [ESI].Key.Char,0 ;OS2SS-@@ Say its an extended + Mov CX,NewExtSCLen ;@@ Set end of loop condition + Mov EBX,0 ;OS2SS-@@ Set found indicator + .Else ;@@ Else this isn't the scan code + Inc CX ;@@ Increment loop counter + Inc EBX ;OS2SS-@@ Increment pointer into table + .Endif ;@@ Endif found scan code we're looking for + .EndWhile ;@@ EndWhile we haven't searched entire table + .If <EBX eq 0> ;OS2SS-@@ If we found the scan code + .If <AH eq 0Fh> ;@@ If it's the tab key + Mov [ESI].Key.Scan,0A5h ;OS2SS-@@ Set extended code for tab key + .Endif ;@@ Endif it's the tab key + Stc ;@@ Tell caller extended char. exists. + .Else ;@@ Else we didn't find Scan code in table + Clc ;@@ tell caller + .Endif ;@@ + Pop EBX ;OS2SS- + Ret ;@@ + ;@@ PTM 5024 - END +;@@ E +CheckExtended Endp ;@@-------------------------------------------/ + +_TEXT ends + End diff --git a/private/os2/os2ses/i386/lakbd.asm b/private/os2/os2ses/i386/lakbd.asm new file mode 100644 index 000000000..74ee8d807 --- /dev/null +++ b/private/os2/os2ses/i386/lakbd.asm @@ -0,0 +1,788 @@ +;; SCCSID = @(#)lakbd.asm 12.1 88/03/18 + Page 58,132 + Title LAKBD - Translate Table Structure for CP/DOS 1.1 + Name LAKBD +;********************* Start of Specifications ************************* +;* * +;* Source File Name: LAKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Latin America * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Change Activity: * +;* * +;* PTM 3114 - Changed incorrect AccEnt definition of I-Acute * +;* in the 850 AT table (from DEh to D6h). pjr * +;* * +;* PTM 3378 - Moved definition of L3 '@' char from scan code 2 * +;* to scan code 3 in the 437 AT table. pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK LAKBD; ** +;** RELOC LAKBD.EXE LAKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + + db 1,2,3 + db 0,-1 + +Public _Ow2LA437001 ;*************** +_Ow2LA437001 Label Byte ;Beginning of the table. LA 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,1,0,0,AT,Len1,'LA','171' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1',0ADh, 0, 0, 0 ; 2 1 ADh + KeyDef 4, 0,0,0,0,0,0,0, '2',0A8h, '@', 0, 0 ; 3 2 A8h + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '/', 0, 0, 0 ; 7 6 / + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 (accents) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, ']', 0, 3 ; 27 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 A4h A5h + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 40 ; : + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 43 87h 80h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 51 , ? + KeyDef 4, 0,0,0,0,0,0,0, '.', '!', 0, 0, 0 ; 52 . ! + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 53 ' " + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '^', 114, 0, 0, 0 ; 55 ^ PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",26,27,26,0,26,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <0FEh,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'`',27,29,27,0,27,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2LA437001 + +;***************************************************************************** + +Public _Ow2LA437011 ;*************** +_Ow2LA437011 Label Byte ;Beginning of the table. LA 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,0,0,EN,Len2,'LA','171' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 FAh + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', '\', 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0A8h,0ADh, 0, 0, 0 ; 13 A8h ADh + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 26 acute diaresis + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 n N (tilde) + KeyDef 11, 0,0,0,0,0,0,0, '{', '[', 3, 0, 3 ; 40 { [ + KeyDef 4, 0,0,0,0,0,0,0, 7Ch,0F8h,0AAh, 0, 0 ; 41 7Ch F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, '}', ']', 4, 0, 4 ; 43 } ] + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",26,27,26,0,26,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <0FEh,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',40,0,0,0,40,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2LA437011 + +;***************************************************************************** + +Public _Ow2LA850000 ;*************** +_Ow2LA850000 Label Byte ;Beginning of the table. LA 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,1,0,0,AT,Len3,'LA','171' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1',0ADh, 0, 0, 0 ; 2 1 ADh + KeyDef 4, 0,0,0,0,0,0,0, '2',0A8h, '@', 0, 0 ; 3 2 A8h + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '/', 0, 0, 0 ; 7 6 / + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 (accents) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, ']', 0, 3 ; 27 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 A4h A5h + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 40 ; : + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 43 87h 80h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 51 , ? + KeyDef 4, 0,0,0,0,0,0,0, '.', '!', 0, 0, 0 ; 52 . ! + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 53 ' " + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '^', 114, 0, 0, 0 ; 55 ^ PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0EFh,26,27,26,0,26,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,' ',0EFh> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'`',27,29,27,0,27,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2LA850000 + +;***************************************************************************** + +Public _Ow2LA850010 ;*************** +_Ow2LA850010 Label Byte ;Beginning of the table. LA 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'LA','171' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 FAh + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', '\', 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0A8h,0ADh, 0, 0, 0 ; 13 A8h ADh + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', '@', 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 26 acute diaresis + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', '~', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 n N (tilde) + KeyDef 11, 0,0,0,0,0,0,0, '{', '[', 3, 0, 3 ; 40 { [ + KeyDef 4, 0,0,0,0,0,0,0, 7Ch,0F8h,0AAh, 0, 0 ; 41 7Ch F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, '}', ']', 4, 0, 4 ; 43 } ] + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,26, 27,26, 0,26 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh +db ' ',0EFh, 0,0, 0,0, 0,0, 0,0, 0,0 +db 0,0, 0,0 + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',40,0,0,0,40,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'`',43,28,43,0,43,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2LA850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/nlkbd.asm b/private/os2/os2ses/i386/nlkbd.asm new file mode 100644 index 000000000..3a1c1daf5 --- /dev/null +++ b/private/os2/os2ses/i386/nlkbd.asm @@ -0,0 +1,784 @@ +;; SCCSID = @(#)nlkbd.asm 10.3 87/06/12 + Page 58,132 + Title NLKBD - Translate Table Structure for CP/DOS 1.1 + Name NLKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: NLKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for the Netherlands * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* * +;* 2/13/87 - Corrected 850 AT LED key keydefs per PTM 2270. pjr * +;* * +;* 3/13/87 - PTM 3234: Corrected "bracket" key problem in * +;* Enhanced keyboards (unshifted/shifted reversed). pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK NLKBD; ** +;** RELOC NLKBD.EXE NLKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + + db 0,-1 + +Public _Ow2NL437001 ;*************** +_Ow2NL437001 Label Byte ;Beginning of the table. NL 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,AT,Len1,'NL','143' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2NL437001 + +;****************************************************************************** + +Public _Ow2NL437011 ;*************** +_Ow2NL437011 Label Byte ;Beginning of the table. NL 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,0,0,EN,Len2,'NL','143' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0FBh, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#',0FCh, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$',0ACh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0ABh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0F3h, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '_', 9Ch, 0, 0 ; 8 7 _ + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '{', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '}', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', "'", 0, 0, 0 ; 11 0 ' + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', '\', 0, 0 ; 12 / ? + KeyDef 11, 0,0,0,0,0,0,0, 0F8h, 1, 2, 0, 1 ; 13 F8h tilde + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,1,1,1,1,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 14h, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,1,1,1,1,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,1,1,1,1,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,1,1,1,1,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 0, 0, 3 ; 26 diaresis circumflex + KeyDef 4, 0,0,0,0,0,0,0, '*',0B3h, 0, 0, 0 ; 27 * unbroken bar + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,1,1,1,1,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S',0E1h, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, '+',0F1h, 0, 0, 0 ; 39 + ñ + KeyDef 11, 0,0,0,0,0,0,0, 5, 6, 0, 0, 5 ; 40 acute grave + KeyDef 4, 0,0,0,0,0,0,0, '@', 15h,0AAh, 0, 0 ; 41 @ 15h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 43 < > + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z',0AEh, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X',0AFh, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C', 9Bh, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 1,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':',0FAh, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 53 - = + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,1,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, ']', '[', '|', 0, 0 ; 86 ] [ + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'~',13,0,0,0,131,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <0F7h,13,0,0,0,131,'c',87h,'C',80h,' ',0F7h> + +AccEnt <0F9h,26,27,26,0,26,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',26,27,26,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <"'",40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',40,0,0,0,0,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <> + +Len2 EQU $ - _Ow2NL437011 + +;***************************************************************************** + +Public _Ow2NL850000 ;*************** +_Ow2NL850000 Label Byte ;Beginning of the table. NL 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,0,AT,Len3,'NL','143' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2NL850000 + +;***************************************************************************** + +Public _Ow2NL850010 ;*************** +_Ow2NL850010 Label Byte ;Beginning of the table. NL 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'NL','143' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!',0FBh, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#',0FCh, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$',0ACh, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0ABh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0F3h, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '_', 9Ch, 0, 0 ; 8 7 _ + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '{', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '}', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', "'", 0, 0, 0 ; 11 0 ' + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', '\', 0, 0 ; 12 / ? + KeyDef 11, 0,0,0,0,0,0,0, 0F8h, 1, 2, 0, 1 ; 13 F8h tilde + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,1,1,1,1,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R',0F4h, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,1,1,1,1,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,1,1,1,1,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,0,1,1,1,1,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 0, 0, 3 ; 26 diaresis circumflex + KeyDef 4, 0,0,0,0,0,0,0, '*', '|', 0, 0, 0 ; 27 * | + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,0,1,1,1,1,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S',0E1h, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, '+',0F1h, 0, 0, 0 ; 39 + ñ + KeyDef 11, 0,0,0,0,0,0,0, 5, 6, 0, 0, 5 ; 40 acute grave + KeyDef 4, 0,0,0,0,0,0,0, '@',0F5h,0AAh, 0, 0 ; 41 @ F5h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 43 < > + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z',0AEh, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X',0AFh, 0, 0 ; 45 x X + KeyDef 1, 0,1,0,0,0,0,0, 'c', 'C',0BDh, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 1,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M',0E6h, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':',0FAh, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 53 - = + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,1,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, ']', '[',0DDh, 0, 0 ; 86 ] [ + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'~',13,0,0,0,131,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> + +AccEnt <0F7h,13,0,0,0,131,'c',87h,'C',80h,' ',0F7h> + +AccEnt <0F9h,26,27,26,0,26,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',26,27,26,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +;AccEnt #5 +db 0EFh,40, 0,0, 0,40 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh +db ' ',0EFh, 0,0, 0,0, 0,0, 0,0, 0,0 +db 0,0, 0,0 + +AccEnt <'`',40,0,0,0,0,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <> + +Len4 EQU $ - _Ow2NL850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/nokbd.asm b/private/os2/os2ses/i386/nokbd.asm new file mode 100644 index 000000000..88dbcf3c0 --- /dev/null +++ b/private/os2/os2ses/i386/nokbd.asm @@ -0,0 +1,791 @@ +;; SCCSID = @(#)nokbd.asm 12.1 88/03/18 + Page 58,132 + Title NOKBD - Translate Table Structure for CP/DOS 1.1 + Name NOKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: NOKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Norway * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK NOKBD; ** +;** RELOC NOKBD.EXE NOKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +;CtlPadMap Label Byte +Public _Ow2NO865001 ;*************** +_Ow2NO865001 Label Byte ;Beginning of the table. NO 865 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 865,1,0,0,0,1,0,1,0,0,AT,Len1,'NO','155' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, ':', ';', 0 ; 39 o O (slash) + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, '"', "'", 0 ; 40 aE dipthong + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2NO865001 + +;****************************************************************************** + +Public _Ow2NO865011 ;*************** +_Ow2NO865011 Label Byte ;Beginning of the table. NO 865 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 865,0,0,1,0,1,0,1,0,0,EN,Len2,'NO','155' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0AFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', 0, 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, '\', 2, 1, 0, 1 ; 13 \ grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, 0, 0, 0 ; 39 o O (slash) + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, 0, 0, 0 ; 40 aE dipthong + KeyDef 4, 0,0,0,0,0,0,0, 7Ch, 15h, 0, 0, 0 ; 41 | section + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + + + +; Accent #3 +db 0FEh,27, 29,27, 0,27 +db 'a',84h, 'e',89h, 'i',8Bh , 'o',94h +db 'u',81h, 'y',98h, 'A',8Eh, 'O',99h, 'U',9Ah +db 0,0, 0,0, 0,0, 0,0, 0,0 +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2NO865011 + +;***************************************************************************** + +Public _Ow2NO850000 ;*************** +_Ow2NO850000 Label Byte ;Beginning of the table. NO 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,1,0,0,0,0,0,1,0,0,AT,Len3,'NO','155' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, ':', ';', 0 ; 39 o O (slash) + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, '"', "'", 0 ; 40 aE dipthong + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2NO850000 + +;***************************************************************************** + +Public _Ow2NO850010 ;*************** +_Ow2NO850010 Label Byte ;Beginning of the table. NO 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'NO','155' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0CFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', 0, 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, '\', 2, 1, 0, 1 ; 13 \ grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 9Bh, 9Dh, 0, 0, 0 ; 39 o O (slash) + KeyDef 3, 0,0,0,0,0,0,0, 91h, 92h, 0, 0, 0 ; 40 aE dipthong + KeyDef 4, 0,0,0,0,0,0,0, 7Ch,0F5h, 0, 0, 0 ; 41 | section + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'~',27,29,27,0,0,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2NO850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/pokbd.asm b/private/os2/os2ses/i386/pokbd.asm new file mode 100644 index 000000000..70da908fc --- /dev/null +++ b/private/os2/os2ses/i386/pokbd.asm @@ -0,0 +1,773 @@ +;; SCCSID = @(#)pokbd.asm 12.1 88/03/18 + Page 58,132 + Title POKBD - Translate Table Structure for CP/DOS 1.1 + Name POKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: POKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Portugal * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK POKBD; ** +;** RELOC POKBD.EXE POKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +;CtlPadMap Label Byte +; db 119,-1,132,-1 +Public _Ow2PO860001 ;*************** +_Ow2PO860001 Label Byte ;Beginning of the table. PO 860 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 860,0,0,0,0,1,0,0,0,0,AT,Len1,'PO','163' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2PO860001 + +;****************************************************************************** + +Public _Ow2PO860011 ;*************** +_Ow2PO860011 Label Byte ;Beginning of the table. PO 860 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 860,0,0,1,0,1,0,1,0,0,EN,Len2,'PO','163' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 15h, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0AEh,0AFh, 0, 0, 0 ; 13 . / + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,1,1,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, '+', '*', 1, 0, 1 ; 26 + * diaresis + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 0, 0, 2 ; 27 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 39 c C (cedilla) + KeyDef 4, 0,0,0,0,0,0,0, 0A7h,0A6h, 0, 0, 0 ; 40 A7h A6h + KeyDef 4, 0,0,0,0,0,0,0, '\', 7Ch, 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 4, 5, 0, 0, 4 ; 43 tilde circumflex + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0FEh,26,27,26,0,26,'u',81h,'U',9Ah> + +AccEnt <"'",27,29,27,0,27,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',86h,'E',90h,'I',8Bh,'O',9Fh,'U',96h,' ',"'"> + +AccEnt <"`",27,29,27,0,0,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',91h,'E',92h,'I',98h,'O',0A9h,'U',9Dh,' ',"`"> + +AccEnt <'~',43,28,43,0,43,'a',84h,'o',94h,'n',0A4h,'A',8Eh,'O',99h,'N',0A5h,' ','~'> + +AccEnt <'^',43,28,43,0,0,'a',83h,'e',88h,'o',93h,'A',8Fh,'E',89h,'O',8Ch,' ','^'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2PO860011 + +;***************************************************************************** + +Public _Ow2PO850000 ;*************** +_Ow2PO850000 Label Byte ;Beginning of the table. PO 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,0,AT,Len3,'PO','163' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2PO850000 + +;***************************************************************************** + +Public _Ow2PO850010 ;*************** +_Ow2PO850010 Label Byte ;Beginning of the table. PO 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'PO','163' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$',0F5h, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0AEh,0AFh, 0, 0, 0 ; 13 . / + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, '+', '*', 1, 0, 1 ; 26 + * diaresis + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 0, 0, 2 ; 27 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 39 c C (cedilla) + KeyDef 4, 0,0,0,0,0,0,0, 0A7h,0A6h, 0, 0, 0 ; 40 A7h A6h + KeyDef 4, 0,0,0,0,0,0,0, '\', 7Ch, 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 11, 0,0,0,0,0,0,0, 4, 5, 0, 0, 4 ; 43 tilde circumflex + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0F9h,26,27,26,0,26,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +; AccEnt #2 +db 0EFh,27, 29,27, 0,27 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh +db ' ',0EFh, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <"`",27,29,27,0,0,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ',"`"> + +AccEnt <'~',43,28,43,0,43,'a',0C6h,'o',0E4h,'n',0A4h,'A',0C7h,'O',0E5h,'N',0A5h,' ','~'> + +AccEnt <'^',43,28,43,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2PO850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/sfkbd.asm b/private/os2/os2ses/i386/sfkbd.asm new file mode 100644 index 000000000..8c3af0ea3 --- /dev/null +++ b/private/os2/os2ses/i386/sfkbd.asm @@ -0,0 +1,788 @@ +;; SCCSID = @(#)sfkbd.asm 12.1 88/03/18 + Page 58,132 + Title SFKBD - Translate Table Structure for CP/DOS 1.1 + Name SFKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: SFKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Swiss French * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK SFKBD; ** +;** RELOC SFKBD.EXE SFKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +; db 119,-1,132,-1 +; db 115,-1,116,-1 +Public _Ow2SF437001 ;*************** +_Ow2SF437001 Label Byte ;Beginning of the table. SF 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,1,1,0,AT,Len1,'SF','150F' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 0, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h,0F8h, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 15h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,0,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 8Ah, 81h, '[', 8Ah, 81h ; 26 8Ah 81h + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,0,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 82h, 94h, '{', 82h, 94h ; 39 82h 94h + KeyDef 20, 0,0,0,0,0,0,0, 85h, 84h, '}', 85h, 84h ; 40 85h 84h + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, 0, 0, 0 ; 43 $ 9Ch + KeyDef 1, 0,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",12,0,0,0,130,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',13,0,0,0,131,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <22h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2SF437001 + +;****************************************************************************** + +Public _Ow2SF437011 ;*************** +_Ow2SF437011 Label Byte ;Beginning of the table. SF 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,1,0,EN,Len2,'SF','150F' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+',0B3h, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h, 0, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0AAh, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 9Bh, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,0,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 8Ah, 81h, '[', 8Ah, 81h ; 26 8Ah 81h + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,0,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 82h, 94h, 0, 82h, 94h ; 39 82h 94h + KeyDef 20, 0,0,0,0,0,0,0, 85h, 84h, '{', 85h, 84h ; 40 85h 84h + KeyDef 4, 0,0,0,0,0,0,0, 15h,0F8h, 0, 0, 0 ; 41 15h F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, '}', 0, 0 ; 43 $ 9Ch + KeyDef 1, 0,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",12,0,0,0,130,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',13,0,0,0,131,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <22h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2SF437011 + +;***************************************************************************** + +Public _Ow2SF850000 ;*************** +_Ow2SF850000 Label Byte ;Beginning of the table. SF 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,1,1,0,AT,Len3,'SF','150F' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 0, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h,0F8h, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0F5h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 8Ah, 81h, '[',0D4h, 9Ah ; 26 8Ah 81h + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 82h, 94h, '{', 90h, 99h ; 39 82h 94h + KeyDef 20, 0,0,0,0,0,0,0, 85h, 84h, '}',0B7h, 8Eh ; 40 85h 84h + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, 0, 0, 0 ; 43 $ 9Ch + KeyDef 1, 1,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,12, 0,0, 0,130 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',13,0,0,0,131,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2SF850000 + +;***************************************************************************** + +Public _Ow2SF850010 ;*************** +_Ow2SF850010 Label Byte ;Beginning of the table. SF 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,1,0,EN,Len4,'SF','150F' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 7Ch, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h, 0, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0AAh, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/',0DDh, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(',0BDh, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 8Ah, 81h, '[',0D4h, 9Ah ; 26 8Ah 81h + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 82h, 94h, 0, 90h, 99h ; 39 82h 94h + KeyDef 20, 0,0,0,0,0,0,0, 85h, 84h, '{',0B7h, 8Eh ; 40 85h 84h + KeyDef 4, 0,0,0,0,0,0,0, 0F5h,0F8h, 0, 0, 0 ; 41 F5h F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, '}', 0, 0 ; 43 $ 9Ch + KeyDef 1, 1,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,12, 0,0, 0,130 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',13,0,0,0,131,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2SF850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/sgkbd.asm b/private/os2/os2ses/i386/sgkbd.asm new file mode 100644 index 000000000..52d04e206 --- /dev/null +++ b/private/os2/os2ses/i386/sgkbd.asm @@ -0,0 +1,788 @@ +;; SCCSID = @(#)sgkbd.asm 12.2E% + Page 58,132 + Title SGKBD - Translate Table Structure for CP/DOS 1.2 + Name SGKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: SGKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Swiss German * +;* * +;* * +;* Status: OS/2 Version 1.2 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK SGKBD; ** +;** RELOC SGKBD.EXE SGKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +; db 115,-1,116,-1 +; db 117,-1,118 +Public _Ow2SG437001 ;*************** +_Ow2SG437001 Label Byte ;Beginning of the table. SG 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,1,1,0,AT,Len1,'SG','150G' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 0, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h,0F8h, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 15h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,0,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 81h, 8Ah, '[', 9Ah, 8Ah ; 26 81h 8Ah + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,0,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 94h, 82h, '{', 99h, 82h ; 39 94h 82h + KeyDef 20, 0,0,0,0,0,0,0, 84h, 85h, '}', 8Eh, 85h ; 40 84h 85h + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, 0, 0, 0 ; 43 $ 9Ch + KeyDef 1, 0,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",12,0,0,0,130,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',13,0,0,0,131,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <22h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2SG437001 + +;****************************************************************************** + +Public _Ow2SG437011 ;*************** +_Ow2SG437011 Label Byte ;Beginning of the table. SG 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,1,0,EN,Len2,'SG','150G' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+',0B3h, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h, 0, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0AAh, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 9Bh, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,0,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 81h, 8Ah, '[', 9Ah, 8Ah ; 26 81h 8Ah + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,0,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 94h, 82h, 0, 94h, 82h ; 39 94h 82h + KeyDef 20, 0,0,0,0,0,0,0, 84h, 85h, '{', 8Eh, 85h ; 40 84h 85h + KeyDef 4, 0,0,0,0,0,0,0, 15h,0F8h, 0, 0, 0 ; 41 15h F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, '}', 0, 0 ; 43 $ 9Ch + KeyDef 1, 0,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",12,0,0,0,130,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h> + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'~',13,0,0,0,131,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <22h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2SG437011 + +;***************************************************************************** + +Public _Ow2SG850000 ;*************** +_Ow2SG850000 Label Byte ;Beginning of the table. SG 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,1,1,0,AT,Len3,'SG','150G' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 0, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h,0F8h, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0F5h, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 7Ch, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 81h, 8Ah, '[', 9Ah,0D4h ; 26 81h 8Ah + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 94h, 82h, '{', 99h, 90h ; 39 94h 82h + KeyDef 20, 0,0,0,0,0,0,0, 84h, 85h, '}', 8Eh,0B7h ; 40 84h 85h + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, 0, 0, 0 ; 43 $ 9Ch + KeyDef 1, 1,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,12, 0,0, 0,130 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',13,0,0,0,131,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2SG850000 + +;***************************************************************************** + +Public _Ow2SG850010 ;*************** +_Ow2SG850010 Label Byte ;Beginning of the table. SG 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,1,0,EN,Len4,'SG','150G' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '+', 7Ch, 0, 0 ; 2 1 + + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '*', '#', 0, 0 ; 4 3 * + KeyDef 4, 0,0,0,0,0,0,0, '4', 87h, 0, 0, 0 ; 5 4 c cedilla + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&',0AAh, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/',0DDh, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(',0BDh, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 11, 0,0,0,0,0,0,0, "'", '?', 1, 0, 1 ; 12 ' ? + KeyDef 11, 0,0,0,0,0,0,0, 2, 3, 4, 0, 2 ; 13 circumflex grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,0,1,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 21 z Z + KeyDef 1, 1,1,1,0,1,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,0,1,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,1,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 20, 0,0,0,0,0,0,0, 81h, 8Ah, '[', 9Ah,0D4h ; 26 81h 8Ah + KeyDef 11, 0,0,0,0,0,0,0, 5, '!', ']', 0, 5 ; 27 diaresis ! + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,1,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 20, 0,0,0,0,0,0,0, 94h, 82h, 0, 99h, 90h ; 39 94h 82h + KeyDef 20, 0,0,0,0,0,0,0, 84h, 85h, '{', 8Eh,0B7h ; 40 84h 85h + KeyDef 4, 0,0,0,0,0,0,0, 0F5h,0F8h, 0, 0, 0 ; 41 F5h F8h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '$', 9Ch, '}', 0, 0 ; 43 $ 9Ch + KeyDef 1, 1,0,0,0,1,0,0, 'y', 'Y', 0, 0, 0 ; 44 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,1,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,12, 0,0, 0,130 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'^',13,0,0,0,131,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'~',13,0,0,0,131,'a',0C6h,'n',0A4h,'o',0E4h,'A',0C7h,'N',0A5h,'O',0E5h,' ','~'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2SG850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/spkbd.asm b/private/os2/os2ses/i386/spkbd.asm new file mode 100644 index 000000000..ac49ff1fa --- /dev/null +++ b/private/os2/os2ses/i386/spkbd.asm @@ -0,0 +1,786 @@ +;; SCCSID = @(#)spkbd.asm 10.2 87/06/07 + Page 58,132 + Title SPKBD - Translate Table Structure for CP/DOS 1.1 + Name SPKBD +;********************* Start of Specifications ************************* +;* * +;* Source File Name: SPKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Spain * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Change history: * +;* * +;* PTM 3020: Corrected small o circumflex in accent entry for * +;* the 437 Enhanced table. pjr * +;* * +;* PTM 3317: Moved '@' Char3 value from scan code 2 to scan 3 * +;* on the 437 AT table. pjr * +;* * +;* PTM 3625: Changed I-grave (DEh) to I-acute (D6h) in AT 850 * +;* table AccEnt #1. pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK SPKBD; ** +;** RELOC SPKBD.EXE SPKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +; db 117,-1,118 +; db -1,-1 + +Public _Ow2SP437001 ;*************** +_Ow2SP437001 Label Byte ;Beginning of the table. SP 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,1,0,0,AT,Len1,'SP','172' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1',0ADh, 0, 0, 0 ; 2 1 ADh + KeyDef 4, 0,0,0,0,0,0,0, '2',0A8h, '@', 0, 0 ; 3 2 A8h + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '/', 0, 0, 0 ; 7 6 / + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 (accents) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, ']', 0, 3 ; 27 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 A4h A5h + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 40 ; : + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 43 87h 80h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 51 , ? + KeyDef 4, 0,0,0,0,0,0,0, '.', '!', 0, 0, 0 ; 52 . ! + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 53 ' " + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '^', 114, 0, 0, 0 ; 55 ^ PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,0,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",26,27,26,0,26,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <0FEh,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'`',27,29,27,0,27,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2SP437001 + +;***************************************************************************** + +Public _Ow2SP437011 ;*************** +_Ow2SP437011 Label Byte ;Beginning of the table. SP 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,0,0,EN,Len2,'SP','172' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 7Ch, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3',0FAh, '#', 0, 0 ; 4 3 FAh + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 'ª', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0ADh,0A8h, 0, 0, 0 ; 13 ADh A8h + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,1,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 grave circumflex + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 n N (tilde) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, '{', 0, 3 ; 40 acute diaresis + KeyDef 4, 0,0,0,0,0,0,0, 0A7h,0A6h, '\', 0, 0 ; 41 A7h A6h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, '}', 0, 0 ; 43 c C (cedilla) + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'`',26,27,26,0,26,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <'^',26,27,26,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <"'",40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <0FEh,40,0,0,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2SP437011 + +;***************************************************************************** + +Public _Ow2SP850000 ;*************** +_Ow2SP850000 Label Byte ;Beginning of the table. SP 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,1,0,0,AT,Len3,'SP','172' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1',0ADh, 0, 0, 0 ; 2 1 ADh + KeyDef 4, 0,0,0,0,0,0,0, '2',0A8h, '@', 0, 0 ; 3 2 A8h + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '/', 0, 0, 0 ; 7 6 / + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,1,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 (accents) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, ']', 0, 3 ; 27 (accents) + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 A4h A5h + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 40 ; : + KeyDef 4, 0,0,0,0,0,0,0, '<', '>', '\', 0, 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, 0, 0, 0 ; 43 87h 80h + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '?', 0, 0, 0 ; 51 , ? + KeyDef 4, 0,0,0,0,0,0,0, '.', '!', 0, 0, 0 ; 52 . ! + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 53 ' " + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '^', 114, 0, 0, 0 ; 55 ^ PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <0EFh,26,27,26,0,26,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,' ',0EFh> + +AccEnt <0F9h,26,27,26,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'`',27,29,27,0,27,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2SP850000 + +;***************************************************************************** + +Public _Ow2SP850010 ;*************** +_Ow2SP850010 Label Byte ;Beginning of the table. SP 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'SP','172' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 7Ch, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3',0FAh, '#', 0, 0 ; 4 3 FAh + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 'ª', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', 0, 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', 0, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', 0, 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, "'", '?', 0, 0, 0 ; 12 ' ? + KeyDef 4, 0,0,0,0,0,0,0, 0ADh,0A8h, 0, 0, 0 ; 13 ADh A8h + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,1,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, '[', 0, 1 ; 26 grave circumflex + KeyDef 4, 0,0,0,0,0,0,0, '+', '*', ']', 0, 0 ; 27 + * + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 0A4h,0A5h, 0, 0, 0 ; 39 n N (tilde) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, '{', 0, 3 ; 40 acute diaresis + KeyDef 4, 0,0,0,0,0,0,0, 0A7h,0A6h, '\', 0, 0 ; 41 A7h A6h + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 3, 0,0,0,0,0,0,0, 87h, 80h, '}', 0, 0 ; 43 c C (cedilla) + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 0, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <'`',26,27,26,0,26,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <'^',26,27,26,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <0EFh,40,0,0,0,40,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'A',0B5h,'E',90h,'I',0D6h,'O',0E0h,'U',0E9h,' ',0EFh> + +AccEnt <0F9h,40,0,0,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2SP850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/sukbd.asm b/private/os2/os2ses/i386/sukbd.asm new file mode 100644 index 000000000..fd4051224 --- /dev/null +++ b/private/os2/os2ses/i386/sukbd.asm @@ -0,0 +1,785 @@ +;; SCCSID = @(#)sukbd.asm 12.1 88/03/18 + Page 58,132 + Title SUKBD - Translate Table Structure for CP/DOS 1.1 + Name SUKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: SUKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Finland * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK SUKBD; ** +;** RELOC SUKBD.EXE SUKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +; db -1,-1 + db 119,141,132,142 ;@@ Keypad 7, 8, 9, - (PTM 5024) +Public _Ow2SU437001 ;*************** +_Ow2SU437001 Label Byte ;Beginning of the table. SU 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,1,0,0,0,1,0,1,0,0,AT,Len1,'SU','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, ':', ';', 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, '"', "'", 0 ; 40 a A (diaresis) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2SU437001 + +;****************************************************************************** + +Public _Ow2SU437011 ;*************** +_Ow2SU437011 Label Byte ;Beginning of the table. SU 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,0,0,EN,Len2,'SU','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', 0, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', '\', 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, 15h,0ABh, 0, 0, 0 ; 41 section one-half + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 7Ch, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2SU437011 + +;***************************************************************************** + +Public _Ow2SU850000 ;*************** +_Ow2SU850000 Label Byte ;Beginning of the table. SU 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,1,0,0,0,0,0,1,0,0,AT,Len3,'SU','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, ':', ';', 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, '"', "'", 0 ; 40 a A (diaresis) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2SU850000 + +;***************************************************************************** + +Public _Ow2SU850010 ;*************** +_Ow2SU850010 Label Byte ;Beginning of the table. SU 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'SU','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0CFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', '\', 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, 0F5h,0ABh, 0, 0, 0 ; 41 section one-half + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 7Ch, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2SU850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/svkbd.asm b/private/os2/os2ses/i386/svkbd.asm new file mode 100644 index 000000000..d79bd5426 --- /dev/null +++ b/private/os2/os2ses/i386/svkbd.asm @@ -0,0 +1,785 @@ +;; SCCSID = @(#)svkbd.asm 12.1 88/03/18 + Page 58,132 + Title SVKBD - Translate Table Structure for CP/DOS 1.1 + Name SVKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: SVKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for Sweden * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK SVKBD; ** +;** RELOC SVKBD.EXE SVKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + + db 119,141,132,142 ;@@ Keypad 7, 8, 9, - (PTM 5024) + db 115,143,116,144 ;@@ Keypad 4, 5, 6, + (PTM 5024) +Public _Ow2SV437001 ;*************** +_Ow2SV437001 Label Byte ;Beginning of the table. SV 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,1,0,0,0,1,0,1,0,0,AT,Len1,'SV','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, ':', ';', 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, '"', "'", 0 ; 40 a A (diaresis) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2SV437001 + +;****************************************************************************** + +Public _Ow2SV437011 ;*************** +_Ow2SV437011 Label Byte ;Beginning of the table. SV 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,1,0,0,EN,Len2,'SV','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', 0, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', '\', 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, 15h,0ABh, 0, 0, 0 ; 41 section one-half + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,0,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 7Ch, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <"'",13,0,0,0,131,'a',0A0h,'e',82h,'i',0A1h,'o',0A2h,'u',0A3h,'E',90h,' ',"'"> + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,' ','`'> + +AccEnt <0FEh,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'O',99h,'U',9Ah> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> + +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2SV437011 + +;***************************************************************************** + +Public _Ow2SV850000 ;*************** +_Ow2SV850000 Label Byte ;Beginning of the table. SV 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,1,0,0,0,0,0,1,0,0,AT,Len3,'SV','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, '#', 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', '^', 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '&', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '*', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', '(', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', ')', 0, 0 ; 11 0 = + KeyDef 21, 0,0,0,0,0,0,0, '+', '?', '_', '-', 0 ; 12 + ? + KeyDef 21, 0,0,0,0,0,0,0, 1, 2, '+', '=', 0 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, '{', '[', 0 ; 26 a A (overcircle) + KeyDef 21, 0,0,0,0,0,0,0, 3, 4, '}', ']', 0 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, ':', ';', 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, '"', "'", 0 ; 40 a A (diaresis) + KeyDef 21, 0,0,0,0,0,0,0, '<', '>', 7Ch, '\', 0 ; 41 < > + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 21, 0,0,0,0,0,0,0, "'", '*', '~', '`', 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', '<', 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', '>', 0, 0 ; 52 . : + KeyDef 21, 0,0,0,0,0,0,0, '-', '_', '?', '/', 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,0,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2SV850000 + +;***************************************************************************** + +Public _Ow2SV850010 ;*************** +_Ow2SV850010 Label Byte ;Beginning of the table. SV 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,1,0,0,EN,Len4,'SV','153' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', '@', 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 9Ch, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4',0CFh, '$', 0, 0 ; 5 4 monetary symbol + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', '/', '{', 0, 0 ; 8 7 / + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', '[', 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')', ']', 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '=', '}', 0, 0 ; 11 0 = + KeyDef 4, 0,0,0,0,0,0,0, '+', '?', '\', 0, 0 ; 12 + ? + KeyDef 11, 0,0,0,0,0,0,0, 1, 2, 0, 0, 1 ; 13 acute grave + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 1,1,1,1,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 1,0,1,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 1,1,1,1,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 1,1,1,1,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 1,1,1,1,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 3, 0,0,0,0,0,0,0, 86h, 8Fh, 0, 0, 0 ; 26 a A (overcircle) + KeyDef 11, 0,0,0,0,0,0,0, 3, 4, 5, 0, 3 ; 27 diaresis circumflex + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 1,1,1,1,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 3, 0,0,0,0,0,0,0, 94h, 99h, 0, 0, 0 ; 39 o O (diaresis) + KeyDef 3, 0,0,0,0,0,0,0, 84h, 8Eh, 0, 0, 0 ; 40 a A (diaresis) + KeyDef 4, 0,0,0,0,0,0,0, 0F5h,0ABh, 0, 0, 0 ; 41 section one-half + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, "'", '*', 0, 0, 0 ; 43 ' * + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,1,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', ';', 0, 0, 0 ; 51 , ; + KeyDef 4, 0,0,0,0,0,0,0, '.', ':', 0, 0, 0 ; 52 . : + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 53 - _ + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 1,1,1,1,1,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, ',', 0, 0, 0 ; 83 Del , + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '<', '>', 7Ch, 0, 0 ; 86 < > + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +;AccEnt #1 +db 0EFh,13, 0,0, 0,131 +db 'a',0A0h, 'e',82h, 'i',0A1h, 'o',0A2h, 'u',0A3h, 'y',0ECh +db 'A',0B5h, 'E',90h, 'I',0D6h, 'O',0E0h, 'U',0E9h, 'Y',0EDh, ' ',0EFh +db 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 + +AccEnt <'`',13,0,0,0,131,'a',85h,'e',8Ah,'i',8Dh,'o',95h,'u',97h,'A',0B7h,'E',0D4h,'I',0DEh,'O',0E3h,'U',0EBh,' ','`'> + +AccEnt <0F9h,27,29,27,0,27,'a',84h,'e',89h,'i',8Bh,'o',94h,'u',81h,'y',98h,'A',8Eh,'E',0D3h,'I',0D8h,'O',99h,'U',9Ah,' ',0F9h> + +AccEnt <'^',27,29,27,0,0,'a',83h,'e',88h,'i',8Ch,'o',93h,'u',96h,'A',0B6h,'E',0D2h,'I',0D7h,'O',0E2h,'U',0EAh,' ','^'> + +AccEnt <'~',27,29,27,0,0,'n',0A4h,'N',0A5h,' ','~'> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2SV850010 + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/ukkbd.asm b/private/os2/os2ses/i386/ukkbd.asm new file mode 100644 index 000000000..dbc3c35e6 --- /dev/null +++ b/private/os2/os2ses/i386/ukkbd.asm @@ -0,0 +1,1129 @@ +;; SCCSID = @(#)ukkbd.asm 12.1 88/03/18 + Page 58,132 + Title UKKBD - Translate Table Structure for CP/DOS 1.1 + Name UKKBD +;********************* Start of Specifications ************************* +;* * +;* Source File Name: UKKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for UK. * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* Changed 7Ch to B3h for scan code 29h in ENH 437, all * +;* cs IDs (PTM 186). pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK UKKBD; ** +;** RELOC UKKBD.EXE UKKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ-.286 + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING + +; db 115,143,116,144 ;@@ Keypad 4, 5, 6, + (PTM 5024) +; db 117,145,118 ;@@ Keypad 1, 2, 3 (PTM 5024) + +Public _Ow2UK437001 ;*************** +_Ow2UK437001 Label Byte ;Beginning of the table. UK 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,1,AT,Len1,'UK','166' ;&& + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '@', 0, 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '~', 0, 0, 0 ; 43 # ~ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2UK437001 + +;*************************************************************************** + +Public _Ow2UK437011 ;*************** +_Ow2UK437011 Label Byte ;Beginning of the table. UK 437 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,0,0,1,EN,Len2,'UK','166' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '@', 0, 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '`', 'ª',0B3h, 0, 0 ; 41 ` ª + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '~', 0, 0, 0 ; 43 # ~ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 86 \ | + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2UK437011 + + +;*************************************************************************** +;&&B +Public _Ow2UK437111 ;*********************** +_Ow2UK437111 Label Byte ;Beginning of the table. UK 437 EN Kbd New Std + ;*********************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,1,0,1,0,0,0,1,EN,Len3,'UK','168' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0ABh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 0, 0 ; 8 7 ' + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')',0F1h, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '#',0F8h, 0, 0 ; 11 0 # + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 12 - = + KeyDef 4, 0,0,0,0,0,0,0, 'ª',0C4h, 0, 0, 0 ; 13 _ ª + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 0, 0 ; 26 @ grave accent + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', '~', 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 0, 0 ; 39 ; + + KeyDef 4, 0,0,0,0,0,0,0, ':', '*', '^', 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '\',0B3h, 0, 0, 0 ; 41 \ ³ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 43 # ~ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 'æ', 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '|', '_', 0, 0, 0 ; 86 | _ + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2UK437111 +;&&E + + + +;*************************************************************************** + +Public _Ow2UK850000 ;*************** +_Ow2UK850000 Label Byte ;Beginning of the table. UK 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,1,AT,Len4,'UK','166' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '@', 0, 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 41 \ | + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '~', 0, 0, 0 ; 43 # ~ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2UK850000 + +;*************************************************************************** + +Public _Ow2UK850010 ;*************** +_Ow2UK850010 Label Byte ;Beginning of the table. UK 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,0,0,1,EN,Len5,'UK','166' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"', 0, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch, 0, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '@', 0, 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '`', 'ª', 7Ch, 0, 0 ; 41 ` ª + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '#', '~', 0, 0, 0 ; 43 # ~ + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, '\',0DDh, 0, 0, 0 ; 86 \ | + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len5 EQU $ - _Ow2UK850010 + + + +;*************************************************************************** +;&&B + +Public _Ow2UK850011 ;*********************** +_Ow2UK850011 Label Byte ;Beginning of the table. UK 850 EN Kbd New Std + ;*********************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,1,0,0,0,0,0,1,EN,Len6,'UK','168' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '"',0FDh, 0, 0 ; 3 2 " + KeyDef 4, 0,0,0,0,0,0,0, '3', 9Ch,0FCh, 0, 0 ; 4 3 9Ch + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%',0ABh, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '&', 0, 0, 0 ; 7 6 & + KeyDef 4, 0,0,0,0,0,0,0, '7', "'", 0, 0, 0 ; 8 7 ' + KeyDef 4, 0,0,0,0,0,0,0, '8', '(', 0, 0, 0 ; 9 8 ( + KeyDef 4, 0,0,0,0,0,0,0, '9', ')',0F1h, 0, 0 ; 10 9 ) + KeyDef 4, 0,0,0,0,0,0,0, '0', '#',0F8h, 0, 0 ; 11 0 # + KeyDef 4, 0,0,0,0,0,0,0, '-', '=', 0, 0, 0 ; 12 - = + KeyDef 4, 0,0,0,0,0,0,0, 'ª',0EEh, 0, 0, 0 ; 13 ª overline + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '@', '`', 0, 0, 0 ; 26 @ ` + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', '~', 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', '+', 0, 0, 0 ; 39 ; + + KeyDef 4, 0,0,0,0,0,0,0, ':', '*', '^', 0, 0 ; 40 ' @ + KeyDef 4, 0,0,0,0,0,0,0, '\', 7Ch, 0, 0, 0 ; 41 \ 7C + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 43 ] } + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 'æ', 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 2, 0,0,0,0,0,0,0, 0DDh, '_', 0, 0, 0 ; 86 | _ + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,a1,s2,a2..c20,a20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,a1 - c20,a20 are the char/char code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len6 EQU $ - _Ow2UK850011 +;&&E + +_TEXT ends + END diff --git a/private/os2/os2ses/i386/uskbd.asm b/private/os2/os2ses/i386/uskbd.asm new file mode 100644 index 000000000..8ec338b9f --- /dev/null +++ b/private/os2/os2ses/i386/uskbd.asm @@ -0,0 +1,761 @@ +;; SCCSID = @(#)uskbd.asm 12.1 88/03/18 +; Page 58,132 + Title USKBD - Translate Table Structure for CP/DOS 1.1 + Name USKBD + +;********************* Start of Specifications ************************* +;* * +;* Source File Name: USKBD.ASM * +;* * +;* Descriptive Name: Keyboard translate tables for US. * +;* * +;* * +;* Status: CP/DOS Version 1.1.1 * +;* * +;* Function: N/A * +;* * +;* Notes: * +;* Dependencies: see linkage instructions below * +;* Restrictions: None * +;* Patch Label: None * +;* * +;* Entry Points: None * +;* * +;* External References: None * +;* * +;* Changes: * +;* * +;* 2/13/87 - Corrected 850 AT LED key keydefs per PTM 2270. pjr * +;* * +;********************** End of Specifications ************************** +;*********************************************************************** +;** ** +;** Linkage instructions: ** +;** LINK USKBD; ** +;** RELOC USKBD.EXE USKBD.TBL ** +;** ** +;*********************************************************************** + +.386p ;MJ- + +include kbdxlat.inc + +_TEXT SEGMENT DWORD USE32 PUBLIC 'CODE' + ASSUME CS:FLAT, DS:FLAT, ES:FLAT, SS:NOTHING, FS:NOTHING, GS:NOTHING +Public _Ow2US437001 ;****** +_Ow2US437001 Label Byte ;Beginning of the table. US 437 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,AT,Len1,'US','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len1 EQU $ - _Ow2US437001 + +;****************************************************************************** + +Public _Ow2US437011 ;****** +_Ow2US437011 Label Byte ;Beginning of the table. US 437 EN Kbd + ;*************** + +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 437,0,0,0,0,1,0,0,0,0,EN,Len2,'US','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len2 EQU $ - _Ow2US437011 + +;***************************************************************************** + +Public _Ow2US850000 ;****** +_Ow2US850000 Label Byte ;Beginning of the table. US 850 AT Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,0,AT,Len3,'US','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccentEntry <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len3 EQU $ - _Ow2US850000 + +;***************************************************************************** + +Public _Ow2US850010 ;****** +_Ow2US850010 Label Byte ;Beginning of the table. US 850 EN Kbd + ;*************** +;&& Form of XtHeader "XtHeader cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs" +;&& where cp is the code page, a,b,c,d,e,f,g,h,i are the flags: +; a - ShiftAlt (use shift-alt for Char 3) +; b - AltGrafL (use left alt key for Char 3) +; c - AltGrafR (use right alt key for Char 3) +; d - ShiftLock (all core keys are shifted when Capslock active) +; e - DefaultTable (default table for language) +; f - ShiftToggle (ShiftLock is toggle operated, not latched) +; g - AccentPass (invalid dead key/char combination outputs both and beeps) +; h - CapsShift (use Char 5 for Caps-Shift combination) +;&& i - MachineDep (table is machine dependent) +; kb is the keyboard type, l is the length of the table in bytes, +;&& cc is the country layout ID, and cs is the subcountry layout ID + +;&& cp a b c d e f g h i kb l cc cs +;&& | | | | | | | | | | | | | | +XtHeader 850,0,0,0,0,0,0,0,0,0,EN,Len4,'US','103' + +; Form of XlateTable KeyDefs: "KeyDef f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e +; where a,b,c,d,e are Char1 - Char5, f is the Action number to +; apply in translating this key, and g1-7 are 1 or 0 flags if +; accents 1 - 7 apply to the key. + +; +--Key Type number. +---Chars-+----+----+ Scan Legend +; | +AccentFlags+ 1 2 3 4 5 Code | +; | | | | | | | | | | | | | | | + KeyDef 8, 0,0,0,0,0,0,0, 27, 27, 0, 0, 0 ; 1 ESC + KeyDef 4, 0,0,0,0,0,0,0, '1', '!', 0, 0, 0 ; 2 1 ! + KeyDef 4, 0,0,0,0,0,0,0, '2', '@', 0, 0, 0 ; 3 2 @ + KeyDef 4, 0,0,0,0,0,0,0, '3', '#', 0, 0, 0 ; 4 3 # + KeyDef 4, 0,0,0,0,0,0,0, '4', '$', 0, 0, 0 ; 5 4 $ + KeyDef 4, 0,0,0,0,0,0,0, '5', '%', 0, 0, 0 ; 6 5 % + KeyDef 4, 0,0,0,0,0,0,0, '6', '^', 0, 0, 0 ; 7 6 ^ + KeyDef 4, 0,0,0,0,0,0,0, '7', '&', 0, 0, 0 ; 8 7 & + KeyDef 4, 0,0,0,0,0,0,0, '8', '*', 0, 0, 0 ; 9 8 * + KeyDef 4, 0,0,0,0,0,0,0, '9', '(', 0, 0, 0 ; 10 9 ( + KeyDef 4, 0,0,0,0,0,0,0, '0', ')', 0, 0, 0 ; 11 0 ) + KeyDef 4, 0,0,0,0,0,0,0, '-', '_', 0, 0, 0 ; 12 - _ + KeyDef 4, 0,0,0,0,0,0,0, '=', '+', 0, 0, 0 ; 13 = + + KeyDef 8, 0,0,0,0,0,0,0, 8, 127, 0, 0, 0 ; 14 BkSp + KeyDef 4, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 15 Tabs + KeyDef 1, 0,0,0,0,0,0,0, 'q', 'Q', 0, 0, 0 ; 16 q Q + KeyDef 1, 0,0,0,0,0,0,0, 'w', 'W', 0, 0, 0 ; 17 w W + KeyDef 1, 0,0,0,0,0,0,0, 'e', 'E', 0, 0, 0 ; 18 e E + KeyDef 1, 0,0,0,0,0,0,0, 'r', 'R', 0, 0, 0 ; 19 r R + KeyDef 1, 0,0,0,0,0,0,0, 't', 'T', 0, 0, 0 ; 20 t T + KeyDef 1, 0,0,0,0,0,0,0, 'y', 'Y', 0, 0, 0 ; 21 y Y + KeyDef 1, 0,0,0,0,0,0,0, 'u', 'U', 0, 0, 0 ; 22 u U + KeyDef 1, 0,0,0,0,0,0,0, 'i', 'I', 0, 0, 0 ; 23 i I + KeyDef 1, 0,0,0,0,0,0,0, 'o', 'O', 0, 0, 0 ; 24 o O + KeyDef 1, 0,0,0,0,0,0,0, 'p', 'P', 0, 0, 0 ; 25 p P + KeyDef 4, 0,0,0,0,0,0,0, '[', '{', 0, 0, 0 ; 26 [ { + KeyDef 4, 0,0,0,0,0,0,0, ']', '}', 0, 0, 0 ; 27 ] } + KeyDef 8, 0,0,0,0,0,0,0, 13, 10, 0, 0, 0 ; 28 Enter + KeyDef 12, 0,0,0,0,0,0,0, 4, 1, 4, 0, 0 ; 29 Ctrl + KeyDef 1, 0,0,0,0,0,0,0, 'a', 'A', 0, 0, 0 ; 30 a A + KeyDef 1, 0,0,0,0,0,0,0, 's', 'S', 0, 0, 0 ; 31 s S + KeyDef 1, 0,0,0,0,0,0,0, 'd', 'D', 0, 0, 0 ; 32 d D + KeyDef 1, 0,0,0,0,0,0,0, 'f', 'F', 0, 0, 0 ; 33 f F + KeyDef 1, 0,0,0,0,0,0,0, 'g', 'G', 0, 0, 0 ; 34 g G + KeyDef 1, 0,0,0,0,0,0,0, 'h', 'H', 0, 0, 0 ; 35 h H + KeyDef 1, 0,0,0,0,0,0,0, 'j', 'J', 0, 0, 0 ; 36 j J + KeyDef 1, 0,0,0,0,0,0,0, 'k', 'K', 0, 0, 0 ; 37 k K + KeyDef 1, 0,0,0,0,0,0,0, 'l', 'L', 0, 0, 0 ; 38 l L + KeyDef 4, 0,0,0,0,0,0,0, ';', ':', 0, 0, 0 ; 39 ; : + KeyDef 4, 0,0,0,0,0,0,0, "'", '"', 0, 0, 0 ; 40 ' " + KeyDef 4, 0,0,0,0,0,0,0, '`', '~', 0, 0, 0 ; 41 ` ~ + KeyDef 12, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 42 Shift(L) + KeyDef 4, 0,0,0,0,0,0,0, '\', '|', 0, 0, 0 ; 43 \ | + KeyDef 1, 0,0,0,0,0,0,0, 'z', 'Z', 0, 0, 0 ; 44 z Z + KeyDef 1, 0,0,0,0,0,0,0, 'x', 'X', 0, 0, 0 ; 45 x X + KeyDef 1, 0,0,0,0,0,0,0, 'c', 'C', 0, 0, 0 ; 46 c C + KeyDef 1, 0,0,0,0,0,0,0, 'v', 'V', 0, 0, 0 ; 47 v V + KeyDef 1, 0,0,0,0,0,0,0, 'b', 'B', 0, 0, 0 ; 48 b B + KeyDef 1, 0,0,0,0,0,0,0, 'n', 'N', 0, 0, 0 ; 49 n N + KeyDef 1, 0,0,0,0,0,0,0, 'm', 'M', 0, 0, 0 ; 50 m M + KeyDef 4, 0,0,0,0,0,0,0, ',', '<', 0, 0, 0 ; 51 , < + KeyDef 4, 0,0,0,0,0,0,0, '.', '>', 0, 0, 0 ; 52 . > + KeyDef 4, 0,0,0,0,0,0,0, '/', '?', 0, 0, 0 ; 53 / ? + KeyDef 12, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 54 Shift(R) + KeyDef 9, 0,0,0,0,0,0,0, '*', 114, 0, 0, 0 ; 55 * PrtSc + KeyDef 14, 0,0,0,0,0,0,0, 8, 2, 8, 0, 0 ; 56 Alt + KeyDef 4, 0,0,0,0,0,0,0, ' ', ' ', 0, 0, 0 ; 57 Space + KeyDef 16, 0,0,0,0,0,0,0, 40h, 40h, 40h, 0, 0 ; 58 CapsLock + KeyDef 6, 0,0,0,0,0,0,0, 1, 0, 0, 0, 0 ; 59 F1 + KeyDef 6, 0,0,0,0,0,0,0, 2, 0, 0, 0, 0 ; 60 F2 + KeyDef 6, 0,0,0,0,0,0,0, 3, 0, 0, 0, 0 ; 61 F3 + KeyDef 6, 0,0,0,0,0,0,0, 4, 0, 0, 0, 0 ; 62 F4 + KeyDef 6, 0,0,0,0,0,0,0, 5, 0, 0, 0, 0 ; 63 F5 + KeyDef 6, 0,0,0,0,0,0,0, 6, 0, 0, 0, 0 ; 64 F6 + KeyDef 6, 0,0,0,0,0,0,0, 7, 0, 0, 0, 0 ; 65 F7 + KeyDef 6, 0,0,0,0,0,0,0, 8, 0, 0, 0, 0 ; 66 F8 + KeyDef 6, 0,0,0,0,0,0,0, 9, 0, 0, 0, 0 ; 67 F9 + KeyDef 6, 0,0,0,0,0,0,0, 10, 0, 0, 0, 0 ; 68 F10 + KeyDef 15, 0,0,0,0,0,0,0, 20h, 20h, 20h, 0, 0 ; 69 NumLock + KeyDef 17, 0,0,0,0,0,0,0, 10h, 10h, 10h, 0, 0 ; 70 ScrollLock + KeyDef 7, 0,0,0,0,0,0,0, 0, '7', 0, 0, 0 ; 71 Home 7 + KeyDef 7, 0,0,0,0,0,0,0, 1, '8', 0, 0, 0 ; 72 'Up' 8 + KeyDef 7, 0,0,0,0,0,0,0, 2, '9', 0, 0, 0 ; 73 PgUp 9 + KeyDef 7, 0,0,0,0,0,0,0, 3, '-', 0, 0, 0 ; 74 - (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 4, '4', 0, 0, 0 ; 75 'Left'4 + KeyDef 7, 0,0,0,0,0,0,0, 5, '5', 0, 0, 0 ; 76 5 + KeyDef 7, 0,0,0,0,0,0,0, 6, '6', 0, 0, 0 ; 77'Right'6 + KeyDef 7, 0,0,0,0,0,0,0, 7, '+', 0, 0, 0 ; 78 + (on pad) + KeyDef 7, 0,0,0,0,0,0,0, 8, '1', 0, 0, 0 ; 79 End 1 + KeyDef 7, 0,0,0,0,0,0,0, 9, '2', 0, 0, 0 ; 80 'Down'2 + KeyDef 7, 0,0,0,0,0,0,0, 10, '3', 0, 0, 0 ; 81 PgDn 3 + KeyDef 7, 0,0,0,0,0,0,0, 11, '0', 0, 0, 0 ; 82 Ins 0 + KeyDef 7, 0,0,0,0,0,0,0, 12, '.', 0, 0, 0 ; 83 Del . + KeyDef 10, 0,0,0,0,0,0,0, 0, 80h, 80h, 0, 0 ; 84 SysReq + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 85 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 86 ' + KeyDef 6, 0,0,0,0,0,0,0, 11, 0, 0, 0, 0 ; 87 F11 + KeyDef 6, 0,0,0,0,0,0,0, 12, 0, 0, 0, 0 ; 88 F12 + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 89 (undefined) + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 90 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 91 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 92 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 93 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 94 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 95 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 96 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 97 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 98 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 99 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 100 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 101 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 102 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 103 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 104 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 105 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 106 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 107 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 108 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 109 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 110 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 111 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 112 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 113 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 114 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 115 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 116 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 117 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 118 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 119 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 120 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 121 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 122 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 123 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 124 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 125 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 126 ' + KeyDef 0, 0,0,0,0,0,0,0, 0, 0, 0, 0, 0 ; 127 ' + +; Form of AccEnt's below is: +; "AccEnt <a,b,c,d,e,f,c1,s1,c2,s2..c20,s20>" +; where a & b are the scan code & char to use when the key following this accent +; isn't affected by the accent so the accent itself must be used, +; c & d are the scan code & char to use when Ctl-[accent] is pressed, +; and e & f do the same for Alt-[accent]. c1,s1 - c20,s20 are the char/scan code +; mapping for accented translation. + +;Accent key definitions and mappings. + +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> +AccEnt <> + +Len4 EQU $ - _Ow2US850010 + +_TEXT ends + END |