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.

1055 lines
48 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 RU3_LOGIC ;;
  19. PUBLIC RU3_866_XLAT ;;
  20. PUBLIC RU3_437_XLAT ;;
  21. PUBLIC RU3_850_XLAT ;;
  22. PUBLIC RU3_855_XLAT ;;
  23. PUBLIC RU3_1251_XLAT ;;
  24. ;;
  25. CODE SEGMENT PUBLIC 'CODE' ;;
  26. ASSUME CS:CODE,DS:CODE ;;
  27. ;;
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. ;; Standard translate table options are a linear search table
  30. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  31. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  32. ;;
  33. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  34. ENX_KBD EQU G_KB+P12_KB
  35. ;;
  36. ;;
  37. DEBUG EQU 0 ;;
  38. ;;
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40. ;;***************************************
  41. ;;
  42. ;; RU3 State Logic
  43. ;;
  44. ;;***************************************
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  46. ;;
  47. ;;
  48. ;;
  49. ;;
  50. RU3_LOGIC: ;;
  51. ;;
  52. DW LOGIC3_END-$ ;; length
  53. ;;
  54. DW SHIFTS_TO_LOGIC+SWITCHABLE ;; special features
  55. ;;
  56. ;; COMMANDS START HERE
  57. ;;
  58. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  59. ;; OPTIONS: If we find a scan match in
  60. ;; an XLATT or SET_FLAG operation then
  61. ;; exit from INT 9.
  62. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  63. ;;
  64. ;;
  65. OPTION EXIT_IF_FOUND ;;
  66. ;;
  67. ;;
  68. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  69. ;;
  70. ;; Mode change CHECK
  71. ;;
  72. ;; MODE CHANGE BY <RIGHT CTRL> PRESS
  73. ;;
  74. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  75. ;;
  76. ;;
  77. IFF SHIFTS_PRESSED ;;
  78. IFF EITHER_SHIFT,NOT ;;
  79. ANDF EITHER_ALT,NOT ;;
  80. ANDF R_CTL_SHIFT ;;
  81. IFF RUS_MODE ;;
  82. BEEP ;;
  83. RESET_NLS ;;
  84. ELSEF ;;
  85. BEEP ;;
  86. SET_FLAG RUS_MODE_SET ;;
  87. ENDIFF ;;
  88. ENDIFF ;;
  89. EXIT_STATE_LOGIC ;;
  90. ENDIFF ;;
  91. ;;
  92. ;;
  93. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  94. ;; Upper, lower and third shifts
  95. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  96. ;;
  97. ;;
  98. ;;
  99. IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
  100. IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
  101. IFF RUS_MODE ;;
  102. ANDF LC_E0,NOT ;; Enhanced keys are not
  103. IFF EITHER_SHIFT ;; Numeric keys are not.
  104. XLATT NON_ALPHA_UPPER ;;
  105. IFF CAPS_STATE ;;
  106. XLATT ALPHA_LOWER ;;
  107. ELSEF ;;
  108. XLATT ALPHA_UPPER ;;
  109. ENDIFF ;;
  110. ELSEF ;;
  111. XLATT NON_ALPHA_LOWER ;;
  112. IFF CAPS_STATE ;;
  113. XLATT ALPHA_UPPER ;;
  114. ELSEF ;;
  115. XLATT ALPHA_LOWER ;;
  116. ENDIFF ;;
  117. ENDIFF ;; Third and Fourth shifts
  118. ENDIFF ;;
  119. ELSEF ;; ctl off, alt on at this point
  120. IFKBD XT_KB+AT_KB ;; XT, AT, keyboards.
  121. IFF EITHER_SHIFT ;; only.
  122. XLATT THIRD_SHIFT ;; ALT + shift
  123. ENDIFF ;;
  124. ELSEF ;; ENHANCED keyboard
  125. IFF R_ALT_SHIFT ;; ALTGr
  126. ANDF EITHER_SHIFT,NOT ;;
  127. XLATT THIRD_SHIFT ;;
  128. ENDIFF ;;
  129. ENDIFF ;;
  130. ENDIFF ;;
  131. ENDIFF ;;
  132. ;;
  133. ;**************************************;;
  134. ;;
  135. EXIT_STATE_LOGIC ;;
  136. ;;
  137. LOGIC3_END: ;;
  138. ;;
  139. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  140. ;;**********************************************************************
  141. ;; RU Common Translate Section
  142. ;; This section contains translations for the lower 128 characters
  143. ;; only since these will never change from code page to code page.
  144. ;; Some common Characters are included from 128 - 165 where appropriate.
  145. ;; In addition the dead key "Set Flag" tables are here since the
  146. ;; dead keys are on the same keytops for all code pages.
  147. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  148. ;;
  149. PUBLIC RU3_COMMON_XLAT ;;
  150. RU3_COMMON_XLAT: ;;
  151. ;;
  152. DW COMMON3_XLAT_END-$ ;; length of section
  153. DW -1 ;; code page
  154. ;;
  155. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  156. ;; CODE PAGE: Any
  157. ;; STATE: RUS_MODE
  158. ;; KEYBOARD TYPES: All
  159. ;; TABLE TYPE: Flag Table
  160. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  161. ;;
  162. DW COM3_F1_END-$ ;; length of state section
  163. DB RUS_MODE_SET ;; State ID
  164. DW ANY_KB ;; Keyboard Type
  165. DB -1,-1 ;; Buffer entry for error character
  166. ;;
  167. ;; Set Flag Table
  168. DW 1 ;; number of entries
  169. DB 29 ;; scan code
  170. FLAG RUS_MODE ;; flag bit to set
  171. ;;
  172. DW 0 ;; Size of xlat table - null table
  173. ;;
  174. COM3_F1_END: ;;
  175. ;;
  176. ;;
  177. ;;
  178. ;;
  179. DW 0 ;; Last State
  180. COMMON3_XLAT_END: ;;
  181. ;;
  182. ;;
  183. ;;
  184. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  185. ;;***************************************
  186. ;; RU Specific Translate Section for 437
  187. ;;***************************************
  188. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  189. ;;
  190. RU3_437_XLAT: ;;
  191. ;;
  192. DW CP437_XLAT_END-$ ;; length of section
  193. DW 437 ;;
  194. ;;
  195. ;;
  196. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  197. ;; CODE PAGE: 437
  198. ;; STATE: Third Shift
  199. ;; KEYBOARD TYPES: All
  200. ;; TABLE TYPE: Translate
  201. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  202. ;;
  203. DW CP437_TS_END-$ ;; length of state section
  204. DB THIRD_SHIFT ;; State ID
  205. DW ANY_KB ;; Keyboard Type
  206. DB -1,-1 ;; Buffer entry for error character
  207. ;;
  208. DW CP437_TS_T1_END-$ ;; Size of xlat table
  209. DB STANDARD_TABLE ;; xlat options:
  210. DB 11 ;; number of entries
  211. DB 03H,040H ;; @
  212. DB 04H,023H ;; #
  213. DB 07H,05EH ;; ^
  214. DB 08H,026H ;; &
  215. DB 09H,024H ;; $
  216. DB 1AH,05BH ;; [
  217. DB 1BH,05DH ;; ]
  218. DB 2BH,07CH ;; |
  219. DB 33H,03CH ;; <
  220. DB 34H,03EH ;; >
  221. DB 35H,02FH ;; /
  222. CP437_TS_T1_END: ;;
  223. ;;
  224. DW 0 ;; Size of xlat table - null table
  225. ;;
  226. CP437_TS_END: ;;
  227. ;;
  228. ;;
  229. ;;
  230. DW 0 ;; LAST STATE
  231. ;;
  232. CP437_XLAT_END: ;;
  233. ;;
  234. ;;
  235. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  236. ;;***************************************
  237. ;; RU Specific Translate Section for 850
  238. ;;***************************************
  239. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  240. ;;
  241. RU3_850_XLAT: ;;
  242. ;;
  243. DW CP850_XLAT_END-$ ;; length of section
  244. DW 850 ;;
  245. ;;
  246. ;;
  247. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  248. ;; CODE PAGE: 850
  249. ;; STATE: Third Shift
  250. ;; KEYBOARD TYPES: All
  251. ;; TABLE TYPE: Translate
  252. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  253. ;;
  254. DW CP850_TS_END-$ ;; length of state section
  255. DB THIRD_SHIFT ;; State ID
  256. DW ANY_KB ;; Keyboard Type
  257. DB -1,-1 ;; Buffer entry for error character
  258. ;;
  259. DW CP850_TS_T1_END-$ ;; Size of xlat table
  260. DB STANDARD_TABLE ;; xlat options:
  261. DB 12 ;; number of entries
  262. DB 03H,040H ;; @
  263. DB 04H,023H ;; #
  264. DB 05H,0CFH ;; RUBLES sign �
  265. DB 07H,05EH ;; ^
  266. DB 08H,026H ;; &
  267. DB 09H,024H ;; $
  268. DB 1AH,05BH ;; [
  269. DB 1BH,05DH ;; ]
  270. DB 2BH,07CH ;; |
  271. DB 33H,03CH ;; <
  272. DB 34H,03EH ;; >
  273. DB 35H,02FH ;; /
  274. CP850_TS_T1_END: ;;
  275. ;;
  276. DW 0 ;; Size of xlat table - null table
  277. ;;
  278. CP850_TS_END: ;;
  279. ;;
  280. ;;
  281. ;;
  282. DW 0 ;; LAST STATE
  283. ;;
  284. CP850_XLAT_END: ;;
  285. ;;
  286. ;;
  287. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  288. ;;***************************************
  289. ;; RU Specific Translate Section for 855
  290. ;;***************************************
  291. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  292. ;;
  293. RU3_855_XLAT: ;;
  294. ;;
  295. DW CP855_XLAT_END-$ ;; length of section
  296. DW 855 ;;
  297. ;;
  298. ;;
  299. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  300. ;; CODE PAGE: 855
  301. ;; STATE: Non-Alpha Lower Case
  302. ;; KEYBOARD TYPES: All
  303. ;; TABLE TYPE: Translate
  304. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  305. ;;
  306. DW CP855_NA_K1_LO_END-$ ;; length of state section
  307. DB NON_ALPHA_LOWER ;; State ID
  308. DW ANY_KB ;; Keyboard Type
  309. DB -1,-1 ;; Buffer entry for error character
  310. ;;
  311. DW CP855_NA_LO_K1_T1_END-$ ;; Size of xlat table
  312. DB STANDARD_TABLE ;; xlat options:
  313. DB 1 ;; number of entries
  314. DB 53,02EH ;; .
  315. CP855_NA_LO_K1_T1_END: ;;
  316. ;;
  317. DW 0 ;; Size of xlat table - null table
  318. ;;
  319. CP855_NA_K1_LO_END: ;;
  320. ;;
  321. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  322. ;; CODE PAGE: 855
  323. ;; STATE: Non-Alpha Upper Case
  324. ;; KEYBOARD TYPES: All
  325. ;; TABLE TYPE: Translate
  326. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  327. ;;
  328. DW CP855_NA_UP_END-$ ;; length of state section
  329. DB NON_ALPHA_UPPER ;; State ID
  330. DW ANY_KB ;; Keyboard Type
  331. DB -1,-1 ;; Buffer entry for error character
  332. ;;
  333. DW CP855_NA_UP_T1_END-$ ;; Size of xlat table
  334. DB STANDARD_TABLE ;; xlat options:
  335. DB 7 ;; number of entries
  336. DB 3,022H ;; "
  337. DB 4,0EFH ;; NUMBER sign
  338. DB 5,03BH ;; ;
  339. DB 7,03AH ;; :
  340. DB 8,03FH ;; ?
  341. DB 43,02FH ;; /
  342. DB 53,02CH ;; ,
  343. CP855_NA_UP_T1_END: ;;
  344. ;;
  345. DW 0 ;; Size of xlat table - null table
  346. ;;
  347. CP855_NA_UP_END: ;;
  348. ;;
  349. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  350. ;; CODE PAGE: 855
  351. ;; STATE: Third Shift
  352. ;; KEYBOARD TYPES: All
  353. ;; TABLE TYPE: Translate
  354. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  355. ;;
  356. DW CP855_TS_END-$ ;; length of state section
  357. DB THIRD_SHIFT ;; State ID
  358. DW ANY_KB ;; Keyboard Type
  359. DB -1,-1 ;; Buffer entry for error character
  360. ;;
  361. DW CP855_TS_T1_END-$ ;; Size of xlat table
  362. DB STANDARD_TABLE ;; xlat options:
  363. DB 12 ;; number of entries
  364. DB 03H,040H ;; @
  365. DB 04H,023H ;; #
  366. DB 05H,0CFH ;; RUBLES sign �
  367. DB 07H,05EH ;; ^
  368. DB 08H,026H ;; &
  369. DB 09H,024H ;; $
  370. DB 1AH,05BH ;; [
  371. DB 1BH,05DH ;; ]
  372. DB 2BH,07CH ;; |
  373. DB 33H,03CH ;; <
  374. DB 34H,03EH ;; >
  375. DB 35H,02FH ;; /
  376. CP855_TS_T1_END: ;;
  377. ;;
  378. DW 0 ;; Size of xlat table - null table
  379. ;;
  380. CP855_TS_END: ;;
  381. ;;
  382. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  383. ;; CODE PAGE: 855
  384. ;; STATE: Alpha Lower Case
  385. ;; KEYBOARD TYPES: All
  386. ;; TABLE TYPE: Translate
  387. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  388. ;;
  389. DW CP855_A_K1_LO_END-$ ;; length of state section
  390. DB ALPHA_LOWER ;; State ID
  391. DW ANY_KB ;; Keyboard Type
  392. DB -1,-1 ;; Buffer entry for error character
  393. ;;
  394. DW CP855_A_LO_K1_T1_END-$ ;; Size of xlat table
  395. DB ASCII_ONLY ;; xlat options:
  396. DB 16 ;; Scan code
  397. DB 27 ;; range
  398. DB 0BDH ;; �
  399. DB 0A4H ;; �
  400. DB 0E7H ;; �
  401. DB 0C6H ;; �
  402. DB 0A8H ;; �
  403. DB 0D4H ;; �
  404. DB 0ACH ;; �
  405. DB 0F5H ;; �
  406. DB 0F9H ;; �
  407. DB 0F3H ;; �
  408. DB 0B5H ;; �
  409. DB 09EH ;; �
  410. CP855_A_LO_K1_T1_END: ;;
  411. ;;
  412. ;;
  413. DW CP855_A_LO_K1_T2_END-$ ;; Size of xlat table
  414. DB ASCII_ONLY ;; xlat options:
  415. DB 30 ;; Scan code
  416. DB 41 ;; range
  417. DB 0AAH ;; �
  418. DB 0F1H ;; �
  419. DB 0EBH ;; �
  420. DB 0A0H ;; �
  421. DB 0D8H ;; �
  422. DB 0E1H ;; �
  423. DB 0D6H ;; �
  424. DB 0D0H ;; �
  425. DB 0A6H ;; �
  426. DB 0E9H ;; �
  427. DB 0F7H ;; �
  428. DB 084H ;; �
  429. CP855_A_LO_K1_T2_END: ;;
  430. ;;
  431. ;;
  432. DW CP855_A_LO_K1_T4_END-$ ;; Size of xlat table
  433. DB ASCII_ONLY ;; xlat options:
  434. DB 44 ;; Scan code
  435. DB 52 ;; range
  436. DB 0DEH ;; �
  437. DB 0FBH ;; �
  438. DB 0E3H ;; �
  439. DB 0D2H ;; �
  440. DB 0B7H ;; �
  441. DB 0E5H ;; �
  442. DB 0EDH ;; �
  443. DB 0A2H ;; �
  444. DB 09CH ;; �
  445. CP855_A_LO_K1_T4_END: ;;
  446. ;;
  447. DW 0 ;; Size of xlat table - null table
  448. ;;
  449. CP855_A_K1_LO_END: ;;
  450. ;;
  451. ;;
  452. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  453. ;; CODE PAGE: 855
  454. ;; STATE: Alpha Upper Case
  455. ;; KEYBOARD TYPES: All
  456. ;; TABLE TYPE: Translate
  457. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  458. ;;
  459. DW CP855_A_K1_UP_END-$ ;; length of state section
  460. DB ALPHA_UPPER ;; State ID
  461. DW ANY_KB ;; Keyboard Type
  462. DB -1,-1 ;; Buffer entry for error character
  463. ;;
  464. DW CP855_A_UP_K1_T1_END-$ ;; Size of xlat table
  465. DB ASCII_ONLY ;; xlat options:
  466. DB 16 ;; Scan code
  467. DB 27 ;; range
  468. DB 0BEH ;; �
  469. DB 0A5H ;; �
  470. DB 0E8H ;; �
  471. DB 0C7H ;; �
  472. DB 0A9H ;; �
  473. DB 0D5H ;; �
  474. DB 0ADH ;; �
  475. DB 0F6H ;; �
  476. DB 0FAH ;; �
  477. DB 0F4H ;; �
  478. DB 0B6H ;; �
  479. DB 09FH ;; �
  480. CP855_A_UP_K1_T1_END: ;;
  481. ;;
  482. ;;
  483. DW CP855_A_UP_K1_T2_END-$ ;; Size of xlat table
  484. DB ASCII_ONLY ;; xlat options:
  485. DB 30 ;; Scan code
  486. DB 41 ;; range
  487. DB 0ABH ;; �
  488. DB 0F2H ;; �
  489. DB 0ECH ;; �
  490. DB 0A1H ;; �
  491. DB 0DDH ;; �
  492. DB 0E2H ;; �
  493. DB 0D7H ;; �
  494. DB 0D1H ;; �
  495. DB 0A7H ;; �
  496. DB 0EAH ;; �
  497. DB 0F8H ;; �
  498. DB 085H ;; �
  499. CP855_A_UP_K1_T2_END: ;;
  500. ;;
  501. ;;
  502. DW CP855_A_UP_K1_T3_END-$ ;; Size of xlat table
  503. DB ASCII_ONLY ;; xlat options:
  504. DB 45 ;; Scan code
  505. DB 52 ;; range
  506. DB 0FCH ;; �
  507. DB 0E4H ;; �
  508. DB 0D3H ;; �
  509. DB 0B8H ;; �
  510. DB 0E6H ;; �
  511. DB 0EEH ;; �
  512. DB 0A3H ;; �
  513. DB 09DH ;; �
  514. CP855_A_UP_K1_T3_END: ;;
  515. ;;
  516. ;;
  517. DW CP855_A_UP_K1_T5_END-$ ;; Size of xlat table
  518. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  519. DB 1 ;; number of entries
  520. DB 44,0E0H ;; �
  521. ;;
  522. CP855_A_UP_K1_T5_END: ;;
  523. ;;
  524. DW 0 ;; Size of xlat table - null table
  525. ;;
  526. CP855_A_K1_UP_END: ;;
  527. ;;
  528. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  529. ;;
  530. DW 0 ;; LAST STATE
  531. ;;
  532. CP855_XLAT_END: ;;
  533. ;;
  534. ;;
  535. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  536. ;;***************************************
  537. ;; RU Specific Translate Section for 1251
  538. ;;***************************************
  539. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  540. ;;
  541. RU3_1251_XLAT: ;;
  542. ;;
  543. DW CP1251_XLAT_END-$ ;; length of section
  544. DW 1251 ;;
  545. ;;
  546. ;;
  547. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  548. ;; CODE PAGE: 1251
  549. ;; STATE: Non-Alpha Lower Case
  550. ;; KEYBOARD TYPES: All
  551. ;; TABLE TYPE: Translate
  552. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  553. ;;
  554. DW CP1251_NA_K1_LO_END-$ ;; length of state section
  555. DB NON_ALPHA_LOWER ;; State ID
  556. DW ANY_KB ;; Keyboard Type
  557. DB -1,-1 ;; Buffer entry for error character
  558. ;;
  559. DW CP1251_NA_LO_K1_T1_END-$ ;; Size of xlat table
  560. DB STANDARD_TABLE ;; xlat options:
  561. DB 1 ;; number of entries
  562. DB 53,02EH ;; .
  563. CP1251_NA_LO_K1_T1_END: ;;
  564. ;;
  565. DW 0 ;; Size of xlat table - null table
  566. ;;
  567. CP1251_NA_K1_LO_END: ;;
  568. ;;
  569. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  570. ;; CODE PAGE: 1251
  571. ;; STATE: Non-Alpha Upper Case
  572. ;; KEYBOARD TYPES: All
  573. ;; TABLE TYPE: Translate
  574. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  575. ;;
  576. DW CP1251_NA_UP_END-$ ;; length of state section
  577. DB NON_ALPHA_UPPER ;; State ID
  578. DW ANY_KB ;; Keyboard Type
  579. DB -1,-1 ;; Buffer entry for error character
  580. ;;
  581. DW CP1251_NA_UP_T1_END-$ ;; Size of xlat table
  582. DB STANDARD_TABLE ;; xlat options:
  583. DB 7 ;; number of entries
  584. DB 3,022H ;; "
  585. DB 4,0EFH ;; NUMBER sign
  586. DB 5,03BH ;; ;
  587. DB 7,03AH ;; :
  588. DB 8,03FH ;; ?
  589. DB 43,02FH ;; /
  590. DB 53,02CH ;; ,
  591. CP1251_NA_UP_T1_END: ;;
  592. ;;
  593. DW 0 ;; Size of xlat table - null table
  594. ;;
  595. CP1251_NA_UP_END: ;;
  596. ;;
  597. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  598. ;; CODE PAGE: 1251
  599. ;; STATE: Third Shift
  600. ;; KEYBOARD TYPES: All
  601. ;; TABLE TYPE: Translate
  602. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  603. ;;
  604. DW CP1251_TS_END-$ ;; length of state section
  605. DB THIRD_SHIFT ;; State ID
  606. DW ANY_KB ;; Keyboard Type
  607. DB -1,-1 ;; Buffer entry for error character
  608. ;;
  609. DW CP1251_TS_T1_END-$ ;; Size of xlat table
  610. DB STANDARD_TABLE ;; xlat options:
  611. DB 12 ;; number of entries
  612. DB 03H,040H ;; @
  613. DB 04H,023H ;; #
  614. DB 05H,0A4H ;; RUBLES sign �
  615. DB 07H,05EH ;; ^
  616. DB 08H,026H ;; &
  617. DB 09H,024H ;; $
  618. DB 1AH,05BH ;; [
  619. DB 1BH,05DH ;; ]
  620. DB 2BH,07CH ;; |
  621. DB 33H,03CH ;; <
  622. DB 34H,03EH ;; >
  623. DB 35H,02FH ;; /
  624. CP1251_TS_T1_END: ;;
  625. ;;
  626. DW 0 ;; Size of xlat table - null table
  627. ;;
  628. CP1251_TS_END: ;;
  629. ;;
  630. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  631. ;; CODE PAGE: 1251
  632. ;; STATE: Alpha Lower Case
  633. ;; KEYBOARD TYPES: All
  634. ;; TABLE TYPE: Translate
  635. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  636. ;;
  637. DW CP1251_A_K1_LO_END-$ ;; length of state section
  638. DB ALPHA_LOWER ;; State ID
  639. DW ANY_KB ;; Keyboard Type
  640. DB -1,-1 ;; Buffer entry for error character
  641. ;;
  642. DW CP1251_A_LO_K1_T1_END-$ ;; Size of xlat table
  643. DB ASCII_ONLY ;; xlat options:
  644. DB 16 ;; Scan code
  645. DB 27 ;; range
  646. DB 0E9H ;; �
  647. DB 0F6H ;; �
  648. DB 0F3H ;; �
  649. DB 0EAH ;; �
  650. DB 0E5H ;; �
  651. DB 0EDH ;; �
  652. DB 0E3H ;; �
  653. DB 0F8H ;; �
  654. DB 0F9H ;; �
  655. DB 0E7H ;; �
  656. DB 0F5H ;; �
  657. DB 0FAH ;; �
  658. CP1251_A_LO_K1_T1_END: ;;
  659. ;;
  660. ;;
  661. DW CP1251_A_LO_K1_T2_END-$ ;; Size of xlat table
  662. DB ASCII_ONLY ;; xlat options:
  663. DB 30 ;; Scan code
  664. DB 41 ;; range
  665. DB 0F4H ;; �
  666. DB 0FBH ;; �
  667. DB 0E2H ;; �
  668. DB 0E0H ;; �
  669. DB 0EFH ;; �
  670. DB 0F0H ;; �
  671. DB 0EEH ;; �
  672. DB 0EBH ;; �
  673. DB 0E4H ;; �
  674. DB 0E6H ;; �
  675. DB 0FDH ;; �
  676. DB 0B8H ;; �
  677. CP1251_A_LO_K1_T2_END: ;;
  678. ;;
  679. ;;
  680. DW CP1251_A_LO_K1_T4_END-$ ;; Size of xlat table
  681. DB ASCII_ONLY ;; xlat options:
  682. DB 44 ;; Scan code
  683. DB 52 ;; range
  684. DB 0FFH ;; �
  685. DB 0F7H ;; �
  686. DB 0F1H ;; �
  687. DB 0ECH ;; �
  688. DB 0E8H ;; �
  689. DB 0F2H ;; �
  690. DB 0FCH ;; �
  691. DB 0E1H ;; �
  692. DB 0FEH ;; �
  693. CP1251_A_LO_K1_T4_END: ;;
  694. ;;
  695. DW 0 ;; Size of xlat table - null table
  696. ;;
  697. CP1251_A_K1_LO_END: ;;
  698. ;;
  699. ;;
  700. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  701. ;; CODE PAGE: 1251
  702. ;; STATE: Alpha Upper Case
  703. ;; KEYBOARD TYPES: All
  704. ;; TABLE TYPE: Translate
  705. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  706. ;;
  707. DW CP1251_A_K1_UP_END-$ ;; length of state section
  708. DB ALPHA_UPPER ;; State ID
  709. DW ANY_KB ;; Keyboard Type
  710. DB -1,-1 ;; Buffer entry for error character
  711. ;;
  712. DW CP1251_A_UP_K1_T1_END-$ ;; Size of xlat table
  713. DB ASCII_ONLY ;; xlat options:
  714. DB 16 ;; Scan code
  715. DB 27 ;; range
  716. DB 0C9H ;; �
  717. DB 0D6H ;; �
  718. DB 0D3H ;; �
  719. DB 0CAH ;; �
  720. DB 0C5H ;; �
  721. DB 0CDH ;; �
  722. DB 0C3H ;; �
  723. DB 0D8H ;; �
  724. DB 0D9H ;; �
  725. DB 0C7H ;; �
  726. DB 0D5H ;; �
  727. DB 0DAH ;; �
  728. CP1251_A_UP_K1_T1_END: ;;
  729. ;;
  730. ;;
  731. DW CP1251_A_UP_K1_T2_END-$ ;; Size of xlat table
  732. DB ASCII_ONLY ;; xlat options:
  733. DB 30 ;; Scan code
  734. DB 41 ;; range
  735. DB 0D4H ;; �
  736. DB 0DBH ;; �
  737. DB 0C2H ;; �
  738. DB 0C0H ;; �
  739. DB 0CFH ;; �
  740. DB 0D0H ;; �
  741. DB 0CEH ;; �
  742. DB 0CBH ;; �
  743. DB 0C4H ;; �
  744. DB 0C6H ;; �
  745. DB 0DDH ;; �
  746. DB 0A8H ;; �
  747. CP1251_A_UP_K1_T2_END: ;;
  748. ;;
  749. ;;
  750. DW CP1251_A_UP_K1_T3_END-$ ;; Size of xlat table
  751. DB ASCII_ONLY ;; xlat options:
  752. DB 45 ;; Scan code
  753. DB 52 ;; range
  754. DB 0D7H ;; �
  755. DB 0D1H ;; �
  756. DB 0CCH ;; �
  757. DB 0C8H ;; �
  758. DB 0D2H ;; �
  759. DB 0DCH ;; �
  760. DB 0C1H ;; �
  761. DB 0DEH ;; �
  762. CP1251_A_UP_K1_T3_END: ;;
  763. ;;
  764. ;;
  765. DW CP1251_A_UP_K1_T5_END-$ ;; Size of xlat table
  766. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  767. DB 1 ;; number of entries
  768. DB 44,0DFH ;; �
  769. ;;
  770. CP1251_A_UP_K1_T5_END: ;;
  771. ;;
  772. DW 0 ;; Size of xlat table - null table
  773. ;;
  774. CP1251_A_K1_UP_END: ;;
  775. ;;
  776. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  777. ;;
  778. DW 0 ;; LAST STATE
  779. ;;
  780. CP1251_XLAT_END: ;;
  781. ;;
  782. ;;
  783. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  784. ;; ;;
  785. ;; ********************************************* ;;
  786. ;; * RU Specific Translate Section for 866 * ;;
  787. ;; ********************************************* ;;
  788. ;; ;;
  789. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  790. ;;
  791. RU3_866_XLAT: ;;
  792. ;;
  793. DW CP866_XLAT_END-$ ;; length of section
  794. DW 866 ;;
  795. ;;
  796. ;;
  797. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  798. ;; CODE PAGE: 866
  799. ;; STATE: Non-Alpha Lower Case
  800. ;; KEYBOARD TYPES: All
  801. ;; TABLE TYPE: Translate
  802. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  803. ;;
  804. DW CP866_NA_K1_LO_END-$ ;; length of state section
  805. DB NON_ALPHA_LOWER ;; State ID
  806. DW ANY_KB ;; Keyboard Type
  807. DB -1,-1 ;; Buffer entry for error character
  808. ;;
  809. DW CP866_NA_LO_K1_T1_END-$ ;; Size of xlat table
  810. DB STANDARD_TABLE ;; xlat options:
  811. DB 1 ;; number of entries
  812. DB 53,02EH ;; .
  813. CP866_NA_LO_K1_T1_END: ;;
  814. ;;
  815. DW 0 ;; Size of xlat table - null table
  816. ;;
  817. CP866_NA_K1_LO_END: ;;
  818. ;;
  819. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  820. ;; CODE PAGE: 866
  821. ;; STATE: Non-Alpha Upper Case
  822. ;; KEYBOARD TYPES: All
  823. ;; TABLE TYPE: Translate
  824. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  825. ;;
  826. DW CP866_NA_UP_END-$ ;; length of state section
  827. DB NON_ALPHA_UPPER ;; State ID
  828. DW ANY_KB ;; Keyboard Type
  829. DB -1,-1 ;; Buffer entry for error character
  830. ;;
  831. DW CP866_NA_UP_T1_END-$ ;; Size of xlat table
  832. DB STANDARD_TABLE ;; xlat options:
  833. DB 7 ;; number of entries
  834. DB 3,022H ;; "
  835. DB 4,0FCH ;; NUMBER sign
  836. DB 5,03BH ;; ;
  837. DB 7,03AH ;; :
  838. DB 8,03FH ;; ?
  839. DB 43,02FH ;; /
  840. DB 53,02CH ;; ,
  841. CP866_NA_UP_T1_END: ;;
  842. ;;
  843. DW 0 ;; Size of xlat table - null table
  844. ;;
  845. CP866_NA_UP_END: ;;
  846. ;;
  847. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  848. ;; CODE PAGE: 866
  849. ;; STATE: Third Shift
  850. ;; KEYBOARD TYPES: All
  851. ;; TABLE TYPE: Translate
  852. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  853. ;;
  854. DW CP866_TS_END-$ ;; length of state section
  855. DB THIRD_SHIFT ;; State ID
  856. DW ANY_KB ;; Keyboard Type
  857. DB -1,-1 ;; Buffer entry for error character
  858. ;;
  859. DW CP866_TS_T1_END-$ ;; Size of xlat table
  860. DB STANDARD_TABLE ;; xlat options:
  861. DB 12 ;; number of entries
  862. DB 03H,040H ;; @
  863. DB 04H,023H ;; #
  864. DB 05H,0FDH ;; RUBLES sign �
  865. DB 07H,05EH ;; ^
  866. DB 08H,026H ;; &
  867. DB 09H,024H ;; $
  868. DB 1AH,05BH ;; [
  869. DB 1BH,05DH ;; ]
  870. DB 2BH,07CH ;; |
  871. DB 33H,03CH ;; <
  872. DB 34H,03EH ;; >
  873. DB 35H,02FH ;; /
  874. CP866_TS_T1_END: ;;
  875. ;;
  876. DW 0 ;; Size of xlat table - null table
  877. ;;
  878. CP866_TS_END: ;;
  879. ;;
  880. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  881. ;; CODE PAGE: 866
  882. ;; STATE: Alpha Lower Case
  883. ;; KEYBOARD TYPES: All
  884. ;; TABLE TYPE: Translate
  885. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  886. ;;
  887. DW CP866_A_K1_LO_END-$ ;; length of state section
  888. DB ALPHA_LOWER ;; State ID
  889. DW ANY_KB ;; Keyboard Type
  890. DB -1,-1 ;; Buffer entry for error character
  891. ;;
  892. DW CP866_A_LO_K1_T1_END-$ ;; Size of xlat table
  893. DB ASCII_ONLY ;; xlat options:
  894. DB 16 ;; Scan code
  895. DB 27 ;; range
  896. DB 169 ;; �
  897. DB 230 ;; �
  898. DB 227 ;; �
  899. DB 170 ;; �
  900. DB 165 ;; �
  901. DB 173 ;; �
  902. DB 163 ;; �
  903. DB 232 ;; �
  904. DB 233 ;; �
  905. DB 167 ;; �
  906. DB 229 ;; �
  907. DB 234 ;; �
  908. CP866_A_LO_K1_T1_END: ;;
  909. ;;
  910. ;;
  911. DW CP866_A_LO_K1_T2_END-$ ;; Size of xlat table
  912. DB ASCII_ONLY ;; xlat options:
  913. DB 30 ;; Scan code
  914. DB 34 ;; range
  915. DB 228 ;; �
  916. DB 235 ;; �
  917. DB 162 ;; �
  918. DB 160 ;; �
  919. DB 175 ;; �
  920. CP866_A_LO_K1_T2_END: ;;
  921. ;;
  922. ;;
  923. DW CP866_A_LO_K1_T3_END-$ ;; Size of xlat table
  924. DB ASCII_ONLY ;; xlat options:
  925. DB 36 ;; Scan code
  926. DB 41 ;; range
  927. DB 174 ;; �
  928. DB 171 ;; �
  929. DB 164 ;; �
  930. DB 166 ;; �
  931. DB 237 ;; �
  932. DB 241 ;; �
  933. CP866_A_LO_K1_T3_END: ;;
  934. ;;
  935. ;;
  936. DW CP866_A_LO_K1_T4_END-$ ;; Size of xlat table
  937. DB ASCII_ONLY ;; xlat options:
  938. DB 44 ;; Scan code
  939. DB 52 ;; range
  940. DB 239 ;; �
  941. DB 231 ;; �
  942. DB 225 ;; �
  943. DB 172 ;; �
  944. DB 168 ;; �
  945. DB 226 ;; �
  946. DB 236 ;; �
  947. DB 161 ;; �
  948. DB 238 ;; �
  949. CP866_A_LO_K1_T4_END: ;;
  950. ;;
  951. ;;
  952. DW CP866_A_LO_K1_T5_END-$ ;; Size of xlat table
  953. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  954. DB 1 ;; number of entries
  955. DB 35,0E0H ;; �
  956. CP866_A_LO_K1_T5_END: ;;
  957. ;;
  958. DW 0 ;; Size of xlat table - null table
  959. ;;
  960. CP866_A_K1_LO_END: ;;
  961. ;;
  962. ;;
  963. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  964. ;; CODE PAGE: 866
  965. ;; STATE: Alpha Upper Case
  966. ;; KEYBOARD TYPES: All
  967. ;; TABLE TYPE: Translate
  968. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  969. ;;
  970. DW CP866_A_K1_UP_END-$ ;; length of state section
  971. DB ALPHA_UPPER ;; State ID
  972. DW ANY_KB ;; Keyboard Type
  973. DB -1,-1 ;; Buffer entry for error character
  974. ;;
  975. DW CP866_A_UP_K1_T1_END-$ ;; Size of xlat table
  976. DB ASCII_ONLY ;; xlat options:
  977. DB 16 ;; Scan code
  978. DB 27 ;; range
  979. DB 137 ;; �
  980. DB 150 ;; �
  981. DB 147 ;; �
  982. DB 138 ;; �
  983. DB 133 ;; �
  984. DB 141 ;; �
  985. DB 131 ;; �
  986. DB 152 ;; �
  987. DB 153 ;; �
  988. DB 135 ;; �
  989. DB 149 ;; �
  990. DB 154 ;; �
  991. CP866_A_UP_K1_T1_END: ;;
  992. ;;
  993. ;;
  994. DW CP866_A_UP_K1_T2_END-$ ;; Size of xlat table
  995. DB ASCII_ONLY ;; xlat options:
  996. DB 30 ;; Scan code
  997. DB 40 ;; range
  998. DB 148 ;; �
  999. DB 155 ;; �
  1000. DB 130 ;; �
  1001. DB 128 ;; �
  1002. DB 143 ;; �
  1003. DB 144 ;; �
  1004. DB 142 ;; �
  1005. DB 139 ;; �
  1006. DB 132 ;; �
  1007. DB 134 ;; �
  1008. DB 157 ;; �
  1009. CP866_A_UP_K1_T2_END: ;;
  1010. ;;
  1011. ;;
  1012. DW CP866_A_UP_K1_T3_END-$ ;; Size of xlat table
  1013. DB ASCII_ONLY ;; xlat options:
  1014. DB 44 ;; Scan code
  1015. DB 52 ;; range
  1016. DB 159 ;; �
  1017. DB 151 ;; �
  1018. DB 145 ;; �
  1019. DB 140 ;; �
  1020. DB 136 ;; �
  1021. DB 146 ;; �
  1022. DB 156 ;; �
  1023. DB 129 ;; �
  1024. DB 158 ;; �
  1025. CP866_A_UP_K1_T3_END: ;;
  1026. ;;
  1027. ;;
  1028. DW CP866_A_UP_K1_T5_END-$ ;; Size of xlat table
  1029. DB TYPE_2_TAB+ZERO_SCAN ;; xlat options:
  1030. DB 1 ;; number of entries
  1031. DB 41,240 ;; �
  1032. ;;
  1033. CP866_A_UP_K1_T5_END: ;;
  1034. ;;
  1035. ;;
  1036. ;;
  1037. ;;
  1038. DW 0 ;; Size of xlat table - null table
  1039. ;;
  1040. CP866_A_K1_UP_END: ;;
  1041. ;;
  1042. ;;
  1043. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1044. ;;
  1045. DW 0 ;; LAST STATE
  1046. ;;
  1047. CP866_XLAT_END: ;;
  1048. ;;
  1049. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1050. ;;
  1051. CODE ENDS ;;
  1052. END ;;