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.

804 lines
36 KiB

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