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.

1027 lines
43 KiB

  1. PAGE ,132
  2. TITLE PC DOS 3.3 Keyboard Definition File
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;; PC DOS 3.3 - NLS Support - Keyboard Definition File
  5. ;; (c) Copyright IBM Corp 1986,1987
  6. ;;
  7. ;; This file contains the keyboard tables for:
  8. ;; Poland
  9. ;; which form the Multilingual (ML) Group 2.
  10. ;;
  11. ;; Linkage Instructions:
  12. ;; Refer to KDF.ASM.
  13. ;;
  14. ;;
  15. ;; WRITTEN: Michael J. Saunders 2.OCTOBER 1987
  16. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17. ;;
  18. INCLUDE KEYBSHAR.INC ;;
  19. INCLUDE POSTEQU.INC ;;
  20. INCLUDE KEYBMAC.INC ;;
  21. ;;
  22. PUBLIC PL_LOGIC ;;
  23. PUBLIC PL_850_XLAT ;;
  24. PUBLIC PL_852_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. ;;
  36. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  37. ;;***************************************
  38. ;; PL State Logic
  39. ;;***************************************
  40. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  41. ;;
  42. ;;
  43. PL_LOGIC: ;;
  44. ;;
  45. DW LOGIC_END-$ ;; length
  46. ;;
  47. DW 0 ;; special features
  48. ;;
  49. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
  50. ;;
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52. ;; OPTIONS: If we find a scan match in
  53. ;; an XLATT or SET_FLAG operation then
  54. ;; exit from INT 9.
  55. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  56. ;;
  57. OPTION EXIT_IF_FOUND ;;
  58. ;;
  59. ;;
  60. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  61. ;; Dead key definitions must come before
  62. ;; dead key translations to handle
  63. ;; dead key + dead key.
  64. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  65. ;;
  66. IFF EITHER_ALT,NOT ;;
  67. ANDF EITHER_CTL,NOT ;;
  68. ; IFF CAPS_STATE
  69. ; SET_FLAG DEAD_UPPER
  70. ; ELSEF
  71. IFF EITHER_SHIFT ;;
  72. SET_FLAG DEAD_UPPER ;;
  73. ELSEF ;;
  74. SET_FLAG DEAD_LOWER ;;
  75. ENDIFF ;;
  76. ; ENDIFF
  77. ELSEF ;;
  78. IFF EITHER_SHIFT,NOT ;;
  79. IFKBD XT_KB+AT_KB
  80. IFF EITHER_CTL ;;
  81. ANDF ALT_SHIFT ;;
  82. SET_FLAG DEAD_THIRD ;;
  83. ENDIFF ;;
  84. ELSEF
  85. IFF R_ALT_SHIFT ;;
  86. ANDF EITHER_CTL,NOT ;;
  87. ANDF LC_E0,NOT ;;
  88. SET_FLAG DEAD_THIRD ;;
  89. ENDIFF ;;
  90. ENDIFF
  91. ENDIFF
  92. ENDIFF ;;
  93. ;;
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. ;; ACUTE ACCENT TRANSLATIONS
  96. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  97. ;;
  98. ACUTE_PROC: ;;
  99. ;;
  100. IFF ACUTE,NOT ;;
  101. GOTO CEDILLA_PROC ;;
  102. ENDIFF ;;
  103. RESET_NLS ;;
  104. IFF R_ALT_SHIFT,NOT ;;
  105. XLATT ACUTE_SPACE ;;
  106. ENDIFF ;;
  107. IFF EITHER_CTL,NOT ;;
  108. ANDF EITHER_ALT,NOT ;;
  109. IFF EITHER_SHIFT ;;
  110. IFF CAPS_STATE ;;
  111. XLATT ACUTE_LOWER ;;
  112. ELSEF ;;
  113. XLATT ACUTE_UPPER ;;
  114. ENDIFF ;;
  115. ELSEF ;;
  116. IFF CAPS_STATE ;;
  117. XLATT ACUTE_UPPER ;;
  118. ELSEF ;;
  119. XLATT ACUTE_LOWER ;;
  120. ENDIFF ;;
  121. ENDIFF ;;
  122. ENDIFF ;;
  123. ;;
  124. INVALID_ACUTE: ;;
  125. PUT_ERROR_CHAR ACUTE_SPACE ;; If we get here then either the XLATT
  126. BEEP ;; failed or we are ina bad shift state.
  127. GOTO NON_DEAD ;; Either is invalid so BEEP and fall
  128. ;; through to generate the second char.
  129. ;; Note that the dead key flag will be
  130. ;; reset before we get here.
  131. ;;
  132. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  133. ;;
  134. ;; CEDILLA ACCENT TRANSLATIONS
  135. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  136. ;;
  137. CEDILLA_PROC: ;;
  138. ;;
  139. IFF CEDILLA,NOT ;;
  140. GOTO DIARESIS_PROC ;;
  141. ENDIFF ;;
  142. RESET_NLS ;;
  143. IFF R_ALT_SHIFT,NOT ;;
  144. XLATT CEDILLA_SPACE ;;
  145. ENDIFF ;;
  146. IFF EITHER_CTL,NOT ;;
  147. ANDF EITHER_ALT,NOT ;;
  148. IFF EITHER_SHIFT ;;
  149. IFF CAPS_STATE ;;
  150. XLATT CEDILLA_LOWER ;;
  151. ELSEF ;;
  152. XLATT CEDILLA_UPPER ;;
  153. ENDIFF ;;
  154. ELSEF ;;
  155. IFF CAPS_STATE ;;
  156. XLATT CEDILLA_UPPER ;;
  157. ELSEF ;;
  158. XLATT CEDILLA_LOWER ;;
  159. ENDIFF ;;
  160. ENDIFF ;;
  161. ENDIFF ;;
  162. ;;
  163. INVALID_CEDILLA: ;;
  164. PUT_ERROR_CHAR CEDILLA_LOWER ;; If we get here then either the XLATT
  165. BEEP ;; failed or we are ina bad shift state.
  166. GOTO NON_DEAD ;; Either is invalid so BEEP and fall
  167. ;; through to generate the second char.
  168. ;; Note that the dead key flag will be
  169. ;; reset before we get here.
  170. ;;
  171. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  172. ;; DIARESIS ACCENT TRANSLATIONS
  173. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  174. ;;
  175. DIARESIS_PROC: ;;
  176. ;;
  177. IFF DIARESIS,NOT ;;
  178. GOTO GRAVE_PROC ;;
  179. ENDIFF ;;
  180. ;;
  181. RESET_NLS ;;
  182. IFF R_ALT_SHIFT,NOT ;;
  183. XLATT DIARESIS_SPACE ;; exist for 850 so beep for
  184. ENDIFF ;;
  185. IFF EITHER_CTL,NOT ;;
  186. ANDF EITHER_ALT,NOT ;;
  187. IFF EITHER_SHIFT ;;
  188. IFF CAPS_STATE ;;
  189. XLATT DIARESIS_LOWER ;;
  190. ELSEF ;;
  191. XLATT DIARESIS_UPPER ;;
  192. ENDIFF ;;
  193. ELSEF ;;
  194. IFF CAPS_STATE ;;
  195. XLATT DIARESIS_UPPER ;;
  196. ELSEF ;;
  197. XLATT DIARESIS_LOWER ;;
  198. ENDIFF ;;
  199. ENDIFF ;;
  200. ENDIFF ;;
  201. ;;
  202. INVALID_DIARESIS: ;;
  203. PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
  204. BEEP ;; Invalid dead key combo.
  205. GOTO NON_DEAD ;;
  206. ;;
  207. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  208. ;; GRAVE ACCENT TRANSLATIONS
  209. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  210. ;;
  211. GRAVE_PROC: ;;
  212. ;;
  213. IFF GRAVE,NOT ;;
  214. GOTO TILDE_PROC ;;
  215. ENDIFF ;;
  216. ;;
  217. RESET_NLS ;;
  218. IFF R_ALT_SHIFT,NOT ;;
  219. XLATT GRAVE_SPACE ;;
  220. ENDIFF ;;
  221. IFF EITHER_CTL,NOT ;;
  222. ANDF EITHER_ALT,NOT ;;
  223. IFF EITHER_SHIFT ;;
  224. IFF CAPS_STATE ;;
  225. XLATT GRAVE_LOWER ;;
  226. ELSEF ;;
  227. XLATT GRAVE_UPPER ;;
  228. ENDIFF ;;
  229. ELSEF ;;
  230. IFF CAPS_STATE,NOT ;;
  231. XLATT GRAVE_LOWER ;;
  232. ELSEF ;;
  233. XLATT GRAVE_UPPER ;;
  234. ENDIFF ;;
  235. ENDIFF ;;
  236. ENDIFF ;;
  237. ;;
  238. INVALID_GRAVE: ;;
  239. PUT_ERROR_CHAR GRAVE_SPACE ;; standalone accent
  240. BEEP ;; Invalid dead key combo.
  241. GOTO NON_DEAD ;;
  242. ;;
  243. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  244. ;; TILDE ACCENT TRANSLATIONS
  245. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  246. TILDE_PROC: ;;
  247. ;;
  248. IFF TILDE,NOT ;;
  249. GOTO CIRCUMFLEX_PROC ;;
  250. ENDIFF ;;
  251. ;;
  252. RESET_NLS ;;
  253. IFF R_ALT_SHIFT,NOT ;;
  254. XLATT TILDE_SPACE ;;
  255. ENDIFF ;;
  256. IFF EITHER_CTL,NOT ;;
  257. ANDF EITHER_ALT,NOT ;;
  258. IFF EITHER_SHIFT ;;
  259. IFF CAPS_STATE ;;
  260. XLATT TILDE_LOWER ;;
  261. ELSEF ;;
  262. XLATT TILDE_UPPER ;;
  263. ENDIFF ;;
  264. ELSEF ;;
  265. IFF CAPS_STATE ;;
  266. XLATT TILDE_UPPER ;;
  267. ELSEF ;;
  268. XLATT TILDE_LOWER ;;
  269. ENDIFF ;;
  270. ENDIFF ;;
  271. ENDIFF ;;
  272. INVALID_TILDE: ;;
  273. PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
  274. BEEP ;; Invalid dead key combo.
  275. GOTO NON_DEAD ;;
  276. ;;
  277. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  278. ;; CIRCUMFLEX ACCENT TRANSLATIONS
  279. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  280. ;;
  281. CIRCUMFLEX_PROC: ;;
  282. ;;
  283. IFF CIRCUMFLEX,NOT ;;
  284. GOTO CARON_PROC ;;
  285. ENDIFF ;;
  286. ;;
  287. RESET_NLS ;;
  288. IFF R_ALT_SHIFT,NOT ;;
  289. XLATT CIRCUMFLEX_SPACE ;;
  290. ENDIFF ;;
  291. IFF EITHER_CTL,NOT ;;
  292. ANDF EITHER_ALT,NOT ;;
  293. IFF EITHER_SHIFT ;;
  294. IFF CAPS_STATE ;;
  295. XLATT CIRCUMFLEX_LOWER ;;
  296. ELSEF ;;
  297. XLATT CIRCUMFLEX_UPPER ;;
  298. ENDIFF ;;
  299. ELSEF ;;
  300. IFF CAPS_STATE,NOT ;;
  301. XLATT CIRCUMFLEX_LOWER ;;
  302. ELSEF ;;
  303. XLATT CIRCUMFLEX_UPPER ;;
  304. ENDIFF ;;
  305. ENDIFF ;;
  306. ENDIFF ;;
  307. ;;
  308. INVALID_CIRCUMFLEX: ;;
  309. PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
  310. BEEP ;; Invalid dead key combo.
  311. GOTO NON_DEAD ;;
  312. ;;
  313. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  314. ;; CARON ACCENT TRANSLATIONS
  315. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  316. ;;
  317. CARON_PROC: ;;
  318. ;;
  319. IFF CARON,NOT ;;
  320. GOTO BREVE_PROC ;;
  321. ENDIFF ;;
  322. ;;
  323. RESET_NLS ;;
  324. IFF R_ALT_SHIFT,NOT ;;
  325. XLATT CARON_SPACE ;;
  326. ENDIFF ;;
  327. IFF EITHER_CTL,NOT ;;
  328. ANDF EITHER_ALT,NOT ;;
  329. IFF EITHER_SHIFT ;;
  330. IFF CAPS_STATE ;;
  331. XLATT CARON_LOWER ;;
  332. ELSEF ;;
  333. XLATT CARON_UPPER ;;
  334. ENDIFF ;;
  335. ELSEF ;;
  336. IFF CAPS_STATE,NOT ;;
  337. XLATT CARON_LOWER ;;
  338. ELSEF ;;
  339. XLATT CARON_UPPER ;;
  340. ENDIFF ;;
  341. ENDIFF ;;
  342. ENDIFF ;;
  343. ;;
  344. INVALID_CARON: ;;
  345. PUT_ERROR_CHAR CARON_SPACE ;; standalone accent
  346. BEEP ;; Invalid dead key combo.
  347. GOTO NON_DEAD ;;
  348. ;;
  349. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  350. ;; BREVE ACCENT TRANSLATIONS
  351. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  352. ;;
  353. BREVE_PROC: ;;
  354. ;;
  355. IFF BREVE,NOT ;;
  356. GOTO OVERCIRCLE_PROC ;;
  357. ENDIFF ;;
  358. ;;
  359. RESET_NLS ;;
  360. IFF R_ALT_SHIFT,NOT ;;
  361. XLATT BREVE_SPACE ;;
  362. ENDIFF ;;
  363. IFF EITHER_CTL,NOT ;;
  364. ANDF EITHER_ALT,NOT ;;
  365. IFF EITHER_SHIFT ;;
  366. IFF CAPS_STATE ;;
  367. XLATT BREVE_LOWER ;;
  368. ELSEF ;;
  369. XLATT BREVE_UPPER ;;
  370. ENDIFF ;;
  371. ELSEF ;;
  372. IFF CAPS_STATE,NOT ;;
  373. XLATT BREVE_LOWER ;;
  374. ELSEF ;;
  375. XLATT BREVE_UPPER ;;
  376. ENDIFF ;;
  377. ENDIFF ;;
  378. ENDIFF ;;
  379. ;;
  380. INVALID_BREVE: ;;
  381. PUT_ERROR_CHAR BREVE_SPACE ;; standalone accent
  382. BEEP ;; Invalid dead key combo.
  383. GOTO NON_DEAD ;;
  384. ;;
  385. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  386. ;; OVERCIRCLE ACCENT TRANSLATIONS
  387. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  388. ;;
  389. OVERCIRCLE_PROC: ;;
  390. ;;
  391. IFF OVERCIRCLE,NOT ;;
  392. GOTO OGONEK_PROC ;;
  393. ENDIFF ;;
  394. ;;
  395. RESET_NLS ;;
  396. IFF R_ALT_SHIFT,NOT ;;
  397. XLATT OVERCIRCLE_SPACE ;;
  398. ENDIFF ;;
  399. IFF EITHER_CTL,NOT ;;
  400. ANDF EITHER_ALT,NOT ;;
  401. IFF EITHER_SHIFT ;;
  402. IFF CAPS_STATE ;;
  403. XLATT OVERCIRCLE_LOWER ;;
  404. ELSEF ;;
  405. XLATT OVERCIRCLE_UPPER ;;
  406. ENDIFF ;;
  407. ELSEF ;;
  408. IFF CAPS_STATE,NOT ;;
  409. XLATT OVERCIRCLE_LOWER ;;
  410. ELSEF ;;
  411. XLATT OVERCIRCLE_UPPER ;;
  412. ENDIFF ;;
  413. ENDIFF ;;
  414. ENDIFF ;;
  415. ;;
  416. INVALID_OVERCIRCLE: ;;
  417. PUT_ERROR_CHAR OVERCIRCLE_SPACE ;; standalone accent
  418. BEEP ;; Invalid dead key combo.
  419. GOTO NON_DEAD ;;
  420. ;;
  421. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  422. ;; OGONEK ACCENT TRANSLATIONS
  423. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  424. ;;
  425. OGONEK_PROC: ;;
  426. ;;
  427. IFF OGONEK,NOT ;;
  428. GOTO OVERDOT_PROC ;;
  429. ENDIFF ;;
  430. ;;
  431. RESET_NLS ;;
  432. IFF R_ALT_SHIFT,NOT ;;
  433. XLATT OGONEK_SPACE ;;
  434. ENDIFF ;;
  435. IFF EITHER_CTL,NOT ;;
  436. ANDF EITHER_ALT,NOT ;;
  437. IFF EITHER_SHIFT ;;
  438. IFF CAPS_STATE ;;
  439. XLATT OGONEK_LOWER ;;
  440. ELSEF ;;
  441. XLATT OGONEK_UPPER ;;
  442. ENDIFF ;;
  443. ELSEF ;;
  444. IFF CAPS_STATE,NOT ;;
  445. XLATT OGONEK_LOWER ;;
  446. ELSEF ;;
  447. XLATT OGONEK_UPPER ;;
  448. ENDIFF ;;
  449. ENDIFF ;;
  450. ENDIFF ;;
  451. ;;
  452. INVALID_OGONEK: ;;
  453. PUT_ERROR_CHAR OGONEK_SPACE ;; standalone accent
  454. BEEP ;; Invalid dead key combo.
  455. GOTO NON_DEAD ;;
  456. ;;
  457. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  458. ;; OVERDOT ACCENT TRANSLATIONS
  459. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  460. ;;
  461. OVERDOT_PROC: ;;
  462. ;;
  463. IFF OVERDOT,NOT ;;
  464. GOTO DOUBLEACUTE_PROC ;;
  465. ENDIFF ;;
  466. ;;
  467. RESET_NLS ;;
  468. IFF R_ALT_SHIFT,NOT ;;
  469. XLATT OVERDOT_SPACE ;;
  470. ENDIFF ;;
  471. IFF EITHER_CTL,NOT ;;
  472. ANDF EITHER_ALT,NOT ;;
  473. IFF EITHER_SHIFT ;;
  474. IFF CAPS_STATE ;;
  475. XLATT OVERDOT_LOWER ;;
  476. ELSEF ;;
  477. XLATT OVERDOT_UPPER ;;
  478. ENDIFF ;;
  479. ELSEF ;;
  480. IFF CAPS_STATE,NOT ;;
  481. XLATT OVERDOT_LOWER ;;
  482. ELSEF ;;
  483. XLATT OVERDOT_UPPER ;;
  484. ENDIFF ;;
  485. ENDIFF ;;
  486. ENDIFF ;;
  487. ;;
  488. INVALID_OVERDOT: ;;
  489. PUT_ERROR_CHAR OVERDOT_SPACE ;; standalone accent
  490. BEEP ;; Invalid dead key combo.
  491. GOTO NON_DEAD ;;
  492. ;;
  493. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  494. ;; DOUBLEACUTE ACCENT TRANSLATIONS
  495. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  496. ;;
  497. DOUBLEACUTE_PROC: ;;
  498. ;;
  499. IFF DOUBLEACUTE,NOT ;;
  500. GOTO NON_DEAD ;;
  501. ENDIFF ;;
  502. ;;
  503. RESET_NLS ;;
  504. IFF R_ALT_SHIFT,NOT ;;
  505. XLATT DOUBLEACUTE_SPACE ;;
  506. ENDIFF ;;
  507. IFF EITHER_CTL,NOT ;;
  508. ANDF EITHER_ALT,NOT ;;
  509. IFF EITHER_SHIFT ;;
  510. IFF CAPS_STATE ;;
  511. XLATT DOUBLEACUTE_LOWER ;;
  512. ELSEF ;;
  513. XLATT DOUBLEACUTE_UPPER ;;
  514. ENDIFF ;;
  515. ELSEF ;;
  516. IFF CAPS_STATE,NOT ;;
  517. XLATT DOUBLEACUTE_LOWER ;;
  518. ELSEF ;;
  519. XLATT DOUBLEACUTE_UPPER ;;
  520. ENDIFF ;;
  521. ENDIFF ;;
  522. ENDIFF ;;
  523. ;;
  524. INVALID_DOUBLEACUTE: ;;
  525. PUT_ERROR_CHAR DOUBLEACUTE_SPACE ;; standalone accent
  526. BEEP ;; Invalid dead key combo.
  527. GOTO NON_DEAD ;;
  528. ;;
  529. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  530. ;; Upper, lower, third and fourth shifts
  531. ;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED
  532. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  533. NON_DEAD: ;;
  534. ;ADDED FOR DIVIDE SIGN ;; ***** DIVIDE OMITTED **** CNS
  535. IFKBD G_KB+P12_KB ;; Avoid accidentally translating
  536. ANDF LC_E0 ;; the "/" on the numeric pad of the
  537. ; IFF EITHER_CTL,NOT ;; country comforms with U.S. currently
  538. ; ANDF EITHER_ALT,NOT
  539. ; XLATT DIVIDE_SIGN ;;
  540. ; ENDIFF
  541. ;BD END OF ADDITION
  542. EXIT_STATE_LOGIC ;;
  543. ENDIFF ;;
  544. ;;
  545. IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic
  546. IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK.
  547. IFF EITHER_SHIFT ;; Numeric keys are not.
  548. XLATT NON_ALPHA_UPPER ;;
  549. IFF CAPS_STATE ;;
  550. XLATT ALPHA_LOWER ;;
  551. ELSEF ;;
  552. XLATT ALPHA_UPPER ;;
  553. ENDIFF ;;
  554. ELSEF ;;
  555. XLATT NON_ALPHA_LOWER ;;
  556. IFF CAPS_STATE ;;
  557. XLATT ALPHA_UPPER ;;
  558. ELSEF ;;
  559. XLATT ALPHA_LOWER ;;
  560. ENDIFF ;;
  561. ENDIFF ;; Third and Fourth shifts
  562. ELSEF ;; ctl off, alt on at this point
  563. IFKBD XT_KB+AT_KB+JR_KB ;; XT, AT, JR keyboards. Nordics
  564. IFF EITHER_SHIFT ;; only.
  565. IFF CAPS_STATE
  566. XLATT THIRD_SHIFT ;; ALT + shift
  567. ELSEF
  568. XLATT FOURTH_SHIFT
  569. ENDIFF
  570. ELSEF
  571. IFF CAPS_STATE ;;
  572. XLATT FOURTH_SHIFT ;; ALT
  573. ELSEF
  574. XLATT THIRD_SHIFT
  575. ENDIFF
  576. ENDIFF ;;
  577. ELSEF ;; ENHANCED keyboard
  578. IFF R_ALT_SHIFT ;; ALTGr
  579. IFF EITHER_SHIFT ;;
  580. IFF CAPS_STATE
  581. XLATT THIRD_SHIFT
  582. ELSEF
  583. XLATT FOURTH_SHIFT ;;
  584. ENDIFF
  585. ELSEF ;;
  586. IFF CAPS_STATE
  587. XLATT FOURTH_SHIFT ;;
  588. ELSEF
  589. XLATT THIRD_SHIFT
  590. ENDIFF
  591. ENDIFF ;;
  592. ENDIFF ;;
  593. ENDIFF ;;
  594. ENDIFF ;;
  595. ENDIFF ;;
  596. ;**************************************;;
  597. IFF EITHER_SHIFT,NOT ;;
  598. IFKBD XT_KB+AT_KB+JR_KB ;;
  599. IFF EITHER_CTL ;;
  600. ANDF ALT_SHIFT ;;
  601. XLATT ALT_CASE ;;
  602. ENDIFF ;;
  603. ENDIFF ;;
  604. IFKBD G_KB+P12_KB ;;
  605. IFF EITHER_CTL ;;
  606. ANDF ALT_SHIFT ;;
  607. IFF R_ALT_SHIFT,NOT ;;
  608. XLATT ALT_CASE ;;
  609. ENDIFF ;;
  610. ENDIFF ;;
  611. ENDIFF ;;
  612. ENDIFF ;;
  613. ;**************************************;;
  614. IFKBD AT_KB+JR_KB+XT_KB ;;
  615. IFF EITHER_CTL,NOT ;;
  616. IFF ALT_SHIFT ;; ALT - case
  617. XLATT ALT_CASE ;;
  618. ENDIFF ;;
  619. ELSEF ;;
  620. IFF EITHER_ALT,NOT ;; CTRL - case
  621. XLATT CTRL_CASE ;;
  622. ENDIFF ;;
  623. ENDIFF ;;
  624. ENDIFF ;;
  625. ;;
  626. IFKBD G_KB+P12_KB ;;
  627. IFF EITHER_CTL,NOT ;;
  628. IFF ALT_SHIFT ;; ALT - case
  629. ANDF R_ALT_SHIFT,NOT ;;
  630. XLATT ALT_CASE ;;
  631. ENDIFF ;;
  632. ELSEF ;;
  633. IFF EITHER_ALT,NOT ;; CTRL - case
  634. XLATT CTRL_CASE ;;
  635. ENDIFF ;;
  636. ENDIFF ;;
  637. ENDIFF ;;
  638. ;;
  639. EXIT_STATE_LOGIC ;;
  640. ;;
  641. LOGIC_END: ;;
  642. ;;
  643. ;***************************
  644. ;;
  645. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  646. ;;**********************************************************************
  647. ;; PL Common Translate Section
  648. ;; This section contains translations for the lower 128 characters
  649. ;; only since these will never change from code page to code page.
  650. ;; Some common Characters are included from 128 - 165 where appropriate.
  651. ;; In addition the dead key "Set Flag" tables are here since the
  652. ;; dead keys are on the same keytops for all code pages.
  653. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  654. ;;
  655. PUBLIC PL_COMMON_XLAT ;;
  656. PL_COMMON_XLAT: ;;
  657. ;;
  658. DW COMMON_XLAT_END-$ ;; length of section
  659. DW -1 ;;
  660. ;;
  661. ;;
  662. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  663. ;; CODE PAGE: COMMON
  664. ;; STATE: low shift Dead_lower
  665. ;; KEYBOARD TYPES: G
  666. ;; TABLE TYPE: Flag Table
  667. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  668. ;;
  669. DW COM_PL_LO_END-$ ;; length of state section
  670. DB DEAD_LOWER ;; State ID
  671. DW ANY_KB ;; Keyboard Type
  672. DB -1,-1 ;; Buffer entry for error character
  673. ;; Set Flag Table
  674. DW 0 ;; number of entries
  675. ;;
  676. COM_PL_LO_END: ;;
  677. ;;
  678. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  679. ;; CODE PAGE: COMMON
  680. ;; STATE: low shift Dead_UPPER
  681. ;; KEYBOARD TYPES: G
  682. ;; TABLE TYPE: Flag Table
  683. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  684. ;;
  685. DW COM_PL_UP_END-$ ;; length of state section
  686. DB DEAD_UPPER ;; State ID
  687. DW ANY_KB ;; Keyboard Type
  688. DB -1,-1 ;; Buffer entry for error character
  689. ;; Set Flag Table
  690. DW 1 ;; number of entries
  691. DB 29H ;;
  692. FLAG TILDE ;;
  693. ;;
  694. COM_PL_UP_END: ;;
  695. ;;
  696. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  697. ;; CODE PAGE: COMMON
  698. ;; STATE: Third Shift Dead Key
  699. ;; KEYBOARD TYPES: G
  700. ;; TABLE TYPE: Flag Table
  701. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  702. ;;
  703. DW COM_PL_TH_END-$ ;; length of state section
  704. DB DEAD_THIRD ;; State ID
  705. DW ANY_KB ;; Keyboard Type
  706. DB -1,-1 ;; Buffer entry for error character
  707. ;; Set Flag Table
  708. DW 0 ;; number of entries
  709. ;;
  710. COM_PL_TH_END: ;;
  711. ;;
  712. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  713. ;;******************************
  714. ;;***BD - ADDED FOR ALT CASE
  715. ;;******************************
  716. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  717. ;; CODE PAGE: COMMON
  718. ;; STATE: Alt Case
  719. ;; KEYBOARD TYPES: G
  720. ;; TABLE TYPE: Translate
  721. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  722. ;;
  723. DW COM_ALT_K1_END-$ ;; length of state section
  724. DB ALT_CASE ;; State ID
  725. DW ANY_KB ;; Keyboard Type
  726. DB -1,-1 ;; Buffer entry for error character
  727. ;;
  728. DW COM_ALT_K1_T1_END-$ ;; Size of xlat table
  729. DB TYPE_2_TAB ;; xlat options:
  730. DB 0 ;; number of entries
  731. COM_ALT_K1_T1_END: ;;
  732. ;;
  733. DW 0 ;; Size of xlat table - null table
  734. ;;
  735. COM_ALT_K1_END: ;;
  736. ;;
  737. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  738. ;; CODE PAGE: COMMON
  739. ;; STATE: Ctrl Case
  740. ;; KEYBOARD TYPES: G
  741. ;; TABLE TYPE: Translate
  742. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  743. ;;
  744. DW COM_CTRL_K2_END-$ ;; length of state section
  745. DB CTRL_CASE ;; State ID
  746. DW ANY_KB ;; Keyboard Type
  747. DB -1,-1 ;; Buffer entry for error character
  748. ;;
  749. DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table
  750. DB TYPE_2_TAB ;; xlat options:
  751. DB 0 ;; number of entries
  752. COM_CTRL_K2_T1_END: ;;
  753. ;;
  754. DW 0 ;; Size of xlat table - null table
  755. ;;
  756. COM_CTRL_K2_END: ;;
  757. ;;
  758. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  759. ;; CODE PAGE: COM
  760. ;; STATE: Alpha Lower Case
  761. ;; KEYBOARD TYPES: G
  762. ;; TABLE TYPE: Translate
  763. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  764. ;;
  765. DW COM_AL_LO_K1_END-$ ;; length of state section
  766. DB ALPHA_LOWER ;; State ID
  767. DW ANY_KB ;; Keyboard Type
  768. DB -1,-1 ;; Buffer entry for error character
  769. ;;
  770. DW COM_AL_LO_K1_T1_END-$ ;; Size of xlat table
  771. DB TYPE_2_TAB ;; xlat options:
  772. DB 0 ;; number of entries
  773. COM_AL_LO_K1_T1_END: ;;
  774. ;;
  775. DW 0 ;; Size of xlat table - null table
  776. ;;
  777. COM_AL_LO_K1_END: ;;
  778. ;;
  779. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  780. ;; CODE PAGE: COM
  781. ;; STATE: Alpha Upper Case
  782. ;; KEYBOARD TYPES: G
  783. ;; TABLE TYPE: Translate
  784. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  785. ;;
  786. DW COM_AL_UP_K1_END-$ ;; length of state section
  787. DB ALPHA_UPPER ;; State ID
  788. DW ANY_KB ;; Keyboard Type
  789. DB -1,-1 ;; Buffer entry for error character
  790. ;;
  791. DW COM_AL_UP_K1_T1_END-$ ;; Size of xlat table
  792. DB TYPE_2_TAB ;; xlat options:
  793. DB 0 ;; number of entries
  794. COM_AL_UP_K1_T1_END: ;;
  795. ;;
  796. DW 0 ;; Size of xlat table - null table
  797. ;;
  798. COM_AL_UP_K1_END: ;;
  799. ;;
  800. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  801. ;; CODE PAGE: COM
  802. ;; STATE: Non-Alpha Lower Case
  803. ;; KEYBOARD TYPES: G
  804. ;; TABLE TYPE: Translate
  805. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  806. ;;
  807. DW COM_NA_LO_K1_END-$ ;; length of state section
  808. DB NON_ALPHA_LOWER ;; State ID
  809. DW ANY_KB ;; Keyboard Type
  810. DB -1,-1 ;; Buffer entry for error character
  811. ;;
  812. DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
  813. DB STANDARD_TABLE ;; xlat options:
  814. DB 0 ;; number of entries
  815. COM_NA_LO_K1_T1_END: ;;
  816. ;;
  817. DW 0 ;; Size of xlat table - null table
  818. ;;
  819. COM_NA_LO_K1_END: ;;
  820. ;;
  821. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  822. ;; CODE PAGE: COMMON
  823. ;; STATE: Non-Alpha Upper Case
  824. ;; KEYBOARD TYPES: G
  825. ;; TABLE TYPE: Translate
  826. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  827. ;;
  828. DW COM_NA_UP_K1_END-$ ;; length of state section
  829. DB NON_ALPHA_UPPER ;; State ID
  830. DW ANY_KB ;; Keyboard Type
  831. DB -1,-1 ;; Buffer entry for error character
  832. ;;
  833. DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table
  834. DB STANDARD_TABLE ;; xlat options:
  835. DB 0 ;; number of entries
  836. COM_NA_UP_K1_T1_END: ;;
  837. ;;
  838. DW 0 ;; Size of xlat table - null table
  839. ;;
  840. COM_NA_UP_K1_END: ;;
  841. ;;
  842. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  843. ;; CODE PAGE: COMMON
  844. ;; STATE: Third Shift
  845. ;; KEYBOARD TYPES: G
  846. ;; TABLE TYPE: Translate
  847. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  848. ;;
  849. DW COM_THIRD_END-$ ;; length of state section
  850. DB THIRD_SHIFT ;; State ID
  851. DW ANY_KB ;; Keyboard Type FERRARI
  852. DB -1,-1 ;; Buffer entry for error character
  853. ;;
  854. DW COM_THIRD_T1_END-$ ;; Size of xlat table
  855. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  856. DB 9 ;; number of entries
  857. DB 18,0A9H ;; e ogonek
  858. DB 24,0A2H ;; o acute
  859. DB 30,0A5H ;; a ogonek
  860. DB 31,098H ;; s acute
  861. DB 38,088H ;; l slash
  862. DB 44,0BEH ;; z dot
  863. DB 45,0ABH ;; z acute
  864. DB 46,086H ;; c acute
  865. DB 49,0E4H ;; n acute
  866. COM_THIRD_T1_END: ;;
  867. ;;
  868. DW 0 ;; Last xlat table
  869. COM_THIRD_END: ;;
  870. ;;
  871. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  872. ;; CODE PAGE: Common
  873. ;; STATE: Fourth Shift
  874. ;; KEYBOARD TYPES: G
  875. ;; TABLE TYPE: Translate
  876. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  877. ;;
  878. DW COM_FOURTH_END-$ ;; length of state section
  879. DB FOURTH_SHIFT ;; State ID
  880. DW ANY_KB ;; Keyboard Type FERRARI
  881. DB -1,-1 ;; Buffer entry for error character
  882. ;;
  883. DW COM_FOURTH_T1_END-$ ;; Size of xlat table
  884. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  885. DB 9 ;; number of entries
  886. DB 18,0A8H ;; E ogonek
  887. DB 24,0E0H ;; O acute
  888. DB 30,0A4H ;; A ogonek
  889. DB 31,097H ;; S acute
  890. DB 38,09DH ;; L slash
  891. DB 44,0BDH ;; Z dot
  892. DB 45,08DH ;; Z acute
  893. DB 46,08FH ;; C acute
  894. DB 49,0E3H ;; N acute
  895. COM_FOURTH_T1_END: ;;
  896. ;;
  897. DW 0 ;; Last xlat table
  898. COM_FOURTH_END: ;;
  899. ;;
  900. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  901. ;; CODE PAGE: COMMON
  902. ;; STATE: Tilde Lower Case
  903. ;; KEYBOARD TYPES: ANY_KB
  904. ;; TABLE TYPE: Translate
  905. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  906. ;;
  907. DW COM_TI_LO_END-$ ;; length of state section
  908. DB TILDE_LOWER ;; State ID
  909. DW ANY_KB ;; Keyboard Type
  910. DB 07EH,0 ;; error character = standalone accent
  911. ;;
  912. DW COM_TI_LO_T1_END-$ ;; Size of xlat table
  913. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  914. DB 9 ;; number of scans
  915. DB 18,0A9H ;; e ogonek
  916. DB 24,0A2H ;; o acute
  917. DB 30,0A5H ;; a ogonek
  918. DB 31,098H ;; s acute
  919. DB 38,088H ;; l slash
  920. DB 44,0BEH ;; z dot
  921. DB 45,0ABH ;; z acute
  922. DB 46,086H ;; c acute
  923. DB 49,0E4H ;; n acute
  924. COM_TI_LO_T1_END: ;;
  925. ;;
  926. DW 0 ;; Size of xlat table - null table
  927. ;;
  928. COM_TI_LO_END: ;; length of state section
  929. ;;
  930. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  931. ;; CODE PAGE: 852
  932. ;; STATE: Tilde Upper Case
  933. ;; KEYBOARD TYPES: ANY_KB
  934. ;; TABLE TYPE: Translate
  935. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  936. ;;
  937. DW COM_TI_UP_END-$ ;; length of state section
  938. DB TILDE_UPPER ;; State ID
  939. DW ANY_KB ;; Keyboard Type
  940. DB 07EH,0 ;; error character = standalone accent
  941. ;;
  942. DW COM_TI_UP_T1_END-$ ;; Size of xlat table
  943. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  944. DB 9 ;; number of scans
  945. DB 18,0A8H ;; E ogonek
  946. DB 24,0E0H ;; O acute
  947. DB 30,0A4H ;; A ogonek
  948. DB 31,097H ;; S acute
  949. DB 38,09DH ;; L slash
  950. DB 44,0BDH ;; Z dot
  951. DB 45,08DH ;; Z acute
  952. DB 46,08FH ;; C acute
  953. DB 49,0E3H ;; N acute
  954. COM_TI_UP_T1_END: ;;
  955. ;;
  956. DW 0 ;; Size of xlat table - null table
  957. ;;
  958. COM_TI_UP_END: ;; length of state section
  959. ;;
  960. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  961. ;; CODE PAGE: 852
  962. ;; STATE: Tilde
  963. ;; KEYBOARD TYPES: ANY_KB
  964. ;; TABLE TYPE: Translate
  965. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  966. ;;
  967. DW COM_TI_SP_END-$ ;; length of state section
  968. DB TILDE_SPACE ;; State ID
  969. DW ANY_KB ;; Keyboard Type
  970. DB 07EH,0 ;; error character = standalone accent
  971. ;;
  972. DW COM_TI_SP_T1_END-$ ;; Size of xlat table
  973. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  974. DB 1 ;; number of scans
  975. DB 57,07EH ;; STANDALONE TILDE
  976. COM_TI_SP_T1_END: ;;
  977. ;;
  978. DW 0 ;;
  979. ;;
  980. COM_TI_SP_END: ;;
  981. ;;
  982. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  983. DW 0 ;; Last State
  984. COMMON_XLAT_END: ;; END OF COMMON SECTION
  985. ;;
  986. ;;
  987. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  988. ;;
  989. ;; CODE PAGE 850 MULTILINGUAL 2 SPECIFIC TRANSLATION
  990. ;;
  991. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  992. ;;
  993. PUBLIC PL_850_XLAT ;;
  994. PL_850_XLAT: ;;
  995. ;;
  996. DW CP850_XLAT_END-$ ;;
  997. DW 850 ;;
  998. ;;
  999. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1000. DW 0 ;; LAST STATE
  1001. ;;
  1002. CP850_XLAT_END: ;; END OF CP850 SECTION
  1003. ;;
  1004. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1005. ;;
  1006. ;; CODE PAGE 852 MULTILINGUAL 2 SPECIFIC TRANSLATION
  1007. ;;
  1008. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1009. ;;
  1010. PUBLIC PL_852_XLAT ;;
  1011. PL_852_XLAT: ;;
  1012. ;;
  1013. DW CP852_XLAT_END-$ ;;
  1014. DW 852 ;;
  1015. ;;
  1016. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1017. ;;
  1018. DW 0 ;; LAST STATE
  1019. ;;
  1020. CP852_XLAT_END: ;; END OF CP852 SECTION
  1021. ;;
  1022. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1023. ;;
  1024. CODE ENDS ;; END OF PROGRAM
  1025. END ;;
  1026.