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.

589 lines
26 KiB

  1. PAGE ,132
  2. TITLE PC DOS 3.3 Keyboard Definition File
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;; PC DOS 3.3 - NLS Support - Keyboard Defintion File
  5. ;; (c) Copyright IBM Corp 198?,...
  6. ;;
  7. ;; This file contains the keyboard tables for Spanish.
  8. ;;
  9. ;; Linkage Instructions:
  10. ;; Refer to KDF.ASM.
  11. ;;
  12. ;;
  13. ;; Author: BILL DEVLIN - IBM Canada Laboratory - May 1986
  14. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  15. ;;
  16. INCLUDE KEYBSHAR.INC ;;
  17. INCLUDE POSTEQU.INC ;;
  18. INCLUDE KEYBMAC.INC ;;
  19. ;;
  20. PUBLIC DV_LOGIC ;;
  21. PUBLIC DV_COMMON_XLAT ;;
  22. ;;
  23. CODE SEGMENT PUBLIC 'CODE' ;;
  24. ASSUME CS:CODE,DS:CODE ;;
  25. ;;
  26. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  27. ;; Standard translate table options are a liner search table
  28. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  29. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  30. ;;
  31. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  32. ;;
  33. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34. ;;***************************************
  35. ;; DV State Logic
  36. ;;***************************************
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;
  39. ;;
  40. DV_LOGIC:
  41. DW LOGIC_END-$ ;; length
  42. ;;
  43. DW 0 ;; special features
  44. ;;
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
  46. ;;
  47. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  48. ;; OPTIONS: If we find a scan match in
  49. ;; an XLATT or SET_FLAG operation then
  50. ;; exit from INT 9.
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52. ;;
  53. OPTION EXIT_IF_FOUND ;;
  54. ;;
  55. ;;
  56. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  57. ;; Dead key definitions must come before
  58. ;; dead key translations to handle
  59. ;; dead key + dead key.
  60. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  61. ;;
  62. IFF EITHER_ALT,NOT ;;
  63. ANDF EITHER_CTL,NOT ;;
  64. IFF EITHER_SHIFT ;;
  65. SET_FLAG DEAD_UPPER ;;
  66. ELSEF ;;
  67. SET_FLAG DEAD_LOWER ;;
  68. ENDIFF ;;
  69. ENDIFF ;;
  70. ;;
  71. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  72. ;; ACUTE ACCENT TRANSLATIONS
  73. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  74. ;;
  75. ACUTE_PROC: ;;
  76. ;;
  77. IFF ACUTE,NOT ;;
  78. GOTO DIARESIS_PROC ;;
  79. ENDIFF ;;
  80. ;;
  81. RESET_NLS ;;
  82. IFF R_ALT_SHIFT,NOT ;;
  83. XLATT ACUTE_SPACE ;;
  84. ENDIFF ;;
  85. IFF EITHER_CTL,NOT ;;
  86. ANDF EITHER_ALT,NOT ;;
  87. IFF EITHER_SHIFT ;;
  88. IFF CAPS_STATE ;;
  89. XLATT ACUTE_LOWER ;;
  90. ELSEF ;;
  91. XLATT ACUTE_UPPER ;;
  92. ENDIFF ;;
  93. ELSEF ;;
  94. IFF CAPS_STATE ;;
  95. XLATT ACUTE_UPPER ;;
  96. ELSEF ;;
  97. XLATT ACUTE_LOWER ;;
  98. ENDIFF ;;
  99. ENDIFF ;;
  100. ENDIFF ;;
  101. ;;
  102. INVALID_ACUTE: ;;
  103. PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
  104. BEEP ;; failed or we are ina bad shift state.
  105. GOTO NON_DEAD ;; Either is invalid so BEEP and fall
  106. ;; through to generate the second char.
  107. ;; Note that the dead key flag will be
  108. ;; reset before we get here.
  109. ;;
  110. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  111. ;; DIARESIS ACCENT TRANSLATIONS
  112. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  113. ;;
  114. DIARESIS_PROC: ;;
  115. ;;
  116. IFF DIARESIS,NOT ;;
  117. GOTO GRAVE_PROC ;;
  118. ENDIFF ;;
  119. ;;
  120. RESET_NLS ;;
  121. IFF R_ALT_SHIFT,NOT ;;
  122. XLATT DIARESIS_SPACE ;; exist for 437 so beep for
  123. ENDIFF ;;
  124. IFF EITHER_CTL,NOT ;;
  125. ANDF EITHER_ALT,NOT ;;
  126. IFF EITHER_SHIFT ;;
  127. IFF CAPS_STATE ;;
  128. XLATT DIARESIS_LOWER ;;
  129. ELSEF ;;
  130. XLATT DIARESIS_UPPER ;;
  131. ENDIFF ;;
  132. ELSEF ;;
  133. IFF CAPS_STATE ;;
  134. XLATT DIARESIS_UPPER ;;
  135. ELSEF ;;
  136. XLATT DIARESIS_LOWER ;;
  137. ENDIFF ;;
  138. ENDIFF ;;
  139. ENDIFF ;;
  140. ;;
  141. INVALID_DIARESIS: ;;
  142. PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
  143. BEEP ;; Invalid dead key combo.
  144. GOTO NON_DEAD ;;
  145. ;;
  146. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  147. ;; GRAVE ACCENT TRANSLATIONS
  148. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  149. ;;
  150. GRAVE_PROC: ;;
  151. ;;
  152. IFF GRAVE,NOT ;;
  153. GOTO CIRCUMFLEX_PROC ;;
  154. ENDIFF ;;
  155. ;;
  156. RESET_NLS ;;
  157. IFF R_ALT_SHIFT,NOT ;;
  158. XLATT GRAVE_SPACE ;;
  159. ENDIFF ;;
  160. IFF EITHER_CTL,NOT ;;
  161. ANDF EITHER_ALT,NOT ;;
  162. IFF EITHER_SHIFT ;;
  163. IFF CAPS_STATE ;;
  164. XLATT GRAVE_LOWER ;;
  165. ELSEF ;;
  166. XLATT GRAVE_UPPER ;;
  167. ENDIFF ;;
  168. ELSEF ;;
  169. IFF CAPS_STATE,NOT ;;
  170. XLATT GRAVE_LOWER ;;
  171. ELSEF ;;
  172. XLATT GRAVE_UPPER ;;
  173. ENDIFF ;;
  174. ENDIFF ;;
  175. ENDIFF ;;
  176. ;;
  177. INVALID_GRAVE: ;;
  178. PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
  179. BEEP ;; Invalid dead key combo.
  180. GOTO NON_DEAD ;;
  181. ;;
  182. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  183. ;; CIRCUMFLEX ACCENT TRANSLATIONS
  184. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  185. ;;
  186. CIRCUMFLEX_PROC: ;;
  187. ;;
  188. IFF CIRCUMFLEX,NOT ;;
  189. GOTO NON_DEAD ;;
  190. ENDIFF ;;
  191. ;;
  192. RESET_NLS ;;
  193. IFF R_ALT_SHIFT,NOT ;;
  194. XLATT CIRCUMFLEX_SPACE ;;
  195. ENDIFF ;;
  196. IFF EITHER_CTL,NOT ;;
  197. ANDF EITHER_ALT,NOT ;;
  198. IFF EITHER_SHIFT ;;
  199. IFF CAPS_STATE ;;
  200. XLATT CIRCUMFLEX_LOWER ;;
  201. ELSEF ;;
  202. XLATT CIRCUMFLEX_UPPER ;;
  203. ENDIFF ;;
  204. ELSEF ;;
  205. IFF CAPS_STATE,NOT ;;
  206. XLATT CIRCUMFLEX_LOWER ;;
  207. ELSEF ;;
  208. XLATT CIRCUMFLEX_UPPER ;;
  209. ENDIFF ;;
  210. ENDIFF ;;
  211. ENDIFF ;;
  212. ;;
  213. INVALID_CIRCUMFLEX: ;;
  214. PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
  215. BEEP ;; Invalid dead key combo.
  216. GOTO NON_DEAD ;;
  217. ;;
  218. ;;
  219. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  220. ;; Upper, lower and third shifts
  221. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  222. ;;
  223. NON_DEAD: ;;
  224. ;;
  225. IFKBD G_KB+P12_KB ;; Avoid accidentally translating
  226. ANDF LC_E0 ;; the "/" on the numeric pad of the
  227. EXIT_STATE_LOGIC ;; G keyboard
  228. ENDIFF ;;
  229. ;;***BD ADDED FOR ALT, CTRL CASES ;;
  230. IFF EITHER_CTL,NOT ;;
  231. IFF ALT_SHIFT ;; ALT - case
  232. ANDF R_ALT_SHIFT,NOT ;;
  233. XLATT ALT_CASE ;;
  234. ENDIFF ;;
  235. ELSEF ;;
  236. IFF EITHER_ALT,NOT ;; CTRL - case
  237. XLATT CTRL_CASE ;;
  238. ENDIFF ;;
  239. ENDIFF ;;
  240. ;;***BD END OF ADDITION
  241. ;;
  242. IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
  243. ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
  244. IFF EITHER_SHIFT ;; Numeric keys are not.
  245. ;;***BD ADDED FOR NUMERIC PAD
  246. IFF NUM_STATE,NOT ;;
  247. XLATT NUMERIC_PAD ;;
  248. ENDIFF ;;
  249. ;;***BD END OF ADDITION
  250. XLATT NON_ALPHA_UPPER ;;
  251. IFF CAPS_STATE ;;
  252. XLATT ALPHA_LOWER ;;
  253. ELSEF ;;
  254. XLATT ALPHA_UPPER ;;
  255. ENDIFF ;;
  256. ELSEF ;;
  257. ;;***BD ADDED FOR NUMERIC PAD
  258. IFF NUM_STATE ;;
  259. XLATT NUMERIC_PAD ;;
  260. ENDIFF ;;
  261. ;;***BD END OF ADDITION
  262. XLATT NON_ALPHA_LOWER ;;
  263. IFF CAPS_STATE ;;
  264. XLATT ALPHA_UPPER ;;
  265. ELSEF ;;
  266. XLATT ALPHA_LOWER ;;
  267. ENDIFF ;;
  268. ENDIFF ;;
  269. ELSEF ;;
  270. IFF EITHER_SHIFT,NOT ;;
  271. IFKBD XT_KB+AT_KB ;;
  272. IFF EITHER_CTL ;;
  273. ANDF ALT_SHIFT ;;
  274. XLATT THIRD_SHIFT ;;
  275. ENDIFF ;;
  276. ELSEF ;;
  277. IFF EITHER_CTL,NOT ;;
  278. ANDF R_ALT_SHIFT ;;
  279. XLATT THIRD_SHIFT ;;
  280. ENDIFF ;;
  281. ENDIFF ;;
  282. ENDIFF ;;
  283. ENDIFF ;;
  284. ;;
  285. EXIT_STATE_LOGIC ;;
  286. ;;
  287. LOGIC_END: ;;
  288. ;;
  289. ;;
  290. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  291. ;;***************************************
  292. ;; DV Common Translate Section
  293. ;; This section contains translations for the lower 128 characters
  294. ;; only since these will never change from code page to code page.
  295. ;; In addition the dead key "Set Flag" tables are here since the
  296. ;; dead keys are on the same keytops for all code pages.
  297. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  298. ;;
  299. PUBLIC DV_COMMON_XLAT ;;
  300. DV_COMMON_XLAT: ;;
  301. ;;
  302. DW COMMON_XLAT_END-$ ;; length of section
  303. DW -1 ;; code page
  304. ;;
  305. ;;
  306. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  307. ;;***************************************
  308. ;;***BD - ADDED FOR ALT CASE
  309. ;;******************************
  310. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  311. ;; CODE PAGE: Common
  312. ;; STATE: Alt Case
  313. ;; KEYBOARD TYPES: All
  314. ;; TABLE TYPE: Translate
  315. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  316. ;;
  317. DW COM_ALT_K2_END-$ ;; length of state section
  318. DB ALT_CASE ;; State ID
  319. DW ANY_KB ;; Keyboard Type
  320. DB -1,-1 ;; Buffer entry for error character
  321. ;;
  322. DW COM_ALT_K2_T1_END-$ ;; Size of xlat table
  323. DB TYPE_2_TAB ;; xlat options:
  324. DB 36 ;; number of entries
  325. DB 0CH, 0, 01AH ;; Alt+{
  326. DB 0DH, 0, 01BH ;; Alt+}
  327. DB 010H, 0, 028H ;; Altl+"
  328. DB 011H, 0, 033H ;; Altl+,
  329. DB 012H, 0, 034H ;; Altl+.
  330. DB 013H, 0, 019H ;; Altl+P
  331. DB 014H, 0, 015H ;; Altl+Y
  332. DB 015H, 0, 021H ;; Altl+F
  333. DB 016H, 0, 022H ;; Altl+G
  334. DB 017H, 0, 02EH ;; Altl+C
  335. DB 018H, 0, 013H ;; Altl+R
  336. DB 019H, 0, 026H ;; Altl+L
  337. DB 01AH, 0, 035H ;; Altl+?
  338. DB 01BH, 0, 0DH ;; Altl+=
  339. DB 01EH, 0, 01EH ;; Altl+A
  340. DB 01FH, 0, 018H ;; Altl+O
  341. DB 020H, 0, 012H ;; Altl+E
  342. DB 021H, 0, 016H ;; Altl+U
  343. DB 022H, 0, 017H ;; Altl+I
  344. DB 023H, 0, 020H ;; Altl+D
  345. DB 024H, 0, 023H ;; Altl+H
  346. DB 025H, 0, 014H ;; Altl+T
  347. DB 026H, 0, 031H ;; Altl+N
  348. DB 027H, 0, 01FH ;; Altl+S
  349. DB 028H, 0, 0CH ;; Altl+-
  350. DB 02BH, 0, 02BH ;; Altl+|
  351. DB 02CH, 0, 027H ;; Altl+;
  352. DB 02DH, 0, 010H ;; Altl+Q
  353. DB 02EH, 0, 024H ;; Altl+J
  354. DB 02FH, 0, 025H ;; Altl+K
  355. DB 030H, 0, 02DH ;; Altl+X
  356. DB 031H, 0, 030H ;; Altl+B
  357. DB 032H, 0, 032H ;; Altl+M
  358. DB 033H, 0, 011H ;; Altl+W
  359. DB 034H, 0, 02FH ;; Altl+V
  360. DB 035H, 0, 02CH ;; Altl+Z
  361. COM_ALT_K2_T1_END: ;;
  362. ;;
  363. DW 0 ;; Size of xlat table - null table
  364. ;;
  365. COM_ALT_K2_END: ;;
  366. ;;
  367. ;;******************************
  368. ;;***BD - ADDED FOR CTRL CASE
  369. ;;******************************
  370. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  371. ;; CODE PAGE: Common
  372. ;; STATE: Ctrl Case
  373. ;; KEYBOARD TYPES: G_KB+P12_KB+AT
  374. ;; TABLE TYPE: Translate
  375. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  376. ;;
  377. DW COM_CTRL_K2_END-$ ;; length of state section
  378. DB CTRL_CASE ;; State ID
  379. DW G_KB+P12_KB+AT_KB ;; Keyboard Type
  380. DB -1,-1 ;; Buffer entry for error character
  381. ;;
  382. DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
  383. DB TYPE_2_TAB ;; xlat options:
  384. DB 36 ;; number of entries
  385. DB 0CH, 01BH, 0CH ;; Ctrl+{
  386. DB 0DH, 01DH, 0DH ;; Ctrl+}
  387. DB 010H, 00H, 010H ;; Ctrl+"
  388. DB 011H, 00H, 011H ;; Ctrl+,
  389. DB 012H, 00H, 012H ;; Ctrl+.
  390. DB 013H, 010H, 013H ;; Ctrl+P
  391. DB 014H, 019H, 014H ;; Ctrl+Y
  392. DB 015H, 06H, 015H ;; Ctrl+F
  393. DB 016H, 07H, 016H ;; Ctrl+G
  394. DB 017H, 03H, 017H ;; Ctrl+C
  395. DB 018H, 012H, 018H ;; Ctrl+R
  396. DB 019H, 0CH, 019H ;; Ctrl+L
  397. DB 01AH, 00H, 01AH ;; Ctrl+?
  398. DB 01BH, 00H, 01BH ;; Ctrl+=
  399. DB 01EH, 01H, 01EH ;; Ctrl+A
  400. DB 01FH, 0FH, 01FH ;; Ctrl+O
  401. DB 020H, 05H, 020H ;; Ctrl+E
  402. DB 021H, 015H, 021H ;; Ctrl+U
  403. DB 022H, 09H, 022H ;; Ctrl+I
  404. DB 023H, 04H, 023H ;; Ctrl+D
  405. DB 024H, 08H, 024H ;; Ctrl+H
  406. DB 025H, 014H, 025H ;; Ctrl+T
  407. DB 026H, 0EH, 026H ;; Ctrl+N
  408. DB 027H, 013H, 027H ;; Ctrl+S
  409. DB 028H, 01FH, 028H ;; Ctrl+-
  410. DB 02BH, 00H, 02BH ;; Ctrl+|
  411. DB 02CH, 00H, 02CH ;; Ctrl+;
  412. DB 02DH, 011H, 02DH ;; Ctrl+Q
  413. DB 02EH, 0AH, 02EH ;; Ctrl+J
  414. DB 02FH, 0BH, 02FH ;; Ctrl+K
  415. DB 030H, 018H, 030H ;; Ctrl+X
  416. DB 031H, 02H, 031H ;; Ctrl+B
  417. DB 032H, 0DH, 032H ;; Ctrl+M
  418. DB 033H, 017H, 033H ;; Ctrl+W
  419. DB 034H, 016H, 034H ;; Ctrl+V
  420. DB 035H, 01AH, 035H ;; Ctrl+Z
  421. COM_CTRL_K2_T1_END: ;;
  422. ;;
  423. DW 0 ;; Size of xlat table - null table
  424. ;;
  425. COM_CTRL_K2_END: ;;
  426. ;;
  427. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  428. ;; CODE PAGE: Common
  429. ;; STATE: Non-Alpha Lower Case
  430. ;; KEYBOARD TYPES: G_KB+P12_KB
  431. ;; TABLE TYPE: Translate
  432. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  433. ;;
  434. DW COM_NA_LO_K1_END-$ ;; length of state section
  435. DB NON_ALPHA_LOWER ;; State ID
  436. DW ANY_KB ;; Keyboard Type
  437. DB -1,-1 ;; Buffer entry for error character
  438. ;;
  439. DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
  440. DB STANDARD_TABLE ;; xlat options:
  441. DB 9 ;; number of entries
  442. DB 00CH,"[" ;; '
  443. DB 00DH,']' ;; #
  444. DB 010H,"'" ;; #
  445. DB 011H,',' ;; #
  446. DB 012H,'.' ;; #
  447. DB 01AH,'/' ;; #
  448. DB 01BH,'=' ;; #
  449. DB 028H,'-' ;; #
  450. DB 02CH,';' ;; #
  451. COM_NA_LO_K1_T1_END: ;;
  452. ;;
  453. DW 0 ;; Size of xlat table - null table
  454. ;;
  455. COM_NA_LO_K1_END: ;;
  456. ;;
  457. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  458. ;; CODE PAGE: Common
  459. ;; STATE: Non-Alpha Upper Case
  460. ;; KEYBOARD TYPES: G_KB+P12_KB+
  461. ;; TABLE TYPE: Translate
  462. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  463. ;;
  464. DW COM_NA_UP_K1_END-$ ;; length of state section
  465. DB NON_ALPHA_UPPER ;; State ID
  466. DW ANY_KB ;; Keyboard Type
  467. DB -1,-1 ;; Buffer entry for error character
  468. ;;
  469. DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
  470. DB STANDARD_TABLE ;; xlat options:
  471. DB 9 ;; number of entries
  472. DB 00CH,"{" ;; '
  473. DB 00DH,'}' ;; #
  474. DB 010H,'"' ;; #
  475. DB 011H,'<' ;; #
  476. DB 012H,'>' ;; #
  477. DB 01AH,'?' ;; #
  478. DB 01BH,'+' ;; #
  479. DB 028H,'_' ;; #
  480. DB 02CH,':' ;; #
  481. COM_NA_UP_T1_K1_END: ;;
  482. ;;
  483. DW 0 ;; Size of xlat table - null table
  484. ;;
  485. COM_NA_UP_K1_END: ;;
  486. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  487. ;; CODE PAGE: COMMON
  488. ;; STATE: Alpha Lower Case
  489. ;; KEYBOARD TYPES: All
  490. ;; TABLE TYPE: Translate
  491. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  492. ;;
  493. DW CPCOM_A_K1_LO_END-$ ;; length of state section
  494. DB ALPHA_LOWER ;; State ID
  495. DW ANY_KB ;; Keyboard Type
  496. DB -1,-1 ;; Buffer entry for error character
  497. ;;
  498. ;;
  499. DW CPCOM_A_LO_K1_T01_END-$ ;; Size of xlat table
  500. DB STANDARD_TABLE ;; xlat options:
  501. DB 26 ;; number of entries
  502. DB 13H, 'p' ;; j
  503. DB 14H, 'y' ;; l
  504. DB 15H, 'f' ;; m
  505. DB 16H, 'g' ;; f
  506. DB 17H, 'c' ;; p
  507. DB 18H, 'r' ;; p
  508. DB 19H, 'l' ;; p
  509. DB 1EH, 'a' ;; o
  510. DB 1FH, 'o' ;; r
  511. DB 20H, 'e' ;; s
  512. DB 21H, 'u' ;; u
  513. DB 22H, 'i' ;; y
  514. DB 23H, 'd' ;; b
  515. DB 24H, 'h' ;; b
  516. DB 25H, 't' ;; b
  517. DB 26H, 'n' ;; b
  518. DB 27H, 's' ;; b
  519. DB 2DH, 'q' ;; z
  520. DB 2EH, 'j' ;; a
  521. DB 2FH, 'k' ;; e
  522. DB 30H, 'x' ;; h
  523. DB 31H, 'b' ;; t
  524. DB 32H, 'm' ;; d
  525. DB 33H, 'w' ;; c
  526. DB 34H, 'v' ;; k
  527. DB 35H, 'z' ;; k
  528. CPCOM_A_LO_K1_T01_END: ;;
  529. ;;
  530. DW 0 ;; Size of xlat table - null table
  531. ;;
  532. CPCOM_A_K1_LO_END: ;;
  533. ;;
  534. ;;
  535. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  536. ;; CODE PAGE: COMMON
  537. ;; STATE: Alpha Upper Case
  538. ;; KEYBOARD TYPES: All
  539. ;; TABLE TYPE: Translate
  540. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  541. ;;
  542. DW CPCOM_A_K1_UP_END-$ ;; length of state section
  543. DB ALPHA_UPPER ;; State ID
  544. DW ANY_KB ;; Keyboard Type
  545. DB -1,-1 ;; Buffer entry for error character
  546. ;;
  547. DW CPCOM_A_UP_K1_T01_END-$ ;; Size of xlat table
  548. DB STANDARD_TABLE ;; xlat options:
  549. DB 26 ;; number of entries
  550. DB 13H, 'P' ;; j
  551. DB 14H, 'Y' ;; l
  552. DB 15H, 'F' ;; m
  553. DB 16H, 'G' ;; f
  554. DB 17H, 'C' ;; p
  555. DB 18H, 'R' ;; p
  556. DB 19H, 'L' ;; p
  557. DB 1EH, 'A' ;; o
  558. DB 1FH, 'O' ;; r
  559. DB 20H, 'E' ;; s
  560. DB 21H, 'U' ;; u
  561. DB 22H, 'I' ;; y
  562. DB 23H, 'D' ;; b
  563. DB 24H, 'H' ;; b
  564. DB 25H, 'T' ;; b
  565. DB 26H, 'N' ;; b
  566. DB 27H, 'S' ;; b
  567. DB 2DH, 'Q' ;; z
  568. DB 2EH, 'J' ;; a
  569. DB 2FH, 'K' ;; e
  570. DB 30H, 'X' ;; h
  571. DB 31H, 'B' ;; t
  572. DB 32H, 'M' ;; d
  573. DB 33H, 'W' ;; c
  574. DB 34H, 'V' ;; k
  575. DB 35H, 'Z' ;; k
  576. CPCOM_A_UP_K1_T01_END: ;;
  577. DW 0 ;; Size of xlat table - null table
  578. ;;
  579. CPCOM_A_K1_UP_END: ;;
  580. ;;
  581. DW 0 ;; LAST STATE
  582. ;;
  583. COMMON_XLAT_END: ;;
  584. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  585. CODE ENDS ;;
  586. END ;;
  587.