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.

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