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.

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