blob: 4b42fbea16e81cbfd8d3d0951ecb48dfcb1e059b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
.XLIST
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; DOS - NLS Support - KEYB Command
;; (C) Copyright 1988 Microsoft
;;
;; File Name: KEYBSYS.INC
;; ----------
;;
;; Root File Name: KEYB.ASM
;; ---------------
;;
;; Description:
;; ------------
;; Include file containing structure definitions and equates
;; for the KEYBOARD.SYS file.
;;
;; Change History:
;; ---------------
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; File header - contains pointers to keyboard tables for each language
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
KEYBSYS_HEADER STRUC ;;
;;
KH_SIGNATURE DB 0FFh,'KEYB ' ;; signature
KH_RESV_1 DB 8 DUP(0) ;; reserved
KH_MAX_COM_SZ DW 0 ;AN000;**chg ;; maximum size of Common Xlat Sect
KH_MAX_SPEC_SZ DW 0 ;AN000;;**chg ;; max size of Specific Xlat Sect
KH_MAX_LOGIC_SZ DW 0 ;AN000;;**chg ;; max size of State Logic
KH_RESV_2 Dw 0 ;AN000;;**chg ;; reserved CNS
KH_NUM_ID Dw 0 ;AN000;;; ************* CNS
KH_NUM_LANG DW 0 ;; number of languages
KH_LANG_PTRS DB 0 ;; language pointers start here
;********************* CNS **********************
;KH_NUM_ID DW 0 ;; number of languages
;KH_ID_PTRS DB 0 ;; id pointers start here
;********************* CNS **********************
KEYBSYS_HEADER ENDS ;;
;******************CNS*******************
KEYBSYS_ID_PTRS STRUC
KP_ID_CODE DW 0 ;AN000;
KP_LANG_PTR DD 0 ;AN000;
KEYBSYS_ID_PTRS ENDS
;;
;*****************CNS********************
KEYBSYS_LANG_PTRS STRUC ;;
;; Next two entries repeat:
KP_LANG_CODE DW 0 ;; language code
KP_ENTRY_PTR DD 0 ;; language entry pointer
;;
KEYBSYS_LANG_PTRS ENDS ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Language Entry - pointed to by KH_ENTRY_PTR in KEYBSYS_HEADER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
KEYBSYS_LANG_ENTRY STRUC ;;
;;
KL_LANG_CODE DW 'XX' ;; language code
KL_ID_CODE DW 0 ;; reserved (ID CODE)
KL_LOGIC_PTR DD 0 ;AC000;;**chg ;; State Logic pointer
KL_NUM_ID DB 0 ;AN000;;CNS ;; number of valid IDs for this lang
KL_NUM_CP DB 0 ;; number of valid CPs for this lang
KL_CP_PTRS DB 0 ;; CP table pointers start here
;;
KEYBSYS_LANG_ENTRY ENDS ;;
;;
KEYBSYS_CP_PTRS STRUC ;;
;; Next two entries repeat:
KC_CODE_PAGE DW 0 ;; code page
KC_ENTRY_PTR DD 0 ;; ptr to Specific Translate Section
;;
KEYBSYS_CP_PTRS ENDS ;;
;;
;;
;; Everything from here down is new
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; State Logic - pointed to by KL_LOGIC_PTR in KEYBSYS_LANG_ENTRY
;; Common Translate Section follows immediately after the State Logic.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
KEYBSYS_STATE_LOGIC STRUC ;;
;;
KT_LOGIC_LEN DW ? ;; length of state logic
KT_SPECIAL_FEATURES DW ? ;; Special Features (see KEYBSHAR.INC)
KT_LOGIC_CMDS DB 0 ;; state logic commands begin here
;;
KEYBSYS_STATE_LOGIC ENDS ;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Translate Section - Common and Specific Translate Sections
;; are both in this form.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
KEYBSYS_XLAT_SECT STRUC ;;
;;
KX_SECTION_LEN DW ? ;; Length of this section
KX_CP_ID DW ? ;; code page id
KX_FIRST_STATE DB ? ;;
;;
KEYBSYS_XLAT_SECT ENDS ;;
;;
;;
KEYBSYS_STATE STRUC ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Translate Sections contains multiple States.
;; A State contains the translate tables for a single
;; shift state (IE lower case, upper case ....)
;; The last State is a null State containing only the
;; KX_STATE_LEN field with a value of 0.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KX_STATE_LEN DW ? ;; length of state section
KX_STATE_ID DB ? ;; State ID
KX_KBD_TYPE DW ? ;; Keyboard Type
KX_ERROR_CHAR DW ? ;; Buffer entry for error character
KX_FIRST_XLAT DB ? ;; XLAT tables begin here
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Each State consists of multiple translate tables.
;; The last translate table within a state is a null
;; table containing only the
;; KX_XLAT_LEN field with a value of 0.
;; Refer to KEYBSHAR.INC for translate table format.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
KEYBSYS_STATE ENDS ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.LIST
|