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.

798 lines
36 KiB

  1. PAGE 118,132
  2. TITLE DOS - Keyboard Definition File
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;; DOS - - NLS Support - Keyboard Definition File
  5. ;; (c) Copyright 1988 Microsoft
  6. ;;
  7. ;; This file contains the keyboard tables for Russia
  8. ;;
  9. ;; Linkage Instructions:
  10. ;; Refer to KDF.ASM.
  11. ;;
  12. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  13. ;;
  14. INCLUDE KEYBSHAR.INC ;;
  15. INCLUDE POSTEQU.INC ;;
  16. INCLUDE KEYBMAC.INC ;;
  17. ;;
  18. PUBLIC UR3_LOGIC ;;
  19. PUBLIC UR3_866_XLAT ;;
  20. PUBLIC UR3_437_XLAT ;;
  21. PUBLIC UR3_850_XLAT ;;
  22. PUBLIC UR3_855_XLAT ;;
  23. ;;
  24. CODE SEGMENT PUBLIC 'CODE' ;;
  25. ASSUME CS:CODE,DS:CODE ;;
  26. ;;
  27. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  28. ;; Standard translate table options are a linear search table
  29. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  30. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. ;;
  32. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  33. ENX_KBD EQU G_KB+P12_KB
  34. ;;
  35. ;;
  36. DEBUG EQU 0 ;;
  37. ;;
  38. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  39. ;;***************************************
  40. ;;
  41. ;; UR3 State Logic
  42. ;;
  43. ;;***************************************
  44. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  45. ;;
  46. ;;
  47. ;;
  48. ;;
  49. UR3_LOGIC: ;;
  50. ;;
  51. DW LOGIC3_END-$ ;; length
  52. ;;
  53. DW SHIFTS_TO_LOGIC+SWITCHABLE ;; special features
  54. ;;
  55. ;; COMMANDS START HERE
  56. ;;
  57. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  58. ;; OPTIONS: If we find a scan match in
  59. ;; an XLATT or SET_FLAG operation then
  60. ;; exit from INT 9.
  61. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  62. ;;
  63. ;;
  64. OPTION EXIT_IF_FOUND ;;
  65. ;;
  66. ;;
  67. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  68. ;;
  69. ;; Mode change CHECK
  70. ;;
  71. ;; MODE CHANGE BY <RIGHT CTRL> PRESS
  72. ;;
  73. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  74. ;;
  75. ;;
  76. IFF SHIFTS_PRESSED ;;
  77. IFF EITHER_SHIFT,NOT ;;
  78. ANDF EITHER_ALT,NOT ;;
  79. ANDF R_CTL_SHIFT ;;
  80. IFF RUS_MODE ;;
  81. BEEP ;;
  82. RESET_NLS ;;
  83. ELSEF ;;
  84. BEEP ;;
  85. SET_FLAG RUS_MODE_SET ;;
  86. ENDIFF ;;
  87. ENDIFF ;;
  88. EXIT_STATE_LOGIC ;;
  89. ENDIFF ;;
  90. ;;
  91. ;;
  92. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  93. ;; Upper, lower and third shifts
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. ;;
  96. ;;
  97. ;;
  98. IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
  99. IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
  100. IFF RUS_MODE ;;
  101. ANDF LC_E0,NOT ;; Enhanced keys are not
  102. IFF EITHER_SHIFT ;; Numeric keys are not.
  103. XLATT NON_ALPHA_UPPER ;;
  104. IFF CAPS_STATE ;;
  105. XLATT ALPHA_LOWER ;;
  106. ELSEF ;;
  107. XLATT ALPHA_UPPER ;;
  108. ENDIFF ;;
  109. ELSEF ;;
  110. XLATT NON_ALPHA_LOWER ;;
  111. IFF CAPS_STATE ;;
  112. XLATT ALPHA_UPPER ;;
  113. ELSEF ;;
  114. XLATT ALPHA_LOWER ;;
  115. ENDIFF ;;
  116. ENDIFF ;; Third and Fourth shifts
  117. ENDIFF ;;
  118. ELSEF ;; ctl off, alt on at this point
  119. IFKBD XT_KB+AT_KB ;; XT, AT, keyboards.
  120. IFF EITHER_SHIFT ;; only.
  121. XLATT THIRD_SHIFT ;; ALT + shift
  122. ENDIFF ;;
  123. ELSEF ;; ENHANCED keyboard
  124. IFF R_ALT_SHIFT ;; ALTGr
  125. ANDF EITHER_SHIFT,NOT ;;
  126. XLATT THIRD_SHIFT ;;
  127. ENDIFF ;;
  128. ENDIFF ;;
  129. ENDIFF ;;
  130. ENDIFF ;;
  131. ;;
  132. ;**************************************;;
  133. ;;
  134. EXIT_STATE_LOGIC ;;
  135. ;;
  136. LOGIC3_END: ;;
  137. ;;
  138. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  139. ;;**********************************************************************
  140. ;; UR Common Translate Section
  141. ;; This section contains translations for the lower 128 characters
  142. ;; only since these will never change from code page to code page.
  143. ;; Some common Characters are included from 128 - 165 where appropriate.
  144. ;; In addition the dead key "Set Flag" tables are here since the
  145. ;; dead keys are on the same keytops for all code pages.
  146. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  147. ;;
  148. PUBLIC UR3_COMMON_XLAT ;;
  149. UR3_COMMON_XLAT: ;;
  150. ;;
  151. DW COMMON3_XLAT_END-$ ;; length of section
  152. DW -1 ;; code page
  153. ;;
  154. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  155. ;; CODE PAGE: Any
  156. ;; STATE: RUS_MODE
  157. ;; KEYBOARD TYPES: All
  158. ;; TABLE TYPE: Flag Table
  159. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  160. ;;
  161. DW COM3_F1_END-$ ;; length of state section
  162. DB RUS_MODE_SET ;; State ID
  163. DW ANY_KB ;; Keyboard Type
  164. DB -1,-1 ;; Buffer entry for error character
  165. ;;
  166. ;; Set Flag Table
  167. DW 1 ;; number of entries
  168. DB 29 ;; scan code
  169. FLAG RUS_MODE ;; flag bit to set
  170. ;;
  171. DW 0 ;; Size of xlat table - null table
  172. ;;
  173. COM3_F1_END: ;;
  174. ;;
  175. ;;
  176. ;;
  177. ;;
  178. DW 0 ;; Last State
  179. COMMON3_XLAT_END: ;;
  180. ;;
  181. ;;
  182. ;;
  183. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  184. ;;***************************************
  185. ;; UR Specific Translate Section for 437
  186. ;;***************************************
  187. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  188. ;;
  189. UR3_437_XLAT: ;;
  190. ;;
  191. DW CP437_XLAT_END-$ ;; length of section
  192. DW 437 ;;
  193. ;;
  194. ;;
  195. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  196. ;; CODE PAGE: 437
  197. ;; STATE: Third Shift
  198. ;; KEYBOARD TYPES: All
  199. ;; TABLE TYPE: Translate
  200. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  201. ;;
  202. DW CP437_TS_END-$ ;; length of state section
  203. DB THIRD_SHIFT ;; State ID
  204. DW ANY_KB ;; Keyboard Type
  205. DB -1,-1 ;; Buffer entry for error character
  206. ;;
  207. DW CP437_TS_T1_END-$ ;; Size of xlat table
  208. DB STANDARD_TABLE ;; xlat options:
  209. DB 11 ;; number of entries
  210. DB 03H,040H ;; @
  211. DB 04H,023H ;; #
  212. DB 07H,05EH ;; ^
  213. DB 08H,026H ;; &
  214. DB 09H,024H ;; $
  215. DB 1AH,05BH ;; [
  216. DB 1BH,05DH ;; ]
  217. DB 2BH,07CH ;; |
  218. DB 33H,03CH ;; <
  219. DB 34H,03EH ;; >
  220. DB 35H,02FH ;; /
  221. CP437_TS_T1_END: ;;
  222. ;;
  223. DW 0 ;; Size of xlat table - null table
  224. ;;
  225. CP437_TS_END: ;;
  226. ;;
  227. ;;
  228. ;;
  229. DW 0 ;; LAST STATE
  230. ;;
  231. CP437_XLAT_END: ;;
  232. ;;
  233. ;;
  234. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  235. ;;***************************************
  236. ;; UR Specific Translate Section for 850
  237. ;;***************************************
  238. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  239. ;;
  240. UR3_850_XLAT: ;;
  241. ;;
  242. DW CP850_XLAT_END-$ ;; length of section
  243. DW 850 ;;
  244. ;;
  245. ;;
  246. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  247. ;; CODE PAGE: 850
  248. ;; STATE: Third Shift
  249. ;; KEYBOARD TYPES: All
  250. ;; TABLE TYPE: Translate
  251. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  252. ;;
  253. DW CP850_TS_END-$ ;; length of state section
  254. DB THIRD_SHIFT ;; State ID
  255. DW ANY_KB ;; Keyboard Type
  256. DB -1,-1 ;; Buffer entry for error character
  257. ;;
  258. DW CP850_TS_T1_END-$ ;; Size of xlat table
  259. DB STANDARD_TABLE ;; xlat options:
  260. DB 12 ;; number of entries
  261. DB 03H,040H ;; @
  262. DB 04H,023H ;; #
  263. DB 05H,0CFH ;; RUBLES sign �
  264. DB 07H,05EH ;; ^
  265. DB 08H,026H ;; &
  266. DB 09H,024H ;; $
  267. DB 1AH,05BH ;; [
  268. DB 1BH,05DH ;; ]
  269. DB 2BH,07CH ;; |
  270. DB 33H,03CH ;; <
  271. DB 34H,03EH ;; >
  272. DB 35H,02FH ;; /
  273. CP850_TS_T1_END: ;;
  274. ;;
  275. DW 0 ;; Size of xlat table - null table
  276. ;;
  277. CP850_TS_END: ;;
  278. ;;
  279. ;;
  280. ;;
  281. DW 0 ;; LAST STATE
  282. ;;
  283. CP850_XLAT_END: ;;
  284. ;;
  285. ;;
  286. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  287. ;;***************************************
  288. ;; UR Specific Translate Section for 855
  289. ;;***************************************
  290. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  291. ;;
  292. UR3_855_XLAT: ;;
  293. ;;
  294. DW CP855_XLAT_END-$ ;; length of section
  295. DW 855 ;;
  296. ;;
  297. ;;
  298. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  299. ;; CODE PAGE: 855
  300. ;; STATE: Non-Alpha Lower Case
  301. ;; KEYBOARD TYPES: All
  302. ;; TABLE TYPE: Translate
  303. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  304. ;;
  305. DW CP855_NA_K1_LO_END-$ ;; length of state section
  306. DB NON_ALPHA_LOWER ;; State ID
  307. DW ANY_KB ;; Keyboard Type
  308. DB -1,-1 ;; Buffer entry for error character
  309. ;;
  310. DW CP855_NA_LO_K1_T1_END-$ ;; Size of xlat table
  311. DB STANDARD_TABLE ;; xlat options:
  312. DB 1 ;; number of entries
  313. DB 53,02EH ;; .
  314. CP855_NA_LO_K1_T1_END: ;;
  315. ;;
  316. DW 0 ;; Size of xlat table - null table
  317. ;;
  318. CP855_NA_K1_LO_END: ;;
  319. ;;
  320. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  321. ;; CODE PAGE: 855
  322. ;; STATE: Non-Alpha Upper Case
  323. ;; KEYBOARD TYPES: All
  324. ;; TABLE TYPE: Translate
  325. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  326. ;;
  327. DW CP855_NA_UP_END-$ ;; length of state section
  328. DB NON_ALPHA_UPPER ;; State ID
  329. DW ANY_KB ;; Keyboard Type
  330. DB -1,-1 ;; Buffer entry for error character
  331. ;;
  332. DW CP855_NA_UP_T1_END-$ ;; Size of xlat table
  333. DB STANDARD_TABLE ;; xlat options:
  334. DB 7 ;; number of entries
  335. DB 3,022H ;; "
  336. DB 4,0EFH ;; NUMBER sign
  337. DB 5,03BH ;; ;
  338. DB 7,03AH ;; :
  339. DB 8,03FH ;; ?
  340. DB 43,02FH ;; /
  341. DB 53,02CH ;; ,
  342. CP855_NA_UP_T1_END: ;;
  343. ;;
  344. DW 0 ;; Size of xlat table - null table
  345. ;;
  346. CP855_NA_UP_END: ;;
  347. ;;
  348. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  349. ;; CODE PAGE: 855
  350. ;; STATE: Third Shift
  351. ;; KEYBOARD TYPES: All
  352. ;; TABLE TYPE: Translate
  353. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  354. ;;
  355. DW CP855_TS_END-$ ;; length of state section
  356. DB THIRD_SHIFT ;; State ID
  357. DW ANY_KB ;; Keyboard Type
  358. DB -1,-1 ;; Buffer entry for error character
  359. ;;
  360. DW CP855_TS_T1_END-$ ;; Size of xlat table
  361. DB STANDARD_TABLE ;; xlat options:
  362. DB 12 ;; number of entries
  363. DB 03H,040H ;; @
  364. DB 04H,023H ;; #
  365. DB 05H,0CFH ;; RUBLES sign �
  366. DB 07H,05EH ;; ^
  367. DB 08H,026H ;; &
  368. DB 09H,024H ;; $
  369. DB 1AH,05BH ;; [
  370. DB 1BH,05DH ;; ]
  371. DB 2BH,07CH ;; |
  372. DB 33H,03CH ;; <
  373. DB 34H,03EH ;; >
  374. DB 35H,02FH ;; /
  375. CP855_TS_T1_END: ;;
  376. ;;
  377. DW 0 ;; Size of xlat table - null table
  378. ;;
  379. CP855_TS_END: ;;
  380. ;;
  381. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  382. ;; CODE PAGE: 855
  383. ;; STATE: Alpha Lower Case
  384. ;; KEYBOARD TYPES: All
  385. ;; TABLE TYPE: Translate
  386. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  387. ;;
  388. DW CP855_A_K1_LO_END-$ ;; length of state section
  389. DB ALPHA_LOWER ;; State ID
  390. DW ANY_KB ;; Keyboard Type
  391. DB -1,-1 ;; Buffer entry for error character
  392. ;;
  393. DW CP855_A_LO_K1_T1_END-$ ;; Size of xlat table
  394. DB ASCII_ONLY ;; xlat options:
  395. DB 16 ;; Scan code
  396. DB 27 ;; range
  397. DB 0BDH ;; �
  398. DB 0A4H ;; �
  399. DB 0E7H ;; �
  400. DB 0C6H ;; �
  401. DB 0A8H ;; �
  402. DB 0D4H ;; �
  403. DB 0ACH ;; �
  404. DB 0F5H ;; �
  405. DB 0F9H ;; �
  406. DB 0F3H ;; �
  407. DB 0B5H ;; �
  408. DB 08CH ;; �
  409. CP855_A_LO_K1_T1_END: ;;
  410. ;;
  411. ;;
  412. DW CP855_A_LO_K1_T2_END-$ ;; Size of xlat table
  413. DB ASCII_ONLY ;; xlat options:
  414. DB 30 ;; Scan code
  415. DB 41 ;; range
  416. DB 0AAH ;; �
  417. DB 08AH ;; i
  418. DB 0EBH ;; �
  419. DB 0A0H ;; �
  420. DB 0D8H ;; �
  421. DB 0E1H ;; �
  422. DB 0D6H ;; �
  423. DB 0D0H ;; �
  424. DB 0A6H ;; �
  425. DB 0E9H ;; �
  426. DB 086H ;; �
  427. DB 027H ;; '
  428. CP855_A_LO_K1_T2_END: ;;
  429. ;;
  430. ;;
  431. DW CP855_A_LO_K1_T4_END-$ ;; Size of xlat table
  432. DB ASCII_ONLY ;; xlat options:
  433. DB 44 ;; Scan code
  434. DB 52 ;; range
  435. DB 0DEH ;; �
  436. DB 0FBH ;; �
  437. DB 0E3H ;; �
  438. DB 0D2H ;; �
  439. DB 0B7H ;; �
  440. DB 0E5H ;; �
  441. DB 0EDH ;; �
  442. DB 0A2H ;; �
  443. DB 09CH ;; �
  444. CP855_A_LO_K1_T4_END: ;;
  445. ;;
  446. DW 0 ;; Size of xlat table - null table
  447. ;;
  448. CP855_A_K1_LO_END: ;;
  449. ;;
  450. ;;
  451. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  452. ;; CODE PAGE: 855
  453. ;; STATE: Alpha Upper Case
  454. ;; KEYBOARD TYPES: All
  455. ;; TABLE TYPE: Translate
  456. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  457. ;;
  458. DW CP855_A_K1_UP_END-$ ;; length of state section
  459. DB ALPHA_UPPER ;; State ID
  460. DW ANY_KB ;; Keyboard Type
  461. DB -1,-1 ;; Buffer entry for error character
  462. ;;
  463. DW CP855_A_UP_K1_T1_END-$ ;; Size of xlat table
  464. DB ASCII_ONLY ;; xlat options:
  465. DB 16 ;; Scan code
  466. DB 27 ;; range
  467. DB 0BEH ;; �
  468. DB 0A5H ;; �
  469. DB 0E8H ;; �
  470. DB 0C7H ;; �
  471. DB 0A9H ;; �
  472. DB 0D5H ;; �
  473. DB 0ADH ;; �
  474. DB 0F6H ;; �
  475. DB 0FAH ;; �
  476. DB 0F4H ;; �
  477. DB 0B6H ;; �
  478. DB 08DH ;; �
  479. CP855_A_UP_K1_T1_END: ;;
  480. ;;
  481. ;;
  482. DW CP855_A_UP_K1_T2_END-$ ;; Size of xlat table
  483. DB ASCII_ONLY ;; xlat options:
  484. DB 30 ;; Scan code
  485. DB 41 ;; range
  486. DB 0ABH ;; �
  487. DB 08BH ;; I
  488. DB 0ECH ;; �
  489. DB 0A1H ;; �
  490. DB 0DDH ;; �
  491. DB 0E2H ;; �
  492. DB 0D7H ;; �
  493. DB 0D1H ;; �
  494. DB 0A7H ;; �
  495. DB 0EAH ;; �
  496. DB 087H ;; �
  497. DB 027H ;; '
  498. CP855_A_UP_K1_T2_END: ;;
  499. ;;
  500. ;;
  501. DW CP855_A_UP_K1_T3_END-$ ;; Size of xlat table
  502. DB ASCII_ONLY ;; xlat options:
  503. DB 45 ;; Scan code
  504. DB 52 ;; range
  505. DB 0FCH ;; �
  506. DB 0E4H ;; �
  507. DB 0D3H ;; �
  508. DB 0B8H ;; �
  509. DB 0E6H ;; �
  510. DB 0EEH ;; �
  511. DB 0A3H ;; �
  512. DB 09DH ;; �
  513. CP855_A_UP_K1_T3_END: ;;
  514. ;;
  515. ;;
  516. DW CP855_A_UP_K1_T5_END-$ ;; Size of xlat table
  517. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  518. DB 1 ;; number of entries
  519. DB 44,0E0H ;; �
  520. ;;
  521. CP855_A_UP_K1_T5_END: ;;
  522. ;;
  523. DW 0 ;; Size of xlat table - null table
  524. ;;
  525. CP855_A_K1_UP_END: ;;
  526. ;;
  527. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  528. ;;
  529. DW 0 ;; LAST STATE
  530. ;;
  531. CP855_XLAT_END: ;;
  532. ;;
  533. ;;
  534. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  535. ;; ;;
  536. ;; ********************************************* ;;
  537. ;; * UR Specific Translate Section for 866 * ;;
  538. ;; ********************************************* ;;
  539. ;; ;;
  540. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  541. ;;
  542. UR3_866_XLAT: ;;
  543. ;;
  544. DW CP866_XLAT_END-$ ;; length of section
  545. DW 866 ;;
  546. ;;
  547. ;;
  548. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  549. ;; CODE PAGE: 866
  550. ;; STATE: Non-Alpha Lower Case
  551. ;; KEYBOARD TYPES: All
  552. ;; TABLE TYPE: Translate
  553. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  554. ;;
  555. DW CP866_NA_K1_LO_END-$ ;; length of state section
  556. DB NON_ALPHA_LOWER ;; State ID
  557. DW ANY_KB ;; Keyboard Type
  558. DB -1,-1 ;; Buffer entry for error character
  559. ;;
  560. DW CP866_NA_LO_K1_T1_END-$ ;; Size of xlat table
  561. DB STANDARD_TABLE ;; xlat options:
  562. DB 1 ;; number of entries
  563. DB 53,02EH ;; .
  564. CP866_NA_LO_K1_T1_END: ;;
  565. ;;
  566. DW 0 ;; Size of xlat table - null table
  567. ;;
  568. CP866_NA_K1_LO_END: ;;
  569. ;;
  570. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  571. ;; CODE PAGE: 866
  572. ;; STATE: Non-Alpha Upper Case
  573. ;; KEYBOARD TYPES: All
  574. ;; TABLE TYPE: Translate
  575. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  576. ;;
  577. DW CP866_NA_UP_END-$ ;; length of state section
  578. DB NON_ALPHA_UPPER ;; State ID
  579. DW ANY_KB ;; Keyboard Type
  580. DB -1,-1 ;; Buffer entry for error character
  581. ;;
  582. DW CP866_NA_UP_T1_END-$ ;; Size of xlat table
  583. DB STANDARD_TABLE ;; xlat options:
  584. DB 7 ;; number of entries
  585. DB 3,022H ;; "
  586. DB 4,0FCH ;; NUMBER sign
  587. DB 5,03BH ;; ;
  588. DB 7,03AH ;; :
  589. DB 8,03FH ;; ?
  590. DB 43,02FH ;; /
  591. DB 53,02CH ;; ,
  592. CP866_NA_UP_T1_END: ;;
  593. ;;
  594. DW 0 ;; Size of xlat table - null table
  595. ;;
  596. CP866_NA_UP_END: ;;
  597. ;;
  598. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  599. ;; CODE PAGE: 866
  600. ;; STATE: Third Shift
  601. ;; KEYBOARD TYPES: All
  602. ;; TABLE TYPE: Translate
  603. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  604. ;;
  605. DW CP866_TS_END-$ ;; length of state section
  606. DB THIRD_SHIFT ;; State ID
  607. DW ANY_KB ;; Keyboard Type
  608. DB -1,-1 ;; Buffer entry for error character
  609. ;;
  610. DW CP866_TS_T1_END-$ ;; Size of xlat table
  611. DB STANDARD_TABLE ;; xlat options:
  612. DB 12 ;; number of entries
  613. DB 03H,040H ;; @
  614. DB 04H,023H ;; #
  615. DB 05H,0FDH ;; RUBLES sign �
  616. DB 07H,05EH ;; ^
  617. DB 08H,026H ;; &
  618. DB 09H,024H ;; $
  619. DB 1AH,05BH ;; [
  620. DB 1BH,05DH ;; ]
  621. DB 2BH,07CH ;; |
  622. DB 33H,03CH ;; <
  623. DB 34H,03EH ;; >
  624. DB 35H,02FH ;; /
  625. CP866_TS_T1_END: ;;
  626. ;;
  627. DW 0 ;; Size of xlat table - null table
  628. ;;
  629. CP866_TS_END: ;;
  630. ;;
  631. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  632. ;; CODE PAGE: 866
  633. ;; STATE: Alpha Lower Case
  634. ;; KEYBOARD TYPES: All
  635. ;; TABLE TYPE: Translate
  636. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  637. ;;
  638. DW CP866_A_K1_LO_END-$ ;; length of state section
  639. DB ALPHA_LOWER ;; State ID
  640. DW ANY_KB ;; Keyboard Type
  641. DB -1,-1 ;; Buffer entry for error character
  642. ;;
  643. DW CP866_A_LO_K1_T1_END-$ ;; Size of xlat table
  644. DB ASCII_ONLY ;; xlat options:
  645. DB 16 ;; Scan code
  646. DB 27 ;; range
  647. DB 169 ;; �
  648. DB 230 ;; �
  649. DB 227 ;; �
  650. DB 170 ;; �
  651. DB 165 ;; �
  652. DB 173 ;; �
  653. DB 163 ;; �
  654. DB 232 ;; �
  655. DB 233 ;; �
  656. DB 167 ;; �
  657. DB 229 ;; �
  658. DB 245 ;; �
  659. CP866_A_LO_K1_T1_END: ;;
  660. ;;
  661. ;;
  662. DW CP866_A_LO_K1_T2_END-$ ;; Size of xlat table
  663. DB ASCII_ONLY ;; xlat options:
  664. DB 30 ;; Scan code
  665. DB 34 ;; range
  666. DB 228 ;; �
  667. DB 105 ;; i
  668. DB 162 ;; �
  669. DB 160 ;; �
  670. DB 175 ;; �
  671. CP866_A_LO_K1_T2_END: ;;
  672. ;;
  673. ;;
  674. DW CP866_A_LO_K1_T3_END-$ ;; Size of xlat table
  675. DB ASCII_ONLY ;; xlat options:
  676. DB 36 ;; Scan code
  677. DB 41 ;; range
  678. DB 174 ;; �
  679. DB 171 ;; �
  680. DB 164 ;; �
  681. DB 166 ;; �
  682. DB 243 ;; �
  683. DB 039 ;; '
  684. CP866_A_LO_K1_T3_END: ;;
  685. ;;
  686. ;;
  687. DW CP866_A_LO_K1_T4_END-$ ;; Size of xlat table
  688. DB ASCII_ONLY ;; xlat options:
  689. DB 44 ;; Scan code
  690. DB 52 ;; range
  691. DB 239 ;; �
  692. DB 231 ;; �
  693. DB 225 ;; �
  694. DB 172 ;; �
  695. DB 168 ;; �
  696. DB 226 ;; �
  697. DB 236 ;; �
  698. DB 161 ;; �
  699. DB 238 ;; �
  700. CP866_A_LO_K1_T4_END: ;;
  701. ;;
  702. ;;
  703. DW CP866_A_LO_K1_T5_END-$ ;; Size of xlat table
  704. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  705. DB 1 ;; number of entries
  706. DB 35,0E0H ;; �
  707. CP866_A_LO_K1_T5_END: ;;
  708. ;;
  709. DW 0 ;; Size of xlat table - null table
  710. ;;
  711. CP866_A_K1_LO_END: ;;
  712. ;;
  713. ;;
  714. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  715. ;; CODE PAGE: 866
  716. ;; STATE: Alpha Upper Case
  717. ;; KEYBOARD TYPES: All
  718. ;; TABLE TYPE: Translate
  719. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  720. ;;
  721. DW CP866_A_K1_UP_END-$ ;; length of state section
  722. DB ALPHA_UPPER ;; State ID
  723. DW ANY_KB ;; Keyboard Type
  724. DB -1,-1 ;; Buffer entry for error character
  725. ;;
  726. DW CP866_A_UP_K1_T1_END-$ ;; Size of xlat table
  727. DB ASCII_ONLY ;; xlat options:
  728. DB 16 ;; Scan code
  729. DB 27 ;; range
  730. DB 137 ;; �
  731. DB 150 ;; �
  732. DB 147 ;; �
  733. DB 138 ;; �
  734. DB 133 ;; �
  735. DB 141 ;; �
  736. DB 131 ;; �
  737. DB 152 ;; �
  738. DB 153 ;; �
  739. DB 135 ;; �
  740. DB 149 ;; �
  741. DB 244 ;; �
  742. CP866_A_UP_K1_T1_END: ;;
  743. ;;
  744. ;;
  745. DW CP866_A_UP_K1_T2_END-$ ;; Size of xlat table
  746. DB ASCII_ONLY ;; xlat options:
  747. DB 30 ;; Scan code
  748. DB 41 ;; range
  749. DB 148 ;; �
  750. DB 073 ;; I
  751. DB 130 ;; �
  752. DB 128 ;; �
  753. DB 143 ;; �
  754. DB 144 ;; �
  755. DB 142 ;; �
  756. DB 139 ;; �
  757. DB 132 ;; �
  758. DB 134 ;; �
  759. DB 242 ;; �
  760. DB 039 ;; '
  761. CP866_A_UP_K1_T2_END: ;;
  762. ;;
  763. ;;
  764. DW CP866_A_UP_K1_T3_END-$ ;; Size of xlat table
  765. DB ASCII_ONLY ;; xlat options:
  766. DB 44 ;; Scan code
  767. DB 52 ;; range
  768. DB 159 ;; �
  769. DB 151 ;; �
  770. DB 145 ;; �
  771. DB 140 ;; �
  772. DB 136 ;; �
  773. DB 146 ;; �
  774. DB 156 ;; �
  775. DB 129 ;; �
  776. DB 158 ;; �
  777. CP866_A_UP_K1_T3_END: ;;
  778. ;;
  779. ;;
  780. ;;
  781. DW 0 ;; Size of xlat table - null table
  782. ;;
  783. CP866_A_K1_UP_END: ;;
  784. ;;
  785. ;;
  786. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  787. ;;
  788. DW 0 ;; LAST STATE
  789. ;;
  790. CP866_XLAT_END: ;;
  791. ;;
  792. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  793. ;;
  794. CODE ENDS ;;
  795. END ;;