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.

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