mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
4.7 KiB
164 lines
4.7 KiB
;; SCCSID = @(#)kbdxlat.inc 12.1 88/03/18
|
|
|
|
;******************************************************************
|
|
;*
|
|
;* EQUATES,STRUCS & MACROS FOR ACCESSING TRANSLATE TABLE FIELDS.
|
|
;*
|
|
|
|
MaxAct Equ 15h ;Highest Action number allowed in Action field.
|
|
AT Equ 00h ; AT Keyboard
|
|
EN Equ 01h ; ENhanced Keyboard
|
|
|
|
ifdef JAPAN
|
|
; MSKK Aug.04.1993 V-AKihiS
|
|
; BUGBUG - should investigate OEM ID and OEM keyboard type of other keyboards.
|
|
JP_OEM Equ 10h ; Japan OEMs reserved keyboard ID.
|
|
;;;; JP_OEM Equ 01h ; Japan OEMs reserved keyboard ID.
|
|
OEM_AX Equ 00h ; OEMs ID (0=AX maker)
|
|
AX_DESKTOP Equ 01h ; AX desktop type keyboard.
|
|
endif
|
|
|
|
|
|
;******************************************************************
|
|
;* *
|
|
;* EQUATES & STRUCS FOR ACCESSING TRANSLATE TABLE FIELDS. *
|
|
;* *
|
|
;***** *
|
|
;* The KeyDef Structure: *
|
|
;******
|
|
KDef Struc ;Structure definition for a XlateTable KeyDef entry.
|
|
XlateOp dw 0 ;Accent flags & Action number.
|
|
Char1 db 0 ;Usually the unshifted character for a key.
|
|
Char2 db 0 ;Usually the left/right/Caps shifted char for a key.
|
|
Char3 db 0 ;Usually the Alt-Graphics shift char for a key.
|
|
Char4 db 0 ;Only used by a couple of keytypes.
|
|
Char5 db 0 ;Only used by a one of keytype (14h)
|
|
KDef Ends
|
|
KDefLen Equ Size KDef
|
|
|
|
;*****
|
|
;* Structure of the Translate Table itself.
|
|
;*****
|
|
Header Struc
|
|
|
|
; Following is the Xlate Table Header:
|
|
|
|
XT_CP dw ? ;The translate table code page value.
|
|
XTFlags1 dw ? ;First flagword (use equates below for access).
|
|
XTFlags2 dw ? ;Second flagword.
|
|
XTKbdType dw ? ;FUTURE (keyboard type that uses this table).
|
|
XTKbdSubType dw ? ;FUTURE (keyboard sub-type that uses this table).
|
|
XTLength dw ? ;Length of table in bytes.
|
|
XTEntryCount dw 127 ;Number of scan codes (= keydef entries).
|
|
XTEntryWidth dw 7 ;Width of each entry.
|
|
XTCountry dw 'US' ;@@ Language this table represents.
|
|
XTTableID dw 1 ;@@ DCR031/PTM1730, added for use by Winthorne.
|
|
XTSubCountry db ' ' ;&& DCR #17 Add kbd kayout ID
|
|
XTRes dw 8 dup(?) ;&& RESERVED words (changed from 11, see
|
|
;&& above).
|
|
Header Ends
|
|
HeaderLen Equ Size Header
|
|
|
|
;*****
|
|
;* The Accent Entry Structure:
|
|
;*****
|
|
AccEntry Struc ;Definition for entries in the AccentTable below.
|
|
NonAcChar db 0 ;Char code to pass when next char isn't accented.
|
|
NonAcScan db 0 ;Scan " " " " " " " "
|
|
CtlAcChar db 0 ;Char code to pass on Ctl-[accent key] keystroke.
|
|
CtlAcScan db 0 ;Scan " " " " " "
|
|
AltAcChar db 0 ;Char code to pass on Atl-[accent key] keystroke.
|
|
AltAcScan db 0 ;Scan " " " " " "
|
|
;20 pairs of "from"(chars to be accented) and "to"(result char) values:
|
|
AcMap1 db 0 ;
|
|
db 0 ;
|
|
AcMap2 db 0 ;
|
|
db 0 ;
|
|
AcMap3 db 0 ;
|
|
db 0 ;
|
|
AcMap4 db 0 ;
|
|
db 0 ;
|
|
AcMap5 db 0 ;
|
|
db 0 ;
|
|
AcMap6 db 0 ;
|
|
db 0 ;
|
|
AcMap7 db 0 ;
|
|
db 0 ;
|
|
AcMap8 db 0 ;
|
|
db 0 ;
|
|
AcMap9 db 0 ;
|
|
db 0 ;
|
|
AcMap10 db 0 ;
|
|
db 0 ;
|
|
AcMap11 db 0 ;
|
|
db 0 ;
|
|
AcMap12 db 0 ;
|
|
db 0 ;
|
|
AcMap13 db 0 ;
|
|
db 0 ;
|
|
AcMap14 db 0 ;
|
|
db 0 ;
|
|
AcMap15 db 0 ;
|
|
db 0 ;
|
|
AcMap16 db 0 ;
|
|
db 0 ;
|
|
AcMap17 db 0 ;
|
|
db 0 ;
|
|
AcMap18 db 0 ;
|
|
db 0 ;
|
|
AcMap19 db 0 ;
|
|
db 0 ;
|
|
AcMap20 db 0 ;
|
|
db 0 ;
|
|
AccEntry Ends ;
|
|
AccEntryLen Equ Size AccEntry ;
|
|
|
|
;*****
|
|
;* Structure of the Translate Table itself.
|
|
;*****
|
|
XTSTRUC Struc
|
|
XTHead db HeaderLen dup(?)
|
|
;@@ Following are the key definitions themselves.
|
|
|
|
KDefs db 127*KDefLen dup (?) ;The keydefs.
|
|
|
|
;@@ Following are the accent entries.
|
|
|
|
Accents db 7*46 dup (?) ;The accent entries.
|
|
|
|
XTSTRUC Ends
|
|
|
|
;********
|
|
;* AccEnt - Accent Entry Macro:
|
|
;********
|
|
|
|
AccEnt Macro PARMS
|
|
.xlist
|
|
AccEntry <PARMS>
|
|
.list
|
|
Endm
|
|
|
|
;********
|
|
;* KeyDef - Key definition entry macro:
|
|
;********
|
|
|
|
KeyDef Macro f,g1,g2,g3,g4,g5,g6,g7,a,b,c,d,e
|
|
.erre f LE MaxAct ;Error if Action number is too big.
|
|
z = g7*8000h+g6*4000h+g5*2000h+g4*1000h+g3*800h+g2*400h+g1*200h+f
|
|
.xlist
|
|
KDef <z,&a,&b,&c,&d,&e>
|
|
.list
|
|
Endm
|
|
|
|
;*******
|
|
;* XtHeader - Header definition Macro:
|
|
;*******
|
|
|
|
XtHeader Macro cp,a,b,c,d,e,f,g,h,i,kb,l,cc,cs ;&& DCR #17 - Machine
|
|
z = i*256+h*128+g*64+f*32+e*16+d*8+c*4+b*2+a ;&& flag added and CS
|
|
Header <&cp,z,,&kb,,&l,,,cc,,cs> ;&& for subcountryID
|
|
Endm
|
|
|
|
; *
|
|
;***** END OF TRANSLATE TABLE DEFINITIONS ****************
|
|
|