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.

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