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.

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