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.

363 lines
16 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. HW_SC_0 equ 0bh ;JP9007
  139. HW_SC_HAT equ 0dh ;JP9007
  140. HW_SC_BACK_SLASH equ 56h
  141. HW_SC_YEN_NEW equ 7dh
  142. HW_SC_CONV equ 5bh
  143. HW_SC_NO_CONV equ 5ah
  144. HW_SC_KANJI equ 71h
  145. HW_SC_KATAKANA equ 72h
  146. HW_SC_TORIKESHI equ 55h ;JP9009
  147. HW_SC_PA1 equ 5ah ;JP9009
  148. HW_SC_CSR_BLINK equ 5bh ;JP9009
  149. HW_SC_INTERRUPT equ 5ch ;JP9009
  150. HW_SC_UF1 equ 5dh ;JP9009
  151. HW_SC_PA2 equ 5eh ;JP9009
  152. HW_SC_UF2 equ 63h ;JP9009
  153. HW_SC_UF3 equ 64h ;JP9009
  154. HW_SC_UF4 equ 65h ;JP9009
  155. HW_SC_ATTENTION equ 66h ;JP9009
  156. HW_SC_SIZE_CONV equ 69h ;JP9009
  157. HW_SC_MESSAGE equ 6ah ;JP9009
  158. HW_SC_COPY equ 6bh ;JP9009
  159. HW_SC_SHUHRYOH equ 6ch ;JP9009
  160. HW_SC_ERASE_EOF equ 6dh ;JP9009
  161. HW_SC_CLEAR equ 76h ;JP9009
  162. ;
  163. ; Type of converted scan code
  164. ;
  165. PSEUDO_CODE equ 00h
  166. EXTENDED_CODE equ 0f0h
  167. EXTENDED_CODE_E0 equ 0e0h ;JP900807
  168. ;
  169. ; Extended code list
  170. ;
  171. EXT_HALF_FULL equ 0afh
  172. EXT_HALF_FULL_UPPER equ 0b0h
  173. EXT_HALF_FULL_CTRL equ 0b1h
  174. EXT_KANJI equ 0b2h
  175. EXT_ALPHA_NUMERIC equ 0b3h
  176. EXT_ALPHA_NUMERIC_CTRL equ 0b4h
  177. EXT_KANJI_NO equ 0b5h
  178. EXT_HIRAGANA equ 0b6h
  179. EXT_KATAKANA equ 0b7h
  180. EXT_HIRAGANA_CTRL equ 0b8h
  181. EXT_ROMAJI equ 0b9h
  182. EXT_HALF_FULL_ALT equ 0bah
  183. EXT_ALPHA_NUMERIC_ALT equ 0bbh
  184. EXT_HIRAGANA_UPPER equ 0bch
  185. EXT_KATAKANA_CTRL equ 0bdh
  186. EXT_KANJI_UPPER equ 0beh
  187. EXT_KANJI_CTRL equ 0bfh
  188. EXT_KATAKANA_SHIFT_A equ 0c0h ;JP9009
  189. EXT_KATAKANA_ALT_A equ 0c1h ;JP9009
  190. EXT_TANGO_A equ 0c2h ;JP9009
  191. EXT_TANGO_SHIFT_A equ 0c3h ;JP9009
  192. EXT_TANGO_CTRL_A equ 0c4h ;JP9009
  193. EXT_TANGO_ALT_A equ 0c5h ;JP9009
  194. EXT_NO_CONV_1 equ 0abh
  195. EXT_NO_CONV_2 equ 0ach
  196. EXT_NO_CONV_3 equ 0adh
  197. EXT_NO_CONV_4 equ 0aeh
  198. EXT_CONV_1 equ 0a7h
  199. EXT_CONV_2 equ 0a8h
  200. EXT_CONV_3 equ 0a9h
  201. EXT_CONV_4 equ 0aah
  202. JP_COMMON_XLAT: ;;
  203. ;;
  204. DW COMMON_XLAT_END-$ ;; length of section
  205. DW -1 ;; code page
  206. ;;
  207. ;;
  208. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SK900807
  209. ;; CODE PAGE: Common
  210. ;; STATE: Alt Case
  211. ;; KEYBOARD TYPES: New DBCS keyboard
  212. ;; TABLE TYPE: Translate
  213. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  214. ;;
  215. DW COM_ALT_K1_END-$ ;; length of state section
  216. DB ALT_CASE ;; State ID
  217. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  218. DB -1,-1 ;; Buffer entry for error character
  219. ;;
  220. DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
  221. DB TYPE_2_TAB ;; xlat options:
  222. DB 5 ;; number of entries
  223. db HW_SC_YEN_NEW, -1, HW_SC_BACK_SLASH
  224. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_NO
  225. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ALPHA_NUMERIC_CTRL
  226. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_4
  227. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_4
  228. COM_ALT_K1_T1_END: ;;
  229. ;;
  230. DW 0 ;; Size of xlat table - null table
  231. ;;
  232. COM_ALT_K1_END: ;;
  233. ;;
  234. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  235. ;; CODE PAGE: Common
  236. ;; STATE: Ctrl Case
  237. ;; KEYBOARD TYPES: New DBCS keyboard
  238. ;; TABLE TYPE: Translate
  239. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  240. ;;
  241. DW COM_CTRL_K1_END-$ ;; length of state section
  242. DB CTRL_CASE ;; State ID
  243. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  244. DB -1,-1 ;; Buffer entry for error character
  245. ;;
  246. DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table
  247. DB TYPE_2_TAB ;; xlat options:
  248. DB 5 ;; number of entries
  249. DB HW_SC_YEN_NEW, 1ch, HW_SC_BACK_SLASH
  250. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_CTRL
  251. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ROMAJI
  252. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_3
  253. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_3
  254. COM_CTRL_K1_T1_END: ;;
  255. ;;
  256. DW 0 ;; Size of xlat table - null table
  257. ;;
  258. COM_CTRL_K1_END: ;;
  259. ;;
  260. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  261. ;; CODE PAGE: Common
  262. ;; STATE: Non-Alpha Lower Case
  263. ;; KEYBOARD TYPES: New DBCS keyboard
  264. ;; TABLE TYPE: Translate
  265. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  266. ;;
  267. DW COM_NA_LO_K1_END-$ ;; length of state section
  268. DB NON_ALPHA_LOWER ;; State ID
  269. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  270. DB -1,-1 ;; Buffer entry for error character
  271. ;;
  272. DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
  273. DB TYPE_2_TAB ;; xlat options:
  274. DB 5 ;; number of entries
  275. db HW_SC_YEN_NEW, '\', HW_SC_BACK_SLASH
  276. db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI
  277. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_KATAKANA
  278. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_1
  279. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_1
  280. COM_NA_LO_K1_T1_END: ;;
  281. ;;
  282. DW 0 ;; Size of xlat table - null table
  283. ;;
  284. COM_NA_LO_K1_END: ;;
  285. ;;
  286. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  287. ;; CODE PAGE: Common
  288. ;; STATE: Non-Alpha Upper Case
  289. ;; KEYBOARD TYPES: New DBCS keyboard
  290. ;; TABLE TYPE: Translate
  291. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  292. ;;
  293. DW COM_NA_UP_K1_END-$ ;; length of state section
  294. DB NON_ALPHA_UPPER ;; State ID
  295. DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
  296. DB -1,-1 ;; Buffer entry for error character
  297. ;;
  298. DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
  299. DB TYPE_2_TAB ;; xlat options:
  300. DB 5 ;; number of entries
  301. db HW_SC_YEN_NEW, '|', HW_SC_BACK_SLASH
  302. db HW_SC_KANJI, EXTENDED_CODE, EXT_HALF_FULL
  303. db HW_SC_KATAKANA, EXTENDED_CODE, EXT_HIRAGANA
  304. db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_2
  305. db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_2
  306. COM_NA_UP_T1_K1_END: ;;
  307. ;;
  308. DW 0 ;; Size of xlat table - null table
  309. COM_NA_UP_K1_END: ;;
  310. ;;
  311. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  312. DW 0 ;; LAST STATE
  313. COMMON_XLAT_END: ;;
  314. ;;
  315. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  316. ;; ;;
  317. ;; JP Specific Translate Section for ;;
  318. ;; Code Page 932. ;;
  319. ;; It is completely covered by the ;;
  320. ;; common table. ;;
  321. ;; ;;
  322. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  323. ;;
  324. JP_932_XLAT: ;;
  325. ;;
  326. DW CP932_XLAT_END - $ ;;
  327. DW 932 ;;
  328. ;;
  329. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  330. DW 0 ;;
  331. CP932_XLAT_END: ;;
  332. ;;
  333. ;;
  334. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  335. ;; ;;
  336. ;; JP Specific Translate Section for ;;
  337. ;; Code Page 437. ;;
  338. ;; It is completely covered by the ;;
  339. ;; common table. ;;
  340. ;; ;;
  341. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  342. ;;
  343. JP_437_XLAT: ;;
  344. ;;
  345. DW CP437_XLAT_END - $ ;;
  346. DW 437 ;;
  347. ;;
  348. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  349. DW 0 ;;
  350. CP437_XLAT_END: ;;
  351. ;;
  352. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  353. CODE ENDS ;;
  354. END ;;