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.

660 lines
21 KiB

  1. ;CODE to be deleted has a double ;; followed by actual asm code....****
  2. ; * IBM CONFIDENTIAL * Jan 9 1990 *
  3. ;; LATEST CHANGE ALT & CTL
  4. PAGE ,132
  5. TITLE PC DOS 3.3 Keyboard Definition File
  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7. ;; PC DOS 3.3 - NLS Support - Keyboard Defintion File
  8. ;; (c) Copyright IBM Corp 198?,...
  9. ;;
  10. ;; This file contains the keyboard tables for Spanish.
  11. ;;
  12. ;; Linkage Instructions:
  13. ;; Refer to KDF.ASM.
  14. ;;
  15. ;;
  16. ;; Author: BILL DEVLIN - IBM Canada Laboratory - May 1986
  17. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  18. ;;
  19. INCLUDE KEYBSHAR.INC ;;
  20. INCLUDE POSTEQU.INC ;;
  21. INCLUDE KEYBMAC.INC ;;
  22. ;;
  23. PUBLIC UK2_LOGIC ;;
  24. PUBLIC UK2_437_XLAT ;;
  25. PUBLIC UK2_850_XLAT ;;
  26. ;;
  27. CODE SEGMENT PUBLIC 'CODE' ;;
  28. ASSUME CS:CODE,DS:CODE ;;
  29. ;;
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. ;; Standard translate table options are a liner search table
  32. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  33. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34. ;;
  35. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  36. ;;
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;***************************************
  39. ;; UK State Logic
  40. ;;***************************************
  41. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  42. ;;
  43. ;;
  44. UK2_LOGIC:
  45. DW LOGIC_END-$ ;; length
  46. ;;
  47. DW 0 ;; special features
  48. ;;
  49. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
  50. ;;
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52. ;; OPTIONS: If we find a scan match in
  53. ;; an XLATT or SET_FLAG operation then
  54. ;; exit from INT 9.
  55. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  56. ;;
  57. OPTION EXIT_IF_FOUND ;;
  58. ;;
  59. ;;
  60. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  61. ;; Dead key definitions must come before
  62. ;; dead key translations to handle
  63. ;; dead key + dead key.
  64. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  65. ;;
  66. IFF EITHER_ALT,NOT ;;
  67. ANDF EITHER_CTL,NOT ;;
  68. IFF EITHER_SHIFT ;;
  69. SET_FLAG DEAD_UPPER ;;
  70. ELSEF ;;
  71. SET_FLAG DEAD_LOWER ;;
  72. ENDIFF ;;
  73. ENDIFF ;;
  74. ;;
  75. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  76. ;; ACUTE ACCENT TRANSLATIONS
  77. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  78. ;;
  79. ACUTE_PROC: ;;
  80. ;;
  81. IFF ACUTE,NOT ;;
  82. GOTO DIARESIS_PROC ;;
  83. ENDIFF ;;
  84. ;;
  85. RESET_NLS ;;
  86. IFF R_ALT_SHIFT,NOT ;;
  87. XLATT ACUTE_SPACE ;;
  88. ENDIFF ;;
  89. IFF EITHER_CTL,NOT ;;
  90. ANDF EITHER_ALT,NOT ;;
  91. IFF EITHER_SHIFT ;;
  92. IFF CAPS_STATE ;;
  93. XLATT ACUTE_LOWER ;;
  94. ELSEF ;;
  95. XLATT ACUTE_UPPER ;;
  96. ENDIFF ;;
  97. ELSEF ;;
  98. IFF CAPS_STATE ;;
  99. XLATT ACUTE_UPPER ;;
  100. ELSEF ;;
  101. XLATT ACUTE_LOWER ;;
  102. ENDIFF ;;
  103. ENDIFF ;;
  104. ENDIFF ;;
  105. ;;
  106. INVALID_ACUTE: ;;
  107. PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
  108. BEEP ;; failed or we are ina bad shift state.
  109. GOTO NON_DEAD ;; Either is invalid so BEEP and fall
  110. ;; through to generate the second char.
  111. ;; Note that the dead key flag will be
  112. ;; reset before we get here.
  113. ;;
  114. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  115. ;; DIARESIS ACCENT TRANSLATIONS
  116. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  117. ;;
  118. DIARESIS_PROC: ;;
  119. ;;
  120. IFF DIARESIS,NOT ;;
  121. GOTO GRAVE_PROC ;;
  122. ENDIFF ;;
  123. ;;
  124. RESET_NLS ;;
  125. IFF R_ALT_SHIFT,NOT ;;
  126. XLATT DIARESIS_SPACE ;; exist for 437 so beep for
  127. ENDIFF ;;
  128. IFF EITHER_CTL,NOT ;;
  129. ANDF EITHER_ALT,NOT ;;
  130. IFF EITHER_SHIFT ;;
  131. IFF CAPS_STATE ;;
  132. XLATT DIARESIS_LOWER ;;
  133. ELSEF ;;
  134. XLATT DIARESIS_UPPER ;;
  135. ENDIFF ;;
  136. ELSEF ;;
  137. IFF CAPS_STATE ;;
  138. XLATT DIARESIS_UPPER ;;
  139. ELSEF ;;
  140. XLATT DIARESIS_LOWER ;;
  141. ENDIFF ;;
  142. ENDIFF ;;
  143. ENDIFF ;;
  144. ;;
  145. INVALID_DIARESIS: ;;
  146. PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent
  147. BEEP ;; Invalid dead key combo.
  148. GOTO NON_DEAD ;;
  149. ;;
  150. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  151. ;; GRAVE ACCENT TRANSLATIONS
  152. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  153. ;;
  154. GRAVE_PROC: ;;
  155. ;;
  156. IFF GRAVE,NOT ;;
  157. GOTO CIRCUMFLEX_PROC ;;
  158. ENDIFF ;;
  159. ;;
  160. RESET_NLS ;;
  161. IFF R_ALT_SHIFT,NOT ;;
  162. XLATT GRAVE_SPACE ;;
  163. ENDIFF ;;
  164. IFF EITHER_CTL,NOT ;;
  165. ANDF EITHER_ALT,NOT ;;
  166. IFF EITHER_SHIFT ;;
  167. IFF CAPS_STATE ;;
  168. XLATT GRAVE_LOWER ;;
  169. ELSEF ;;
  170. XLATT GRAVE_UPPER ;;
  171. ENDIFF ;;
  172. ELSEF ;;
  173. IFF CAPS_STATE,NOT ;;
  174. XLATT GRAVE_LOWER ;;
  175. ELSEF ;;
  176. XLATT GRAVE_UPPER ;;
  177. ENDIFF ;;
  178. ENDIFF ;;
  179. ENDIFF ;;
  180. ;;
  181. INVALID_GRAVE: ;;
  182. PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
  183. BEEP ;; Invalid dead key combo.
  184. GOTO NON_DEAD ;;
  185. ;;
  186. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  187. ;; CIRCUMFLEX ACCENT TRANSLATIONS
  188. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  189. ;;
  190. CIRCUMFLEX_PROC: ;;
  191. ;;
  192. IFF CIRCUMFLEX,NOT ;;
  193. GOTO NON_DEAD ;;
  194. ENDIFF ;;
  195. ;;
  196. RESET_NLS ;;
  197. IFF R_ALT_SHIFT,NOT ;;
  198. XLATT CIRCUMFLEX_SPACE ;;
  199. ENDIFF ;;
  200. IFF EITHER_CTL,NOT ;;
  201. ANDF EITHER_ALT,NOT ;;
  202. IFF EITHER_SHIFT ;;
  203. IFF CAPS_STATE ;;
  204. XLATT CIRCUMFLEX_LOWER ;;
  205. ELSEF ;;
  206. XLATT CIRCUMFLEX_UPPER ;;
  207. ENDIFF ;;
  208. ELSEF ;;
  209. IFF CAPS_STATE,NOT ;;
  210. XLATT CIRCUMFLEX_LOWER ;;
  211. ELSEF ;;
  212. XLATT CIRCUMFLEX_UPPER ;;
  213. ENDIFF ;;
  214. ENDIFF ;;
  215. ENDIFF ;;
  216. ;;
  217. INVALID_CIRCUMFLEX: ;;
  218. PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
  219. BEEP ;; Invalid dead key combo.
  220. GOTO NON_DEAD ;;
  221. ;;
  222. ;;
  223. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  224. ;; Upper, lower and third shifts
  225. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  226. ;;
  227. NON_DEAD: ;;
  228. ;;
  229. IFKBD G_KB+P12_KB ;; Avoid accidentally translating
  230. ANDF LC_E0 ;; the "/" on the numeric pad of the
  231. EXIT_STATE_LOGIC ;; G keyboard
  232. ENDIFF ;;
  233. ;;***BD ADDED FOR ALT, CTRL CASES ;;
  234. IFF EITHER_CTL,NOT ;;
  235. IFF ALT_SHIFT ;; ALT - case
  236. ANDF R_ALT_SHIFT,NOT ;;
  237. XLATT ALT_CASE ;;
  238. ENDIFF ;;
  239. ELSEF ;;
  240. IFF EITHER_ALT,NOT ;; CTRL - case
  241. XLATT CTRL_CASE ;;
  242. ENDIFF ;;
  243. ENDIFF ;;
  244. ;;***BD END OF ADDITION
  245. ;;
  246. IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
  247. ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
  248. IFF EITHER_SHIFT ;; Numeric keys are not.
  249. ;;***BD ADDED FOR NUMERIC PAD
  250. IFF NUM_STATE,NOT ;;
  251. XLATT NUMERIC_PAD ;;
  252. ENDIFF ;;
  253. ;;***BD END OF ADDITION
  254. XLATT NON_ALPHA_UPPER ;;
  255. IFF CAPS_STATE ;;
  256. XLATT ALPHA_LOWER ;;
  257. ELSEF ;;
  258. XLATT ALPHA_UPPER ;;
  259. ENDIFF ;;
  260. ELSEF ;;
  261. ;;***BD ADDED FOR NUMERIC PAD
  262. IFF NUM_STATE ;;
  263. XLATT NUMERIC_PAD ;;
  264. ENDIFF ;;
  265. ;;***BD END OF ADDITION
  266. XLATT NON_ALPHA_LOWER ;;
  267. IFF CAPS_STATE ;;
  268. XLATT ALPHA_UPPER ;;
  269. ELSEF ;;
  270. XLATT ALPHA_LOWER ;;
  271. ENDIFF ;;
  272. ENDIFF ;;
  273. ELSEF ;;
  274. IFF EITHER_SHIFT,NOT ;;
  275. IFKBD XT_KB+AT_KB ;;
  276. IFF EITHER_CTL ;;
  277. ANDF ALT_SHIFT ;;
  278. XLATT THIRD_SHIFT ;;
  279. ENDIFF ;;
  280. ELSEF ;;
  281. IFF EITHER_CTL,NOT ;;
  282. ANDF R_ALT_SHIFT ;;
  283. XLATT THIRD_SHIFT ;;
  284. ENDIFF ;;
  285. ENDIFF ;;
  286. ENDIFF ;;
  287. ENDIFF ;;
  288. ;;
  289. EXIT_STATE_LOGIC ;;
  290. ;;
  291. LOGIC_END: ;;
  292. ;;
  293. ;;
  294. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  295. ;;***************************************
  296. ;; UK Common Translate Section
  297. ;; This section contains translations for the lower 128 characters
  298. ;; only since these will never change from code page to code page.
  299. ;; In addition the dead key "Set Flag" tables are here since the
  300. ;; dead keys are on the same keytops for all code pages.
  301. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  302. ;;
  303. PUBLIC UK2_COMMON_XLAT ;;
  304. UK2_COMMON_XLAT: ;;
  305. ;;
  306. DW COMMON_XLAT_END-$ ;; length of section
  307. DW -1 ;; code page
  308. ;;
  309. ;;
  310. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  311. ;;***************************************
  312. ;;***BD - ADDED FOR ALT CASE
  313. ;;******************************
  314. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  315. ;; CODE PAGE: Common
  316. ;; STATE: Alt Case
  317. ;; KEYBOARD TYPES: All
  318. ;; TABLE TYPE: Translate
  319. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  320. ;;
  321. DW COM_ALT_K2_END-$ ;; length of state section
  322. DB ALT_CASE ;; State ID
  323. DW ANY_KB ;; Keyboard Type
  324. DB -1,-1 ;; Buffer entry for error character
  325. ;;
  326. DW COM_ALT_K2_T1_END-$ ;; Size of xlat table
  327. DB TYPE_2_TAB ;; xlat options:
  328. DB 0 ;; number of entries
  329. ;;***BD THIS ENTRY IS A TEST ENTRY
  330. ;; DB 53,225,0 ;; TEST ENTRY
  331. COM_ALT_K2_T1_END: ;;
  332. ;;
  333. DW 0 ;; Size of xlat table - null table
  334. ;;
  335. COM_ALT_K2_END: ;;
  336. ;;
  337. ;;******************************
  338. ;;***BD - ADDED FOR CTRL CASE
  339. ;;******************************
  340. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  341. ;; CODE PAGE: Common
  342. ;; STATE: Ctrl Case
  343. ;; KEYBOARD TYPES: G_KB+P12_KB+AT
  344. ;; TABLE TYPE: Translate
  345. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  346. ;;
  347. DW COM_CTRL_K2_END-$ ;; length of state section
  348. DB CTRL_CASE ;; State ID
  349. DW G_KB+P12_KB+AT_KB ;; Keyboard Type
  350. DB -1,-1 ;; Buffer entry for error character
  351. ;;
  352. DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
  353. DB TYPE_2_TAB ;; xlat options:
  354. DB 2 ;; number of entries
  355. ;;***BD THIS ENTRY IS A TEST ENTRY
  356. ;; DB 53,226,0 ;; TEST ENTRY
  357. DB 43,-1,-1 ;; invalid slash
  358. DB 41,28,41 ;; valid slash
  359. COM_CTRL_K2_T1_END: ;;
  360. ;;
  361. DW 0 ;; Size of xlat table - null table
  362. ;;
  363. COM_CTRL_K2_END: ;;
  364. ;;
  365. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  366. ;; CODE PAGE: Common
  367. ;; STATE: Non-Alpha Lower Case
  368. ;; KEYBOARD TYPES: G_KB+P12_KB
  369. ;; TABLE TYPE: Translate
  370. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  371. ;;
  372. DW COM_NA_LO_K1_END-$ ;; length of state section
  373. DB NON_ALPHA_LOWER ;; State ID
  374. DW G_KB+P12_KB ;; Keyboard Type
  375. DB -1,-1 ;; Buffer entry for error character
  376. ;;
  377. DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
  378. DB STANDARD_TABLE ;; xlat options:
  379. DB 2 ;; number of entries
  380. DB 40,"'" ;; '
  381. DB 43,'#' ;; #
  382. COM_NA_LO_K1_T1_END: ;;
  383. ;;
  384. DW 0 ;; Size of xlat table - null table
  385. ;;
  386. COM_NA_LO_K1_END: ;;
  387. ;;
  388. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  389. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  390. ;; CODE PAGE: Common
  391. ;; STATE: Non-Alpha Lower Case
  392. ;; KEYBOARD TYPES: AT
  393. ;; TABLE TYPE: Translate
  394. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  395. ;;
  396. DW COM_NA_LO_K2_END-$ ;; length of state section
  397. DB NON_ALPHA_LOWER ;; State ID
  398. DW AT_KB ;; Keyboard Type
  399. DB -1,-1 ;; Buffer entry for error character
  400. ;;
  401. DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table
  402. DB STANDARD_TABLE ;; xlat options:
  403. DB 3 ;; number of entries
  404. DB 41,"\" ;; \
  405. DB 40,"'" ;; '
  406. DB 43,'#' ;; #
  407. COM_NA_LO_K2_T1_END: ;;
  408. ;;
  409. DW 0 ;; Size of xlat table - null table
  410. ;;
  411. COM_NA_LO_K2_END: ;;
  412. ;;
  413. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  414. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  415. ;; CODE PAGE: Common
  416. ;; STATE: Non-Alpha Lower Case
  417. ;; KEYBOARD TYPES: XT_KB
  418. ;; TABLE TYPE: Translate
  419. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  420. ;;
  421. DW COM_NA_LO_K3_END-$ ;; length of state section
  422. DB NON_ALPHA_LOWER ;; State ID
  423. DW XT_KB ;; Keyboard Type
  424. DB -1,-1 ;; Buffer entry for error character
  425. ;;
  426. DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table
  427. DB STANDARD_TABLE ;; xlat options:
  428. DB 2 ;; number of entries
  429. DB 40,"'" ;; '
  430. DB 41,'#' ;; #
  431. DB 43,'\' ;; #
  432. COM_NA_LO_K3_T1_END: ;;
  433. ;;
  434. DW 0 ;; Size of xlat table - null table
  435. ;;
  436. COM_NA_LO_K3_END: ;;
  437. ;;
  438. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  439. ;; CODE PAGE: Common
  440. ;; STATE: Non-Alpha Upper Case
  441. ;; KEYBOARD TYPES: G_KB+P12_KB+
  442. ;; TABLE TYPE: Translate
  443. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  444. ;;
  445. DW COM_NA_UP_K1_END-$ ;; length of state section
  446. DB NON_ALPHA_UPPER ;; State ID
  447. DW G_KB+P12_KB ;; Keyboard Type
  448. DB -1,-1 ;; Buffer entry for error character
  449. ;;
  450. DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
  451. DB STANDARD_TABLE ;; xlat options:
  452. DB 5 ;; number of entries
  453. DB 41,0AAh ;; �
  454. DB 3,'"' ;; "
  455. DB 4,09CH ;; �
  456. DB 40,'@' ;; at sign
  457. DB 43,07EH ;; ~
  458. COM_NA_UP_T1_K1_END: ;;
  459. ;;
  460. DW 0 ;; Size of xlat table - null table
  461. ;;
  462. COM_NA_UP_K1_END: ;;
  463. ;;
  464. ;;
  465. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  466. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  467. ;; CODE PAGE: Common
  468. ;; STATE: Non-Alpha Upper Case
  469. ;; KEYBOARD TYPES: XT_KB
  470. ;; TABLE TYPE: Translate
  471. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  472. ;;
  473. DW COM_NA_UP_K2_END-$ ;; length of state section
  474. DB NON_ALPHA_UPPER ;; State ID
  475. DW XT_KB ;; Keyboard Type
  476. DB -1,-1 ;; Buffer entry for error character
  477. ;;
  478. DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table
  479. DB STANDARD_TABLE ;; xlat options:
  480. DB 5 ;; number of entries
  481. DB 3,'"' ;; "
  482. DB 4,09CH ;; �
  483. DB 41,07EH ;; ~
  484. DB 40,'@' ;; at sign
  485. DB 43,07CH ;; Broken vertical bar
  486. COM_NA_UP_T1_K2_END: ;;
  487. ;;
  488. DW 0 ;; Size of xlat table - null table
  489. ;;
  490. COM_NA_UP_K2_END: ;;
  491. ;;
  492. ;;
  493. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  494. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  495. ;; CODE PAGE: Common
  496. ;; STATE: Non-Alpha Upper Case
  497. ;; KEYBOARD TYPES: AT_KB
  498. ;; TABLE TYPE: Translate
  499. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  500. ;;
  501. DW COM_NA_UP_K3_END-$ ;; length of state section
  502. DB NON_ALPHA_UPPER ;; State ID
  503. DW AT_KB ;; Keyboard Type
  504. DB -1,-1 ;; Buffer entry for error character
  505. ;;
  506. DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table
  507. DB STANDARD_TABLE ;; xlat options:
  508. DB 5 ;; number of entries
  509. DB 41,07Ch ;; �
  510. DB 3,'"' ;; "
  511. DB 4,09CH ;; �
  512. DB 40,'@' ;; at sign
  513. DB 43,07EH ;; ~
  514. COM_NA_UP_T1_K3_END: ;;
  515. ;;
  516. DW 0 ;; Size of xlat table - null table
  517. ;;
  518. COM_NA_UP_K3_END: ;;
  519. ;;
  520. ;;
  521. DW 0 ;; Last State
  522. COMMON_XLAT_END: ;;
  523. ;;
  524. ;;
  525. ;;
  526. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  527. ;;***************************************
  528. ;; UK Specific Translate Section for 437
  529. ;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE.
  530. ;;***************************************
  531. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  532. ;;
  533. PUBLIC UK2_437_XLAT ;;
  534. UK2_437_XLAT: ;;
  535. ;;
  536. DW CP437_XLAT_END-$ ;; length of section
  537. DW 437 ;;
  538. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  539. ;; CODE PAGE: CP437
  540. ;; STATE: Third Shift
  541. ;; KEYBOARD TYPES: G_KB+P12_KB
  542. ;; TABLE TYPE: Translate
  543. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  544. ;;
  545. DW CP437_THIRD_K1_END-$ ;; length of state section
  546. DB THIRD_SHIFT ;; State ID
  547. DW G_KB+P12_KB ;; Keyboard Type
  548. DB -1,-1 ;; Buffer entry for error character
  549. ;;
  550. DW CP437_THIRD_K1_T1_END-$ ;; Size of xlat table
  551. DB STANDARD_TABLE ;; xlat options:
  552. DB 1 ;; number of entries
  553. DB 41,0DDH ;; Solid vertical bar - graphics block
  554. CP437_THIRD_K1_T1_END: ;;
  555. ;;
  556. DW 0 ;; Last xlat table
  557. CP437_THIRD_K1_END: ;;
  558. ;;
  559. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  560. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  561. ;; CODE PAGE: CP437
  562. ;; STATE: Non-Alpha Upper Case
  563. ;; KEYBOARD TYPES: G_KB+P12_KB+
  564. ;; TABLE TYPE: Translate
  565. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  566. ;;
  567. DW CP437_NA_UP_K1_END-$ ;; length of state section
  568. DB NON_ALPHA_UPPER ;; State ID
  569. DW G_KB+P12_KB ;; Keyboard Type
  570. DB -1,-1 ;; Buffer entry for error character
  571. ;;
  572. DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table
  573. DB STANDARD_TABLE ;; xlat options:
  574. DB 1 ;; number of entries
  575. DB 86,07ch ;; vertical bar
  576. CP437_NA_UP_T1_K1_END: ;;
  577. ;;
  578. DW 0 ;; Size of xlat table - null table
  579. ;;
  580. CP437_NA_UP_K1_END: ;;
  581. ;;
  582. ;;
  583. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  584. DW 0 ;; LAST STATE
  585. ;;
  586. CP437_XLAT_END: ;;
  587. ;;
  588. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  589. ;;***************************************
  590. ;; UK Specific Translate Section for 850
  591. ;;***************************************
  592. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  593. ;;
  594. PUBLIC UK2_850_XLAT ;;
  595. UK2_850_XLAT: ;;
  596. ;;
  597. DW CP850_XLAT_END-$ ;; length of section
  598. DW 850 ;;
  599. ;;
  600. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  601. ;; CODE PAGE: CP850
  602. ;; STATE: Third Shift
  603. ;; KEYBOARD TYPES: G_KB+P12_KB
  604. ;; TABLE TYPE: Translate
  605. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  606. ;;
  607. DW CP850_THIRD_K1_END-$ ;; length of state section
  608. DB THIRD_SHIFT ;; State ID
  609. DW G_KB+P12_KB ;; Keyboard Type
  610. DB -1,-1 ;; Buffer entry for error character
  611. ;;
  612. DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table
  613. DB STANDARD_TABLE ;; xlat options:
  614. DB 1 ;; number of entries
  615. DB 41,07CH ;; Solid vertical bar - |
  616. CP850_THIRD_K1_T1_END: ;;
  617. ;;
  618. DW 0 ;; Last xlat table
  619. CP850_THIRD_K1_END: ;;
  620. ;;
  621. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  622. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  623. ;; CODE PAGE: Common
  624. ;; STATE: Non-Alpha Upper Case
  625. ;; KEYBOARD TYPES: G_KB+P12_KB+
  626. ;; TABLE TYPE: Translate
  627. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  628. ;;
  629. DW CP850_NA_UP_K1_END-$ ;; length of state section
  630. DB NON_ALPHA_UPPER ;; State ID
  631. DW G_KB+P12_KB ;; Keyboard Type
  632. DB -1,-1 ;; Buffer entry for error character
  633. ;;
  634. DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table
  635. DB STANDARD_TABLE ;; xlat options:
  636. DB 1 ;; number of entries
  637. DB 86,0DDh ;; broken vertical
  638. CP850_NA_UP_T1_K1_END: ;;
  639. ;;
  640. DW 0 ;; Size of xlat table - null table
  641. ;;
  642. CP850_NA_UP_K1_END: ;;
  643. ;;
  644. ;;
  645. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  646. ;;
  647. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  648. DW 0 ;; LAST STATE
  649. ;;
  650. CP850_XLAT_END: ;;
  651. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  652. CODE ENDS ;;
  653. END ;;
  654.