Leaked source code of windows server 2003
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.

373 lines
17 KiB

  1. ;CODE to be deleted has a double ;; followed by actual asm code....****
  2. ;; LATEST CHANGE ALT & CTL
  3. PAGE ,132
  4. TITLE PC DOS 3.3 Keyboard Definition File
  5. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ;; PC DOS 3.3 - NLS Support - Keyboard Defintion File
  7. ;; (c) Copyright IBM Corp 198?,...
  8. ;;
  9. ;; This file contains the keyboard tables for Japanese.
  10. ;;
  11. ;; Linkage Instructions:
  12. ;; Refer to KDF.ASM.
  13. ;;
  14. ;; Author: Shuzo Kusuda - IBM Japan, Yamato Lab. - Feb. 1990
  15. ;;
  16. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17. ;;
  18. INCLUDE KEYBSHAR.INC ;;
  19. ;M000 INCLUDE POSTEQU.SRC ;;
  20. include postequ.inc ; M000 -- our inc file reflects the
  21. ; ; necessary changes as M024
  22. INCLUDE KEYBMAC.INC ;;
  23. ;;
  24. PUBLIC JP_LOGIC ;;
  25. PUBLIC JP_COMMON_XLAT ;;
  26. PUBLIC JP_932_XLAT ;;
  27. PUBLIC JP_437_XLAT ;;
  28. ;;
  29. CODE SEGMENT PUBLIC 'CODE' ;;
  30. ASSUME CS:CODE,DS:CODE ;;
  31. ;;
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  33. ;; Standard translate table options are a liner search table
  34. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. ;;
  37. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  38. ;;
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40. ;;***************************************
  41. ;; JP State Logic
  42. ;;***************************************
  43. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  44. ;;
  45. ;;
  46. JP_LOGIC: ;;
  47. ;;
  48. DW LOGIC_END-$ ;; length
  49. ;;
  50. DW 0 ;; special features
  51. ;;
  52. ;; COMMANDS START HERE
  53. ;;
  54. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  55. ;; DBCS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  56. ;;
  57. ;;
  58. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  59. ;;
  60. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  61. ;; OPTIONS: If we find a scan match in
  62. ;; an XLATT or SET_FLAG operation then
  63. ;; exit from INT 9.
  64. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  65. ;;
  66. OPTION EXIT_IF_FOUND ;;
  67. ;;
  68. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  69. ;; OPTIONS: If we find a scan match in
  70. ;; an XLATT or SET_FLAG operation then
  71. ;; exit from INT 9.
  72. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  73. ;;
  74. IFF EITHER_ALT, NOT ;; ;JP900807
  75. ANDF EITHER_CTL, NOT ;; ;JP900807
  76. IFF LC_E0 ;; Avoid accidentally translating
  77. XLATT NUMERIC_PAD ;; the key of the numeric ;JP900807
  78. EXIT_STATE_LOGIC ;;
  79. ENDIFF ;;
  80. ENDIFF ;; ;JP900807
  81. ;;
  82. ;JP900727 IFF EITHER_CTL,NOT ;;
  83. ;JP900727 IFF EITHER_ALT ;; ALT - case
  84. ;JP900727 XLATT ALT_CASE ;;
  85. ;JP900727 ENDIFF ;;
  86. ;JP900727 ELSEF ;;
  87. IFF EITHER_ALT ;; ;JP900727
  88. XLATT ALT_CASE ;; ALT case ;JP900727
  89. ENDIFF ;; ;JP900727
  90. IFF EITHER_CTL ;; ;JP900727
  91. IFF EITHER_ALT,NOT ;;
  92. XLATT CTRL_CASE ;; CTRL case
  93. ENDIFF ;;
  94. ENDIFF ;;
  95. ;;
  96. IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
  97. ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
  98. IFF EITHER_SHIFT ;; Numeric keys are not.
  99. ;JP900807 IFF NUM_STATE,NOT ;;
  100. ;JP900807 XLATT NUMERIC_PAD ;;
  101. ;JP900807 ENDIFF ;;
  102. XLATT NON_ALPHA_UPPER ;;
  103. IFF CAPS_STATE ;;
  104. XLATT ALPHA_LOWER ;;
  105. ELSEF ;;
  106. XLATT ALPHA_UPPER ;;
  107. ENDIFF ;;
  108. ELSEF ;;
  109. ;JP900807 IFF NUM_STATE ;;
  110. ;JP900807 XLATT NUMERIC_PAD ;;
  111. ;JP900807 ENDIFF ;;
  112. XLATT NON_ALPHA_LOWER ;;
  113. IFF CAPS_STATE ;;
  114. XLATT ALPHA_UPPER ;;
  115. ELSEF ;;
  116. XLATT ALPHA_LOWER ;;
  117. ENDIFF ;;
  118. ENDIFF ;;
  119. ENDIFF ;;
  120. ;;
  121. EXIT_STATE_LOGIC ;;
  122. ;;
  123. LOGIC_END: ;;
  124. ;;
  125. ;;
  126. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  127. ;;***************************************
  128. ;; JP Common Translate Section
  129. ;; This section contains translations for the lower 128 characters
  130. ;; only since these will never change from code page to code page.
  131. ;; In addition the dead key "Set Flag" tables are here since the
  132. ;; dead keys are on the same keytops for all code pages.
  133. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  134. ;;
  135. ;
  136. ; Hardware Scan Codes
  137. ;
  138. ifndef NT35
  139. HW_SC_SINGLE_QUOTE equ 29h
  140. endif ; NT3.51
  141. HW_SC_0 equ 0bh ;JP9007
  142. HW_SC_HAT equ 0dh ;JP9007
  143. HW_SC_BACK_SLASH equ 56h
  144. HW_SC_YEN_NEW equ 7dh
  145. HW_SC_CONV equ 5bh
  146. HW_SC_NO_CONV equ 5ah
  147. HW_SC_KANJI equ 71h
  148. HW_SC_KATAKANA equ 72h
  149. HW_SC_TORIKESHI equ 55h ;JP9009
  150. HW_SC_PA1 equ 5ah ;JP9009
  151. HW_SC_CSR_BLINK equ 5bh ;JP9009
  152. HW_SC_INTERRUPT equ 5ch ;JP9009
  153. HW_SC_UF1 equ 5dh ;JP9009
  154. HW_SC_PA2 equ 5eh ;JP9009
  155. HW_SC_UF2 equ 63h ;JP9009
  156. HW_SC_UF3 equ 64h ;JP9009
  157. HW_SC_UF4 equ 65h ;JP9009
  158. HW_SC_ATTENTION equ 66h ;JP9009
  159. HW_SC_SIZE_CONV equ 69h ;JP9009
  160. HW_SC_MESSAGE equ 6ah ;JP9009
  161. HW_SC_COPY equ 6bh ;JP9009
  162. HW_SC_SHUHRYOH equ 6ch ;JP9009
  163. HW_SC_ERASE_EOF equ 6dh ;JP9009
  164. HW_SC_CLEAR equ 76h ;JP9009
  165. ;
  166. ; Type of converted scan code
  167. ;
  168. PSEUDO_CODE equ 00h
  169. EXTENDED_CODE equ 0f0h
  170. EXTENDED_CODE_E0 equ 0e0h ;JP900807
  171. ;
  172. ; Extended code list
  173. ;
  174. EXT_HALF_FULL equ 0afh
  175. EXT_HALF_FULL_UPPER equ 0b0h
  176. EXT_HALF_FULL_CTRL equ 0b1h
  177. EXT_KANJI equ 0b2h
  178. EXT_ALPHA_NUMERIC equ 0b3h
  179. EXT_ALPHA_NUMERIC_CTRL equ 0b4h
  180. EXT_KANJI_NO equ 0b5h
  181. EXT_HIRAGANA equ 0b6h
  182. EXT_KATAKANA equ 0b7h
  183. EXT_HIRAGANA_CTRL equ 0b8h
  184. EXT_ROMAJI equ 0b9h
  185. EXT_HALF_FULL_ALT equ 0bah
  186. EXT_ALPHA_NUMERIC_ALT equ 0bbh
  187. EXT_HIRAGANA_UPPER equ 0bch
  188. EXT_KATAKANA_CTRL equ 0bdh
  189. EXT_KANJI_UPPER equ 0beh
  190. EXT_KANJI_CTRL equ 0bfh
  191. EXT_KATAKANA_SHIFT_A equ 0c0h ;JP9009
  192. EXT_KATAKANA_ALT_A equ 0c1h ;JP9009
  193. EXT_TANGO_A equ 0c2h ;JP9009
  194. EXT_TANGO_SHIFT_A equ 0c3h ;JP9009
  195. EXT_TANGO_CTRL_A equ 0c4h ;JP9009
  196. EXT_TANGO_ALT_A equ 0c5h ;JP9009
  197. EXT_NO_CONV_1 equ 0abh
  198. EXT_NO_CONV_2 equ 0ach
  199. EXT_NO_CONV_3 equ 0adh
  200. EXT_NO_CONV_4 equ 0aeh
  201. EXT_CONV_1 equ 0a7h
  202. EXT_CONV_2 equ 0a8h
  203. EXT_CONV_3 equ 0a9h
  204. EXT_CONV_4 equ 0aah
  205. JP_COMMON_XLAT: ;;
  206. ;;
  207. DW COMMON_XLAT_END-$ ;; length of section
  208. DW -1 ;; code page
  209. ;;
  210. ;;
  211. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SK900807
  212. ;; CODE PAGE: Common
  213. ;; STATE: Alt Case
  214. ;; KEYBOARD TYPES: New DBCS keyboard
  215. ;; TABLE TYPE: Translate
  216. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  217. ;;
  218. DW COM_ALT_K1_END-$ ;; length of state section
  219. DB ALT_CASE ;; State ID
  220. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  221. DB -1,-1 ;; Buffer entry for error character
  222. ;;
  223. DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
  224. DB TYPE_2_TAB ;; xlat options:
  225. ifdef NT35
  226. DB 5 ;; number of entries
  227. db HW_SC_YEN_NEW, -1, HW_SC_BACK_SLASH
  228. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_NO
  229. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ALPHA_NUMERIC_CTRL
  230. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_4
  231. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_4
  232. else ; NT3.51
  233. DB 1 ;; number of entries
  234. db HW_SC_SINGLE_QUOTE, EXTENDED_CODE, EXT_KANJI
  235. endif ; NT3.51
  236. COM_ALT_K1_T1_END: ;;
  237. ;;
  238. DW 0 ;; Size of xlat table - null table
  239. ;;
  240. COM_ALT_K1_END: ;;
  241. ;;
  242. ifdef NT3.5 ; not 101 Japanese keyboard
  243. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  244. ;; CODE PAGE: Common
  245. ;; STATE: Ctrl Case
  246. ;; KEYBOARD TYPES: New DBCS keyboard
  247. ;; TABLE TYPE: Translate
  248. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  249. ;;
  250. DW COM_CTRL_K1_END-$ ;; length of state section
  251. DB CTRL_CASE ;; State ID
  252. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  253. DB -1,-1 ;; Buffer entry for error character
  254. ;;
  255. DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
  256. DB TYPE_2_TAB ;; xlat options:
  257. DB 5 ;; number of entries
  258. DB HW_SC_YEN_NEW, 1ch, HW_SC_BACK_SLASH
  259. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_CTRL
  260. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ROMAJI
  261. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_3
  262. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_3
  263. COM_CTRL_K1_T1_END: ;;
  264. ;;
  265. DW 0 ;; Size of xlat table - null table
  266. ;;
  267. COM_CTRL_K1_END: ;;
  268. ;;
  269. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  270. ;; CODE PAGE: Common
  271. ;; STATE: Non-Alpha Lower Case
  272. ;; KEYBOARD TYPES: New DBCS keyboard
  273. ;; TABLE TYPE: Translate
  274. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  275. ;;
  276. DW COM_NA_LO_K1_END-$ ;; length of state section
  277. DB NON_ALPHA_LOWER ;; State ID
  278. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  279. DB -1,-1 ;; Buffer entry for error character
  280. ;;
  281. DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
  282. DB TYPE_2_TAB ;; xlat options:
  283. DB 5 ;; number of entries
  284. db HW_SC_YEN_NEW, '\', HW_SC_BACK_SLASH
  285. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI
  286. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_KATAKANA
  287. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_1
  288. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_1
  289. COM_NA_LO_K1_T1_END: ;;
  290. ;;
  291. DW 0 ;; Size of xlat table - null table
  292. ;;
  293. COM_NA_LO_K1_END: ;;
  294. ;;
  295. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  296. ;; CODE PAGE: Common
  297. ;; STATE: Non-Alpha Upper Case
  298. ;; KEYBOARD TYPES: New DBCS keyboard
  299. ;; TABLE TYPE: Translate
  300. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  301. ;;
  302. DW COM_NA_UP_K1_END-$ ;; length of state section
  303. DB NON_ALPHA_UPPER ;; State ID
  304. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  305. DB -1,-1 ;; Buffer entry for error character
  306. ;;
  307. DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
  308. DB TYPE_2_TAB ;; xlat options:
  309. DB 5 ;; number of entries
  310. db HW_SC_YEN_NEW, '|', HW_SC_BACK_SLASH
  311. db HW_SC_KANJI, EXTENDED_CODE, EXT_HALF_FULL
  312. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_HIRAGANA
  313. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_2
  314. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_2
  315. COM_NA_UP_T1_K1_END: ;;
  316. ;;
  317. DW 0 ;; Size of xlat table - null table
  318. COM_NA_UP_K1_END: ;;
  319. ;;
  320. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  321. endif ; NT3.5 non 101 Japanese keyboard
  322. DW 0 ;; LAST STATE
  323. COMMON_XLAT_END: ;;
  324. ;;
  325. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  326. ;; ;;
  327. ;; JP Specific Translate Section for ;;
  328. ;; Code Page 932. ;;
  329. ;; It is completely covered by the ;;
  330. ;; common table. ;;
  331. ;; ;;
  332. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  333. ;;
  334. JP_932_XLAT: ;;
  335. ;;
  336. DW CP932_XLAT_END - $ ;;
  337. DW 932 ;;
  338. ;;
  339. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  340. DW 0 ;;
  341. CP932_XLAT_END: ;;
  342. ;;
  343. ;;
  344. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  345. ;; ;;
  346. ;; JP Specific Translate Section for ;;
  347. ;; Code Page 437. ;;
  348. ;; It is completely covered by the ;;
  349. ;; common table. ;;
  350. ;; ;;
  351. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  352. ;;
  353. JP_437_XLAT: ;;
  354. ;;
  355. DW CP437_XLAT_END - $ ;;
  356. DW 437 ;;
  357. ;;
  358. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  359. DW 0 ;;
  360. CP437_XLAT_END: ;;
  361. ;;
  362. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  363. CODE ENDS ;;
  364. END ;;