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.

1328 lines
52 KiB

  1. ;/* Microsoft Confidential
  2. ; * Copyright (C) Microsoft Corporation 1991
  3. ; * All Rights Reserved.
  4. ; */
  5. ;; XT section enabled
  6. ;; ************* CNS 12/18/86
  7. PAGE ,132
  8. TITLE MS-DOS 5.0 Keyboard Definition File
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10. ;; MS-DOS 5.0 - NLS Support - Keyboard Defintion File
  11. ;;
  12. ;; This file contains the keyboard tables for Brazil - type 275
  13. ;;
  14. ;; Linkage Instructions:
  15. ;; Refer to KDF.ASM.
  16. ;;
  17. ;; Author: BILL DEVLIN - IBM Canada Laboratory - May 1986
  18. ;; Adapted for Brazil by Mihindu Senanayake (Microsoft) - Oct 1990
  19. ;; Adapted for IBM Brazil by Vera Vaitekunas (Microsoft - verav) - January 92
  20. ;;
  21. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  22. ;;
  23. INCLUDE KEYBSHAR.INC ;;
  24. INCLUDE POSTEQU.INC ;;
  25. INCLUDE KEYBMAC.INC ;;
  26. ;;
  27. PUBLIC BR_LOGIC ;;
  28. PUBLIC BR_437_XLAT ;;
  29. PUBLIC BR_850_XLAT ;;
  30. ;;
  31. CODE SEGMENT PUBLIC 'CODE' ;;
  32. ASSUME CS:CODE,DS:CODE ;;
  33. ;;
  34. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  35. ;; Standard translate table options are a linear search table
  36. ;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;
  39. STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY
  40. ;;
  41. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  42. ;; BR State Logic
  43. ;;***************************************
  44. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  45. ;;
  46. BR_LOGIC:
  47. DW LOGIC_END-$ ;; length
  48. ;;
  49. DW 0 ;; special features
  50. ;;
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
  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. ;; Dead key definitions must come before
  61. ;; dead key translations to handle
  62. ;; dead key + dead key.
  63. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  64. ;;
  65. IFF EITHER_ALT,NOT ;;
  66. ANDF EITHER_CTL,NOT ;;
  67. IFF EITHER_SHIFT ;;
  68. IFF CIRCUMFLEX ;;
  69. RESET_NLS ;;
  70. XLATT CIRCUMFLEX_CIRCUMFLEX ;;
  71. SET_FLAG DEAD_UPPER ;;
  72. GOTO CIRCUMFLEX_ON ;;
  73. ENDIFF ;;
  74. IFF TILDE ;;
  75. RESET_NLS ;;
  76. XLATT TILDE_TILDE ;;
  77. SET_FLAG DEAD_UPPER ;;
  78. GOTO TILDE_ON ;;
  79. ENDIFF ;;
  80. IFF DIARESIS ;;
  81. RESET_NLS ;;
  82. XLATT DIARESIS_DIARESIS ;;
  83. SET_FLAG DEAD_UPPER ;;
  84. GOTO DIARESIS_ON ;;
  85. ENDIFF ;;
  86. SET_FLAG DEAD_UPPER ;;
  87. ELSEF
  88. IFF GRAVE ;;
  89. RESET_NLS ;;
  90. XLATT GRAVE_GRAVE ;;
  91. SET_FLAG DEAD_LOWER
  92. GOTO GRAVE_ON ;;
  93. ENDIFF ;;
  94. IFF ACUTE ;;
  95. RESET_NLS ;;
  96. XLATT ACUTE_ACUTE ;;
  97. SET_FLAG DEAD_LOWER
  98. GOTO ACUTE_ON ;;
  99. ENDIFF ;;
  100. SET_FLAG DEAD_LOWER
  101. ENDIFF ;;
  102. ENDIFF ;;
  103. ;;
  104. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  105. ;; ACUTE ACCENT TRANSLATIONS
  106. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  107. ;;
  108. ACUTE_PROC:
  109. ;;
  110. IFF ACUTE,NOT ;;
  111. GOTO DIARESIS_PROC ;;
  112. ENDIFF ;;
  113. ;;
  114. RESET_NLS ;;
  115. ACUTE_ON: ;;
  116. IFF R_ALT_SHIFT,NOT ;;
  117. XLATT ACUTE_SPACE ;;
  118. ENDIFF ;;
  119. IFF EITHER_CTL,NOT ;;
  120. ANDF EITHER_ALT,NOT ;;
  121. IFF EITHER_SHIFT ;;
  122. IFF CAPS_STATE ;;
  123. XLATT ACUTE_LOWER ;;
  124. ELSEF ;;
  125. XLATT ACUTE_UPPER ;;
  126. ENDIFF ;;
  127. ELSEF ;;
  128. IFF CAPS_STATE ;;
  129. XLATT ACUTE_UPPER ;;
  130. ELSEF ;;
  131. XLATT ACUTE_LOWER ;;
  132. ENDIFF ;;
  133. ENDIFF ;;
  134. ENDIFF ;;
  135. ;;
  136. INVALID_ACUTE: ;;
  137. PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT
  138. BEEP ;; failed or we are ina bad shift state.
  139. GOTO NON_DEAD ;; Either is invalid so BEEP and fall
  140. ;; through to generate the second char.
  141. ;; Note that the dead key flag will be
  142. ;; reset before we get here.
  143. ;;
  144. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  145. ;; DIARESIS ACCENT TRANSLATIONS
  146. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  147. ;;
  148. DIARESIS_PROC: ;;
  149. ;;
  150. IFF DIARESIS,NOT ;;
  151. GOTO GRAVE_PROC ;;
  152. ENDIFF ;;
  153. ;;
  154. RESET_NLS ;;
  155. DIARESIS_ON: ;;
  156. IFF R_ALT_SHIFT,NOT ;;
  157. XLATT DIARESIS_SPACE ;;
  158. ENDIFF ;;
  159. IFF EITHER_CTL,NOT ;;
  160. ANDF EITHER_ALT,NOT ;;
  161. IFF EITHER_SHIFT ;;
  162. IFF CAPS_STATE ;;
  163. XLATT DIARESIS_LOWER ;;
  164. ELSEF ;;
  165. XLATT DIARESIS_UPPER ;;
  166. ENDIFF ;;
  167. ELSEF ;;
  168. IFF CAPS_STATE ;;
  169. XLATT DIARESIS_UPPER ;;
  170. ELSEF ;;
  171. XLATT DIARESIS_LOWER ;;
  172. ENDIFF ;;
  173. ENDIFF ;;
  174. ENDIFF ;;
  175. ;;
  176. INVALID_DIARESIS: ;;
  177. PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent
  178. BEEP ;; Invalid dead key combo.
  179. GOTO NON_DEAD ;;
  180. ;;
  181. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  182. ;; GRAVE ACCENT TRANSLATIONS
  183. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  184. ;;
  185. GRAVE_PROC: ;;
  186. ;;
  187. IFF GRAVE,NOT ;;
  188. GOTO TILDE_PROC ;;
  189. ENDIFF ;;
  190. ;;
  191. RESET_NLS ;;
  192. GRAVE_ON: ;;
  193. IFF R_ALT_SHIFT,NOT ;;
  194. XLATT GRAVE_SPACE ;;
  195. ENDIFF ;;
  196. IFF EITHER_CTL,NOT ;;
  197. ANDF EITHER_ALT,NOT ;;
  198. IFF EITHER_SHIFT ;;
  199. IFF CAPS_STATE ;;
  200. XLATT GRAVE_LOWER ;;
  201. ELSEF ;;
  202. XLATT GRAVE_UPPER ;;
  203. ENDIFF ;;
  204. ELSEF ;;
  205. IFF CAPS_STATE,NOT ;;
  206. XLATT GRAVE_LOWER ;;
  207. ELSEF ;;
  208. XLATT GRAVE_UPPER ;;
  209. ENDIFF ;;
  210. ENDIFF ;;
  211. ENDIFF ;;
  212. ;;
  213. INVALID_GRAVE: ;;
  214. PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent
  215. BEEP ;; Invalid dead key combo.
  216. GOTO NON_DEAD ;;
  217. ;;
  218. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  219. ;; TILDE ACCENT TRANSLATIONS
  220. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  221. TILDE_PROC: ;;
  222. ;;
  223. IFF TILDE,NOT ;;
  224. GOTO CIRCUMFLEX_PROC ;;
  225. ENDIFF ;;
  226. ;;
  227. RESET_NLS ;;
  228. TILDE_ON: ;;
  229. IFF R_ALT_SHIFT,NOT ;;
  230. XLATT TILDE_SPACE ;;
  231. ENDIFF ;;
  232. IFF EITHER_CTL,NOT ;;
  233. ANDF EITHER_ALT,NOT ;;
  234. IFF EITHER_SHIFT ;;
  235. IFF CAPS_STATE ;;
  236. XLATT TILDE_LOWER ;;
  237. ELSEF ;;
  238. XLATT TILDE_UPPER ;;
  239. ENDIFF ;;
  240. ELSEF ;;
  241. IFF CAPS_STATE ;;
  242. XLATT TILDE_UPPER ;;
  243. ELSEF ;;
  244. XLATT TILDE_LOWER ;;
  245. ENDIFF ;;
  246. ENDIFF ;;
  247. ENDIFF ;;
  248. ;;
  249. INVALID_TILDE: ;;
  250. PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent
  251. BEEP ;; Invalid dead key combo.
  252. GOTO NON_DEAD ;;
  253. ;;
  254. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  255. ;; CIRCUMFLEX ACCENT TRANSLATIONS
  256. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  257. ;;
  258. CIRCUMFLEX_PROC: ;;
  259. ;;
  260. IFF CIRCUMFLEX,NOT ;;
  261. GOTO NON_DEAD ;;
  262. ENDIFF ;;
  263. ;;
  264. RESET_NLS ;;
  265. CIRCUMFLEX_ON: ;;
  266. IFF R_ALT_SHIFT,NOT ;;
  267. XLATT CIRCUMFLEX_SPACE ;;
  268. ENDIFF ;;
  269. IFF EITHER_CTL,NOT ;;
  270. ANDF EITHER_ALT,NOT ;;
  271. IFF EITHER_SHIFT ;;
  272. IFF CAPS_STATE ;;
  273. XLATT CIRCUMFLEX_LOWER ;;
  274. ELSEF ;;
  275. XLATT CIRCUMFLEX_UPPER ;;
  276. ENDIFF ;;
  277. ELSEF ;;
  278. IFF CAPS_STATE,NOT ;;
  279. XLATT CIRCUMFLEX_LOWER ;;
  280. ELSEF ;;
  281. XLATT CIRCUMFLEX_UPPER ;;
  282. ENDIFF ;;
  283. ENDIFF ;;
  284. ENDIFF ;;
  285. ;;
  286. INVALID_CIRCUMFLEX: ;;
  287. PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent
  288. BEEP ;; Invalid dead key combo.
  289. GOTO NON_DEAD ;;
  290. ;;
  291. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  292. ;; Upper, lower and third shifts
  293. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  294. ;;
  295. NON_DEAD: ;;
  296. ;;
  297. IFKBD G_KB+P12_KB ;; Avoid accidentally translating
  298. ANDF LC_E0 ;; the "/" on the numeric pad of the
  299. EXIT_STATE_LOGIC ;; G keyboard
  300. ENDIFF ;;
  301. ;;
  302. IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic
  303. ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK.
  304. IFF EITHER_SHIFT ;; Numeric keys are not.
  305. XLATT NON_ALPHA_UPPER ;;
  306. IFF CAPS_STATE ;;
  307. XLATT ALPHA_LOWER ;;
  308. ELSEF ;;
  309. XLATT ALPHA_UPPER ;;
  310. ENDIFF ;;
  311. ELSEF ;;
  312. XLATT NON_ALPHA_LOWER ;;
  313. IFF CAPS_STATE ;;
  314. XLATT ALPHA_UPPER ;;
  315. ELSEF ;;
  316. XLATT ALPHA_LOWER ;;
  317. ENDIFF ;;
  318. ENDIFF ;;
  319. ELSEF ;;
  320. IFF EITHER_SHIFT,NOT ;;
  321. IFKBD XT_KB+AT_KB ;;
  322. IFF EITHER_CTL ;;
  323. ANDF ALT_SHIFT ;;
  324. XLATT THIRD_SHIFT ;;
  325. ENDIFF ;;
  326. ELSEF ;;
  327. IFF EITHER_CTL,NOT ;;
  328. ANDF R_ALT_SHIFT ;;
  329. XLATT THIRD_SHIFT ;;
  330. ENDIFF ;;
  331. ENDIFF ;;
  332. ENDIFF ;;
  333. ENDIFF ;;
  334. ;**************************************;;
  335. IFF EITHER_SHIFT,NOT ;;
  336. IFKBD XT_KB+AT_KB ;;
  337. IFF EITHER_CTL ;;
  338. ANDF ALT_SHIFT ;;
  339. XLATT ALT_CASE ;;
  340. ENDIFF ;;
  341. ENDIFF ;;
  342. IFKBD G_KB+P12_KB ;;
  343. IFF EITHER_CTL ;;
  344. ANDF ALT_SHIFT ;;
  345. IFF R_ALT_SHIFT,NOT ;;
  346. XLATT ALT_CASE ;;
  347. ENDIFF ;;
  348. ENDIFF ;;
  349. ENDIFF ;;
  350. ENDIFF ;;
  351. ;**************************************;;
  352. IFKBD AT_KB+XT_KB ;;
  353. IFF EITHER_CTL,NOT ;;
  354. IFF ALT_SHIFT ;; ALT - case
  355. XLATT ALT_CASE ;;
  356. ENDIFF ;;
  357. ELSEF ;;
  358. IFF EITHER_ALT,NOT ;; CTRL - case
  359. XLATT CTRL_CASE ;;
  360. ENDIFF ;;
  361. ENDIFF ;;
  362. ENDIFF ;;
  363. ;;
  364. IFKBD G_KB+P12_KB ;;
  365. IFF EITHER_CTL,NOT ;;
  366. IFF ALT_SHIFT ;; ALT - case
  367. ANDF R_ALT_SHIFT,NOT ;;
  368. XLATT ALT_CASE ;;
  369. ENDIFF ;;
  370. ELSEF ;;
  371. IFF EITHER_ALT,NOT ;; CTRL - case
  372. XLATT CTRL_CASE ;;
  373. ENDIFF ;;
  374. ENDIFF ;;
  375. IFF EITHER_CTL ;;
  376. ANDF ALT_SHIFT ;;
  377. ANDF R_ALT_SHIFT,NOT ;;
  378. XLATT ALT_CASE ;;
  379. ENDIFF ;;
  380. ENDIFF ;;
  381. ;;
  382. EXIT_STATE_LOGIC ;;
  383. ;;
  384. LOGIC_END: ;;
  385. ;;
  386. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  387. ;; BR Common Translate Section
  388. ;; This section contains translations for the lower 128 characters
  389. ;; only since these will never change from code page to code page.
  390. ;; In addition the dead key "Set Flag" tables are here since the
  391. ;; dead keys are on the same keytops for all code pages.
  392. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  393. ;;
  394. PUBLIC BR_COMMON_XLAT_275 ;;
  395. BR_COMMON_XLAT_275: ;;
  396. ;;
  397. DW COMMON_XLAT_END-$ ;; length of section
  398. DW -1 ;; code page
  399. ;;
  400. ;;
  401. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  402. ;; CODE PAGE: Common
  403. ;; STATE: Lower Shift Dead Key
  404. ;; KEYBOARD TYPES: Any
  405. ;; TABLE TYPE: Flag Table
  406. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  407. ;;
  408. DW COM_DK_LO_K1_END-$ ;; length of state section
  409. DB DEAD_LOWER ;; State ID
  410. DW ANY_KB ;; Keyboard Type
  411. DB -1,-1 ;; Buffer entry for error character
  412. ;; Set Flag Table
  413. DW 2 ;; number of entries
  414. DB 1ah ;; scan code
  415. FLAG ACUTE ;; flag bit to set
  416. DB 28H ;;
  417. FLAG TILDE ;;
  418. COM_DK_LO_K1_END: ;;
  419. ;;
  420. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  421. ;; CODE PAGE: Common
  422. ;; STATE: Upper Shift Dead Key
  423. ;; KEYBOARD TYPES: Any,
  424. ;; TABLE TYPE: Flag Table
  425. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  426. ;;
  427. DW COM_DK_UP_K1_END-$ ;; length of state section
  428. DB DEAD_UPPER ;; State ID
  429. DW ANY_KB ;; Keyboard Type
  430. DB -1,-1 ;; Buffer entry for error character
  431. ;; Set Flag Table
  432. DW 3 ;; number of entries
  433. DB 28h ;; scan code
  434. FLAG CIRCUMFLEX ;; flag bit to set
  435. DB 7 ;;
  436. FLAG DIARESIS ;;
  437. DB 1ah ;;
  438. FLAG GRAVE ;;
  439. ;;
  440. COM_DK_UP_K1_END: ;;
  441. ;;
  442. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  443. ;; CODE PAGE: Common
  444. ;; STATE: Grave Lower
  445. ;; KEYBOARD TYPES: Any,
  446. ;; TABLE TYPE: Translate
  447. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  448. ;;
  449. DW COM_GR_LO_END-$ ;; length of state section
  450. DB GRAVE_LOWER ;; State ID
  451. DW ANY_KB ;; Keyboard Type
  452. DB 96,0 ;; error character = standalone accent
  453. ;;
  454. DW COM_GR_LO_T1_END-$ ;; Size of xlat table
  455. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  456. DB 5 ;; number of scans
  457. DB 18,'�' ;; scan code,ASCII - e
  458. DB 22,'�' ;; scan code,ASCII - u
  459. DB 23,'�' ;; scan code,ASCII - i
  460. DB 24,'�' ;; scan code,ASCII - o
  461. DB 30,'�' ;; scan code,ASCII - a
  462. ;;
  463. COM_GR_LO_T1_END: ;;
  464. ;;
  465. DW 0 ;; Size of xlat table - null table
  466. ;;
  467. COM_GR_LO_END: ;; length of state section
  468. ;;
  469. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  470. ;; CODE PAGE: Common
  471. ;; STATE: Grave Space Bar
  472. ;; KEYBOARD TYPES: Any,
  473. ;; TABLE TYPE: Translate
  474. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  475. ;;
  476. DW COM_GR_SP_END-$ ;; length of state section
  477. DB GRAVE_SPACE ;; State ID
  478. DW ANY_KB ;; Keyboard Type
  479. DB 96,0 ;; error character = standalone accent
  480. ;;
  481. DW COM_GR_SP_T1_END-$ ;; Size of xlat table
  482. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  483. DB 1 ;; number of scans
  484. DB 57,96 ;; STANDALONE GRAVE
  485. ;;
  486. COM_GR_SP_T1_END: ;;
  487. ;;
  488. DW 0 ;; Size of xlat table - null table
  489. ;;
  490. COM_GR_SP_END: ;; length of state section
  491. ;;
  492. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  493. ;; CODE PAGE: Common
  494. ;; STATE: Grave Twice
  495. ;; KEYBOARD TYPES: Any,
  496. ;; TABLE TYPE: Translate
  497. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  498. ;;
  499. DW COM_GR_GR_END-$ ;; length of state section
  500. DB GRAVE_GRAVE ;; State ID
  501. DW ANY_KB ;; Keyboard Type
  502. DB 96,0 ;; error character = standalone accent
  503. ;;
  504. DW COM_GR_GR_T1_END-$ ;; Size of xlat table
  505. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  506. DB 1 ;; number of scans
  507. DB 54h,96 ;; STANDALONE GRAVE <verav>
  508. ;;
  509. COM_GR_GR_T1_END: ;;
  510. ;;
  511. DW 0 ;; Size of xlat table - null table
  512. ;;
  513. COM_GR_GR_END: ;; length of state section
  514. ;;
  515. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  516. ;; CODE PAGE: Common
  517. ;; STATE: Circumflex Lower
  518. ;; KEYBOARD TYPES: Any,
  519. ;; TABLE TYPE: Translate
  520. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  521. ;;
  522. DW COM_CI_LO_END-$ ;; length of state section
  523. DB CIRCUMFLEX_LOWER ;; State ID
  524. DW ANY_KB ;; Keyboard Type
  525. DB 94,0 ;; error character = standalone accent
  526. ;;
  527. DW COM_CI_LO_T1_END-$ ;; Size of xlat table
  528. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  529. DB 5 ;; number of scans
  530. DB 18,'�' ;; scan code,ASCII - e
  531. DB 22,'�' ;; scan code,ASCII - u
  532. DB 23,'�' ;; scan code,ASCII - i
  533. DB 24,'�' ;; scan code,ASCII - o
  534. DB 30,'�' ;; scan code,ASCII - a
  535. ;;
  536. COM_CI_LO_T1_END: ;;
  537. ;;
  538. DW 0 ;;
  539. ;;
  540. COM_CI_LO_END: ;;
  541. ;;
  542. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  543. ;; CODE PAGE: Common
  544. ;; STATE: Circumflex Space Bar
  545. ;; KEYBOARD TYPES: Any,
  546. ;; TABLE TYPE: Translate
  547. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  548. ;;
  549. DW COM_CI_SP_END-$ ;; length of state section
  550. DB CIRCUMFLEX_SPACE ;; State ID
  551. DW ANY_KB ;; Keyboard Type
  552. DB 94,0 ;; error character = standalone accent
  553. ;;
  554. DW COM_CI_SP_T1_END-$ ;; Size of xlat table
  555. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  556. DB 1 ;; number of scans
  557. DB 57,94 ;; STANDALONE CIRCUMFLEX
  558. ;;
  559. COM_CI_SP_T1_END: ;;
  560. ;;
  561. DW 0 ;; Size of xlat table - null table
  562. ;;
  563. COM_CI_SP_END: ;; length of state section
  564. ;;
  565. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  566. ;; CODE PAGE: Common
  567. ;; STATE: Circumflex Twice
  568. ;; KEYBOARD TYPES: Any
  569. ;; TABLE TYPE: Translate
  570. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  571. ;;
  572. DW COM_CI_CI_END-$ ;; length of state section
  573. DB CIRCUMFLEX_CIRCUMFLEX ;; State ID
  574. DW ANY_KB ;; Keyboard Type
  575. DB 94,0 ;; error character = standalone accent
  576. ;;
  577. DW COM_CI_CI_T1_END-$ ;; Size of xlat table
  578. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  579. DB 1 ;; number of scans
  580. DB 7,94 ;; STANDALONE CIRCUMFLEX
  581. ;;
  582. COM_CI_CI_T1_END: ;;
  583. ;;
  584. DW 0 ;; Size of xlat table - null table
  585. ;;
  586. COM_CI_CI_END: ;; length of state section
  587. ;;
  588. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  589. ;; CODE PAGE: Common
  590. ;; STATE: Tilde Lower
  591. ;; KEYBOARD TYPES: Any
  592. ;; TABLE TYPE: Translate
  593. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  594. ;;
  595. DW COM_TI_LO_K1_END-$ ;; length of state section
  596. DB TILDE_LOWER ;; State ID
  597. DW ANY_KB ;; Keyboard Type
  598. DB 07EH,0 ;; error character = standalone accent
  599. ;;
  600. DW COM_TI_LO_K1_T1_END-$ ;; Size of xlat table
  601. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  602. DB 1 ;; number of scans
  603. DB 49,0A4H ;; scan code,ASCII - �
  604. ;;
  605. COM_TI_LO_K1_T1_END: ;;
  606. ;;
  607. DW 0 ;;
  608. ;;
  609. COM_TI_LO_K1_END: ;;
  610. ;;
  611. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  612. ;; CODE PAGE: Common
  613. ;; STATE: Tilde Upper Case
  614. ;; KEYBOARD TYPES: Any
  615. ;; TABLE TYPE: Translate
  616. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  617. ;;
  618. DW COM_TI_UP_K1_END-$ ;; length of state section
  619. DB TILDE_UPPER ;; State ID
  620. DW ANY_KB ;; Keyboard Type
  621. DB 07EH,0 ;; error character = standalone accent
  622. ;;
  623. DW COM_TI_UP_K1_T1_END-$ ;; Size of xlat table
  624. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  625. DB 1 ;; number of scans
  626. DB 49,0A5H ;; scan code,ASCII - �
  627. ;;
  628. COM_TI_UP_K1_T1_END: ;;
  629. ;;
  630. DW 0 ;; Size of xlat table - null table
  631. ;;
  632. COM_TI_UP_K1_END: ;; length of state section
  633. ;;
  634. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  635. ;; CODE PAGE: Common
  636. ;; STATE: Tilde Space Bar
  637. ;; KEYBOARD TYPES: Any,
  638. ;; TABLE TYPE: Translate
  639. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  640. ;;
  641. DW COM_TI_SP_END-$ ;; length of state section
  642. DB TILDE_SPACE ;; State ID
  643. DW ANY_KB ;; Keyboard Type
  644. DB 07EH,0 ;; error character = standalone accent
  645. ;;
  646. DW COM_TI_SP_T1_END-$ ;; Size of xlat table
  647. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  648. DB 1 ;; number of scans
  649. DB 57,07EH ;; STANDALONE TILDE
  650. ;;
  651. COM_TI_SP_T1_END: ;;
  652. ;;
  653. DW 0 ;; Size of xlat table - null table
  654. ;;
  655. COM_TI_SP_END: ;; length of state section
  656. ;;
  657. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  658. ;; CODE PAGE: Common
  659. ;; STATE: Tilde Twice
  660. ;; KEYBOARD TYPES: Any,
  661. ;; TABLE TYPE: Translate
  662. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  663. ;;
  664. DW COM_TI_TI_END-$ ;; length of state section
  665. DB TILDE_TILDE ;; State ID
  666. DW ANY_KB ;; Keyboard Type
  667. DB 07EH,0 ;; error character = standalone accent
  668. ;;
  669. DW COM_TI_TI_T1_END-$ ;; Size of xlat table
  670. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  671. DB 1 ;; number of scans
  672. DB 54h,07EH ;; STANDALONE TILDE <verav>
  673. ;;
  674. COM_TI_TI_T1_END: ;;
  675. ;;
  676. DW 0 ;; Size of xlat table - null table
  677. ;;
  678. COM_TI_TI_END: ;; length of state section
  679. ;;
  680. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  681. ;; CODE PAGE: Common
  682. ;; STATE: Acute Lower Case
  683. ;; KEYBOARD TYPES: Any,
  684. ;; TABLE TYPE: Translate
  685. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  686. ;;
  687. DW COM_AC_LO_END-$ ;; length of state section
  688. DB ACUTE_LOWER ;; State ID
  689. DW ANY_KB ;; Keyboard Type
  690. DB 39,0 ;; error character = standalone accent
  691. ;;
  692. DW COM_AC_LO_T1_END-$ ;; Size of xlat table
  693. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  694. DB 6 ;; number of scans
  695. DB 18,'�' ;; scan code,ASCII - e
  696. DB 22,'�' ;; scan code,ASCII - u
  697. DB 23,'�' ;; scan code,ASCII - i
  698. DB 24,'�' ;; scan code,ASCII - o
  699. DB 30,'�' ;; scan code,ASCII - a
  700. DB 46,'�' ;; scan code,ASCII - c-cedilla
  701. ;;
  702. COM_AC_LO_T1_END: ;;
  703. ;;
  704. DW 0 ;; Size of xlat table - null table
  705. ;;
  706. COM_AC_LO_END: ;;
  707. ;;
  708. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  709. ;; CODE PAGE: Common
  710. ;; STATE: Acute Upper Case
  711. ;; KEYBOARD TYPES: Any
  712. ;; TABLE TYPE: Translate
  713. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  714. ;;
  715. DW COM_AC_UP_END-$ ;; length of state section
  716. DB ACUTE_UPPER ;; State ID
  717. DW ANY_KB ;; Keyboard Type
  718. DB 39,0 ;; error character = standalone accent
  719. ;;
  720. DW COM_AC_UP_T1_END-$ ;; Size of xlat table
  721. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  722. DB 2 ;; number of scans
  723. DB 18,090H ;; scan code,ASCII - E
  724. DB 46,080H ;; C cedilla
  725. ;;
  726. COM_AC_UP_T1_END: ;;
  727. ;;
  728. DW 0 ;; Size of xlat table - null table
  729. ;;
  730. COM_AC_UP_END: ;;
  731. ;;
  732. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  733. ;; CODE PAGE: Common
  734. ;; STATE: Acute Space Bar
  735. ;; KEYBOARD TYPES: Any
  736. ;; TABLE TYPE: Translate
  737. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  738. ;;
  739. DW COM_AC_SP_END-$ ;; length of state section
  740. DB ACUTE_SPACE ;; State ID
  741. DW ANY_KB ;; Keyboard Type
  742. DB 39,0 ;; error character = standalone accent
  743. ;;
  744. DW COM_AC_SP_T1_END-$ ;; Size of xlat table
  745. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  746. DB 1 ;; number of scans
  747. DB 57,39 ;; scan code,ASCII - SPACE
  748. ;;
  749. COM_AC_SP_T1_END: ;;
  750. ;;
  751. DW 0 ;; Size of xlat table - null table
  752. ;;
  753. COM_AC_SP_END: ;;
  754. ;;
  755. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  756. ;; CODE PAGE: Common
  757. ;; STATE: Acute Twice
  758. ;; KEYBOARD TYPES: Any
  759. ;; TABLE TYPE: Translate
  760. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  761. ;;
  762. DW COM_AC_AC_END-$ ;; length of state section
  763. DB ACUTE_ACUTE ;; State ID
  764. DW ANY_KB ;; Keyboard Type
  765. DB 39,0 ;; error character = standalone accent
  766. ;;
  767. DW COM_AC_AC_T1_END-$ ;; Size of xlat table
  768. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  769. DB 1 ;; number of scans
  770. DB 1ah,39 ;; scan code,ASCII - ACUTE
  771. ;;
  772. COM_AC_AC_T1_END: ;;
  773. ;;
  774. DW 0 ;; Size of xlat table - null table
  775. ;;
  776. COM_AC_AC_END: ;;
  777. ;;
  778. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  779. ;; CODE PAGE: Common
  780. ;; STATE: Diaresis Lower
  781. ;; KEYBOARD TYPES: Any
  782. ;; TABLE TYPE: Translate
  783. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  784. ;;
  785. DW COM_DI_LO_END-$ ;; length of state section
  786. DB DIARESIS_LOWER ;; State ID
  787. DW ANY_KB ;; Keyboard Type
  788. DB '�',0 ;; error character = standalone accent
  789. ;;
  790. DW COM_DI_LO_T1_END-$ ;; Size of xlat table
  791. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  792. DB 6 ;; number of scans
  793. DB 18,089H ;; e diaeresis
  794. DB 21,098H ;; y diaeresis
  795. DB 22,081H ;; u diaeresis
  796. DB 23,08BH ;; i diaeresis
  797. DB 24,094H ;; o diaeresis
  798. DB 30,084H ;; a diaeresis
  799. ;;
  800. COM_DI_LO_T1_END: ;;
  801. ;;
  802. DW 0 ;; Size of xlat table - null table
  803. ;;
  804. COM_DI_LO_END: ;; length of state section
  805. ;;
  806. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  807. ;; CODE PAGE: Common
  808. ;; STATE: Diaresis Upper
  809. ;; KEYBOARD TYPES: Any
  810. ;; TABLE TYPE: Translate
  811. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  812. ;;
  813. DW COM_DI_UP_END-$ ;; length of state section
  814. DB DIARESIS_UPPER ;; State ID
  815. DW ANY_KB ;; Keyboard Type
  816. DB -1,-1 ;; error character = standalone accent
  817. ;;
  818. DW COM_DI_UP_T1_END-$ ;; Size of xlat table
  819. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  820. DB 3 ;; number of scans
  821. DB 22,09AH ;; U diaeresis
  822. DB 24,099H ;; O diaeresis
  823. DB 30,08EH ;; A diaeresis
  824. ;;
  825. COM_DI_UP_T1_END: ;;
  826. ;;
  827. DW 0 ;; Size of xlat table - null table
  828. ;;
  829. COM_DI_UP_END: ;; length of state section
  830. ;;
  831. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  832. ;; CODE PAGE: Common
  833. ;; STATE: Diaresis Space Bar
  834. ;; KEYBOARD TYPES: Any
  835. ;; TABLE TYPE: Translate
  836. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  837. ;;
  838. ; DW COM_DI_SP_END-$ ;; length of state section
  839. ; DB DIARESIS_SPACE ;; State ID
  840. ; DW ANY_KB ;; Keyboard Type
  841. ; DB '�',0 ;; error character = standalone accent
  842. ;;
  843. ; DW COM_DI_SP_T1_END-$ ;; Size of xlat table
  844. ; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  845. ; DB 1 ;; number of scans
  846. ; DB 7,'"' ;; scan code,ASCII - SPACE
  847. ;;
  848. ;COM_DI_SP_T1_END: ;;
  849. ;;
  850. ; DW 0 ;; Size of xlat table - null table
  851. ;;
  852. ;COM_DI_SP_END: ;;
  853. ;;
  854. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  855. ;; CODE PAGE: Common
  856. ;; STATE: Diaresis Twice
  857. ;; KEYBOARD TYPES: Any
  858. ;; TABLE TYPE: Translate
  859. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  860. ;;
  861. DW COM_DI_DI_END-$ ;; length of state section
  862. DB DIARESIS_DIARESIS ;; State ID
  863. DW ANY_KB ;; Keyboard Type
  864. DB '�',0 ;; error character = standalone accent
  865. ;;
  866. DW COM_DI_DI_T1_END-$ ;; Size of xlat table
  867. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  868. DB 1 ;; number of scans
  869. DB 1ah,'�' ;; scan code,ASCII - SPACE <verav>
  870. ;;
  871. COM_DI_DI_T1_END: ;;
  872. ;;
  873. DW 0 ;; Size of xlat table - null table
  874. ;;
  875. COM_DI_DI_END: ;;
  876. ;;
  877. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  878. ;; CODE PAGE: Common
  879. ;; STATE: Alpha lower case
  880. ;; KEYBOARD TYPES: Any
  881. ;; TABLE TYPE: Translate
  882. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  883. ;;
  884. DW COM_ALC_END-$ ;; length of state section
  885. DB ALPHA_LOWER ;; State ID
  886. DW ANY_KB ;; Keyboard Type
  887. DB -1,-1 ;; error character - buffer entry
  888. ;;
  889. DW COM_ALC_T1_END-$ ;; Size of xlat table
  890. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  891. DB 1 ;; number of scans
  892. db 27h,'�' ;; cedilha
  893. COM_ALC_T1_END: ;;
  894. ;;
  895. DW 0 ;; Size of xlat table - null table
  896. ;;
  897. COM_ALC_END: ;;
  898. ;;
  899. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  900. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  901. ;; CODE PAGE: Common
  902. ;; STATE: Alpha Upper case
  903. ;; KEYBOARD TYPES: Any
  904. ;; TABLE TYPE: Translate
  905. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  906. ;;
  907. DW COM_AUC_END-$ ;; length of state section
  908. DB ALPHA_UPPER ;; State ID
  909. DW ANY_KB ;; Keyboard Type
  910. DB -1,-1 ;; error character - buffer entry
  911. ;;
  912. DW COM_AUC_T1_END-$ ;; Size of xlat table
  913. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  914. DB 1 ;; number of scans
  915. db 27h,80h ;; cedilha
  916. COM_AUC_T1_END: ;;
  917. ;;
  918. DW 0 ;; Size of xlat table - null table
  919. ;;
  920. COM_AUC_END: ;;
  921. ;;
  922. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  923. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  924. ;; CODE PAGE: Common
  925. ;; STATE: Non-Alpha lower case
  926. ;; KEYBOARD TYPES: Any
  927. ;; TABLE TYPE: Translate
  928. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  929. ;;
  930. DW COM_NALC_END-$ ;; length of state section
  931. DB NON_ALPHA_LOWER ;; State ID
  932. DW ANY_KB ;; Keyboard Type
  933. DB -1,-1 ;; error character - buffer entry
  934. ;;
  935. DW COM_NALC_T1_END-$ ;; Size of xlat table
  936. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  937. DB 7 ;; number of scans
  938. DB 29h,27h ;; apostrofe
  939. db 35h,';' ;; ponto e virgula
  940. db 73h,'/' ;; barra
  941. db 7eh,'.' ;; (decimal point)
  942. db 1bh,5bh ;; abre colchete
  943. db 2bh,5dh ;; fecha colchete
  944. db 53h,',' ;; decimal comma
  945. COM_NALC_T1_END: ;;
  946. ;;
  947. DW 0 ;; Size of xlat table - null table
  948. ;;
  949. COM_NALC_END: ;;
  950. ;;
  951. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  952. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  953. ;; CODE PAGE: Common
  954. ;; STATE: NON-Alpha UPPER case
  955. ;; KEYBOARD TYPES: Any
  956. ;; TABLE TYPE: Translate
  957. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  958. ;;
  959. DW COM_NAUC_END-$ ;; length of state section
  960. DB NON_ALPHA_UPPER ;; State ID
  961. DW ANY_KB ;; Keyboard Type
  962. DB -1,-1 ;; error character - buffer entry
  963. ;;
  964. DW COM_NAUC_T1_END-$ ;; Size of xlat table
  965. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  966. DB 7 ;; number of scans
  967. DB 29h,22h ;; ASPAS
  968. db 35h,3AH ;; DOIS PONTOS
  969. db 73h,3FH ;; INTERROGACAO
  970. db 7eh,'.' ;; (decimal point)
  971. db 1bh,7bh ;; abre chaves
  972. db 2bh,7dh ;; fecha chaves
  973. db 53h,',' ;; virgula no teclado numerico
  974. COM_NAUC_T1_END: ;;
  975. ;;
  976. DW 0 ;; Size of xlat table - null table
  977. ;;
  978. COM_NAUC_END: ;;
  979. ;;
  980. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  981. ;; CODE PAGE: Common
  982. ;; STATE: Third Shift
  983. ;; KEYBOARD TYPES: Any
  984. ;; TABLE TYPE: Translate
  985. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  986. ;;
  987. DW COM_THIRD_K1_END-$ ;; length of state section
  988. DB THIRD_SHIFT ;; State ID
  989. DW ANY_KB ;; Keyboard Type
  990. DB -1,-1 ;; Buffer entry for error character
  991. ;;
  992. DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table
  993. DB STANDARD_TABLE ;; xlat options:
  994. DB 3 ;; number of entries
  995. DB 16,'/' ; AltGr + Q = slash
  996. DB 17,'?' ; AltGr + W = question mark
  997. DB 18,0f8h ; AltGr + E = degree sign
  998. COM_THIRD_K1_T1_END: ;;
  999. ;;
  1000. DW 0 ;; Last xlat table
  1001. COM_THIRD_K1_END: ;;
  1002. ;;
  1003. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1004. DW 0 ;; Last State
  1005. COMMON_XLAT_END: ;;
  1006. ;;
  1007. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1008. ;;***************************************
  1009. ;; BR Specific Translate Section for 437
  1010. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1011. ;;
  1012. PUBLIC BR_437_XLAT ;;
  1013. BR_437_XLAT: ;;
  1014. ;;
  1015. DW CP437_XLAT_END-$ ;; length of section
  1016. DW 437 ;;
  1017. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1018. DW 0 ;; LAST STATE
  1019. ;;
  1020. CP437_XLAT_END: ;;
  1021. ;;
  1022. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1023. ;; BR Specific Translate Section for 850
  1024. ;;***************************************
  1025. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1026. ;;
  1027. PUBLIC BR_850_XLAT ;;
  1028. BR_850_XLAT: ;;
  1029. ;;
  1030. DW CP850_XLAT_END-$ ;; length of section
  1031. DW 850 ;;
  1032. ;;
  1033. ;;
  1034. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1035. ;; CODE PAGE: 850
  1036. ;; STATE: Alt Case
  1037. ;; KEYBOARD TYPES: Any
  1038. ;; TABLE TYPE: Translate
  1039. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1040. ;;
  1041. DW CP850_ALT_K1_END-$ ;; length of state section
  1042. DB ALT_CASE ;; State ID
  1043. DW ANY_KB ;; Keyboard Type
  1044. DB -1,-1 ;; error character = standalone accent
  1045. ;;
  1046. DW CP850_ALT_K1_T1_END-$ ;; Size of xlat table
  1047. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1048. ; Atencao! esta tecla esta apenas programada para permitir
  1049. ; a utilizacao do "?"
  1050. DB 1 ;; number of scans
  1051. DB 2,'?' ;; scan code for '!', question mark
  1052. CP850_ALT_K1_T1_END: ;;
  1053. ;;
  1054. DW 0 ;; Size of xlat table - null table
  1055. ;;
  1056. CP850_ALT_K1_END: ;; length of state section
  1057. ;;
  1058. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1059. ;; CODE PAGE: 850
  1060. ;; STATE: Third Shift
  1061. ;; KEYBOARD TYPES: Any
  1062. ;; TABLE TYPE: Translate
  1063. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1064. ;;
  1065. DW CP850_THIRD_K1_END-$ ;; length of state section
  1066. DB THIRD_SHIFT ;; State ID
  1067. DW ANY_KB ;; Keyboard Type
  1068. DB -1,-1 ;; Buffer entry for error character
  1069. ;;
  1070. DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table
  1071. DB STANDARD_TABLE ;; xlat options:
  1072. DB 10 ;; number of entries
  1073. ; DB 1ah,0F9H ;; scan code, diaresis <verav>
  1074. db 2,0fbh ; exp 1 �
  1075. db 3,0fdh ; exp 2 �
  1076. db 4,0fch ; exp 3 �
  1077. db 5,09ch ; libra
  1078. db 6,0bdh ; cent
  1079. db 7,0aah ; not
  1080. db 1bh,0a6h ; primeira
  1081. db 2bh,0a7h ; primeiro
  1082. db 73h,0f8h ; grau
  1083. db 0dh,0f5h
  1084. CP850_THIRD_K1_T1_END: ;;
  1085. ;;
  1086. DW 0 ;; Last xlat table
  1087. CP850_THIRD_K1_END: ;;
  1088. ;;
  1089. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1090. ;; CODE PAGE: 850
  1091. ;; STATE: Acute Lower Case
  1092. ;; KEYBOARD TYPES: Any
  1093. ;; TABLE TYPE: Translate
  1094. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1095. ;;
  1096. DW CP850_AC_LO_END-$ ;; length of state section
  1097. DB ACUTE_LOWER ;; State ID
  1098. DW ANY_KB ;; Keyboard Type
  1099. DB 39,0 ;; error character = standalone accent
  1100. ;;
  1101. DW CP850_AC_LO_T1_END-$ ;; Size of xlat table
  1102. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1103. DB 1 ;; number of scans
  1104. DB 21,0ECH ;; y acute
  1105. ;;
  1106. CP850_AC_LO_T1_END: ;;
  1107. ;;
  1108. DW 0 ;; Size of xlat table - null table
  1109. ;;
  1110. CP850_AC_LO_END: ;;
  1111. ;;
  1112. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1113. ;; CODE PAGE: 850
  1114. ;; STATE: Acute Upper Case
  1115. ;; KEYBOARD TYPES: Any
  1116. ;; TABLE TYPE: Translate
  1117. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1118. ;;
  1119. DW CP850_AC_UP_END-$ ;; length of state section
  1120. DB ACUTE_UPPER ;; State ID
  1121. DW ANY_KB ;; Keyboard Type
  1122. DB 39,0 ;; error character = standalone accent
  1123. ;;
  1124. DW CP850_AC_UP_T1_END-$ ;; Size of xlat table
  1125. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1126. DB 5 ;; number of scans
  1127. DB 21,0EDH ;; Y acute
  1128. DB 22,0E9H ;; U acute
  1129. DB 23,0D6H ;; I acute
  1130. DB 24,0E0H ;; O acute
  1131. DB 30,0B5H ;; A acute
  1132. ;;
  1133. CP850_AC_UP_T1_END: ;;
  1134. ;;
  1135. DW 0 ;; Size of xlat table - null table
  1136. ;;
  1137. CP850_AC_UP_END: ;;
  1138. ;;
  1139. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1140. ;; CODE PAGE: 850
  1141. ;; STATE: Diaresis Lower
  1142. ;; KEYBOARD TYPES: Any
  1143. ;; TABLE TYPE: Translate
  1144. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1145. ;;
  1146. DW CP850_DI_LO_END-$ ;; length of state section
  1147. DB DIARESIS_LOWER ;; State ID
  1148. DW ANY_KB ;; Keyboard Type
  1149. DB '"',0 ;; error character = standalone accent
  1150. ;;
  1151. DW CP850_DI_LO_T1_END-$ ;; Size of xlat table
  1152. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1153. DB 0 ;; number of scans
  1154. ;;
  1155. CP850_DI_LO_T1_END: ;;
  1156. ;;
  1157. DW 0 ;; Size of xlat table - null table
  1158. ;;
  1159. CP850_DI_LO_END: ;; length of state section
  1160. ;;
  1161. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1162. ;; CODE PAGE: 850
  1163. ;; STATE: Diaresis Upper
  1164. ;; KEYBOARD TYPES: Any
  1165. ;; TABLE TYPE: Translate
  1166. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1167. ;;
  1168. DW CP850_DI_UP_END-$ ;; length of state section
  1169. DB DIARESIS_UPPER ;; State ID
  1170. DW ANY_KB ;; Keyboard Type
  1171. DB '"',0 ;; error character = standalone accent
  1172. ;;
  1173. DW CP850_DI_UP_T1_END-$ ;; Size of xlat table
  1174. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1175. DB 2 ;; number of scans
  1176. DB 18,0D3H ;; E diaeresis
  1177. DB 23,0D8H ;; I diaeresis
  1178. ;;
  1179. CP850_DI_UP_T1_END: ;;
  1180. ;;
  1181. DW 0 ;; Size of xlat table - null table
  1182. ;;
  1183. CP850_DI_UP_END: ;; length of state section
  1184. ;;
  1185. ;;; Esta' Certo?
  1186. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1187. ;; CODE PAGE: 850
  1188. ;; STATE: Diaresis Space Bar
  1189. ;; KEYBOARD TYPES: Any
  1190. ;; TABLE TYPE: Translate
  1191. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1192. ;;
  1193. DW cp850_DI_SP_END-$ ;; length of state section
  1194. DB DIARESIS_SPACE ;; State ID
  1195. DW ANY_KB ;; Keyboard Type
  1196. DB '�',0 ;; error character = standalone accent
  1197. ;;
  1198. DW cp850_DI_SP_T1_END-$ ;; Size of xlat table
  1199. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1200. DB 1 ;; number of scans
  1201. DB 7,'�' ;; scan code,ASCII - SPACE
  1202. ;;
  1203. Cp850_DI_SP_T1_END: ;;
  1204. ;;
  1205. DW 0 ;; Size of xlat table - null table
  1206. ;;
  1207. cp850_DI_SP_END: ;;
  1208. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1209. ;; CODE PAGE: 850
  1210. ;; STATE: Grave Upper
  1211. ;; KEYBOARD TYPES: Any
  1212. ;; TABLE TYPE: Translate
  1213. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1214. ;;
  1215. DW CP850_GR_UP_END-$ ;; length of state section
  1216. DB GRAVE_UPPER ;; State ID
  1217. DW ANY_KB ;; Keyboard Type
  1218. DB 96,0 ;; error character = standalone accent
  1219. ;;
  1220. DW CP850_GR_UP_T1_END-$ ;; Size of xlat table
  1221. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1222. DB 5 ;; number of scans
  1223. DB 30,0B7H ;; A grave
  1224. DB 18,0D4H ;; E grave
  1225. DB 23,0DEH ;; I grave
  1226. DB 24,0E3H ;; O grave
  1227. DB 22,0EBH ;; U grave
  1228. CP850_GR_UP_T1_END: ;;
  1229. ;;
  1230. DW 0 ;; Size of xlat table - null table
  1231. ;;
  1232. CP850_GR_UP_END: ;; length of state section
  1233. ;;
  1234. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1235. ;; CODE PAGE: 850
  1236. ;; STATE: Tilde Lower
  1237. ;; KEYBOARD TYPES: Any
  1238. ;; TABLE TYPE: Translate
  1239. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1240. ;;
  1241. DW CP850_TI_LO_END-$ ;; length of state section
  1242. DB TILDE_LOWER ;; State ID
  1243. DW ANY_KB ;; Keyboard Type
  1244. DB 07EH,0 ;; error character = standalone accent
  1245. ;;
  1246. DW CP850_TI_LO_T1_END-$ ;; Size of xlat table
  1247. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1248. DB 2 ;; number of scans
  1249. DB 30,0C6H ;; scan code,ASCII - a tilde
  1250. DB 24,0E4H ;; scan code,ASCII - o tilde
  1251. ;;
  1252. CP850_TI_LO_T1_END: ;;
  1253. ;;
  1254. DW 0 ;;
  1255. ;;
  1256. CP850_TI_LO_END: ;;
  1257. ;;
  1258. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1259. ;; CODE PAGE: 850
  1260. ;; STATE: Tilde Upper Case
  1261. ;; KEYBOARD TYPES: Any
  1262. ;; TABLE TYPE: Translate
  1263. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1264. ;;
  1265. DW CP850_TI_UP_END-$ ;; length of state section
  1266. DB TILDE_UPPER ;; State ID
  1267. DW ANY_KB ;; Keyboard Type
  1268. DB 07eH,0 ;; error character = standalone accent
  1269. ;;
  1270. DW CP850_TI_UP_T1_END-$ ;; Size of xlat table
  1271. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1272. DB 2 ;; number of scans
  1273. DB 30,0C7H ;; scan code,ASCII - A tilde
  1274. DB 24,0E5H ;; scan code,ASCII - O tilde
  1275. ;;
  1276. CP850_TI_UP_T1_END: ;;
  1277. ;;
  1278. DW 0 ;; Size of xlat table - null table
  1279. ;;
  1280. CP850_TI_UP_END: ;; length of state section
  1281. ;;
  1282. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1283. ;; CODE PAGE: 850
  1284. ;; STATE: Circumflex Upper
  1285. ;; KEYBOARD TYPES: Any
  1286. ;; TABLE TYPE: Translate
  1287. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1288. ;;
  1289. DW CP850_CI_UP_END-$ ;; length of state section
  1290. DB CIRCUMFLEX_UPPER ;; State ID
  1291. DW ANY_KB ;; Keyboard Type
  1292. DB 94,0 ;; error character = standalone accent
  1293. ;;
  1294. DW CP850_CI_UP_T1_END-$ ;; Size of xlat table
  1295. DB STANDARD_TABLE+ZERO_SCAN ;; xlat options:
  1296. DB 5 ;; number of scans
  1297. DB 30,0B6H ;; A circumflex
  1298. DB 18,0D2H ;; E circumflex
  1299. DB 23,0D7H ;; I circumflex
  1300. DB 24,0E2H ;; O circumflex
  1301. DB 22,0EAH ;; U circumflex
  1302. ;;
  1303. CP850_CI_UP_T1_END: ;;
  1304. ;;
  1305. DW 0 ;; Size of xlat table - null table
  1306. ;;
  1307. CP850_CI_UP_END: ;; length of state section
  1308. ;;
  1309. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1310. ;;
  1311. DW 0 ;; LAST STATE
  1312. ;;
  1313. CP850_XLAT_END: ;;
  1314. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1315. ;;
  1316. CODE ENDS ;;
  1317. END ;;