From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/DEV/KEYBOARD/KDF.ASM | 393 ++++++ v4.0/src/DEV/KEYBOARD/KDFBE.ASM | 1833 ++++++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFCF.ASM | 1769 +++++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFDK.ASM | 1631 +++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFEOF.ASM | 32 + v4.0/src/DEV/KEYBOARD/KDFFR.ASM | 1529 ++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFFR120.ASM | 2307 ++++++++++++++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFFR189.ASM | 1529 ++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFGE.ASM | 1333 +++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFIT.ASM | 794 +++++++++++++ v4.0/src/DEV/KEYBOARD/KDFIT141.ASM | 794 +++++++++++++ v4.0/src/DEV/KEYBOARD/KDFIT142.ASM | 864 ++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFLA.ASM | 1322 +++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFNL.ASM | 1515 +++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFNO.ASM | 1607 +++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFNOW.ASM | 507 ++++++++ v4.0/src/DEV/KEYBOARD/KDFPO.ASM | 1607 +++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFSF.ASM | 1627 +++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFSG.ASM | 1629 +++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFSP.ASM | 1373 +++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFSU.ASM | 1680 ++++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFSV.ASM | 1687 ++++++++++++++++++++++++++ v4.0/src/DEV/KEYBOARD/KDFUK.ASM | 655 ++++++++++ v4.0/src/DEV/KEYBOARD/KDFUK166.ASM | 655 ++++++++++ v4.0/src/DEV/KEYBOARD/KDFUK168.ASM | 848 +++++++++++++ v4.0/src/DEV/KEYBOARD/KEYBMAC.INC | 323 +++++ v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK | 6 + v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC | 304 +++++ v4.0/src/DEV/KEYBOARD/MAKEFILE | 59 + 29 files changed, 32212 insertions(+) create mode 100644 v4.0/src/DEV/KEYBOARD/KDF.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFBE.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFCF.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFDK.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFEOF.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFFR.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFFR120.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFFR189.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFGE.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFIT.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFIT141.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFIT142.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFLA.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFNL.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFNO.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFNOW.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFPO.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFSF.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFSG.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFSP.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFSU.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFSV.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFUK.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFUK166.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KDFUK168.ASM create mode 100644 v4.0/src/DEV/KEYBOARD/KEYBMAC.INC create mode 100644 v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK create mode 100644 v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC create mode 100644 v4.0/src/DEV/KEYBOARD/MAKEFILE (limited to 'v4.0/src/DEV/KEYBOARD') diff --git a/v4.0/src/DEV/KEYBOARD/KDF.ASM b/v4.0/src/DEV/KEYBOARD/KDF.ASM new file mode 100644 index 0000000..3073dc8 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDF.ASM @@ -0,0 +1,393 @@ + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This the file header and table pointers ONLY. +;; The actual tables are contained in seperate source files. +;; These are: +;; KDFSP.ASM - Spanish +;; KDFPO.ASM - Portuguese +;; KDFGR.ASM - German +;; KDFIT.ASM - Italian +;; KDFFR.ASM - French +;; KDFSG.ASM - Swiss German +;; KDFSF.ASM - Swiss French +;; KDFDK.ASM - Danish +;; KDFUK.ASM - English +;; KDFBE.ASM - Belgium +;; KDFNL.ASM - Netherlands +;; KDFNO.ASM - Norway +;; KDFLA.ASM - Latin American +;; KDFSV.ASM - SWEDEN +;; KDFSU.ASM - Finland +;; Dummy US - US +;; Linkage Instructions: +;; The following instructions are contained in KDFLINK.BAT: +;; +;; LINK KDF+KDFSP+KDFGE+KDFFR+KDFIT+KDFPO+KDFUK+KDFSG+KDFDK+KDFEOF; +;; EXE2BIN KDF.EXE KEYBOARD.SYS +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; File Header +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DB 0FFh,'KEYB ' ;; signature +DB 8 DUP(0) ;; reserved +DW 650 ;; maximum size of Common Xlat Sect +DW 350 ;; max size of Specific Xlat Sect +DW 400 ;; max size of State Logic +DD 0 ;; reserved +DW 17 ;; number of languages +DB 'SP' +DW OFFSET SP_LANG_ENT,0 +DB 'PO' +DW OFFSET PO_LANG_ENT,0 +DB 'FR' +DW OFFSET FR_LANG_ENT,0 +DB 'DK' +DW OFFSET DK_LANG_ENT,0 +DB 'SG' +DW OFFSET SG_LANG_ENT,0 +DB 'GR' +DW OFFSET GE_LANG_ENT,0 +DB 'IT' +DW OFFSET IT_LANG_ENT,0 +DB 'UK' +DW OFFSET UK_LANG_ENT,0 +DB 'SF' +DW OFFSET SF_LANG_ENT,0 +DB 'BE' +DW OFFSET BE_LANG_ENT,0 +DB 'NL' +DW OFFSET NL_LANG_ENT,0 +DB 'NO' +DW OFFSET NO_LANG_ENT,0 +DB 'CF' +DW OFFSET CF_LANG_ENT,0 +DB 'SV' +DW OFFSET SV_LANG_ENT,0 +DB 'SU' +DW OFFSET SV_LANG_ENT,0 +DB 'LA' +DW OFFSET LA_LANG_ENT,0 +DB 'US' +DW OFFSET DUMMY_ENT,0 +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; Language Entries +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + EXTRN SP_LOGIC:NEAR ;; + EXTRN SP_437_XLAT:NEAR ;; + EXTRN SP_850_XLAT:NEAR ;; + ;; +SP_LANG_ENT: ;; language entry for SPANISH + DB 'SP' ;; + DW 0 ;; reserved + DW OFFSET SP_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET SP_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET SP_850_XLAT,0 ;; table pointer + ;; +;**************************************************************************** + EXTRN PO_LOGIC:NEAR ;; + EXTRN PO_860_XLAT:NEAR ;; + EXTRN PO_850_XLAT:NEAR ;; + ;; +PO_LANG_ENT: ;; language entry for POTUGAL + DB 'PO' ;; + DW 0 ;; reserved + DW OFFSET PO_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 860 ;; code page + DW OFFSET PO_860_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET PO_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN FR_LOGIC:NEAR ;; + EXTRN FR_437_XLAT:NEAR ;; + EXTRN FR_850_XLAT:NEAR ;; + ;; + FR_LANG_ENT: ;; language entry for POTUGAL + DB 'FR' ;; + DW 0 ;; reserved + DW OFFSET FR_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET FR_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET FR_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN DK_LOGIC:NEAR ;; + EXTRN DK_865_XLAT:NEAR ;; + EXTRN DK_850_XLAT:NEAR ;; + ;; + DK_LANG_ENT: ;; language entry for POTUGAL + DB 'DK' ;; + DW 0 ;; reserved + DW OFFSET DK_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 865 ;; code page + DW OFFSET DK_865_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET DK_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN SG_LOGIC:NEAR ;; + EXTRN SG_437_XLAT:NEAR ;; + EXTRN SG_850_XLAT:NEAR ;; + ;; +SG_LANG_ENT: ;; language entry for POTUGAL + DB 'SG' ;; + DW 0 ;; reserved + DW OFFSET SG_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET SG_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET SG_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN SF_LOGIC:NEAR ;; + EXTRN SF_437_XLAT:NEAR ;; + EXTRN SF_850_XLAT:NEAR ;; + ;; +SF_LANG_ENT: ;; language entry for SWISS FRENCH + DB 'SF' ;; + DW 0 ;; reserved + DW OFFSET SF_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET SF_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET SF_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN GE_LOGIC:NEAR ;; + EXTRN GE_437_XLAT:NEAR ;; + EXTRN GE_850_XLAT:NEAR ;; + ;; +GE_LANG_ENT: ;; language entry for POTUGAL + DB 'GR' ;; + DW 0 ;; reserved + DW OFFSET GE_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET GE_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET GE_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN IT_LOGIC:NEAR ;; + EXTRN IT_437_XLAT:NEAR ;; + EXTRN IT_850_XLAT:NEAR ;; + ;; + IT_LANG_ENT: ;; language entry for POTUGAL + DB 'IT' ;; + DW 0 ;; reserved + DW OFFSET IT_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET IT_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET IT_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN UK_LOGIC:FAR ;; + EXTRN UK_437_XLAT:FAR ;; + EXTRN UK_850_XLAT:FAR ;; + ;; + UK_LANG_ENT: ;; language entry for POTUGAL + DB 'UK' ;; + DW 0 ;; reserved + DW OFFSET UK_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET UK_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET UK_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN BE_LOGIC:NEAR ;; + EXTRN BE_437_XLAT:NEAR ;; + EXTRN BE_850_XLAT:NEAR ;; + ;; +BE_LANG_ENT: ;; language entry for POTUGAL + DB 'BE' ;; + DW 0 ;; reserved + DW OFFSET BE_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET BE_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET BE_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN NL_LOGIC:NEAR ;; + EXTRN NL_437_XLAT:NEAR ;; + EXTRN NL_850_XLAT:NEAR ;; + ;; + NL_LANG_ENT: ;; language entry for NETHERLANDS + DB 'NL' ;; + DW 0 ;; reserved + DW OFFSET NL_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET NL_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET NL_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN NO_LOGIC:NEAR ;; + EXTRN NO_865_XLAT:NEAR ;; + EXTRN NO_850_XLAT:NEAR ;; + ;; + NO_LANG_ENT: ;; language entry for NORWAY + DB 'NO' ;; + DW 0 ;; reserved + DW OFFSET NO_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 865 ;; code page + DW OFFSET NO_865_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET NO_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN SV_LOGIC:NEAR ;; + EXTRN SV_437_XLAT:NEAR ;; + EXTRN SV_850_XLAT:NEAR ;; + ;; + SV_LANG_ENT: ;; language entry for SWEDEN + DB 'SV' ;; + DW 0 ;; reserved + DW OFFSET SV_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 437 ;; code page + DW OFFSET SV_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET SV_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** +; EXTRN SU_LOGIC:NEAR ;; +; EXTRN SU_437_XLAT:NEAR ;; +; EXTRN SU_850_XLAT:NEAR ;; +; ;; +; SU_LANG_ENT: ;; language entry for FINLAND +; DB 'SU' ;; +; DW 0 ;; reserved +; DW OFFSET SU_LOGIC,0 ;; pointer to LANG kb table +; DW 2 ;; number of code pages +; DW 437 ;; code page +; DW OFFSET SU_437_XLAT,0 ;; table pointer +; DW 850 ;; code page +; DW OFFSET SU_850_XLAT,0 ;; table pointer +; ;; +;***************************************************************************** +;***************************************************************************** + EXTRN CF_LOGIC:NEAR ;; + EXTRN CF_863_XLAT:NEAR ;; + EXTRN CF_850_XLAT:NEAR ;; + ;; + CF_LANG_ENT: ;; language entry for Canadian-French + DB 'CF' ;; + DW 0 ;; reserved + DW OFFSET CF_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 863 ;; code page + DW OFFSET CF_863_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET CF_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN LA_LOGIC:NEAR ;; + EXTRN LA_850_XLAT:NEAR ;; + EXTRN LA_437_XLAT:NEAR ;; + ;; + LA_LANG_ENT: ;; language entry for Canadian-French + DB 'LA' ;; + DW 0 ;; reserved + DW OFFSET LA_LOGIC,0 ;; pointer to LANG kb table + DW 2 ;; number of code pages + DW 850 ;; code page + DW OFFSET LA_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET LA_437_XLAT,0 ;; table pointer + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DUMMY_ENT: ;; language entry + DB 'XX' ;; + DW 0 ;; reserved + DW OFFSET DUMMY_LOGIC,0 ;; pointer to LANG kb table + DW 5 ;; number of code pages + DW 437 ;; code page + DW OFFSET DUMMY_XLAT_437,0 ;; table pointer + DW 850 ;; code page + DW OFFSET DUMMY_XLAT_850,0 ;; table pointer + DW 860 ;; code page + DW OFFSET DUMMY_XLAT_860,0 ;; table pointer + DW 863 ;; code page + DW OFFSET DUMMY_XLAT_863,0 ;; table pointer + DW 865 ;; code page + DW OFFSET DUMMY_XLAT_865,0 ;; table pointer + ;; +DUMMY_LOGIC: ;; + DW LOGIC_END-$ ;; length + DW 0 ;; special features + DB 92H,0,0 ;; EXIT_STATE_LOGIC_COMMAND +LOGIC_END: ;; + ;; +DUMMY_XLAT_437: ;; + DW 6 ;; length of section + DW 437 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_850: ;; + DW 6 ;; length of section + DW 850 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_860: ;; + DW 6 ;; length of section + DW 860 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_865: ;; + DW 6 ;; length of section + DW 865 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_863: ;; + DW 6 ;; length of section + DW 863 ;; code page + DW 0 ;; LAST STATE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFBE.ASM b/v4.0/src/DEV/KEYBOARD/KDFBE.ASM new file mode 100644 index 0000000..ac5b1e4 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFBE.ASM @@ -0,0 +1,1833 @@ +; ACUTE lc y added +; ****** CNS 12/18 +; ****** CNS 01/21 NUM PAD + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Belgium. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;; +;; Modded from French - DTF 11-Sep-86 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC BE_LOGIC ;; + PUBLIC BE_437_XLAT ;; + PUBLIC BE_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +BE_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW TYPEWRITER_CAPS_LK ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF CAPS_STATE + SET_FLAG DEAD_UPPER + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF + IFF R_ALT_SHIFT ;; + ANDF EITHER_CTL,NOT ;; + ANDF LC_E0,NOT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF + ENDIFF + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;*************************** +NON_DEAD: ;; +;ADDED FOR DIVIDE SIGN ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + IFF EITHER_CTL,NOT + ANDF EITHER_ALT,NOT + XLATT DIVIDE_SIGN ;; + ENDIFF + EXIT_STATE_LOGIC ;; + ENDIFF ;; +;BD END OF ADDITION +;**************************** +;NON_DEAD: ;; +; ;; +; IFKBD G_KB+P12_KB ;; Avoid accidentally translating +; ANDF LC_E0 ;; the "/" on the numeric pad of the +; EXIT_STATE_LOGIC ;; G keyboard +; ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; +;****************************************** +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +;******************************************* + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;****************************************** +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +;****************************************** + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;IFF EITHER_SHIFT,NOT ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC BE_COMMON_XLAT ;; +BE_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 8 ;; Number of entries + DB 12,-1,-1 ;; + DB 13,0,82H ;; + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 10 ;; Number of entries + DB 12,-1,-1 ;; + DB 13,31,13 ;; + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 43,-1,-1 ;; \ + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' + DB 86,28,86 ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: AT + XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; Number of entries +; DB 12,-1,-1 ;; invalid key U.S. alt - +; DB 13,0,82H ;; alt - (minus sign) +; DB 53,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; invalid U.S. - + DB 43,-1,-1 ;; invalid U.S. \ + DB 41,28,41 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K3_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; + DB 43,-1,-1 ;; + DB 43,28,43 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K3_T3_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12,AT +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of entries + DB 40 ;; + FLAG ACUTE ;; + DB 43 ;; + FLAG GRAVE ;; + DB 53 ;; + FLAG TILDE ;; + ;; +COM_DK_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_K1_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of entries + DB 40 ;; + FLAG ACUTE ;; + DB 41 ;; + FLAG GRAVE ;; + DB 53 ;; + FLAG TILDE ;; + ;; +COM_DK_TH_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************************** CODE eliminated********** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NUM PAD altered ******** +;; CODE PAGE: 850 CNS engraved "," out +;; STATE: Numeric Pad - Divide Sign +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_DIVID_END-$ ;; length of state section +;; DB DIVIDE_SIGN ;; State ID +;; DW G_KB+P12_KB ;; Keyboard Type +;; DB -1,-1 ;; error character = standalone accent +;; ;; +;; DW CP850_DIVID_T1_END-$ ;; Size of xlat table +;; DB TYPE_2_TAB ;; xlat options: +;; DB 2 ;; number of scans +;; DB 0E0H,',',0E0H ;; DIVIDE SIGN +;; DB 51,',',0E0H ;; +;; CP850_DIVID_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;; CP850_DIVID_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Numeric Key Pad - Multiplication +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_PAD_K1_END-$ ;; length of state section +;; DB NUMERIC_PAD ;; State ID +;; DW P12_KB ;; Keyboard Type +;; DB -1,-1 ;; Buffer entry for error character +;; ;; +;; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE ;; xlat options: +;; DB 1 ;; number of entries +;; DB 51,',' ; (removed *** CNS ****) ;; MULTIPLICATION SIGN +;; CP850_PAD_K1_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;; CP850_PAD_K1_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************************************************* +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'a' ;; small a + DB 17,'z' ;; small z + DB 30,'q' ;; small q + DB 39,'m' ;; small m + DB 44,'w' ;; small w +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'A' ;; caps A + DB 17,'Z' ;; caps Z + DB 30,'Q' ;; caps Q + DB 39,'M' ;; caps M + DB 44,'W' ;; caps W +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,"" ;; superscript 2 + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,0E6H ;; mu + DB 86,'<' ;; + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES:AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 41,"<" ;; + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,0E6H ;; mu + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 41,0E6H ;; mu + DB 43,'<' ;; + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'' ;; + DB 86,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,'' ;; + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,'>' ;; + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 86,'\' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 41,'\' ;; +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: ALL +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_CI_UP_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,126 ;; STANDALONE TIDLE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Specific Translate Section for 437 +;; +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC BE_437_XLAT ;; +BE_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 7,15H ;; Section Symbol +CP437_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 41,00H ;; 3 Superscript +CP437_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP437_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,164 ;; scan code,ASCII - n +CP437_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP437_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,165 ;; scan code,ASCII - N +CP437_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP437_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 0FEH,0 ;; error character = standalone accent +; ;; +; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,0FEH ;; error character = standalone accent +;CP437_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP437_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC BE_850_XLAT ;; +BE_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 7,0F5H ;; Section symbol -  +CP850_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 41,0FCH ;; 3 Superscript +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +CP850_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 49,164 ;; scan code,ASCII - n + DB 16,0C6H ;; a + DB 24,0E4H ;; o +CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 49,165 ;; scan code,ASCII - N + DB 16,0C7H ;; A + DB 24,0E5H ;; O +CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 16,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute + DB 21,0ECH ;; y acute ADDED 12/16 CNS ********** +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 16,0B5H ;; A acute + DB 18,090H ;; E acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 22,0E9H ;; U acute + DB 21,0EDH ;; Y acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0EFH ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,8EH ;; A di + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis + DB 24,99H ;; O di + DB 22,9AH ;; U di +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Diaeresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F9H ;; scan code,ASCII - SPACE +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_SP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: ALL +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFCF.ASM b/v4.0/src/DEV/KEYBOARD/KDFCF.ASM new file mode 100644 index 0000000..a8469dd --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFCF.ASM @@ -0,0 +1,1769 @@ + + PAGE ,132 + TITLE DOS - KEYBOARD.SYS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - KEYBOARD.SYS +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard table for Canadian French +;; +;; Linkage Instructions: +;; Refer to KDF.ASM +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC CF_LOGIC ;; + PUBLIC CF_863_XLAT ;; + PUBLIC CF_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; CF State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CF_LOGIC: ;; + ;; + DW LOGIC_END-$ ;; length + ;; + DW JR_HOT_KEY_1_2 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF CIRCUMFLEX ;; + RESET_NLS ;; + XLATT CIRCUMFLEX_CIRCUMFLEX ;; + GOTO CIRCUMFLEX_ON ;; + ENDIFF ;; + IFF GRAVE ;; + RESET_NLS ;; + XLATT GRAVE_GRAVE ;; + GOTO GRAVE_ON ;; + ENDIFF ;; + IFF EITHER_SHIFT ;; + IFF DIARESIS ;; + RESET_NLS ;; + XLATT DIARESIS_DIARESIS ;; + GOTO DIARESIS_ON ;; + ENDIFF ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + IFF CEDILLA ;; + RESET_NLS ;; + XLATT CEDILLA_CEDILLA ;; + GOTO CEDILLA_ON ;; + ENDIFF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFF R_ALT_SHIFT,NOT ;; + ANDF ALT_SHIFT ;; + IFF EITHER_SHIFT ;; Third shift is activated by ALT_GR + ;; OR ALT + SHIFT. + IFF ACUTE ;; + RESET_NLS ;; + XLATT ACUTE_ACUTE ;; + GOTO ACUTE_ON ;; + ENDIFF ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF ;; + IFF R_ALT_SHIFT ;; +;;;************************************** +;;; BIOS sets ALT_SHIFT when R_ALT_SHIFT is pressed. +;;; We must suppress this to detect both ALT keys simultaneously. +;;; ANDF ALT_SHIFT,NOT ;; +;;;************************************** + ANDF EITHER_SHIFT,NOT ;; + IFF ACUTE ;; + RESET_NLS ;; + XLATT ACUTE_ACUTE ;; + GOTO ACUTE_ON ;; + ENDIFF ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; +ACUTE_ON: ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + EXIT_INT_9 ;; Either is invalid so BEEP. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; +GRAVE_ON: ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT GRAVE_UPPER ;; + ELSEF ;; + XLATT GRAVE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + EXIT_INT_9 ;; Either is invalid so BEEP. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; +DIARESIS_ON: ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + EXIT_INT_9 ;; Either is invalid so BEEP. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO CEDILLA_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; +CIRCUMFLEX_ON: ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_UPPER ;; + ELSEF ;; + XLATT CIRCUMFLEX_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + EXIT_INT_9 ;; Either is invalid so BEEP. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CEDILLA ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CEDILLA_PROC: ;; + ;; + IFF CEDILLA,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; +CEDILLA_ON: ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CEDILLA_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CEDILLA_LOWER ;; + ELSEF ;; + XLATT CEDILLA_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT CEDILLA_UPPER ;; + ELSEF ;; + XLATT CEDILLA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CEDILLA: ;; + ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + EXIT_INT_9 ;; Either is invalid so BEEP. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + IFKBD G_KB+P12_KB ;; + ANDF LC_E0 ;; + EXIT_STATE_LOGIC ;; + ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + GOTO NO_THIRD ;; + ENDIFF ;; + ;; + IFF R_ALT_SHIFT,NOT ;; Third shift is activated by ALT_GR + ANDF ALT_SHIFT ;; OR ALT + SHIFT. + IFF EITHER_SHIFT ;; + XLATT THIRD_SHIFT ;; + IFF SCAN_MATCH,NOT ;; + EXIT_INT_9 ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF R_ALT_SHIFT ;; +;;;************************************** +;;; BIOS sets ALT_SHIFT when R_ALT_SHIFT is pressed. +;;; We must suppress this to detect both ALT keys simultaneously. +;;; ANDF ALT_SHIFT,NOT ;; +;;;************************************** + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + IFF SCAN_MATCH,NOT ;; + EXIT_INT_9 ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; + ;; +NO_THIRD: ;; Lower and upper case. Alphabetic + ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; CF Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC CF_COMMON_XLAT ;; +CF_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of Common Tranlate Section + DW -1 ;; code page + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD: All +;; TABLE TYPE: Set Dead Key Flag +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DE_LO_END-$ ;; + ;; label format: + ;; codepage_state_n_END + ;; codepage = COMmon + ;; codepage1, + ;; codepage2. + ;; state refers to + ;; alpha, case, and dead: + ;; DE_LO: DEAD_LOWER + ;; DE_UP: DEAD_UPPER + ;; DE_TH: DEAD_THIRD + ;; AL_LO: ALPHA_LOWER + ;; AL_UP: ALPHA_UPPER + ;; NA_LO: NON_ALPHA_LOWER + ;; NA_UP: NON_ALPHA_UPPER + ;; NA_TH: THIRD_SHIFT + ;; AC_LO: ACUTE_LOWER + ;; AC_UP: ACUTE_UPPER + ;; AC_SP: ACUTE_SPACE + ;; AC_AC: ACUTE_ACUTE + ;; GR_LO: GRAVE_LOWER + ;; GR_UP: GRAVE_UPPER + ;; GR_SP: GRAVE_SPACE + ;; GR_GR: GRAVE_GRAVE + ;; DI_LO: DIARESIS_LOWER + ;; DI_UP: DIARESIS_UPPER + ;; DI_SP: DIARESIS_SPACE + ;; DI_DI: DIARESIS_DIARESIS + ;; CI_LO: CIRCUMFLEX_LOWER + ;; CI_UP: CIRCUMFLEX_UPPER + ;; CI_SP: CIRCUMFLEX_SPACE + ;; CI_CI: CIRCUMFLEX_CIRCUMFLEX + ;; CE_LO: CEDILLA_LOWER + ;; CE_UP: CEDILLA_UPPER + ;; CE_SP: CEDILLA_SPACE + ;; CE_CE: CEDILLA_CEDILLA + ;; + ;; n = 1,2,... to distinguish + ;; for different KB + DB DEAD_LOWER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of dead keys + DB 40 ;; scan code + FLAG GRAVE ;; flag bit assignment + DB 26 ;; + FLAG CIRCUMFLEX ;; + DB 27 ;; + FLAG CEDILLA ;; +COM_DE_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD: ALL +;; TABLE TYPE: Set Dead Key Flag +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DE_UP_END-$ ;; + DB DEAD_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of dead keys + DB 40 ;; scan code + FLAG GRAVE ;; flag bit assignment + DB 26 ;; + FLAG CIRCUMFLEX ;; + DB 27 ;; + FLAG DIARESIS ;; +COM_DE_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD: All +;; TABLE TYPE: Set Dead Key Flag +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DE_TH_END-$ ;; + DB DEAD_THIRD ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of dead keys + DB 53 ;; scan code + FLAG ACUTE ;; flag bit assignment +COM_DE_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; Length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_000400-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 53,'' ;; +CF_000400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; + DB ALPHA_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_002400-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 53,'' ;; +CF_002400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha lower Case +;; KEYBOARD: G_KB, P_KB, P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_1_END-$ ;; Length of state section + DB NON_ALPHA_LOWER ;; + DW G_KB+P_KB+P12_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004300-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of scans + DB 41,'#' ;; + DB 43,'<' ;; + DB 86,'' ;; +CF_004300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha lower Case +;; KEYBOARD: XT_KB, AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_2_END-$ ;; Length of state section + DB NON_ALPHA_LOWER ;; + DW XT_KB+AT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004400-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of scans + DB 41,'<' ;; + DB 43,'\' ;; +CF_004400: ;; + ;; + DW 0 ;; Size of xlat table : null + ;; +COM_NA_LO_2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha lower Case +;; KEYBOARD: JR_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_3_END-$ ;; Length of state section + DB NON_ALPHA_LOWER ;; + DW JR_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004401-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 51,',' ;; +CF_004401: ;; + ;; + DW 0 ;; Size of xlat table : null + ;; +COM_NA_LO_3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Upper Case +;; KEYBOARD: G_KB, P_KB, P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_1_END-$ ;; Length of state section + DB NON_ALPHA_UPPER ;; + DW G_KB+P_KB+P12_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_005300-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of scans + DB 3,'"' ;; + DB 4,'/' ;; + DB 7,'?' ;; + DB 41,'|' ;; + DB 43,'>' ;; + DB 51,27H ;; single quote + DB 52,'.' ;; + DB 86,'' ;; +CF_005300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Upper Case +;; KEYBOARD: XT_KB+AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_2_END-$ ;; Length of state section + DB NON_ALPHA_UPPER ;; + DW XT_KB+AT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_005400-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of scans + DB 3,'"' ;; + DB 4,'/' ;; + DB 7,'?' ;; + DB 41,'>' ;; + DB 43,'|' ;; + DB 51,27H ;; single quote + DB 52,'.' ;; period +CF_005400: ;; + ;; + DW 0 ;; Size of xlat table : null + ;; +COM_NA_UP_2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Upper Case +;; KEYBOARD: JR_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_3_END-$ ;; Length of state section + DB NON_ALPHA_UPPER ;; + DW JR_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_005100-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; + DB 3,'"' ;; + DB 4,'/' ;; + DB 7,'?' ;; + DB 51,27H ;; single quote + DB 52,02EH ;; period +CF_005100: ;; + ;; + DW 0 ;; Size of xlat table : null + ;; + ;; +COM_NA_UP_3_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Third Case +;; KEYBOARD: G_KB, P_KB, P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_TH_1_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW G_KB+P_KB+P12_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_007760-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of scans + DB 2,'' ;; + DB 3,'@' ;; + DB 4,'' ;; + DB 7,'' ;; + DB 9,'' ;; + DB 11,'' ;; + DB 12,'' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'~' ;; + DB 40,'{' ;; + DB 41,'\' ;; + DB 43,'}' ;; + DB 47,'' ;; + DB 48,'' ;; + DB 49,'' ;; + DB 50,'' ;; + DB 86,'' ;; +CF_007760: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_TH_1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Third Case +;; KEYBOARD: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_TH_2_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW XT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_006500-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of scans + DB 2,'' ;; + DB 3,'@' ;; + DB 4,'' ;; + DB 7,'' ;; + DB 9,'' ;; + DB 11,'' ;; + DB 12,'' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'~' ;; + DB 40,'{' ;; + DB 41,'}' ;; + DB 43,'#' ;; + DB 47,'' ;; + DB 48,'' ;; + DB 49,'' ;; + DB 50,'' ;; +CF_006500: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_TH_2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Third Case +;; KEYBOARD: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_TH_3_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW AT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_006300-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of scans + DB 2,'' ;; + DB 3,'@' ;; + DB 4,'' ;; + DB 7,'' ;; + DB 9,'' ;; + DB 11,'' ;; + DB 12,'' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 38,'~' ;; + DB 39,'{' ;; + DB 40,'}' ;; + DB 43,'#' ;; + DB 47,'' ;; + DB 48,'' ;; + DB 49,'' ;; + DB 50,'' ;; +CF_006300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_TH_3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-alpha Third Case +;; KEYBOARD: PCJR +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CF_COM_NA_TH_4_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW JR_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_007100-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; + DB 2,'' ;; + DB 3,'@' ;; + DB 4,'' ;; + DB 7,'' ;; + DB 9,'' ;; + DB 11,'' ;; + DB 16,'' ;; + DB 17,'' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 30,'<' ;; + DB 31,'>' ;; + DB 38,'~' ;; + DB 39,'{' ;; + DB 40,'}' ;; + DB 44,'\' ;; + DB 45,'#' ;; + DB 46,'|' ;; + DB 47,'' ;; + DB 48,'' ;; + DB 49,'' ;; +CF_007100: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CF_COM_NA_TH_4_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AC_LO_END-$ ;; Length of state section + DB ACUTE_LOWER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_001100-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 18,'' ;; + DB 24,'' ;; + DB 22,'' ;; +CF_001100: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AC_UP_END-$ ;; Length of state section + DB ACUTE_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_003100-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; +CF_003100: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; Length of state section + DB GRAVE_LOWER ;; + DW ANY_KB ;; + DB '`',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_001200-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,'' ;; + DB 18,'' ;; + DB 22,'' ;; +CF_001200: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave + Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; Length of state section + DB GRAVE_SPACE ;; + DW ANY_KB ;; + DB '`',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004500-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,'`' ;; +CF_004500: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave + Grave +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_GR_END-$ ;; Length of state section + DB GRAVE_GRAVE ;; + DW ANY_KB ;; + DB '`',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004501-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 40,'`' ;; +CF_004501: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_GR_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; Length of state section + DB DIARESIS_LOWER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_001400-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 18,'' ;; + DB 23,'' ;; + DB 22,'' ;; +CF_001400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; Length of state section + DB CIRCUMFLEX_LOWER ;; + DW ANY_KB ;; + DB '^',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_001300-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,'' ;; + DB 18,'' ;; + DB 23,'' ;; + DB 24,'' ;; + DB 22,'' ;; +CF_001300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex + Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; Length of state section + DB CIRCUMFLEX_SPACE ;; + DW ANY_KB ;; + DB '^',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004555-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,'^' ;; +CF_004555: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex + Circumflex +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_CI_END-$ ;; Length of state section + DB CIRCUMFLEX_CIRCUMFLEX ;; + DW ANY_KB ;; + DB '^',0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_004551-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 26,'^' ;; +CF_004551: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_CI_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_UP_END-$ ;; Length of state section + DB DIARESIS_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_003300-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 22,'' ;; +CF_003300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Cedilla Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CE_LO_END-$ ;; Length of state section + DB CEDILLA_LOWER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_001500-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 46,'' ;; +CF_001500: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CE_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Cedilla Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CE_UP_END-$ ;; Length of state section + DB CEDILLA_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_003400-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 46,'' ;; +CF_003400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CE_UP_END: ;; + ;; + DW 0 ;; Last State +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +COMMON_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; CF 863 Translate Section +;; This section contains translations for the UPPER 128 characters +;; of Code Page 863. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC CF_863_XLAT ;; +CF_863_XLAT: ;; + ;; + DW CP863_XLAT_END-$ ;; length of 863 Tranlate Section + DW 863 ;; code page id + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Non-alpha Third Case +;; KEYBOARD: G_B, P_KB, P12_KB +;; XT_KB, AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_NA_TH_1_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW G_KB+P_KB+P12_KB+XT_KB+AT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_106300-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of scan + DB 5,'' ;; + DB 6,98H ;; international currency symbol + DB 8,0A0H ;; vertical line broken + DB 10,0A6H ;; superscript 3 + DB 13,0ADH ;; 3 quarters + DB 24,08FH ;; section + DB 25,086H ;; paragraph + DB 51,0A7H ;; overscore +CF_106300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_NA_TH_1_END: ;; Length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Non-alpha Third Case +;; KEYBOARD: JR_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_NA_TH_2_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW JR_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_106600-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of scan + DB 5,'' ;; + DB 6,98H ;; international currency symbol + DB 8,0A0H ;; vertical line broken + DB 12,0A6H ;; superscript 3 + DB 18,0ADH ;; 3 quarters + DB 24,08FH ;; section + DB 25,086H ;; paragraph + DB 51,0A7H ;; overscore +CF_106600: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_NA_TH_2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Acute INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_AC_SP_END-$ ;; Length of state section + DB ACUTE_SPACE ;; + DW ANY_KB ;; + DB 0A1H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104500-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0A1H ;; acute +CF_104500: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_AC_SP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Acute INPUT: Acute +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_AC_AC_END-$ ;; Length of state section + DB ACUTE_ACUTE ;; + DW ANY_KB ;; + DB 0A1H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104505-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 53,0A1H ;; acute +CF_104505: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_AC_AC_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Grave Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_GR_UP_END-$ ;; Length of state section + DB GRAVE_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104700-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,8EH ;; A grave + DB 18,91H ;; E grave + DB 22,9DH ;; U grave +CF_104700: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_GR_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Diaresis Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_DI_UP_END-$ ;; Length of state section + DB DIARESIS_UPPER ;; + DW ANY_KB ;; + DB 0A4H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104800-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 18,94H ;; E diaeresis + DB 23,95H ;; I diaeresis +CF_104800: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_DI_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Diaresis INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_DI_SP_END-$ ;; Length of state section + DB DIARESIS_SPACE ;; + DW ANY_KB ;; + DB 0A4H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104550-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0A4H ;; diaeresis +CF_104550: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_DI_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Diaresis INPUT: Diaresis +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_DI_DI_END-$ ;; Length of state section + DB DIARESIS_DIARESIS ;; + DW ANY_KB ;; + DB 0A4H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104551-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 27,0A4H ;; diaeresis +CF_104551: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_DI_DI_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Circumflex Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_CI_UP_END-$ ;; Length of state section + DB CIRCUMFLEX_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104750-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,84H ;; A circumflex + DB 18,92H ;; E circumflex + DB 23,0A8H ;; I circumflex + DB 24,99H ;; O circumflex + DB 22,9EH ;; U circumflex +CF_104750: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_CI_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Cedilla INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_CE_SP_END-$ ;; Length of state section + DB CEDILLA_SPACE ;; + DW ANY_KB ;; + DB 0A5H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104600-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0A5H ;; cedilla +CF_104600: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_CE_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 863 +;; STATE: Cedilla INPUT: Cedilla +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP863_CE_CE_END-$ ;; Length of state section + DB CEDILLA_CEDILLA ;; + DW ANY_KB ;; + DB 0A5H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_104601-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 27,0A5H ;; cedilla +CF_104601: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP863_CE_CE_END: ;; + ;; + ;; + DW 0 ;; Last State +CP863_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; CF 850 Translate Section +;; This section contains translations for the UPPER 128 characters +;; of Code Page 850. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC CF_850_XLAT ;; +CF_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of 850 Tranlate Section + DW 850 ;; code page id + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-alpha Third Case +;; KEYBOARD: G_KB, P_KB, P12_KB +;; XT_KB, AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_TH_1_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW G_KB+P_KB+P12_KB+XT_KB+AT_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_206300-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of scan + DB 5,0BDH ;; cent + DB 6,0CFH ;; international currency symbol + DB 8,0DDH ;; vertical line broken + DB 10,0FCH ;; superscript 3 + DB 13,0F3H ;; 3 quarters + DB 24,0F5H ;; section + DB 25,0F4H ;; paragraph + DB 51,0EEH ;; overscore +CF_206300: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_TH_1_END: ;; Length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-alpha Third Case +;; KEYBOARD: JR_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_TH_2_END-$ ;; Length of state section + DB THIRD_SHIFT ;; + DW JR_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_206600-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of scan + DB 5,0BDH ;; cent + DB 6,0CFH ;; international currency symbol + DB 8,0DDH ;; vertical line broken + DB 12,0FCH ;; superscript 3 + DB 18,0F3H ;; 3 quarters + DB 24,0F5H ;; section + DB 25,0F4H ;; paragraph + DB 51,0EEH ;; overscore +CF_206600: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_TH_2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; Length of state section + DB ACUTE_LOWER ;; + DW ANY_KB ;; + DB 0EFH,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_201100-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,'' ;; + DB 23,'' ;; + DB 21,0ECH ;; y acute +CF_201100: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; Length of state section + DB ACUTE_UPPER ;; + DW ANY_KB ;; + DB 0EFH,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_203100-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B5H ;; A acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 22,0E9H ;; U acute + DB 21,0EDH ;; Y acute +CF_203100: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; Length of state section + DB ACUTE_SPACE ;; + DW ANY_KB ;; + DB 0EFH,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204500-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0EFH ;; acute +CF_204500: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute INPUT: Acute +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_AC_END-$ ;; Length of state section + DB ACUTE_ACUTE ;; + DW ANY_KB ;; + DB 0EFH,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204501-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 53,0EFH ;; acute +CF_204501: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_AC_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_LO_END-$ ;; Length of state section + DB GRAVE_LOWER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_201200-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 23,'' ;; + DB 24,'' ;; +CF_201200: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; Length of state section + DB GRAVE_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_203200-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CF_203200: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; Length of state section + DB DIARESIS_LOWER ;; + DW ANY_KB ;; + DB 0F9H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_201400-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,'' ;; + DB 24,'' ;; + DB 21,'' ;; +CF_201400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; Length of state section + DB DIARESIS_UPPER ;; + DW ANY_KB ;; + DB 0F9H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_203400-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 4 ;; number of scans + DB 30,'' ;; + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis + DB 24,'' ;; +CF_203400: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; Length of state section + DB DIARESIS_SPACE ;; + DW ANY_KB ;; + DB 0F9H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204550-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F9H ;; diaeresis +CF_204550: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis INPUT: Diaresis +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_DI_END-$ ;; Length of state section + DB DIARESIS_DIARESIS ;; + DW ANY_KB ;; + DB 0F9H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204551-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 27,0F9H ;; diaeresis +CF_204551: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_DI_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper Case +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; Length of state section + DB CIRCUMFLEX_UPPER ;; + DW ANY_KB ;; + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_003305-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CF_003305: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Cedilla INPUT: Space Bar +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CE_SP_END-$ ;; Length of state section + DB CEDILLA_SPACE ;; + DW ANY_KB ;; + DB 0F7H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204600-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F7H ;; cedilla +CF_204600: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CE_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Cedilla INPUT: Cedilla +;; KEYBOARD: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CE_CE_END-$ ;; Length of state section + DB CEDILLA_CEDILLA ;; + DW ANY_KB ;; + DB 0F7H,0 ;; Buffer entry for error character + ;; Set Flag Table + DW CF_204601-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 27,0F7H ;; cedilla +CF_204601: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CE_CE_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; no more states + ;; +CP850_XLAT_END: ;; + +CODE ENDS + END diff --git a/v4.0/src/DEV/KEYBOARD/KDFDK.ASM b/v4.0/src/DEV/KEYBOARD/KDFDK.ASM new file mode 100644 index 0000000..4ae463a --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFDK.ASM @@ -0,0 +1,1631 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;; LATEST CHANGE P12 NUMERIC +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Danish +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC DK_LOGIC ;; + PUBLIC DK_865_XLAT ;; + PUBLIC DK_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a linear search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; DK State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +DK_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_CTL,NOT ;; + IFF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some + ANDF R_ALT_SHIFT ;; dead keys are on third shift + ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; + IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic + IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; Third and Fourth shifts + ELSEF ;; ctl off, alt on at this point + IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics + IFF EITHER_SHIFT ;; only. + XLATT FOURTH_SHIFT ;; ALT + shift + ELSEF ;; + XLATT THIRD_SHIFT ;; ALT + ENDIFF ;; + ELSEF ;; ENHANCED keyboard + IFF R_ALT_SHIFT ;; ALTGr + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;********************************************************************** +;; DK Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; Some common Characters are included from 128 - 165 where appropriate. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC DK_COMMON_XLAT ;; +DK_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; + FLAG DIARESIS ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 27 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 27 ;; scan code + FLAG TILDE ;; flag bit to set + ;; +COM_DK_TH_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common ;;change **********CNS ************** +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: All except the p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 2 number of entries +; DB 12,-1,-1 ;; +; DB 53,0,082H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries + DB 12,-1,-1 ;; + DB 53,01FH,35h ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 8 ;; number of entries + DB 9,01BH,09H ;; + DB 10,01DH,0AH ;; + DB 12,-1,-1 ;; + DB 26,-1,-1 ;; + DB 27,-1,-1 ;; + DB 43,-1,-1 ;; + DB 53,01FH,35H ;; + DB 86,01CH,56H ;; +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,086H ;; a-overcircle + DB 39,091H ;; ae-dipthong + DB 40,09BH ;; o-slash +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,08FH ;; A-OVERCIRCLE + DB 39,092H ;; AE-DIPTHONG + DB 40,09DH ;; O-SLASH +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 41,0ABH ;; + DB 12,"+" ;; + INCLUDED FOR SIMPLIC. + DB 43,"'" ;; ' + DB 86,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 41,"'" ;; ' + DB 12,"+" ;; + + DB 43,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"<" ;; < + DB 43,"'" ;; ' + DB 53,"-" ;; - +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 12 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 43,'*' ;; + DB 86,'>' ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 12 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 41,'*' ;; + DB 43,'>' ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 12 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 41,'>' ;; + DB 43,'*' ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type FERRARI + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,'@' ;; + DB 4,09CH ;; + DB 5,'$' ;; + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; + DB 13,'|' ;; Broken Vertical Line + DB 86,'\' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,060H,060H ;; + DB 43,'\','\' ;; + DB 53,'/','/' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,'\','\' ;; + DB 43,060H,060H ;; + DB 53,'/','/' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 5,'$','$' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'~','~' ;; + DB 43,'|','|' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_K1_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 5,'$','$' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'|','|' ;; + DB 43,'~','~' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; DK Specific Translate Section for 865 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC DK_865_XLAT ;; +DK_865_XLAT: ;; + ;; + DW CP865_XLAT_END-$ ;; length of section + DW 865 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP865_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0AFH ;; International Currency Symb +CP865_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP865_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 5,0AFH ;; International Currency Symb + DB 41,015H ;; SECTION Symb +CP865_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP865_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP865_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP865_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP865 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP865_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP865_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP865 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP865_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP865_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP865_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 254,0 ;; error character = standalone accent +; ;; +; DW CP865_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,254 ;; error character = standalone accent +;CP865_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP865_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP865_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; DK Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC DK_850_XLAT ;; +DK_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0CFH ;; International Currency Symb +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 5,0CFH ;; International Currency Symb + DB 41,0F5H ;; SECTION Symb +CP850_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 21,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; + diff --git a/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM b/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM new file mode 100644 index 0000000..020b5e1 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFEOF.ASM @@ -0,0 +1,32 @@ + + + + PAGE ,132 + TITLE DOS Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the eof marker for the entire table +;; and the keyboard.sys copyright +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; + ;; + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +include copyrigh.inc + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DB 1AH ;; EOF + ;; +CODE ENDS ;; + END ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR.ASM new file mode 100644 index 0000000..0dd5e4b --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFFR.ASM @@ -0,0 +1,1529 @@ +;; LATEST CHANGE ALT & CTL disenabled US invalids +;; Section symbol scan code incorrect +;; zero scan code tag deleted from end of tag field +;; Changed key #5 for the XT "/" instead of "'"..Pubs error +;; ****************** CNS 12/18/86************************* + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC FR_LOGIC ;; + PUBLIC FR_437_XLAT ;; + PUBLIC FR_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +FR_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW TYPEWRITER_CAPS_LK ;; special features (shift lock state) + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF CAPS_STATE + SET_FLAG DEAD_UPPER + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +; XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +; XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +;NON_DEAD: ;; +; ;; +; IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic +; ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. +; IFF EITHER_SHIFT ;; Numeric keys are not. +; XLATT NON_ALPHA_UPPER ;; +; IFF CAPS_STATE ;; +; XLATT ALPHA_LOWER ;; +; ELSEF ;; +; XLATT ALPHA_UPPER ;; +; ENDIFF ;; +; ELSEF ;; +; XLATT NON_ALPHA_LOWER ;; +; IFF CAPS_STATE ;; +; XLATT ALPHA_UPPER ;; +; ELSEF ;; +; XLATT ALPHA_LOWER ;; +; ENDIFF ;; +; ENDIFF ;; +; ELSEF ;; +; IFF EITHER_SHIFT,NOT ;; +; IFKBD XT_KB+AT_KB ;; +; IFF EITHER_CTL ;; +; ANDF ALT_SHIFT ;; +; XLATT THIRD_SHIFT ;; +; ENDIFF ;; +; ELSEF ;; +; IFF EITHER_CTL,NOT ;; +; ANDF R_ALT_SHIFT ;; +; XLATT THIRD_SHIFT ;; +; ENDIFF ;; +; ENDIFF ;; +; ENDIFF ;; +; ENDIFF ;; +; ;; +; EXIT_STATE_LOGIC ;; +; ;; +;LOGIC_END: ;; +; ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR_COMMON_XLAT ;; +FR_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set +; DB 40 eliminate ;; +; FLAG ACUTE ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set +; DB 40 eliminate ;; +; FLAG DIARESIS ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_DK_TH_END-$ ;; length of state section +;; DB DEAD_THIRD ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB -1,-1 ;; Buffer entry for error character +;; ;; Set Flag Table +;; DW 1 ;; number of entries +;; DB 8 ;; scan code +;; FLAG GRAVE ;; flag bit to set +;; ;; +;;COM_DK_TH_END: ;; +;; ;; +;; ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 10 ;; Number of entries + DB 12,-1,-1 ;; invalid key U.S. alt - + DB 13,-1,-1 ;; invalid key U.S. alt = + DB 07,0,82H ;; alt - (minus sign) + DB 13,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 12 ;; Number of entries + DB 12,-1,-1 ;; + DB 07,30,07 ;; ctl + number six key + DB 12,29,12 ;; ctl + ] + DB 13,31,13 ;; + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 43,-1,-1 ;; \ + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' + DB 9,28,9 ;; \ position (this is also the underscore position) +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: AT + XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 9 ;; Number of entries + DB 12,-1,-1 ;; invalid key U.S. alt - + DB 13,0,82H ;; alt - (minus sign) + DB 53,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; invalid U.S. - + DB 43,-1,-1 ;; invalid U.S. \ + DB 41,28,41 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K3_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; + DB 43,-1,-1 ;; + DB 43,28,43 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K3_T3_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;****************************************************************************** +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'a' ;; small a + DB 17,'z' ;; small z + DB 30,'q' ;; small q + DB 39,'m' ;; small m + DB 44,'w' ;; small w +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'A' ;; caps A + DB 17,'Z' ;; caps Z + DB 30,'Q' ;; caps Q + DB 39,'M' ;; caps M + DB 44,'W' ;; caps W +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 41,"" ;; superscript 2 + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"_" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"=" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,"*" ;; + DB 86,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'!' ;; + +COM_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; grave - a small + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave small + DB 43,0E6H ;; mu symbol - + DB 41,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'=' ;; + +COM_NA_LO_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; ' on the AT_KB + DB 5,"'" ;; *** CNS **** 12/18/86 pubs wrong + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave small + DB 41,0E6H ;; mu symbol - + DB 43,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"+" ;; plus sign + DB 27,09CH ;; symbol + DB 40,'%' ;; + DB 41,"" ;; superscript 3 + DB 43,0E6H ;; - mu symbol + DB 86,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; underscore + DB 43,09CH ;; symbol + DB 40,'%' ;; + DB 27,"*" ;; asterisk + DB 41,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; underscore + DB 41,09CH ;; symbol + DB 40,'%' ;; + DB 27,"*" ;; asterisk + DB 43,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB +P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 11 ;; number of entries + DB 3,'~' ;; + DB 4,'#' ;; + DB 5,'{' ;; + DB 6,'[' ;; + DB 7,'|' ;; + DB 8,'`' ;; grave symbol not a dead key rep + DB 9,'\' ;; + DB 10,'^' ;; circumflex (caret) + DB 11,'@' ;; + DB 12,']' ;; + DB 13,'}' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 4,'#' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 41,'\' ;; + DB 3,'@' ;; + DB 7,'^' ;; circumflex (caret) +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 4,'#' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; + DB 3,'@' ;; + DB 7,'^' ;; circumflex (caret) +COM_THIRD_T1_K3_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW COM_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +COM_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_AC_UP_END-$ ;; length of state section +;; DB ACUTE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW COM_AC_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 2 ;; number of scans +;; DB 18,'' ;; scan code,ASCII - e +;;COM_AC_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_AC_UP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_AC_SP_END-$ ;; length of state section +;; DB ACUTE_SPACE ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW COM_AC_SP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 57,39 ;; scan code,ASCII - SPACE +;;COM_AC_SP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_AC_SP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +COM_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +COM_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +COM_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +COM_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_GR_LO_END-$ ;; length of state section +;; DB GRAVE_LOWER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW COM_GR_LO_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 18,'' ;; scan code,ASCII - e +;; DB 30,'' ;; scan code,ASCII - a +;; DB 24,'' ;; scan code,ASCII - o +;; DB 22,'' ;; scan code,ASCII - u +;; DB 23,'' ;; scan code,ASCII - i +;;COM_GR_LO_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_GR_LO_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_GR_SP_END-$ ;; length of state section +;; DB GRAVE_SPACE ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW COM_GR_SP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 57,96 ;; STANDALONE GRAVE +;;COM_GR_SP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_GR_SP_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR_437_XLAT ;; +FR_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+ p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 53,015H ;; Section symbol -  +CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT + XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 7,015H ;; Section symbol -  +CP437_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 ???????????????????May need change.... +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,'$' ;; dollar currency symbol +CP437_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR_850_XLAT ;; +FR_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18 + DB 1 ;; number of scans + DB 53,0F5H ;; Section symbol -  +CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB+XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS **** 12/18 + DB 1 ;; number of scans + DB 7,0F5H ;; Section symbol -  +CP850_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,0CFH ;; international currency symbol +CP850_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_AC_LO_END-$ ;; length of state section +;; DB ACUTE_LOWER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW CP850_AC_LO_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 21,0ECH ;; y acute +;;CP850_AC_LO_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_AC_LO_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Acute Upper Case +;;;; KEYBOARD TYPES: All +;;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_AC_UP_END-$ ;; length of state section +;; DB ACUTE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW CP850_AC_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 30,0B5H ;; A acute +;; DB 23,0D6H ;; I acute +;; DB 24,0E0H ;; O acute +;; DB 22,0E9H ;; U acute +;; DB 21,0EDH ;; Y acute +;;CP850_AC_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_AC_UP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Diaresis Upper +;;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis + CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_GR_UP_END-$ ;; length of state section +;; DB GRAVE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW CP850_GR_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 30,0B7H ;; A grave +;; DB 18,0D4H ;; E grave +;; DB 23,0DEH ;; I grave +;; DB 24,0E3H ;; O grave +;; DB 22,0EBH ;; U grave +;;CP850_GR_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_GR_UP_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Circumflex Upper +;;;; KEYBOARD TYPES: All +;;;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex + CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM new file mode 100644 index 0000000..3fdb453 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFFR120.ASM @@ -0,0 +1,2307 @@ +; ACUTE lc y added +; ****** CNS 12/18 +; ****** CNS 01/21 NUM PAD + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Belgium. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;; Modded from French - DTF 11-Sep-86 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC FR1_LOGIC ;; + PUBLIC FR1_437_XLAT ;; + PUBLIC FR1_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +FR1_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW TYPEWRITER_CAPS_LK ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF CAPS_STATE + SET_FLAG DEAD_UPPER + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF + IFF R_ALT_SHIFT ;; + ANDF EITHER_CTL,NOT ;; + ANDF LC_E0,NOT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF + ENDIFF + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;*************************** +NON_DEAD: ;; +;ADDED FOR DIVIDE SIGN ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + IFF EITHER_CTL,NOT + ANDF EITHER_ALT,NOT + XLATT DIVIDE_SIGN ;; + ENDIFF + EXIT_STATE_LOGIC ;; + ENDIFF ;; +;BD END OF ADDITION +;**************************** +;NON_DEAD: ;; +; ;; +; IFKBD G_KB+P12_KB ;; Avoid accidentally translating +; ANDF LC_E0 ;; the "/" on the numeric pad of the +; EXIT_STATE_LOGIC ;; G keyboard +; ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; +;****************************************** +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +;******************************************* + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;****************************************** +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +;****************************************** + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;IFF EITHER_SHIFT,NOT ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR1_COMMON_XLAT ;; +FR1_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G + P +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB ;P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;;8 Number of entries +; DB 12,-1,-1 ;; +; DB 13,0,82H ;; + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_PK1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_PK1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; 10 Number of entries +; DB 12,-1,-1 ;; invalid key U.S. alt - +; DB 13,-1,-1 ;; invalid key U.S. alt = +; DB 07,0,82H ;; alt - (minus sign) +; DB 13,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_PK1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_PK1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: GKB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB ;P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 10 ;; Number of entries + DB 12,-1,-1 ;; + DB 13,31,13 ;; + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 43,-1,-1 ;; \ + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' + DB 86,28,86 ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_PK1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_PK1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 12 ;; Number of entries + DB 12,-1,-1 ;; + DB 07,30,07 ;; ctl + number six key + DB 12,29,12 ;; ctl + ] + DB 13,31,13 ;; + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 43,-1,-1 ;; \ + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' + DB 9,28,9 ;; \ position (this is also the underscore position) +COM_CTRL_PK1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_PK1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: AT + XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; 9 Number of entries +; DB 12,-1,-1 ;; invalid key U.S. alt - +; DB 13,0,82H ;; alt - (minus sign) +; DB 53,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 10;11 ;; Number of entries + DB 12,-1,-1 ;; invalid U.S. - + DB 43,-1,-1 ;; invalid U.S. \ + DB 41,28,41 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key +; DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K3_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; Number of entries + DB 12,-1,-1 ;; + DB 43,-1,-1 ;; + DB 43,28,43 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key +; DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K3_T3_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;*************************************** CNS P12 Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, AT +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of entries + DB 40 ;; + FLAG ACUTE ;; + DB 43 ;; + FLAG GRAVE ;; + DB 53 ;; + FLAG TILDE ;; + ;; +COM_DK_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;NO THRD SHIFT DEAD KEY FOR THE P12 +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_K1_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of entries + DB 40 ;; + FLAG ACUTE ;; + DB 41 ;; + FLAG GRAVE ;; + DB 53 ;; + FLAG TILDE ;; + ;; +COM_DK_TH_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************************************** CNS P12 Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +COM_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************************************** CNS P12 Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common ;;change **********CNS ************** +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: All except the p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;**************************************************** CODE eliminated********** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NUM PAD altered ******** +;; CODE PAGE: 850 CNS engraved "," out +;; STATE: Numeric Pad - Divide Sign +;; KEYBOARD TYPES: G +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_DIVID_END-$ ;; length of state section +;; DB DIVIDE_SIGN ;; State ID +;; DW G_KB+P12_KB ;; Keyboard Type +;; DB -1,-1 ;; error character = standalone accent +;; ;; +;; DW CP850_DIVID_T1_END-$ ;; Size of xlat table +;; DB TYPE_2_TAB ;; xlat options: +;; DB 2 ;; number of scans +;; DB 0E0H,',',0E0H ;; DIVIDE SIGN +;; DB 51,',',0E0H ;; +;; CP850_DIVID_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;; CP850_DIVID_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Numeric Key Pad - Multiplication +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_PAD_K1_END-$ ;; length of state section +;; DB NUMERIC_PAD ;; State ID +;; DW G_KB ;; Keyboard Type +;; DB -1,-1 ;; Buffer entry for error character +;; ;; +;; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE ;; xlat options: +;; DB 1 ;; number of entries +;; DB 51,',' ; (removed *** CNS ****) ;; MULTIPLICATION SIGN +;; CP850_PAD_K1_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;; CP850_PAD_K1_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************************************************* +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'a' ;; small a + DB 17,'z' ;; small z + DB 30,'q' ;; small q + DB 39,'m' ;; small m + DB 44,'w' ;; small w +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'A' ;; caps A + DB 17,'Z' ;; caps Z + DB 30,'Q' ;; caps Q + DB 39,'M' ;; caps M + DB 44,'W' ;; caps W +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB ;P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,"" ;; superscript 2 + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,0E6H ;; mu + DB 86,'<' ;; + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_PK1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_PT1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 41,"" ;; superscript 2 + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"_" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"=" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,"*" ;; + DB 86,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'!' ;; + +COM_NA_LO_PT1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_PK1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES:AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 41,"<" ;; + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,0E6H ;; mu + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 8,"" ;; + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 41,0E6H ;; mu + DB 43,'<' ;; + DB 50,',' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB ;+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'' ;; + DB 86,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_PK1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_PT1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"+" ;; plus sign + DB 27,09CH ;; symbol + DB 40,'%' ;; + DB 41,"" ;; superscript 3 + DB 43,0E6H ;; - mu symbol + DB 86,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_PT1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_PK1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,'' ;; + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,'>' ;; + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; + DB 27,"*" ;; + DB 40,'%' ;; + DB 43,'' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB ;+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 86,'\' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;******************************************* CNS Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW P12_KB ;; ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW COM_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +COM_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;******************************************* CNS Addition +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_PK1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_PT1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 11 ;; number of entries + DB 3,'~' ;; + DB 4,'#' ;; + DB 5,'{' ;; + DB 6,'[' ;; + DB 7,'|' ;; + DB 8,'`' ;; grave symbol not a dead key rep + DB 9,'\' ;; + DB 10,'^' ;; circumflex (caret) + DB 11,'@' ;; + DB 12,']' ;; + DB 13,'}' ;; +COM_THIRD_PT1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_PK1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 2,"|" ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,'^' ;; + DB 10,'{' ;; + DB 11,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 41,'\' ;; +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: ALL +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_CI_UP_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,126 ;; STANDALONE TIDLE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Specific Translate Section for 437 +;; +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR1_437_XLAT ;; +FR1_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 7,15H ;; Section Symbol +CP437_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************** CNS Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 53,015H ;; Section symbol -  +CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************** CNS Addition +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB ;+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 41,00H ;; 3 Superscript +CP437_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP437_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,164 ;; scan code,ASCII - n +CP437_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP437_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,165 ;; scan code,ASCII - N +CP437_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +COM_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +COM_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +COM_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 ???????????????????May need change.... +;; STATE: Third Shift +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_PEND-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_THIRD_T1_PEND-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,'$' ;; dollar currency symbol +CP437_THIRD_T1_PEND: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_PEND: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP437 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP437_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW G_KB+AT_KB+XT_KB ;; Keyboard Type +; DB 0FEH,0 ;; error character = standalone accent +; ;; +; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,0FEH ;; error character = standalone accent +;CP437_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP437_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; BE Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR1_850_XLAT ;; +FR1_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 7,0F5H ;; Section symbol -  +CP850_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************** CNS Addition +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18 + DB 1 ;; number of scans + DB 53,0F5H ;; Section symbol -  +CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************** CNS Addition +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB ;P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of scans + DB 41,0FCH ;; 3 Superscript +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +CP850_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_PEND-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_P1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,0CFH ;; international currency symbol +CP850_THIRD_P1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_PEND: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 49,164 ;; scan code,ASCII - n + DB 16,0C6H ;; a + DB 24,0E4H ;; o +CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 126,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 49,165 ;; scan code,ASCII - N + DB 16,0C7H ;; A + DB 24,0E5H ;; O +CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 16,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute + DB 21,0ECH ;; y acute ADDED 12/16 CNS ********** +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 16,0B5H ;; A acute + DB 18,090H ;; E acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 22,0E9H ;; U acute + DB 21,0EDH ;; Y acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0EFH ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB+P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,8EH ;; A di + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis + DB 24,99H ;; O di + DB 22,9AH ;; U di +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: CP850 +;; STATE: Diaeresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F9H ;; scan code,ASCII - SPACE +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_SP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: ALL +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** +;***************************************** CNS P12 Addition ***************** +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB+AT_KB+XT_KB ;; + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;***************************************** CNS P12 Addition ***************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Circumflex Upper +;;;; KEYBOARD TYPES: P12 +;;;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_PEND-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_PEND-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex + CP850_CI_UP_T1_PEND: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_CI_UP_PEND: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************** CNS P12 Addition ***************** + + DW 0 ;; LAST STATE +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM b/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM new file mode 100644 index 0000000..7648c5e --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFFR189.ASM @@ -0,0 +1,1529 @@ +;; LATEST CHANGE ALT & CTL disenabled US invalids +;; Section symbol scan code incorrect +;; zero scan code tag deleted from end of tag field +;; Changed key #5 for the XT "/" instead of "'"..Pubs error +;; ****************** CNS 12/18/86************************* + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC FR2_LOGIC ;; + PUBLIC FR2_437_XLAT ;; + PUBLIC FR2_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +FR2_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW TYPEWRITER_CAPS_LK ;; special features (shift lock state) + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF CAPS_STATE + SET_FLAG DEAD_UPPER + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +; XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +; XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +;NON_DEAD: ;; +; ;; +; IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic +; ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. +; IFF EITHER_SHIFT ;; Numeric keys are not. +; XLATT NON_ALPHA_UPPER ;; +; IFF CAPS_STATE ;; +; XLATT ALPHA_LOWER ;; +; ELSEF ;; +; XLATT ALPHA_UPPER ;; +; ENDIFF ;; +; ELSEF ;; +; XLATT NON_ALPHA_LOWER ;; +; IFF CAPS_STATE ;; +; XLATT ALPHA_UPPER ;; +; ELSEF ;; +; XLATT ALPHA_LOWER ;; +; ENDIFF ;; +; ENDIFF ;; +; ELSEF ;; +; IFF EITHER_SHIFT,NOT ;; +; IFKBD XT_KB+AT_KB ;; +; IFF EITHER_CTL ;; +; ANDF ALT_SHIFT ;; +; XLATT THIRD_SHIFT ;; +; ENDIFF ;; +; ELSEF ;; +; IFF EITHER_CTL,NOT ;; +; ANDF R_ALT_SHIFT ;; +; XLATT THIRD_SHIFT ;; +; ENDIFF ;; +; ENDIFF ;; +; ENDIFF ;; +; ENDIFF ;; +; ;; +; EXIT_STATE_LOGIC ;; +; ;; +;LOGIC_END: ;; +; ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR2_COMMON_XLAT ;; +FR2_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set +; DB 40 eliminate ;; +; FLAG ACUTE ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set +; DB 40 eliminate ;; +; FLAG DIARESIS ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;********************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_DK_TH_END-$ ;; length of state section +;; DB DEAD_THIRD ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB -1,-1 ;; Buffer entry for error character +;; ;; Set Flag Table +;; DW 1 ;; number of entries +;; DB 8 ;; scan code +;; FLAG GRAVE ;; flag bit to set +;; ;; +;;COM_DK_TH_END: ;; +;; ;; +;; ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; 10 Number of entries +; DB 12,-1,-1 ;; invalid key U.S. alt - +; DB 13,-1,-1 ;; invalid key U.S. alt = +; DB 07,0,82H ;; alt - (minus sign) +; DB 13,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 12 ;; Number of entries + DB 12,-1,-1 ;; + DB 07,30,07 ;; ctl + number six key + DB 12,29,12 ;; ctl + ] + DB 13,31,13 ;; + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 43,-1,-1 ;; \ + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' + DB 9,28,9 ;; \ position (this is also the underscore position) +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: AT + XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; 9 Number of entries +; DB 12,-1,-1 ;; invalid key U.S. alt - +; DB 13,0,82H ;; alt - (minus sign) +; DB 53,0,83H ;; alt = (equal sign) + DB 16,0,1EH ;; A + DB 17,0,2CH ;; Z + DB 30,0,10H ;; Q + DB 39,0,32H ;; M + DB 44,0,11H ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_ALT_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; invalid U.S. - + DB 43,-1,-1 ;; invalid U.S. \ + DB 41,28,41 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K3_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 11 ;; Number of entries + DB 12,-1,-1 ;; + DB 43,-1,-1 ;; + DB 43,28,43 ;; valid ctl + \ + DB 07,30,07 ;; ctl + number six key + DB 13,31,13 ;; ctl - or _ + DB 16,01,16 ;; A + DB 17,26,17 ;; Z + DB 30,17,30 ;; Q + DB 39,13,39 ;; M + DB 44,23,44 ;; W + DB 50,-1,-1 ;; U.S. 'M' +COM_CTRL_K3_T3_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;****************************************************************************** +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'a' ;; small a + DB 17,'z' ;; small z + DB 30,'q' ;; small q + DB 39,'m' ;; small m + DB 44,'w' ;; small w +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 16,'A' ;; caps A + DB 17,'Z' ;; caps Z + DB 30,'Q' ;; caps Q + DB 39,'M' ;; caps M + DB 44,'W' ;; caps W +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 41,"" ;; superscript 2 + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"_" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"=" ;; + DB 27,"$" ;; + DB 40,"" ;; grave - u + DB 43,"*" ;; + DB 86,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'!' ;; + +COM_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; + DB 5,"'" ;; + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; grave - a small + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave small + DB 43,0E6H ;; mu symbol - + DB 41,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'=' ;; + +COM_NA_LO_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,"&" ;; + DB 3,"" ;; acute - e + DB 4,'"' ;; ' on the AT_KB + DB 5,"'" ;; *** CNS **** 12/18/86 pubs wrong + DB 6,"(" ;; + DB 7,"-" ;; + DB 8,"" ;; grave - e + DB 9,"!" ;; + DB 10,"" ;; c - cedilla small + DB 11,"" ;; + DB 12,")" ;; + DB 13,"-" ;; + DB 27,"$" ;; + DB 40,"" ;; grave small + DB 41,0E6H ;; mu symbol - + DB 43,'<' ;; + + DB 50,',' ;; < + DB 51,';' ;; - + DB 52,':' ;; + DB 53,'=' ;; +COM_NA_LO_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 21 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"+" ;; plus sign + DB 27,09CH ;; symbol + DB 40,'%' ;; + DB 41,"" ;; superscript 3 + DB 43,0E6H ;; - mu symbol + DB 86,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; underscore + DB 43,09CH ;; symbol + DB 40,'%' ;; + DB 27,"*" ;; asterisk + DB 41,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 2,'1' ;; + DB 3,'2' ;; + DB 4,'3' ;; + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;; + DB 8,'7' ;; + DB 9,'8' ;; + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0F8H ;; degree symbol + DB 13,"_" ;; underscore + DB 41,09CH ;; symbol + DB 40,'%' ;; + DB 27,"*" ;; asterisk + DB 43,'>' ;; + DB 50,'?' ;; + DB 51,'.' ;; + DB 52,'/' ;; + DB 53,'+' ;; +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB +P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 11 ;; number of entries + DB 3,'~' ;; + DB 4,'#' ;; + DB 5,'{' ;; + DB 6,'[' ;; + DB 7,'|' ;; + DB 8,'`' ;; grave symbol not a dead key rep + DB 9,'\' ;; + DB 10,'^' ;; circumflex (caret) + DB 11,'@' ;; + DB 12,']' ;; + DB 13,'}' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 4,'#' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 41,'\' ;; + DB 3,'@' ;; + DB 7,'^' ;; circumflex (caret) +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 4,'#' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; + DB 3,'@' ;; + DB 7,'^' ;; circumflex (caret) +COM_THIRD_T1_K3_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW COM_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +COM_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_AC_UP_END-$ ;; length of state section +;; DB ACUTE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW COM_AC_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 2 ;; number of scans +;; DB 18,'' ;; scan code,ASCII - e +;;COM_AC_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_AC_UP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_AC_SP_END-$ ;; length of state section +;; DB ACUTE_SPACE ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW COM_AC_SP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 57,39 ;; scan code,ASCII - SPACE +;;COM_AC_SP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_AC_SP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +COM_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +COM_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +COM_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +COM_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_GR_LO_END-$ ;; length of state section +;; DB GRAVE_LOWER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW COM_GR_LO_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 18,'' ;; scan code,ASCII - e +;; DB 30,'' ;; scan code,ASCII - a +;; DB 24,'' ;; scan code,ASCII - o +;; DB 22,'' ;; scan code,ASCII - u +;; DB 23,'' ;; scan code,ASCII - i +;;COM_GR_LO_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_GR_LO_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_GR_SP_END-$ ;; length of state section +;; DB GRAVE_SPACE ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW COM_GR_SP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 57,96 ;; STANDALONE GRAVE +;;COM_GR_SP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_GR_SP_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,'' ;; scan code,ASCII - a + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR2_437_XLAT ;; +FR2_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+ p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 53,015H ;; Section symbol -  +CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT + XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 7,015H ;; Section symbol -  +CP437_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 ???????????????????May need change.... +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,'$' ;; dollar currency symbol +CP437_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; FR Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC FR2_850_XLAT ;; +FR2_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18 + DB 1 ;; number of scans + DB 53,0F5H ;; Section symbol -  +CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB+XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_LO_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS **** 12/18 + DB 1 ;; number of scans + DB 7,0F5H ;; Section symbol -  +CP850_NA_LO_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: *** CNS 12/18 + DB 1 ;; number of scans + DB 27,0CFH ;; international currency symbol +CP850_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_AC_LO_END-$ ;; length of state section +;; DB ACUTE_LOWER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW CP850_AC_LO_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 1 ;; number of scans +;; DB 21,0ECH ;; y acute +;;CP850_AC_LO_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_AC_LO_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Acute Upper Case +;;;; KEYBOARD TYPES: All +;;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_AC_UP_END-$ ;; length of state section +;; DB ACUTE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 39,0 ;; error character = standalone accent +;; ;; +;; DW CP850_AC_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 30,0B5H ;; A acute +;; DB 23,0D6H ;; I acute +;; DB 24,0E0H ;; O acute +;; DB 22,0E9H ;; U acute +;; DB 21,0EDH ;; Y acute +;;CP850_AC_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_AC_UP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Diaresis Upper +;;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis + CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW CP850_GR_UP_END-$ ;; length of state section +;; DB GRAVE_UPPER ;; State ID +;; DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type +;; DB 96,0 ;; error character = standalone accent +;; ;; +;; DW CP850_GR_UP_T1_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +;; DB 5 ;; number of scans +;; DB 30,0B7H ;; A grave +;; DB 18,0D4H ;; E grave +;; DB 23,0DEH ;; I grave +;; DB 24,0E3H ;; O grave +;; DB 22,0EBH ;; U grave +;;CP850_GR_UP_T1_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;CP850_GR_UP_END: ;; length of state section +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; CODE PAGE: 850 +;;;; STATE: Circumflex Upper +;;;; KEYBOARD TYPES: All +;;;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB+XT_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 16,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex + CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFGE.ASM b/v4.0/src/DEV/KEYBOARD/KDFGE.ASM new file mode 100644 index 0000000..a244c28 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFGE.ASM @@ -0,0 +1,1333 @@ +;; LATEST CHANGE ALT & CTL "Z & Y", "-" symbol (AT) +;; Eliminated zero scan tag from alpha upper CP section +;; SECTION SYMBOL +;; SCAN CODE OUTPUT CHANGES MADE 12/18/86 +;; **************** CNS ************************ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC GE_LOGIC ;; + PUBLIC GE_437_XLAT ;; + PUBLIC GE_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; GE State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +GE_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW TYPEWRITER_CAPS_LK ;; special features (shift lock state) + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFKBD G_KB+P12_KB ;; FUNCTIONS AS A SHIFT LOCK + IFF CAPS_STATE ;; + ANDF EITHER_SHIFT ;; + SET_FLAG DEAD_LOWER ;; + ELSEF + IFF CAPS_STATE ;; + SET_FLAG DEAD_UPPER ;; + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF + SET_FLAG DEAD_LOWER ;; NORMAL STATE LC + ENDIFF ;; SHIFT OR NORMAL CHECK END + ENDIFF ;; CAPS OR SHIFT CHECK END + ENDIFF ;; BOTH SHIFT LOCK AND CAPS END + ELSEF ;; + IFF CAPS_STATE ;; THIS MEANS IT IS A at OR xt + ANDF EITHER_SHIFT + SET_FLAG DEAD_UPPER + ELSEF + IFF CAPS_STATE ;; + SET_FLAG DEAD_LOWER ;; + ELSEF + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF + SET_FLAG DEAD_LOWER ;; NORMAL STATE LC + ENDIFF ;; SHIFT OR NORMAL CHECK END + ENDIFF ;; CAPS OR SHIFT CHECK END + ENDIFF ;; BOTH SHIFT LOCK AND CAPS END ;; + ENDIFF ;; IS IT ENHANCED OR NOT END + ENDIFF ;; NO CONTROL OR ALT END + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +; XLATT NON_ALPHA_UPPER ;; add in keyboard logic + IFKBD G_KB+P12_KB ;; SHIFT STATE ONLY FOR P12 & G + IFF CAPS_STATE ;; for AT and XT + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;;THIS MEANS normal SHIFT STATE + XLATT NON_ALPHA_UPPER ;;FOR G AND P12 + ENDIFF ;; + ELSEF + IFF CAPS_STATE ;; for AT and XT + XLATT ALPHA_LOWER ;; shift state & caps + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; shift state & no caps + XLATT NON_ALPHA_UPPER ;; + ENDIFF ;; + ENDIFF + ELSEF ;; SHIFT STATE DOES NOT EXIST +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION +;; XLATT NON_ALPHA_LOWER ;; + IFKBD G_KB+P12_KB ;; G & p12 NO shift state + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ELSEF ;;AT & XT WITH NO SHIFT + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + XLATT NON_ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; GE Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC GE_COMMON_XLAT ;; +GE_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; 5 number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY - switch two keys +; DB 12,-1,-1 ;; invalid key U.S. - +; DB 13,-1,-1 ;; invalid key U.S. = + DB 21,0,44 ;; alt z function + DB 44,0,21 ;; alt y function +; DB 53,0,82H ;; alt - (minus sign) +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 5 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; no backslash + DB 53,31,53 ;; ctl + - or _ + DB 21,1AH,21 ;; ctl z function + DB 44,19h,44 ;; ctl y function + DB 12,28,12 ;; \ position +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 6 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 12,-1,-1 ;; invalid key U.S. - + DB 43,-1,-1 ;; no backslash + DB 53,31,53 ;; ctl + - or _ + DB 21,1AH,21 ;; ctl z function + DB 44,19h,44 ;; ctl y function + DB 41,28,41 ;; \ position +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K3_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K3_T3_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 6 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; no backslash + DB 12,-1,-1 ;; invalid key U.S. - + DB 53,31,53 ;; ctl + - or _ + DB 21,1AH,21 ;; ctl z function + DB 44,19h,44 ;; ctl y function + DB 43,28,43 ;; \ position +COM_CTRL_K3_T3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 26,081h ;; diaresis - + DB 39,094h ;; diaresis - + DB 40,084h ;; diaresis - + DB 44,'y' ;; + DB 21,'z' ;; ;; +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 26,09AH ;; Diaresis - + DB 39,099H ;; Diaresis - + DB 40,08EH ;; Diaresis - + DB 44,'Y' ;; + DB 21,'Z' ;; +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Numeric Key Pad ;;**********CNS****************** +;; KEYBOARD TYPES: G_KB ;;change does not apply to P12 +;; TABLE TYPE: Translate ;;P12 Key #54 has a comma available +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,44 ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;****************************** +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of entries + DB 41,'^' ;; + DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'4' ;; + DB 6,'5' ;; + DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 10,'9' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 11,'0' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 12,0E1H ;; + DB 27,'+' ;; + DB 43,'#' ;; pound sign + DB 86,'<' ;; + DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 53,'-' ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 41,'<' ;; different than enhanced + DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'4' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 6,'5' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0E1H ;; + DB 27,'+' ;; + DB 43,'#' ;; pound sign + DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 53,'-' ;; +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 2,'1' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 3,'2' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 4,'3' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'4' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 6,'5' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 7,'6' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 8,'7' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 9,'8' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 10,'9' ;; + DB 11,'0' ;; + DB 12,0E1H ;; + DB 27,'+' ;; + DB 41,'#' ;; pound sign + DB 43,'<' ;; + DB 51,',' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 52,'.' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 53,'-' ;; +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 41,0F8H ;; + DB 3,'"' ;; + DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'$' ;; + DB 6,'%' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 27,'*' ;; + DB 43,"'" ;; + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 16 ;; number of entries + DB 41,'>' ;; + DB 3,'"' ;; + DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'$' ;; + DB 6,'%' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 27,'*' ;; + DB 43,"^" ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 16 ;; number of entries + DB 3,'"' ;; + DB 2,'!' ;;IMPLEMENTED FOR SHIFT STATE STATUS + DB 5,'$' ;; + DB 6,'%' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 27,'*' ;; + DB 41,"^" ;; + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 11 ;; number of entries + DB 3,0FDH ;; + DB 4,0FCH ;; - converted to script 3 in Germany + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; + DB 12,'\' ;; + DB 16,'@' ;; + DB 27,07EH ;; Tilde - ~ + DB 86,07CH ;; Solid vertical bar + DB 50,0E6H ;; - mu symbol +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 26,'[' ;; + DB 27,']' ;; + DB 41,'\' ;; + DB 3,'@' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; + DB 3,'@' ;; +COM_THIRD_K3_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_LO_END-$ ;; length of state section +; DB ACUTE_LOWER ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_LO_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 5 ;; number of scans +; DB 18,'' ;; scan code,ASCII - e +; DB 30,'' ;; scan code,ASCII - a +; DB 24,'' ;; scan code,ASCII - o +; DB 22,'' ;; scan code,ASCII - u +; DB 23,'' ;; scan code,ASCII - i +;COM_AC_LO_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_LO_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Acute Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_UP_END-$ ;; length of state section +; DB ACUTE_UPPER ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_UP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 18,'' ;; scan code,ASCII - e +;COM_AC_UP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_UP_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Acute Space Bar +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_SP_END-$ ;; length of state section +; DB ACUTE_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,39 ;; scan code,ASCII - SPACE +;COM_AC_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_SP_END: ;; +;; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; GE Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC GE_437_XLAT ;; +GE_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; eliminated !!!! + DW CP437_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +CP437_NA_LO_T1_END: ;; + ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: ***** CNS 12/18 + DB 1 ;; number of scans + DB 4,015H ;;  - Section symbol +CP437_NA_UP_T1_END: ;; + ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; GE Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC GE_850_XLAT ;; +GE_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +CP850_NA_LO_T1_END: ;; + ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: **** CNS 12/18 + DB 1 ;; number of scans + DB 4,0F5H ;;  - Section symbol + ;; +CP850_NA_UP_T1_END: ;; + ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0eFh,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0efh,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B5H ;; Caps acute A + DB 23,0D6H ;; Caps acute I + DB 24,0E0H ;; Caps acute O + DB 22,0E9H ;; Caps acute U + DB 18,'' ;; scan code,ASCII - e +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0efh,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0efh ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B7H ;; Caps grave A + DB 18,0D4H ;; Caps grave E + DB 23,0DEH ;; Caps grave I + DB 24,0E3H ;; Caps grave O + DB 22,0EBH ;; Caps grave U + ;; +CP850_GR_UP_T1_END: ;; + ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT.ASM new file mode 100644 index 0000000..c29b453 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFIT.ASM @@ -0,0 +1,794 @@ +;; LATEST CHANGE ALT & CTL + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC IT_LOGIC ;; + PUBLIC IT_437_XLAT ;; + PUBLIC IT_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +IT_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;*************************************** +;; IT Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT_COMMON_XLAT ;; +IT_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 3 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY + DB 53,0,82H ;; valid alt - + DB 12,-1,-1 ;; invalid alt - + DB 13,-1,-1 ;; invalid alt = +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 10 ;; number of entries + DB 41,"\" ;; \ + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 86,'<' ;; < + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 43,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 41,"<" ;; < + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 43,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 43,'<' ;; < + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 41,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of entries + DB 41,07CH ;; Solid vertical bar - | + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,135 ;; c - cedilla - + DB 27,'*' ;; + DB 40,0F8H ;; - degree symbol + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of entries + DB 41,'>' ;; > + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,'@' ;; @ AT sign replaces c - cedilla - + DB 27,'*' ;; + DB 40,'#' ;; # sign replaces - degree symbol + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,'@' ;; @ AT sign replaces c - cedilla - + DB 27,'*' ;; + DB 40,'#' ;; # sign replaces - degree symbol + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'@' ;; + DB 40,'#' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 41,'\' ;; + DB 26,'[' ;; + DB 27,']' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 43,'\' ;; + DB 26,'[' ;; + DB 27,']' ;; +COM_THIRD_K3_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT_437_XLAT ;; +IT_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: G_KB+P12+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 43,015H ;; Section symbol -  + CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP437_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 41,015H ;; Section symbol -  + CP437_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP437_NA_UP_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT_850_XLAT ;; +IT_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: G_KB+P12+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 43,0F5H ;; Section symbol -  + CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 41,0F5H ;; Section symbol -  + CP850_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_NA_UP_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM new file mode 100644 index 0000000..a01b8c9 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFIT141.ASM @@ -0,0 +1,794 @@ + + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC IT2_LOGIC ;; + PUBLIC IT2_437_XLAT ;; + PUBLIC IT2_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +IT2_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;*************************************** +;; IT Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT2_COMMON_XLAT ;; +IT2_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 3 number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY +;; DB 53,0,82H ;; valid alt - +;; DB 12,-1,-1 ;; invalid alt - +;; DB 13,-1,-1 ;; invalid alt = +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 10 ;; number of entries + DB 41,"\" ;; \ + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 86,'<' ;; < + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 43,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 41,"<" ;; < + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 43,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 12,"'" ;; ' + DB 13,141 ;; grave i - ; + DB 27,'+' ;; + + DB 43,'<' ;; < + DB 53,'-' ;; - + DB 39,149 ;; grave o - + DB 40,133 ;; grave a - ; + DB 41,151 ;; grave u - ; + DB 26,138 ;; grave e - ; +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of entries + DB 41,07CH ;; Solid vertical bar - | + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,135 ;; c - cedilla - + DB 27,'*' ;; + DB 40,0F8H ;; - degree symbol + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 18 ;; number of entries + DB 41,'>' ;; > + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,'@' ;; @ AT sign replaces c - cedilla - + DB 27,'*' ;; + DB 40,'#' ;; # sign replaces - degree symbol + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,'^' ;; + DB 26,130 ;; acute e - ; + DB 39,'@' ;; @ AT sign replaces c - cedilla - + DB 27,'*' ;; + DB 40,'#' ;; # sign replaces - degree symbol + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'@' ;; + DB 40,'#' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 41,'\' ;; + DB 26,'[' ;; + DB 27,']' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 43,'\' ;; + DB 26,'[' ;; + DB 27,']' ;; +COM_THIRD_K3_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT2_437_XLAT ;; +IT2_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: G_KB+P12+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 43,015H ;; Section symbol -  + CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP437_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP437_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 41,015H ;; Section symbol -  + CP437_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP437_NA_UP_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; IT Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC IT2_850_XLAT ;; +IT2_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: G_KB+P12+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 43,0F5H ;; Section symbol -  + CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_NA_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 41,0F5H ;; Section symbol -  + CP850_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_NA_UP_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM b/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM new file mode 100644 index 0000000..7b07247 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFIT142.ASM @@ -0,0 +1,864 @@ + + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; ;AN000; + INCLUDE POSTEQU.INC ;; ;AN000; + INCLUDE KEYBMAC.INC ;; ;AN000; + ;; ;AN000; + PUBLIC IT1_LOGIC ;; ;AN000; + PUBLIC IT1_437_XLAT ;; ;AN000; + PUBLIC IT1_850_XLAT ;; ;AN000; + ;; ;AN000; +CODE SEGMENT PUBLIC 'CODE' ;; ;AN000; + ASSUME CS:CODE,DS:CODE ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Standard translate table options are a liner search table ;AN000; +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; IT State Logic ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + ;; ;AN000; +IT1_LOGIC: ;AN000; + ;AN000; + DW LOGIC_END-$ ;; length ;AN000; + ;; ;AN000; + DW 0 ;; special features ;AN000; + ;; ;AN000; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; OPTIONS: If we find a scan match in ;AN000; +;; an XLATT or SET_FLAG operation then ;AN000; +;; exit from INT 9. ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + OPTION EXIT_IF_FOUND ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Dead key definitions must come before ;AN000; +;; dead key translations to handle ;AN000; +;; dead key + dead key. ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + IFF EITHER_ALT,NOT ;; ;AN000; + ANDF EITHER_CTL,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + SET_FLAG DEAD_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + SET_FLAG DEAD_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; ACUTE ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +ACUTE_PROC: ;; ;AN000; + ;; ;AN000; + IFF ACUTE,NOT ;; ;AN000; + GOTO DIARESIS_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT ACUTE_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ACUTE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ACUTE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ACUTE_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ACUTE_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_ACUTE: ;; ;AN000; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT ;AN000; + BEEP ;; failed or we are ina bad shift state. ;AN000; + GOTO NON_DEAD ;; Either is invalid so BEEP and fall ;AN000; + ;; through to generate the second char. ;AN000; + ;; Note that the dead key flag will be ;AN000; + ;; reset before we get here. ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; DIARESIS ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +DIARESIS_PROC: ;; ;AN000; + ;; ;AN000; + IFF DIARESIS,NOT ;; ;AN000; + GOTO GRAVE_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT DIARESIS_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT DIARESIS_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT DIARESIS_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT DIARESIS_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_DIARESIS: ;; ;AN000; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; GRAVE ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +GRAVE_PROC: ;; ;AN000; + ;; ;AN000; + IFF GRAVE,NOT ;; ;AN000; + GOTO CIRCUMFLEX_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT GRAVE_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT GRAVE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT GRAVE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE,NOT ;; ;AN000; + XLATT GRAVE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT GRAVE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_GRAVE: ;; ;AN000; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +CIRCUMFLEX_PROC: ;; ;AN000; + ;; ;AN000; + IFF CIRCUMFLEX,NOT ;; ;AN000; + GOTO NON_DEAD ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT CIRCUMFLEX_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT CIRCUMFLEX_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT CIRCUMFLEX_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE,NOT ;; ;AN000; + XLATT CIRCUMFLEX_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT CIRCUMFLEX_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_CIRCUMFLEX: ;; ;AN000; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Upper, lower and third shifts ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +NON_DEAD: ;; ;AN000; + ;; ;AN000; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating ;AN000; + ANDF LC_E0 ;; the "/" on the numeric pad of the ;AN000; + EXIT_STATE_LOGIC ;; G keyboard ;AN000; + ENDIFF ;; ;AN000; +;;***BD ADDED FOR ALT, CTRL CASES ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + IFF ALT_SHIFT ;; ALT - case ;AN000; + ANDF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT ALT_CASE ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_ALT,NOT ;; CTRL - case ;AN000; + XLATT CTRL_CASE ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + ;; ;AN000; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic ;AN000; + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. ;AN000; + IFF EITHER_SHIFT ;; Numeric keys are not. ;AN000; +;;***BD ADDED FOR NUMERIC PAD ;AN000; + IFF NUM_STATE,NOT ;; ;AN000; + XLATT NUMERIC_PAD ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + XLATT NON_ALPHA_UPPER ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ALPHA_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ALPHA_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; +;;***BD ADDED FOR NUMERIC PAD ;AN000; + IFF NUM_STATE ;; ;AN000; + XLATT NUMERIC_PAD ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + XLATT NON_ALPHA_LOWER ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ALPHA_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ALPHA_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_SHIFT,NOT ;; ;AN000; + IFKBD XT_KB+AT_KB ;; ;AN000; + IFF EITHER_CTL ;; ;AN000; + ANDF ALT_SHIFT ;; ;AN000; + XLATT THIRD_SHIFT ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF R_ALT_SHIFT ;; ;AN000; + XLATT THIRD_SHIFT ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + EXIT_STATE_LOGIC ;; ;AN000; + ;; ;AN000; +LOGIC_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;*************************************** ;AN000; +;; IT Common Translate Section ;AN000; +;; This section contains translations for the lower 128 characters ;AN000; +;; only since these will never change from code page to code page. ;AN000; +;; In addition the dead key "Set Flag" tables are here since the ;AN000; +;; dead keys are on the same keytops for all code pages. ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC IT1_COMMON_XLAT ;; ;AN000; +IT1_COMMON_XLAT: ;; ;AN000; + ;; ;AN000; + DW COMMON_XLAT_END-$ ;; length of section ;AN000; + DW -1 ;; code page ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Upper Shift Dead Key ;AN000; +;; KEYBOARD TYPES: G + P12 ;AN000; +;; TABLE TYPE: Flag Table ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; ;; ;AN000; +;; DW COM_DK_UP_K1_END-$ ;; length of state section ;AN000; +;; DB DEAD_UPPER ;; State ID ;AN000; +;; DW G_KB+P12_KB ;; Keyboard Type ;AN000; +;; DB -1,-1 ;; Buffer entry for error character ;AN000; +;; ;; Set Flag Table ;AN000; +;; DW 1 ;; number of entries ;AN000; +;; DB 13 ;; scan code ;AN000; +;; FLAG CIRCUMFLEX ;; flag bit to set ;AN000; +;; ;; ;AN000; +;;COM_DK_UP_K1_END: ;; ;AN000; +;; ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;;***BD - ADDED FOR ALT CASE ;AN000; +;;****************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Alt Case ;AN000; +;; KEYBOARD TYPES: All ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_ALT_K1_END-$ ;; length of state section ;AN000; + DB ALT_CASE ;; State ID ;AN000; + DW ANY_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB TYPE_2_TAB ;; xlat options: ;AN000; + DB 0 ;; 3 number of entries ;AN000; +;;***BD THIS ENTRY IS A TEST ENTRY ;AN000; +;; DB 53,225,0 ;; TEST ENTRY ;AN000; +; DB 53,0,82H ;; valid alt - ;AN000; +; DB 12,-1,-1 ;; invalid alt - ;AN000; +; DB 13,-1,-1 ;; invalid alt = ;AN000; +COM_ALT_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_ALT_K1_END: ;; ;AN000; + ;; ;AN000; +;;****************************** ;AN000; +;;***BD - ADDED FOR CTRL CASE ;AN000; +;;****************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Ctrl Case ;AN000; +;; KEYBOARD TYPES: G_KB+P12_KB+AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_CTRL_K1_END-$ ;; length of state section ;AN000; + DB CTRL_CASE ;; State ID ;AN000; + DW G_KB+P12_KB+AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB TYPE_2_TAB ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; +;;***BD THIS ENTRY IS A TEST ENTRY ;AN000; +;; DB 53,226,0 ;; TEST ENTRY ;AN000; + DB 43,-1,-1 ;; invalid slash ;AN000; + DB 41,28,41 ;; valid slash ;AN000; +COM_CTRL_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_CTRL_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;;change **********CNS ************** ;AN000; +;; STATE: Numeric Key Pad ;AN000; +;; KEYBOARD TYPES: All except the p12 ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_PAD_K1_END-$ ;; length of state section ;AN000; + DB NUMERIC_PAD ;; State ID ;AN000; + DW G_KB+AT_KB+XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 83,',' ;; decimal seperator = , ;AN000; +COM_PAD_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_PAD_K1_END: ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: G_KB+P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW G_KB+P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 10 ;; number of entries ;AN000; + DB 41,"\" ;; \ ;AN000; + DB 12,"'" ;; ' ;AN000; + DB 13,141 ;; grave i - ; ;AN000; + DB 27,'+' ;; + ;AN000; + DB 86,'<' ;; < ;AN000; + DB 53,'-' ;; - ;AN000; + DB 39,149 ;; grave o - ;AN000; + DB 40,133 ;; grave a - ; ;AN000; + DB 43,151 ;; grave u - ; ;AN000; + DB 26,138 ;; grave e - ; ;AN000; +COM_NA_LO_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 9 ;; number of entries ;AN000; + DB 41,"<" ;; < ;AN000; + DB 12,"'" ;; ' ;AN000; + DB 13,141 ;; grave i - ; ;AN000; + DB 27,'+' ;; + ;AN000; + DB 53,'-' ;; - ;AN000; + DB 39,149 ;; grave o - ;AN000; + DB 40,133 ;; grave a - ; ;AN000; + DB 43,151 ;; grave u - ; ;AN000; + DB 26,138 ;; grave e - ; ;AN000; +COM_NA_LO_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: XT + ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K3_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 9 ;; number of entries ;AN000; + DB 12,"'" ;; ' ;AN000; + DB 13,141 ;; grave i - ; ;AN000; + DB 27,'+' ;; + ;AN000; + DB 43,'<' ;; < ;AN000; + DB 53,'-' ;; - ;AN000; + DB 39,149 ;; grave o - ;AN000; + DB 40,133 ;; grave a - ; ;AN000; + DB 41,151 ;; grave u - ; ;AN000; + DB 26,138 ;; grave e - ; ;AN000; +COM_NA_LO_K3_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K3_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: G_KB+P12 ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB+P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 18 ;; number of entries ;AN000; + DB 41,07CH ;; Solid vertical bar - | ;AN000; + DB 3,'"' ;; ;AN000; + DB 4,'' ;; ;AN000; + DB 7,'&' ;; ;AN000; + DB 8,'/' ;; ;AN000; + DB 9,'(' ;; ;AN000; + DB 10,')' ;; ;AN000; + DB 11,'=' ;; ;AN000; + DB 12,'?' ;; ;AN000; + DB 13,'^' ;; ;AN000; + DB 26,130 ;; acute e - ; ;AN000; + DB 39,135 ;; c - cedilla - ;AN000; + DB 27,'*' ;; ;AN000; + DB 40,0F8H ;; - degree symbol ;AN000; + DB 86,'>' ;; ;AN000; + DB 51,';' ;; ;AN000; + DB 52,':' ;; ;AN000; + DB 53,'_' ;; ;AN000; + ;; ;AN000; +COM_NA_UP_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 18 ;; number of entries ;AN000; + DB 41,'>' ;; > ;AN000; + DB 3,'"' ;; ;AN000; + DB 4,'' ;; ;AN000; + DB 7,'&' ;; ;AN000; + DB 8,'/' ;; ;AN000; + DB 9,'(' ;; ;AN000; + DB 10,')' ;; ;AN000; + DB 11,'=' ;; ;AN000; + DB 12,'?' ;; ;AN000; + DB 13,'^' ;; ;AN000; + DB 26,130 ;; acute e - ; ;AN000; + DB 39,'@' ;; @ AT sign replaces c - cedilla - ;AN000; + DB 27,'*' ;; ;AN000; + DB 40,'#' ;; # sign replaces - degree symbol ;AN000; + DB 86,'>' ;; ;AN000; + DB 51,';' ;; ;AN000; + DB 52,':' ;; ;AN000; + DB 53,'_' ;; ;AN000; + ;; ;AN000; +COM_NA_UP_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K2_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: XT + ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K3_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 17 ;; number of entries ;AN000; + DB 3,'"' ;; ;AN000; + DB 4,'' ;; ;AN000; + DB 7,'&' ;; ;AN000; + DB 8,'/' ;; ;AN000; + DB 9,'(' ;; ;AN000; + DB 10,')' ;; ;AN000; + DB 11,'=' ;; ;AN000; + DB 12,'?' ;; ;AN000; + DB 13,'^' ;; ;AN000; + DB 26,130 ;; acute e - ; ;AN000; + DB 39,'@' ;; @ AT sign replaces c - cedilla - ;AN000; + DB 27,'*' ;; ;AN000; + DB 40,'#' ;; # sign replaces - degree symbol ;AN000; + DB 43,'>' ;; ;AN000; + DB 51,';' ;; ;AN000; + DB 52,':' ;; ;AN000; + DB 53,'_' ;; ;AN000; + ;; ;AN000; +COM_NA_UP_K3_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K3_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_THIRD_K1_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 8 ;; number of entries ;AN000; + DB 4,'#' ;; ;AN000; + DB 8,'{' ;; ;AN000; + DB 9,'[' ;; ;AN000; + DB 10,']' ;; ;AN000; + DB 11,'}' ;; ;AN000; + DB 16,'@' ;; ;AN000; + DB 27,'~' ;; ;AN000; + DB 43,"`" ;; grave symbol or closing single quote ;AN000; +COM_THIRD_K1_T1_END: ;; codepoint 60h ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; +COM_THIRD_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_THIRD_PK1_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_THIRD_PK1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 4 ;; number of entries ;AN000; + DB 26,'[' ;; ;AN000; + DB 27,']' ;; ;AN000; + DB 39,'@' ;; ;AN000; + DB 40,'#' ;; ;AN000; +COM_THIRD_PK1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; +COM_THIRD_PK1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_THIRD_K2_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 3 ;; number of entries ;AN000; + DB 41,'\' ;; ;AN000; + DB 26,'[' ;; ;AN000; + DB 27,']' ;; ;AN000; +COM_THIRD_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; +COM_THIRD_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: XT + ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_THIRD_K3_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 3 ;; number of entries ;AN000; + DB 43,'\' ;; ;AN000; + DB 26,'[' ;; ;AN000; + DB 27,']' ;; ;AN000; +COM_THIRD_K3_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; +COM_THIRD_K3_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + DW 0 ;; Last State ;AN000; +COMMON_XLAT_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; IT Specific Translate Section for 437 ;AN000; +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC IT1_437_XLAT ;; ;AN000; +IT1_437_XLAT: ;; ;AN000; + ;; ;AN000; + DW CP437_XLAT_END-$ ;; length of section ;AN000; + DW 437 ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: 437 ;AN000; +;; STATE: Non-Alpha Upper case ;AN000; +;; KEYBOARD TYPES: G_KB+P12+AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB+P12_KB+AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; error character = standalone accent ;AN000; + ;; ;AN000; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: ;AN000; + DB 1 ;; number of scans ;AN000; + DB 43,015H ;; Section symbol -  ;AN000; + CP437_NA_UP_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; + CP437_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: 437 ;AN000; +;; STATE: Non-Alpha Upper case ;AN000; +;; KEYBOARD TYPES: XT + ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_NA_UP_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; error character = standalone accent ;AN000; + ;; ;AN000; + DW CP437_NA_UP_T1_K2_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: ;AN000; + DB 1 ;; number of scans ;AN000; + DB 41,015H ;; Section symbol -  ;AN000; + CP437_NA_UP_T1_K2_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; + CP437_NA_UP_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + DW 0 ;; LAST STATE ;AN000; + ;; ;AN000; +CP437_XLAT_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; IT Specific Translate Section for 850 ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC IT1_850_XLAT ;; ;AN000; +IT1_850_XLAT: ;; ;AN000; + ;; ;AN000; + DW CP850_XLAT_END-$ ;; length of section ;AN000; + DW 850 ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: 850 ;AN000; +;; STATE: Non-Alpha Upper case ;AN000; +;; KEYBOARD TYPES: G_KB+P12+AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB+P12_KB+AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; error character = standalone accent ;AN000; + ;; ;AN000; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: ;AN000; + DB 1 ;; number of scans ;AN000; + DB 43,0F5H ;; Section symbol -  ;AN000; + CP850_NA_UP_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; + CP850_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: 850 ;AN000; +;; STATE: Non-Alpha Upper case ;AN000; +;; KEYBOARD TYPES: XT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_NA_UP_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; error character = standalone accent ;AN000; + ;; ;AN000; + DW CP850_NA_UP_T1_K2_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: ;AN000; + DB 1 ;; number of scans ;AN000; + DB 41,0F5H ;; Section symbol -  ;AN000; + CP850_NA_UP_T1_K2_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; + CP850_NA_UP_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + DW 0 ;; LAST STATE ;AN000; + ;; ;AN000; +CP850_XLAT_END: ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +CODE ENDS ;; ;AN000; + END ;; ;AN000; diff --git a/v4.0/src/DEV/KEYBOARD/KDFLA.ASM b/v4.0/src/DEV/KEYBOARD/KDFLA.ASM new file mode 100644 index 0000000..0d7a692 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFLA.ASM @@ -0,0 +1,1322 @@ +PAGE ,132 +TITLE DOS - LAD Keyboard Definition File +;; LATEST CHANGE ALT & CTL +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DOS - - LAD Keyboard Support - Keyboard Defintion File +; (C) Copyright 1988 Microsoft +; +; This file contains the keyboard tables for Latin American. +; +; The LAD keyboard support is based on the following: +; PC - 246 (Spanish) +; PC/AT - 246 (Spanish) +; PC, PC/XT - 246 (Spanish) +; Ferrari G - 171 +; Ferrari P (?) - 171 +; +; DATE: September 15, 1986 +; +; +; To update KEYBOARD.SYS....enter the following info into KDF.ASM +; +; FILE HEADER +; =========== +; DB 'LA' ; language code +; DW OFFSET LA_LANG_ENT,0 ; language ptr +; +; LANGUAGE ENTRY +; ============== +; EXTRN LA_LOGIC:NEAR +; EXTRN LA_437_XLAT:NEAR +; EXTRN LA_850_XLAT:NEAR +; +; LA_LANG_ENT: DB 'LA' ; +; DW 0 ; reserved +; DW OFFSET LA_LOGIC,0 ; pointer to LANG kb table +; DW 2 ; number of code pages +; DW 437 ; code page +; DW OFFSET LA_437_XLAT,0 ; table pointer +; DW 850 ; code page +; DW OFFSET LA_850_XLAT,0 ; table pointer +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + INCLUDE KEYBSHAR.INC ; + INCLUDE POSTEQU.INC ; + INCLUDE KEYBMAC.INC ; + ; + PUBLIC LA_LOGIC ; + PUBLIC LA_437_XLAT ; + PUBLIC LA_850_XLAT ; + ; +CODE SEGMENT PUBLIC 'CODE' ; + ASSUME CS:CODE,DS:CODE ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Standard translate table options are a liner search table +; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SP State Logic +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +LA_LOGIC: ; + DW LOGIC_END-$ ; length + DW 0 ; special features +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; OPTIONS: If we find a scan match in +; an XLATT or SET_FLAG operation then +; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + OPTION EXIT_IF_FOUND ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Dead key definitions must come before +; dead key translations to handle +; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +IFF EITHER_ALT,NOT ;; +ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; +ENDIFF ;; +IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; +ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; +ACUTE_PROC: ; + ; + IFF ACUTE,NOT ; + GOTO DIARESIS_PROC ; + ENDIFF ; + ; + RESET_NLS ; + IFF R_ALT_SHIFT,NOT ; + XLATT ACUTE_SPACE ; + ENDIFF ; + IFF EITHER_CTL,NOT ; + ANDF EITHER_ALT,NOT ; + IFF EITHER_SHIFT ; + IFF CAPS_STATE ; + XLATT ACUTE_LOWER ; + ELSEF ; + XLATT ACUTE_UPPER ; + ENDIFF ; + ELSEF ; + IFF CAPS_STATE ; + XLATT ACUTE_UPPER ; + ELSEF ; + XLATT ACUTE_LOWER ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ; +INVALID_ACUTE: ; + PUT_ERROR_CHAR ACUTE_LOWER ; If we get here then either the XLATT + BEEP ; failed or we are ina bad shift state. + GOTO NON_DEAD ; Either is invalid so BEEP and fall + ; through to generate the second char. + ; Note that the dead key flag will be + ; reset before we get here. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DIARESIS_PROC: ; + IFF DIARESIS,NOT ; + GOTO GRAVE_PROC ; + ENDIFF ; + ; + RESET_NLS ; + IFF R_ALT_SHIFT,NOT ; + XLATT DIARESIS_SPACE ; exist for 437 so beep for + ENDIFF ; + IFF EITHER_CTL,NOT ; + ANDF EITHER_ALT,NOT ; + IFF EITHER_SHIFT ; + IFF CAPS_STATE ; + XLATT DIARESIS_LOWER ; + ELSEF ; + XLATT DIARESIS_UPPER ; + ENDIFF ; + ELSEF ; + IFF CAPS_STATE ; + XLATT DIARESIS_UPPER ; + ELSEF ; + XLATT DIARESIS_LOWER ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ; +INVALID_DIARESIS: ; + PUT_ERROR_CHAR DIARESIS_LOWER ; standalone accent + BEEP ; Invalid dead key combo. + GOTO NON_DEAD ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GRAVE_PROC: ; + ; + IFF GRAVE,NOT ; + GOTO CIRCUMFLEX_PROC ; + ENDIFF ; + ; + RESET_NLS ; + IFF R_ALT_SHIFT,NOT ; + XLATT GRAVE_SPACE ; + ENDIFF ; + IFF EITHER_CTL,NOT ; + ANDF EITHER_ALT,NOT ; + IFF EITHER_SHIFT ; + IFF CAPS_STATE ; + XLATT GRAVE_LOWER ; + ELSEF ; + XLATT GRAVE_UPPER ; + ENDIFF ; + ELSEF ; + IFF CAPS_STATE,NOT ; + XLATT GRAVE_LOWER ; + ELSEF ; + XLATT GRAVE_UPPER ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ; +INVALID_GRAVE: ; + PUT_ERROR_CHAR GRAVE_LOWER ; standalone accent + BEEP ; Invalid dead key combo. + GOTO NON_DEAD ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CIRCUMFLEX_PROC: ; + ; + IFF CIRCUMFLEX,NOT ; + GOTO NON_DEAD ; + ENDIFF ; + ; + RESET_NLS ; + IFF R_ALT_SHIFT,NOT ; + XLATT CIRCUMFLEX_SPACE ; + ENDIFF ; + IFF EITHER_CTL,NOT ; + ANDF EITHER_ALT,NOT ; + IFF EITHER_SHIFT ; + IFF CAPS_STATE ; + XLATT CIRCUMFLEX_LOWER ; + ELSEF ; + XLATT CIRCUMFLEX_UPPER ; + ENDIFF ; + ELSEF ; + IFF CAPS_STATE,NOT ; + XLATT CIRCUMFLEX_LOWER ; + ELSEF ; + XLATT CIRCUMFLEX_UPPER ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ; +INVALID_CIRCUMFLEX: ; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ; standalone accent + BEEP ; Invalid dead key combo. + GOTO NON_DEAD ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NON_DEAD: ; + ; + IFKBD G_KB+P12_KB ; Avoid accidentally translating + ANDF LC_E0 ; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ; G keyboard + ENDIFF ; +;;***BD ADDED FOR ALT, CTRL CASES ; + IFF EITHER_CTL,NOT ; + IFF ALT_SHIFT ; ALT - case + ANDF R_ALT_SHIFT,NOT ; + XLATT ALT_CASE ; + ENDIFF ; + ELSEF ; + IFF EITHER_ALT,NOT ; CTRL - case + XLATT CTRL_CASE ; + ENDIFF ; + ENDIFF ; +;;***BD END OF ADDITION + ; + IFF EITHER_ALT,NOT ; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ; + XLATT NUMERIC_PAD ; + ENDIFF ; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ; + IFF CAPS_STATE ; + XLATT ALPHA_LOWER ; + ELSEF ; + XLATT ALPHA_UPPER ; + ENDIFF ; + ELSEF ; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ; + XLATT NUMERIC_PAD ; + ENDIFF ; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ; + IFF CAPS_STATE ; + XLATT ALPHA_UPPER ; + ELSEF ; + XLATT ALPHA_LOWER ; + ENDIFF ; + ENDIFF ; + ELSEF ; + IFF EITHER_SHIFT,NOT ; + IFKBD XT_KB+AT_KB ; + IFF EITHER_CTL ; + ANDF ALT_SHIFT ; + XLATT THIRD_SHIFT ; + ENDIFF ; + ELSEF ; + IFF EITHER_CTL,NOT ; + ANDF R_ALT_SHIFT ; + XLATT THIRD_SHIFT ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ENDIFF ; + ; + EXIT_STATE_LOGIC ; + ; +LOGIC_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; SP Common Translate Section +; This section contains translations for the lower 128 characters +; only since these will never change from code page to code page. +; In addition the dead key "Set Flag" tables are here since the +; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUBLIC LA_COMMON_XLAT ; +LA_COMMON_XLAT: ; + ; + DW COMMON_XLAT_END-$ ; length of section + DW -1 ; code page +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Lower Shift Dead Key +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DK_LO_K1_END-$ ; length of state section + DB DEAD_LOWER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; Set Flag Table + DW 1 ; number of entries + DB 26 ; scan code + FLAG ACUTE ; + ; +COM_DK_LO_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Lower Shift Dead Key +; KEYBOARD TYPES: AT + XT + +; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; + DW COM_DK_LO_K2_END-$ ; length of state section + DB DEAD_LOWER ; State ID + DW AT_KB+XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; Set Flag Table + DW 2 ; number of entries + DB 26 ; scan code + FLAG ACUTE ; flag bit to set + DB 27 ; + FLAG GRAVE ; + ; + ; +COM_DK_LO_K2_END: ; + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Upper Shift Dead Key +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DK_UP_K1_END-$ ; length of state section + DB DEAD_UPPER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; Set Flag Table + DW 1 ; number of entries + DB 26 ; scan code + FLAG DIARESIS ; + ; +COM_DK_UP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Third Shift Dead Key +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_TH_DK_UP_K1_END-$ ; length of state section + DB DEAD_THIRD ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; Set Flag Table + DW 2 ; number of entries + DB 40 ; scan code + FLAG CIRCUMFLEX ; + DB 43 ; scan code + FLAG GRAVE ; + ; +COM_TH_DK_UP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Upper Shift Dead Key +; KEYBOARD TYPES: AT + XT + +; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; + DW COM_DK_UP_END-$ ; length of state section + DB DEAD_UPPER ; State ID + DW AT_KB+XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; Set Flag Table + DW 2 ; number of entries + DB 26 ; scan code + FLAG DIARESIS ; flag bit to set + DB 27 ; + FLAG CIRCUMFLEX ; + ; +COM_DK_UP_END: ; + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Lower Case +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_LO_GP_K1_END-$ ; length of state section + DB ALPHA_LOWER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_LO_GP_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 1 ; number of entries + DB 39,164 ; n-tilde +COM_AL_LO_GP_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_LO_GP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Lower Case +; KEYBOARD TYPES: AT +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_LO_K1_END-$ ; length of state section + DB ALPHA_LOWER ; State ID + DW AT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_LO_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 2 ; number of entries + DB 39,164 ; n-tilde + DB 43,135 ; c-cedilla +COM_AL_LO_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_LO_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Numeric Key Pad +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_PAD_K1_END-$ ; length of state section + DB NUMERIC_PAD ; State ID + DW ANY_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_PAD_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 1 ; number of entries + DB 83,'.' ; decimal seperator = . +COM_PAD_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_PAD_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; BD - ADDED FOR ALT CASE +; +; CODE PAGE: Common +; STATE: Alt Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_ALT_K1_END-$ ; length of state section + DB ALT_CASE ; State ID + DW ANY_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_ALT_K1_T1_END-$ ; Size of xlat table + DB TYPE_2_TAB ; xlat options: + DB 0 ; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ; TEST ENTRY +COM_ALT_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_ALT_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; BD - ADDED FOR CTRL CASE +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 1 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Lower Case +; KEYBOARD TYPES: XT + +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_LO_K2_END-$ ; length of state section + DB ALPHA_LOWER ; State ID + DW XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_LO_K2_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 2 ; number of entries + DB 39,164 ; n-tilde + DB 41,135 ; c-cedilla +COM_AL_LO_K2_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_LO_K2_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Upper Case +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_UP_GP_K1_END-$ ; length of state section + DB ALPHA_UPPER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_UP_GP_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 1 ; number of entries + DB 39,165 ; N-tilde +COM_AL_UP_GP_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_UP_GP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Upper Case +; KEYBOARD TYPES: AT +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_UP_K1_END-$ ; length of state section + DB ALPHA_UPPER ; State ID + DW AT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_UP_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 2 ; number of entries + DB 39,165 ; N-tilde + DB 43,128 ; C-cedilla +COM_AL_UP_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_UP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Alpha Upper Case +; KEYBOARD TYPES: XT + +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_AL_UP_K2_END-$ ; length of state section + DB ALPHA_UPPER ; State ID + DW XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_AL_UP_K2_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 2 ; number of entries + DB 39,165 ; N-tilde + DB 41,128 ; C-cedilla +COM_AL_UP_K2_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_AL_UP_K2_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Lower Case +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_NA_LO_GP_K1_END-$ ; length of state section + DB NON_ALPHA_LOWER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_LO_GP_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 8 ; number of entries + DB 12,"'" ; ' + DB 13,'' ; + DB 27,'+' ; + + DB 40,'{' ; | + DB 41,'|' ; | + DB 43,'}' ; | + DB 53,'-' ; - + DB 86,'<' ; < +COM_NA_LO_GP_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_LO_GP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Lower Case +; KEYBOARD TYPES: AT +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_NA_LO_K2_END-$ ; length of state section + DB NON_ALPHA_LOWER ; State ID + DW AT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_LO_K2_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 3 ; number of entries + DB 40,';' ; ; + DB 41,'<' ; < + DB 53,"'" ; quote +COM_NA_LO_K2_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_LO_K2_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Lower Case +; KEYBOARD TYPES: XT + +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_NA_LO_K3_END-$ ; length of state section + DB NON_ALPHA_LOWER ; State ID + DW XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_LO_K3_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 3 ; number of entries + DB 40,';' ; ; + DB 43,'<' ; < + DB 53,"'" ; quote +COM_NA_LO_K3_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_LO_K3_END: ; + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Upper Case +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_NA_UP_GP_K1_END-$ ; length of state section + DB NON_ALPHA_UPPER ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_UP_GP_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 16 ; number of entries + DB 3,'"' ; " + DB 7,'&' ; & + DB 8,'/' ; / + DB 9,'(' ; ( + DB 10,')' ; ) + DB 11,'=' ; = + DB 12,'?' ; ? + DB 13,'' ; + DB 27,'*' ; * + DB 40,'[' ; [ + DB 41,'' ; + DB 43,']' ; ] + DB 51,';' ; ; + DB 52,':' ; : + DB 53,'_' ; _ + DB 86,'>' ; > +COM_NA_UP_GP_K1_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_UP_GP_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Upper Case +; KEYBOARD TYPES: AT +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_NA_UP_K2_END-$ ; length of state section + DB NON_ALPHA_UPPER ; State ID + DW AT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_UP_K2_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 8 ; number of entries + DB 41,'>' ; + DB 2,0ADH ; UPSIDE DOWN + DB 3,168 ; UPSIDE DOWN ? + DB 7,'/' ; + DB 40,':' ; + DB 51,'?' ; + DB 52,'!' ; + DB 53,'"' ; +COM_NA_UP_K2_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_UP_K2_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Non-Alpha Upper Case +; KEYBOARD TYPES: XT + +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; + DW COM_NA_UP_K3_END-$ ; length of state section + DB NON_ALPHA_UPPER ; State ID + DW XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_NA_UP_K3_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 8 ; number of entries + DB 43,'>' ; + DB 2,0ADH ; UPSIDE DOWN + DB 3,168 ; UPSIDE DOWN ? + DB 7,'/' ; + DB 40,':' ; + DB 51,'?' ; + DB 52,'!' ; + DB 53,'"' ; +COM_NA_UP_K3_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_NA_UP_K3_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Third Shift +; KEYBOARD TYPES: G + P12 +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_THIRD_K1_END-$ ; length of state section + DB THIRD_SHIFT ; State ID + DW G_KB+P12_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_THIRD_K1_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 4 ; number of entries + DB 12,'\' ; \ + DB 16,'@' ; @ + DB 27,'~' ; ~ + DB 41,'' ; +COM_THIRD_K1_T1_END: ; + ; + DW 0 ; Last xlat table +COM_THIRD_K1_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Third Shift +; KEYBOARD TYPES: AT +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_THIRD_K2_END-$ ; length of state section + DB THIRD_SHIFT ; State ID + DW AT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_THIRD_K2_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 4 ; number of entries + DB 41,'\' ; + DB 3,'@' ; + DB 26,'[' ; + DB 27,']' ; +COM_THIRD_K2_T1_END: ; + ; + DW 0 ; Last xlat table +COM_THIRD_K2_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Third Shift +; KEYBOARD TYPES: XT + +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_THIRD_K3_END-$ ; length of state section + DB THIRD_SHIFT ; State ID + DW XT_KB ; Keyboard Type + DB -1,-1 ; Buffer entry for error character + ; + DW COM_THIRD_K3_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE ; xlat options: + DB 3 ; number of entries + DB 3,'@' ; + DB 26,'[' ; + DB 27,']' ; +COM_THIRD_K3_T1_END: ; + ; + DW 0 ; Last xlat table +COM_THIRD_K3_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Acute Lower Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; DW COM_AC_LO_END-$ ; length of state section +; DB ACUTE_LOWER ; State ID +; DW ANY_KB ; Keyboard Type +; DB 39,0 ; error character = standalone accent +; ; +; DW COM_AC_LO_T1_END-$ ; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ; xlat options: +; DB 5 ; number of scans +; DB 18,'' ; scan code,ASCII - e +; DB 30,'' ; scan code,ASCII - a +; DB 24,'' ; scan code,ASCII - o +; DB 22,'' ; scan code,ASCII - u +; DB 23,'' ; scan code,ASCII - i +;COM_AC_LO_T1_END: ; +; ; +; DW 0 ; Size of xlat table - null table +; ; +;COM_AC_LO_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; DW COM_AC_UP_END-$ ; length of state section +; DB ACUTE_UPPER ; State ID +; DW ANY_KB ; Keyboard Type +; DB 39,0 ; error character = standalone accent +; ; +; DW COM_AC_UP_T1_END-$ ; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ; xlat options: +; DB 2 ; number of scans +; DB 18,'' ; scan code,ASCII - e +;COM_AC_UP_T1_END: ; +; ; +; DW 0 ; Size of xlat table - null table +; ; +;COM_AC_UP_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; DW COM_AC_LA_END-$ ; length of state section +; DB ACUTE_SPACE ; State ID +;; DW ANY_KB ; Keyboard Type +; DB 39,0 ; error character = standalone accent +; ; +; DW COM_AC_LA_T1_END-$ ; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ; xlat options: +; DB 1 ; number of scans +; DB 57,39 ; scan code,ASCII - SPACE +;COM_AC_LA_T1_END: ; +; ; +; DW 0 ; Size of xlat table - null table +; ; +;COM_AC_LA_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DI_LO_END-$ ; length of state section + DB DIARESIS_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 249,0 ; error character = standalone accent + ; + DW COM_DI_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 6 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i + DB 21,'' ; scan code,ASCII - y +COM_DI_LO_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_DI_LO_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Diaresis Upper Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_DI_UP_END-$ ; length of state section + DB DIARESIS_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 249,0 ; error character = standalone accent + ; + DW COM_DI_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 3 ; number of scans + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u +COM_DI_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_DI_UP_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Grave Lower +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_GR_LO_END-$ ; length of state section + DB GRAVE_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 96,0 ; error character = standalone accent + ; + DW COM_GR_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +COM_GR_LO_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_GR_LO_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Grave Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_GR_LA_END-$ ; length of state section + DB GRAVE_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 96,0 ; error character = standalone accent + ; + DW COM_GR_LA_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,96 ; STANDALONE GRAVE +COM_GR_LA_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_GR_LA_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Circumflex Lower +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_CI_LO_END-$ ; length of state section + DB CIRCUMFLEX_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 94,0 ; error character = standalone accent + ; + DW COM_CI_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +COM_CI_LO_T1_END: ; + ; + DW 0 ; + ; +COM_CI_LO_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Common +; STATE: Circumflex Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW COM_CI_LA_END-$ ; length of state section + DB CIRCUMFLEX_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 94,0 ; error character = standalone accent + ; + DW COM_CI_LA_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,94 ; STANDALONE CIRCUMFLEX +COM_CI_LA_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +COM_CI_LA_END: ; length of state section + ; + DW 0 ; Last State +COMMON_XLAT_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SP Specific Translate Section for 437 +; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUBLIC LA_437_XLAT ; +LA_437_XLAT: ; + ; + DW CP437_XLAT_END-$ ; length of section + DW 437 ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Specific 437 +; STATE: Acute Lower Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_LO_END-$ ; length of state section + DB ACUTE_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +CP437_AC_LO_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_LO_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 437 +; STATE: Acute Upper Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_UP_END-$ ; length of state section + DB ACUTE_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 18,'' ; scan code,ASCII - e +CP437_AC_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_UP_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 437 +; STATE: Acute Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_LA_END-$ ; length of state section + DB ACUTE_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_LA_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,39 ; scan code,ASCII - SPACE +CP437_AC_LA_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_LA_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ; LAST STATE + ; +CP437_XLAT_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SP Specific Translate Section for 850 +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUBLIC LA_850_XLAT ; +LA_850_XLAT: ; + ; + DW CP850_XLAT_END-$ ; length of section + DW 850 ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Specific 850 +; STATE: Acute Lower Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_AC_LO_END-$ ; length of state section + DB ACUTE_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 0EFH,0 ; error character = standalone accent + ; + DW CP850_AC_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +; DB 21,0ECH add in later date ; y acute +CP850_AC_LO_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_AC_LO_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Acute Upper Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_AC_UP_END-$ ; length of state section + DB ACUTE_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 0EFH,0 ; error character = standalone accent + ; + DW CP850_AC_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,0B5H ; A acute + DB 23,0D6H ; I acute + DB 24,0E0H ; O acute + DB 22,0E9H ; U acute +; DB 21,0EDH add in later date ; Y acute +CP850_AC_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_AC_UP_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Acute Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_AC_LA_END-$ ; length of state section + DB ACUTE_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 0EFH,0 ; error character = standalone accent + ; + DW CP850_AC_LA_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,0EFH ; scan code,ASCII - SPACE +CP850_AC_LA_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_AC_LA_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Diaresis Upper +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_DI_UP_END-$ ; length of state section + DB DIARESIS_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 249,0 ; error character = standalone accent + ; + DW CP850_DI_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 2 ; number of scans + DB 18,0D3H ; E diaeresis + DB 23,0D8H ; I diaeresis +CP850_DI_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_DI_UP_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Diaresis Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_DI_LA_END-$ ; length of state section + DB DIARESIS_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 249,0 ; error character = standalone accent + ; + DW CP850_DI_LA_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,249 ; error character = standalone accent +CP850_DI_LA_T1_END: ; + ; + DW 0 ; Size of xlat table - null table +CP850_DI_LA_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Grave Upper +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_GR_UP_END-$ ; length of state section + DB GRAVE_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 96,0 ; error character = standalone accent + ; + DW CP850_GR_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 30,0B7H ; A grave + DB 18,0D4H ; E grave + DB 23,0DEH ; I grave + DB 24,0E3H ; O grave + DB 22,0EBH ; U grave +CP850_GR_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_GR_UP_END: ; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 850 +; STATE: Circumflex Upper +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP850_CI_UP_END-$ ; length of state section + DB CIRCUMFLEX_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 94,0 ; error character = standalone accent + ; + DW CP850_CI_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 30,0B6H ; A circumflex + DB 18,0D2H ; E circumflex + DB 23,0D7H ; I circumflex + DB 24,0E2H ; O circumflex + DB 22,0EAH ; U circumflex +CP850_CI_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP850_CI_UP_END: ; length of state section + ; + DW 0 ; LAST STATE +CP850_XLAT_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CODE ENDS ; + END ; diff --git a/v4.0/src/DEV/KEYBOARD/KDFNL.ASM b/v4.0/src/DEV/KEYBOARD/KDFNL.ASM new file mode 100644 index 0000000..24ca7b0 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFNL.ASM @@ -0,0 +1,1515 @@ +;; LATEST CHANGE ALT & CTL + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Netherlands +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;; Modded from Belgian - DTF 20-Aug-86; 08-Sep-86 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC NL_LOGIC ;; + PUBLIC NL_437_XLAT ;; + PUBLIC NL_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NL State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +NL_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_CTL,NOT ;; + IFF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some + ANDF R_ALT_SHIFT ;; dead keys are on third shift + ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO CEDILLA_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_SPACE ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CEDILLA ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CEDILLA_PROC: ;; + ;; + IFF CEDILLA,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CEDILLA_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CEDILLA_LOWER ;; + ELSEF ;; + XLATT CEDILLA_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT CEDILLA_UPPER ;; + ELSEF ;; + XLATT CEDILLA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CEDILLA: ;; + PUT_ERROR_CHAR CEDILLA_SPACE ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; +;;***MJS Added because of diferences ;; +;;between KYB Types ;; + ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;***MJS repeated for G, P12 ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + ANDF ALT_SHIFT ;; + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + IFF EITHER_CTL ;; + ANDF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic + IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; Third and Fourth shifts + ELSEF ;; ctl off, alt on at this point + IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics + IFF EITHER_SHIFT ;; only. + XLATT FOURTH_SHIFT ;; ALT + shift + ELSEF ;; + XLATT THIRD_SHIFT ;; ALT + ENDIFF ;; + ELSEF ;; ENHANCED keyboard + IFF R_ALT_SHIFT ;; ALTGr + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NL Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NL_COMMON_XLAT ;; +NL_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set + DB 40 ;; + FLAG ACUTE ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 3 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + DB 40 ;; + FLAG GRAVE ;; + DB 13 ;; + FLAG TILDE ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 13 ;; + FLAG CEDILLA ;; + ;; +COM_DK_TH_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +; DW COM_AL_LO_END-$ ;; length of state section +; DB ALPHA_LOWER ;; State ID +; DW G_KB + P12_KB ;; Keyboard Type +; DB -1,-1 ;; Buffer entry for error character + ;; +; DW COM_AL_LO_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE ;; xlat options: +; DB 0 ;; number of entries +;COM_AL_LO_T1_END: ;; + ;; +; DW 0 ;; Size of xlat table - null table + ;; +;COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AL_UP_END-$ ;; length of state section +; DB ALPHA_UPPER ;; State ID +; DW G_KB + P12_KB ;; Keyboard Type +; DB -1,-1 ;; Buffer entry for error character + ;; +; DW COM_AL_UP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE ;; xlat options: +; DB 0 ;; number of entries +;COM_AL_UP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table + ;; +;COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 10 ;; number of entries + DB 41,"@" ;; at sign + DB 12,"/" ;; + DB 13,0F8H ;; + DB 27,"*" ;; + DB 39,'+' ;; + DB 43,'<' ;; + DB 51,',' ;; + DB 52,'.' ;; + DB 53,'-' ;; + DB 86,']' +COM_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 17 ;; number of entries + DB 2,'!' ;; + DB 3,'"' ;; + DB 4,'#' ;; + DB 5,'$' ;; + DB 6,'%' ;; + DB 7,'&' ;; + DB 8,'_' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,"'" ;; + DB 12,'?' ;; + DB 39,0F1H ;; + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'=' ;; + DB 86,'[' +COM_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 16 ;; number of entries + DB 41,0AAH ;; + DB 2,0FBH ;; + DB 3,0FDH ;; + DB 4,0FCH ;; + DB 5,0ACH ;; + DB 6,0ABH ;; + DB 7,0F3H ;; + DB 8,9CH ;; + DB 9,'{' ;; + DB 10,'}' ;; + DB 12,5CH ;; + DB 31,0E1H ;; + DB 44,0AEH ;; + DB 45,0AFH ;; +; DB 46,9BH ;; special case + DB 50,0E6H ;; mu character + DB 52,0FAH ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES : G_KB (P12 change does not apply) +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 2 number of entries +; DB 12,-1,-1 ;; +; DB 53,0,82H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 5 ;; number of entries + DB 12,-1,-1 ;; + DB 26,-1,-1 ;; + DB 27,-1,-1 ;; + DB 43,-1,-1 ;; + DB 53,01FH,35h ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 60H,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 60H,0 ;; error character = standalone accent + ;; + DW COM_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 60H,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,60H ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 5EH,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,'' ;; scan code,ASCII - a + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Upper +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 5EH,0 ;; error character = standalone accent + ;; + DW COM_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 0 ;; number of scans +COM_CI_UP_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 5EH,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,5EH ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 7EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,7EH ;; STANDALONE TIDLE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Cedilla lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CE_LO_END-$ ;; length of state section + DB CEDILLA_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F7H,0 ;; error character = standalone accent + ;; CHNAGED MJS 31/10/86 + DW COM_CE_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 46,135 ;; scan code,ASCII - c +COM_CE_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CE_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: CedilIa Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CE_UP_END-$ ;; length of state section + DB CEDILLA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F7H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW COM_CE_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 46,128 ;; scan code,ASCII - C +COM_CE_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CE_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Cedilla Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CE_SP_END-$ ;; length of state section + DB CEDILLA_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F7H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW COM_CE_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F7H ;; STANDALONE CEDILLA +COM_CE_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CE_SP_END: ;; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F9H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW COM_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +COM_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F9H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW COM_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0F9H ;; error character = standalone accent +COM_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +COM_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NL Specific Translate Section for 437 +;; +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NL_437_XLAT ;; +NL_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Third Shift +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of scans +;; DB 2,7 ;; NO CHAR - JUST BELL should be super 1 +;; ;; NOW COMM. MJS 31/10/86 +;; DB 7,0FCH ;; NOW COMM. MJS 31/10/86 + DB 19,14H ;; NO CHAR - JUST BELL +;; ;; SHOULD O/P MJS 31/10/86 + DB 46,9BH ;; cent sign - + DB 86,7CH ;; vertical bar + ;; +CP437_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +; DW CP437_NA_LO_END-$ ;; length of state section +; DB NON_ALPHA_LOWER ;; State ID +; DW G_KB + P12_KB ;; Keyboard Type +; DB -1,-1 ;; default ignore error state + ;; +; DW CP437_NA_LO_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 0 ;; number of scans +;CP437_NA_LO_T1_END: ;; + ;; +; DW 0 ;; Size of xlat table - null table + ;; +;CP437_NA_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of scans + DB 27,0B3H ;; vert. line graphics + DB 41,15H ;; Section symbol +CP437_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 7EH,0 ;; error character = standalone accent + ;; + DW CP437_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,164 ;; scan code,ASCII - n +CP437_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 7EH,0 ;; error character = standalone accent + ;; + DW CP437_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,165 ;; scan code,ASCII - N +CP437_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 027H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 027H,0 ;; error character = standalone accent + ;; CHANGED MJS 31/10/86 + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 18,'' ;; scan code,ASCII - e +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 027H,0 ;; error character = standalone accent + ;; CHANGED MJS 34/10/86 + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,027H ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F9H,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NL Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NL_850_XLAT ;; +NL_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of scans + DB 27,07CH ;; vert line + DB 41,0F5H ;; section symbol +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; default ignore error state + ;; + DW CP850_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of scans +;; DB 2,0FBH ;; NOW COMM. MJS 31/10/86 +;; DB 7,0F3H ;; NOW COMM. MJS 31/10/86 + DB 19,0F4H ;; + DB 46,0BDH ;; cent sign - + DB 86,0DDH ;; true broken vertical +CP850_THIRD_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 7EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,0C6H ;; scan code,ASCII - a + DB 24,0E4H ;; scan code,ASCII - o + DB 49,164 ;; scan code,ASCII - n +CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Tilde Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 7EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,0C7H ;; scan code,ASCII - A + DB 24,0E5H ;; scan code,ASCII - O + DB 49,165 ;; scan code,ASCII - N +CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86 +;; STATE: Cedilla lower +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86 +;; STATE: CedilIa Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86 +;; STATE: Cedilla Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 30,'' ;; a acute + DB 18,'' ;; e acute + DB 23,'' ;; i acute + DB 24,'' ;; o acute + DB 22,'' ;; u acute + DB 21,0ECH ;; y acute +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,090H ;; E acute + DB 30,0B5H ;; A acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 22,0E9H ;; U acute + DB 21,0EDH ;; Y acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0EFH ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 0F9H,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,'' ;; scan code,ASCII - A + DB 18,0D3H ;; scan code,ASCII - E + DB 23,0D8H ;; scan code,ASCII - I + DB 24,'' ;; scan code,ASCII - O + DB 22,'' ;; scan code,ASCII - U +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 - NOW IN COMMON MJS 31/10/86 +;; STATE: Diaeresis Space Bar +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 60H,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES : G_KB + P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB 5EH,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFNO.ASM b/v4.0/src/DEV/KEYBOARD/KDFNO.ASM new file mode 100644 index 0000000..b1d846a --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFNO.ASM @@ -0,0 +1,1607 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;; LATEST CHANGE P12 NUMERIC +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Norwegian +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC NO_LOGIC ;; + PUBLIC NO_865_XLAT ;; + PUBLIC NO_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a linear search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NO State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +NO_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_CTL,NOT ;; + IFF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some + ANDF R_ALT_SHIFT ;; dead keys are on third shift + ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; + IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic + IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; Third and Fourth shifts + ELSEF ;; ctl off, alt on at this point + IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics + IFF EITHER_SHIFT ;; only. + XLATT FOURTH_SHIFT ;; ALT + shift + ELSEF ;; + XLATT THIRD_SHIFT ;; ALT + ENDIFF ;; + ELSEF ;; ENHANCED keyboard + IFF R_ALT_SHIFT ;; ALTGr + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;**************************************;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;********************************************************************** +;; NO Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; Some common Characters are included from 128 - 165 where appropriate. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NO_COMMON_XLAT ;; +NO_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; + FLAG DIARESIS ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_K1_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 27 ;; + FLAG DIARESIS ;; + ;; + ;; +COM_DK_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 27 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; scan code + FLAG TILDE ;; flag bit to set + ;; +COM_DK_TH_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common ;;************CNS **************** +;; STATE: Numeric Key Pad ;;change +;; KEYBOARD TYPES: All except the p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 2 number of entries +; DB 12,-1,-1 ;; +; DB 53,0,082H ;; CHANGE OF HYPHEN +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries + DB 12,-1,-1 ;; + DB 53,01FH,35h ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 8 ;; number of entries + DB 9,01BH,09H ;; + DB 10,01DH,0AH ;; + DB 12,-1,-1 ;; + DB 13,01CH,0DH ;; + DB 26,-1,-1 ;; + DB 27,-1,-1 ;; + DB 43,-1,-1 ;; + DB 53,01FH,35H ;; +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,086H ;; a-overcircle + DB 39,09BH ;; o-slash + DB 40,091H ;; ae-dipthong +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,08FH ;; A-OVERCIRCLE + DB 39,09DH ;; O-SLASH + DB 40,092H ;; AE-DIPTHONG +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 41,07CH ;; | + DB 12,"+" ;; + INCLUDED FOR SIMPLIC. + DB 13,"\" ;; \ + DB 43,"'" ;; ' + DB 53,"-" ;; - + DB 86,"<" ;; < +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 41,"'" ;; ' + DB 12,"+" ;; + + DB 43,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"<" ;; < + DB 43,"'" ;; ' + DB 53,"-" ;; - +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 12 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 43,'*' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 86,'>' ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 41,'*' ;; + DB 43,'>' ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,'' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 41,'>' ;; + DB 43,'*' ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type FERRARI + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 3,'@' ;; + DB 4,09CH ;; + DB 5,'$' ;; + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,060H,060H ;; + DB 43,'\','\' ;; + DB 53,'/','/' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,'\','\' ;; + DB 43,060H,060H ;; + DB 53,'/','/' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'~','~' ;; + DB 43,'|','|' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_K1_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'|','|' ;; + DB 43,'~','~' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: G, P12 +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NO Specific Translate Section for 865 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NO_865_XLAT ;; +NO_865_XLAT: ;; + ;; + DW CP865_XLAT_END-$ ;; length of section + DW 865 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_NA_K1_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP865_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 5,0AFH ;; INTERNATIONAL MONEY SYMB + DB 41,015H ;; SECTION Symb +CP865_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_NA_K1_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP865_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP865_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP865_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP865_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP865 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP865_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP865_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP865 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP865_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP865_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP865_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP865_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 865 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP865_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 254,0 ;; error character = standalone accent +; ;; +; DW CP865_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,254 ;; error character = standalone accent +;CP865_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP865_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP865_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; NO Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC NO_850_XLAT ;; +NO_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_K1_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 5,0CFH ;; INT MONEY SYMB + DB 41,0F5H ;; SECTION Symb +CP850_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_K1_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 21,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;; KEYBOARD TYPES: G, P12 +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM b/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM new file mode 100644 index 0000000..ac2ea78 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFNOW.ASM @@ -0,0 +1,507 @@ + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This the file header and table pointers ONLY. +;; The actual tables are contained in seperate source files. +;; These are: +;; KDFSP.ASM - Spanish +;; KDFPO.ASM - Portuguese +;; KDFGR.ASM - German +;; KDFIT142.ASM - Italian +;; KDFIT.ASM - Italian +;; KDFFR189.ASM - French +;; KDFFR.ASM - French +;; KDFSG.ASM - Swiss German +;; KDFSF.ASM - Swiss French +;; KDFDK.ASM - Danish +;; KDFUK168.ASM - English +;; KDFUK.ASM - English +;; KDFBE.ASM - Belgium +;; KDFNL.ASM - Netherlands +;; KDFNO.ASM - Norway +;; KDFLA.ASM - Latin American +;; KDFSV.ASM - SWEDEN -----> This moddule is used for both Sweden +;; and Finland - exact same template +;; KDFSU.ASM - Finland -----> Same module as Sweden eliminated +;; Dummy US - US +;; Linkage Instructions: +;; The following instructions are contained in KDFLINK.BAT: +;; +;; LINK KDF+KDFSP+KDFGE+KDFFR+KDFIT+KDFPO+KDFUK+KDFSG+KDFDK+KDFEOF; +;; EXE2BIN KDF.EXE KEYBOARD.SYS +;; +;; DCL, March 8, 1988 - swapped 437/850 to 850/437 for SG & SF +;; DCL, March 8, 1988 - uncommented SU(finland)& swapped 437/850 to 850/437 +;; as the Finnish want 850/437 vs. 437/850 for Sweden +;; did not alter the pointer to kbid 153 to Sweden +;; CNS April 14 1988 - swapped 437/850 to 850/437 for SP & LA +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; File Header +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DB 0FFh,'KEYB ' ;; signature +DB 8 DUP(0) ;; reserved +DW 650 ;; maximum size of Common Xlat Sect +DW 350 ;; max size of Specific Xlat Sect +DW 400 ;; max size of State Logic +DW 0 ;;AC000;reserved +DW 19 ;;AC000 number of IDs +DW 17 ;;AC000 number of languages +DB 'GR' ;; LANGUAGE CODE TABLE +DW OFFSET GE_LANG_ENT,0 ;; +DB 'SP' ;; +DW OFFSET SP_LANG_ENT,0 ;; +DB 'PO' ;; +DW OFFSET PO_LANG_ENT,0 ;; +DB 'FR' ;; +DW OFFSET FR2_LANG_ENT,0 ;; +DB 'DK' ;; +DW OFFSET DK_LANG_ENT,0 ;; +DB 'SG' ;; +DW OFFSET SG_LANG_ENT,0 ;; +DB 'IT' ;; +DW OFFSET IT2_LANG_ENT,0 ;; +DB 'UK' ;; +DW OFFSET UK2_LANG_ENT,0 ;; +DB 'SF' ;; +DW OFFSET SF_LANG_ENT,0 ;; +DB 'BE' ;; +DW OFFSET BE_LANG_ENT,0 ;; +DB 'NL' ;; +DW OFFSET NL_LANG_ENT,0 ;; +DB 'NO' ;; +DW OFFSET NO_LANG_ENT,0 ;; +DB 'CF' ;; +DW OFFSET CF_LANG_ENT,0 ;; +DB 'SV' ;; +DW OFFSET SV_LANG_ENT,0 ;; +DB 'SU' ;; +DW OFFSET Su_LANG_ENT,0 ;; +DB 'LA' ;; +DW OFFSET LA_LANG_ENT,0 ;; +DB 'US' ;; +DW OFFSET DUMMY_ENT,0 ;; +DW 172 ;;AN000;ID CODE TABLE *************************** +DW OFFSET SP_LANG_ENT,0 ;;AN000; +DW 163 ;;AN000; +DW OFFSET PO_LANG_ENT,0 ;;AN000; +DW 120 ;;AN000; +DW OFFSET FR1_LANG_ENT,0 ;;AN000; +DW 189 ;;AN000; +DW OFFSET FR2_LANG_ENT,0 ;;AN000; +DW 159 ;;AN000; +DW OFFSET DK_LANG_ENT,0 ;;AN000; +DW 000 ;;AN000; +DW OFFSET SG_LANG_ENT,0 ;;AN000; +DW 129 ;;AN000; +DW OFFSET GE_LANG_ENT,0 ;;AN000; +DW 142 ;;AN000; +DW OFFSET IT1_LANG_ENT,0 ;;AN000; +DW 141 ;;AN000; +DW OFFSET IT2_LANG_ENT,0 ;;AN000; +DW 168 ;;AN000; +DW OFFSET UK1_LANG_ENT,0 ;;AN000; +DW 166 ;;AN000; +DW OFFSET UK2_LANG_ENT,0 ;;AN000; +DW 150 ;;AN000; +DW OFFSET SF_LANG_ENT,0 ;;AN000; +DW 120 ;;AN000; +DW OFFSET BE_LANG_ENT,0 ;;AN000; +DW 143 ;;AN000; +DW OFFSET NL_LANG_ENT,0 ;;AN000; +DW 155 ;;AN000; +DW OFFSET NO_LANG_ENT,0 ;;AN000; +DW 058 ;;AN000; +DW OFFSET CF_LANG_ENT,0 ;;AN000; +DW 153 ;;AN000; +DW OFFSET SV_LANG_ENT,0 ;;AN000; +DW 171 ;;AN000; +DW OFFSET LA_LANG_ENT,0 ;;AN000; +DW 103 ;;AN000; +DW OFFSET DUMMY_ENT,0 ;;AN000; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; Language Entries +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + EXTRN SP_LOGIC:NEAR ;; + EXTRN SP_437_XLAT:NEAR ;; + EXTRN SP_850_XLAT:NEAR ;; + ;; +SP_LANG_ENT: ;; language entry for SPANISH + DB 'SP' ;; + DW 172 ;; AN000;ID entry (ID CODE) + DW OFFSET SP_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;; AN000;number of IDs + DB 2 ;; number of code pages + DW 850 ;; code page + DW OFFSET SP_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET SP_437_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN FR1_LOGIC:NEAR ;;AN000; + EXTRN FR1_437_XLAT:NEAR ;;AN000; + EXTRN FR1_850_XLAT:NEAR ;;AN000; + ;; + FR1_LANG_ENT: ;;AN000; language entry for FRANCE + DB 'FR' ;;AN000; SECONDARY KEYBOARD ID VALUE + DW 120 ;;AN000; ID entry + DW OFFSET FR1_LOGIC,0 ;;AN000; pointer to LANG kb table + DB 2 ;;AN000; number of code pages + DB 2 ;;AN000; number of ids + DW 437 ;;AN000; code page + DW OFFSET FR1_437_XLAT,0 ;;AN000; table pointer + DW 850 ;;AN000; code page + DW OFFSET FR1_850_XLAT,0 ;;AN000; table pointer + ;;AN000; +;***************************************************************************** + EXTRN FR2_LOGIC:NEAR ;;AC000; + EXTRN FR2_437_XLAT:NEAR ;;AC000; + EXTRN FR2_850_XLAT:NEAR ;;AC000; + ;; + FR2_LANG_ENT: ;; language entry for FRANCE + DB 'FR' ;; PRIMARY KEYBOARD ID VALUE + DW 189 ;;AC000; ID entry + DW OFFSET FR2_LOGIC,0 ;;AC000; pointer to LANG kb table + DB 1 ;;AC000; number of ids + DB 2 ;;AC000; number of code pages + DW 437 ;;AC000; code page + DW OFFSET FR2_437_XLAT,0 ;;AC000; table pointer + DW 850 ;;AC000; code page + DW OFFSET FR2_850_XLAT,0 ;;AC000; table pointer + ;; +;**************************************************************************** + EXTRN PO_LOGIC:NEAR ;;AC000; + EXTRN PO_850_XLAT:NEAR ;;AC000; + EXTRN PO_860_XLAT:NEAR ;;AC000; + ;; +PO_LANG_ENT: ;; language entry for PORTUGAL + DB 'PO' ;; + DW 163 ;;AN000; ID entry + DW OFFSET PO_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AC000; number of ids + DB 2 ;;AC000; number of code pages + DW 850 ;;AC000; code page + DW OFFSET PO_850_XLAT,0 ;;AC000; table pointer + DW 860 ;;AC000; code page + DW OFFSET PO_860_XLAT,0 ;;AC000; table pointer + ;; +;***************************************************************************** + EXTRN DK_LOGIC:NEAR ;; + EXTRN DK_850_XLAT:NEAR ;;AC000; + EXTRN DK_865_XLAT:NEAR ;;AC000; + ;; + DK_LANG_ENT: ;; language entry for DENMARK + DB 'DK' ;; + DW 159 ;;AN000; ID entry + DW OFFSET DK_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000;number of ids + DB 2 ;;AC000; number of code pages + DW 850 ;;AC000; code page + DW OFFSET DK_850_XLAT,0 ;;AC000; table pointer + DW 865 ;;AC000; code page + DW OFFSET DK_865_XLAT,0 ;;AC000; table pointer + ;; +;***************************************************************************** + EXTRN SG_LOGIC:NEAR ;; + EXTRN SG_850_XLAT:NEAR ;; + EXTRN SG_437_XLAT:NEAR ;; + ;; +SG_LANG_ENT: ;; language entry for SWISS GERMAN + DB 'SG' ;; + DW 000 ;;AN001; ID entry + DW OFFSET SG_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AC000; number of code pages + DW 850 ;; code page ;;;dcl 850 now default March 8, 1988 + DW OFFSET SG_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET SG_437_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN SF_LOGIC:NEAR ;; + EXTRN SF_850_XLAT:NEAR ;; + EXTRN SF_437_XLAT:NEAR ;; + ;; +SF_LANG_ENT: ;; language entry for SWISS FRENCH + DB 'SF' ;; + DW 150 ;;AN000; ID entry + DW OFFSET SF_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AC000; number of code pages + DW 850 ;; code page ;;;dcl 850 now default March 8, 1988 + DW OFFSET SF_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET SF_437_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN GE_LOGIC:NEAR ;; + EXTRN GE_437_XLAT:NEAR ;; + EXTRN GE_850_XLAT:NEAR ;; + ;; +GE_LANG_ENT: ;; language entry for GERMANY + DB 'GR' ;; + DW 129 ;;AN000; ID entry + DW OFFSET GE_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AC000; number of code pages + DW 437 ;; code page + DW OFFSET GE_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET GE_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN IT1_LOGIC:NEAR ;;AN000; + EXTRN IT1_437_XLAT:NEAR ;;AN000; + EXTRN IT1_850_XLAT:NEAR ;;AN000; + ;; + IT1_LANG_ENT: ;;AN000; language entry for ITALY + DB 'IT' ;;AN000; SECONDARY KEYBOARD ID VALUE + DW 142 ;;AN000; ID entry + DW OFFSET IT1_LOGIC,0 ;;AN000; pointer to LANG kb table + DB 2 ;;AN000;number of ids + DB 2 ;;AN000; number of code pages + DW 437 ;;AN000; code page + DW OFFSET IT1_437_XLAT,0 ;;AN000; table pointer + DW 850 ;;AN000; code page + DW OFFSET IT1_850_XLAT,0 ;;AN000; table pointer + ;; +;***************************************************************************** + EXTRN IT2_LOGIC:NEAR ;; + EXTRN IT2_437_XLAT:NEAR ;; + EXTRN IT2_850_XLAT:NEAR ;; + ;; + IT2_LANG_ENT: ;;AC000; language entry for ITALY + DB 'IT' ;;AC000; PRIMARY KEYBOARD ID VALUE + DW 141 ;;AN000; ID entry + DW OFFSET IT2_LOGIC,0 ;;AN000; pointer to LANG kb table + DB 1 ;;AC000; number of ids + DB 2 ;;AC000; number of code pages + DW 437 ;;AC000; code page + DW OFFSET IT2_437_XLAT,0 ;;AC000; table pointer + DW 850 ;;AC000; code page + DW OFFSET IT2_850_XLAT,0 ;;AC000; table pointer + ;; +;***************************************************************************** + EXTRN UK1_LOGIC:FAR ;;AN000; + EXTRN UK1_437_XLAT:FAR ;;AN000; + EXTRN UK1_850_XLAT:FAR ;;AN000; + ;; + UK1_LANG_ENT: ;;AN000; language entry for UNITED KINGDOM + DB 'UK' ;;AN000; SECONDARY KEYBOARD ID VALUE + DW 168 ;;AN000; ID entry + DW OFFSET UK1_LOGIC,0 ;;AN000; pointer to LANG kb table + DB 2 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 437 ;;AN000; code page + DW OFFSET UK1_437_XLAT,0 ;;AN000; table pointer + DW 850 ;;AN000; code page + DW OFFSET UK1_850_XLAT,0 ;;AN000; table pointer + ;; +;***************************************************************************** + EXTRN UK2_LOGIC:FAR ;;AC000; + EXTRN UK2_437_XLAT:FAR ;;AC000; + EXTRN UK2_850_XLAT:FAR ;;AC000; + ;; + UK2_LANG_ENT: ;;AN000; language entry for UNITED KINGDOM + DB 'UK' ;;AC000; PRIMARY KEYBOARD ID VALUE + DW 166 ;;AC000; ID entry + DW OFFSET UK2_LOGIC,0 ;;AC000; pointer to LANG kb table + DB 1 ;; AN000;number of ids + DB 2 ;;AN000; number of code pages + DW 437 ;;AC000; code page + DW OFFSET UK2_437_XLAT,0 ;;AC000; table pointer + DW 850 ;;AC000; code page + DW OFFSET UK2_850_XLAT,0 ;;AC000; table pointer + ;; +;***************************************************************************** + EXTRN BE_LOGIC:NEAR ;; + EXTRN BE_437_XLAT:NEAR ;; + EXTRN BE_850_XLAT:NEAR ;; + ;; +BE_LANG_ENT: ;; language entry for BELGIUM + DB 'BE' ;; + DW 120 ;;AN000; ID entry + DW OFFSET BE_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 850 ;; code page ;; default to 850 - same as country.sys + DW OFFSET BE_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET BE_437_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN NL_LOGIC:NEAR ;; + EXTRN NL_437_XLAT:NEAR ;; + EXTRN NL_850_XLAT:NEAR ;; + ;; + NL_LANG_ENT: ;; language entry for NETHERLANDS + DB 'NL' ;; + DW 143 ;;AN000; ID entry + DW OFFSET NL_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 437 ;; code page + DW OFFSET NL_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET NL_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN NO_LOGIC:NEAR ;; + EXTRN NO_850_XLAT:NEAR ;;AC000; + EXTRN NO_865_XLAT:NEAR ;;AC000; + ;; + NO_LANG_ENT: ;; language entry for NORWAY + DB 'NO' ;; + DW 155 ;;AN000; ID entry + DW OFFSET NO_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 850 ;;AC000; code page + DW OFFSET NO_850_XLAT,0 ;;AC000; table pointer + DW 865 ;;AC000; code page + DW OFFSET NO_865_XLAT,0 ;;AC000; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN SV_LOGIC:NEAR ;; + EXTRN SV_437_XLAT:NEAR ;; + EXTRN SV_850_XLAT:NEAR ;; + ;; + SV_LANG_ENT: ;; language entry for SWEDEN + DB 'SV' ;; + DW 153 ;;AN000; ID entry + DW OFFSET SV_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 437 ;; code page + DW OFFSET SV_437_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET SV_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** +;; Already declared external above +;; EXTRN Sv_LOGIC:NEAR ;; Finland & Sweden have same layout, +;; EXTRN Sv_437_XLAT:NEAR ;; but different code page defaults, +;; EXTRN Sv_850_XLAT:NEAR ;; use Sweden data for Finland + ;; + SU_LANG_ENT: ;; language entry for FINLAND + DB 'SU' ;; + DW 153 ;; ID entry + DW OFFSET Sv_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;; number of ids + DB 2 ;; number of code pages + DW 850 ;; code page ;;;dcl 850 now default, March 8, 1988 + DW OFFSET Sv_850_XLAT,0 ;; table pointer + DW 437 ;; code page + DW OFFSET Sv_437_XLAT,0 ;; table pointer + ;; +;***************************************************************************** +;***************************************************************************** + EXTRN CF_LOGIC:NEAR ;; + EXTRN CF_863_XLAT:NEAR ;; + EXTRN CF_850_XLAT:NEAR ;; + ;; + CF_LANG_ENT: ;; language entry for Canadian-French + DB 'CF' ;; + DW 058 ;; ID entry + DW OFFSET CF_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;; number of ids + DB 2 ;; number of code pages + DW 863 ;; code page + DW OFFSET CF_863_XLAT,0 ;; table pointer + DW 850 ;; code page + DW OFFSET CF_850_XLAT,0 ;; table pointer + ;; +;***************************************************************************** + EXTRN LA_LOGIC:NEAR ;; + EXTRN LA_850_XLAT:NEAR ;; + EXTRN LA_437_XLAT:NEAR ;; + ;; + LA_LANG_ENT: ;; language entry for LATIN AMERICAN + DB 'LA' ;; + DW 171 ;;AN000; ID entry + DW OFFSET LA_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AN000; number of ids + DB 2 ;;AN000; number of code pages + DW 850 ;; code page + DW OFFSET LA_850_XLAT,0 ;; table pointer + DW 437 ;; code page ; default to 437 -same as country.sys + DW OFFSET LA_437_XLAT,0 ;; table pointer + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DUMMY_ENT: ;; language entry + DB 'XX' ;; + DW 103 ;;AC000; ID entry + DW OFFSET DUMMY_LOGIC,0 ;; pointer to LANG kb table + DB 1 ;;AC000; number of ids + DB 5 ;;AC000; number of code pages + DW 437 ;; code page + DW OFFSET DUMMY_XLAT_437,0 ;; table pointer + DW 850 ;; code page + DW OFFSET DUMMY_XLAT_850,0 ;; table pointer + DW 860 ;; code page + DW OFFSET DUMMY_XLAT_860,0 ;; table pointer + DW 863 ;; code page + DW OFFSET DUMMY_XLAT_863,0 ;; table pointer + DW 865 ;; code page + DW OFFSET DUMMY_XLAT_865,0 ;; table pointer + ;; +DUMMY_LOGIC: ;; + DW LOGIC_END-$ ;; length + DW 0 ;; special features + DB 92H,0,0 ;; EXIT_STATE_LOGIC_COMMAND +LOGIC_END: ;; + ;; +DUMMY_XLAT_437: ;; + DW 6 ;; length of section + DW 437 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_850: ;; + DW 6 ;; length of section + DW 850 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_860: ;; + DW 6 ;; length of section + DW 860 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_865: ;; + DW 6 ;; length of section + DW 865 ;; code page + DW 0 ;; LAST STATE + ;; +DUMMY_XLAT_863: ;; + DW 6 ;; length of section + DW 863 ;; code page + DW 0 ;; LAST STATE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;***************************************************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFPO.ASM b/v4.0/src/DEV/KEYBOARD/KDFPO.ASM new file mode 100644 index 0000000..8247187 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFPO.ASM @@ -0,0 +1,1607 @@ +;; LATEST CHANGE TO CTL [ and ] on XT moved to key 26 & 27 +;; XT section enabled +;; ************* CNS 12/18/86 + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;; LATEST CHANGE P12 NUMERIC +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Portugeuse +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;; modded : DTF 18-Sep-86 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC PO_LOGIC ;; + PUBLIC PO_860_XLAT ;; + PUBLIC PO_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a linear search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; PO State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +PO_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; +IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; +ENDIFF ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; PO Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC PO_COMMON_XLAT ;; +PO_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 27 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 41 ;; + FLAG TILDE ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_K1_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 27 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 43 ;; + FLAG TILDE ;; + ;; + ;; +COM_DK_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 27 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 41 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_K1_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 27 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 43 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set + ;; +COM_DK_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: XT, G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 2 number of entries +; DB 12,-1,-1 ;; BLOT OUT HYPHEN +; DB 53,0,82H ;; MOVE HYPHEN +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID **** CNS 12/18 + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 7 ;; number of entries + DB 09,1BH,09 ;; [ + DB 10,1DH,10 ;; ] + DB 12,-1,-1 ;; BLOT OUT HYPHEN + DB 1AH,-1,-1 ;; " " [ + DB 1BH,-1,-1 ;; " " ] + DB 29H,1CH,29H ;; backslash + DB 53,01FH,35H ;; MOVE HYPHEN +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; *** CNS 12/18/86 + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 5 ;; number of entries + DB 12,-1,-1 ;; BLOT OUT HYPHEN + DB 1AH,1BH,1AH ;; " " [ + DB 1BH,1DH,1BH ;; " " ] + DB 43,1CH,43 ;; backslash + DB 53,01FH,35H ;; MOVE HYPHEN +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: XT, G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 39,087H ;; c-cedilla +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: XT, G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 39,080H ;; c-cedilla +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 12,"'" ;; + DB 13,0AEH ;; + DB 26,"+" ;; + DB 40,0A7H ;; + DB 43,"<" ;; + DB 53,"-" ;; +COM_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 13,0AEH ;; + DB 26,"+" ;; + DB 40,0A7H ;; + DB 41,"\" ;; + DB 53,"-" ;; + DB 86,"<" ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 14 ;; + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,0AFH ;; right double arrow + DB 26,'*' ;; + DB 40,0A6H ;; a underscore + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + ;; +COM_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 15 ;; + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,0AFH ;; right double arrow + DB 26,'*' ;; + DB 40,0A6H ;; a underscore + DB 41,07CH ;;| + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 86,'>' ;; + ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of entries + DB 2,'|' ;; + DB 3,'@' ;; + DB 5,09CH ;; + DB 9,'{' ;; + DB 10,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 3,'@' ;; + DB 4,09CH ;; + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 4 ;; number of scans + DB 30,0C6H ;; scan code,ASCII - tilde a + DB 24,0E4H ;; scan code,ASCII - tilde o + DB 49,0A4H ;; scan code,ASCII - + DB 22,081h ;; scan code,ASCII - u diaresis + COM_TI_LO_T1_END: ;; because the diaresis is not + ;; available on the XT + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: XT, +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB 07eH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 4 ;; number of scans + DB 30,0C7H ;; scan code,ASCII - tilde A + DB 24,0E5H ;; scan code,ASCII - tilde O + DB 49,0A5H ;; scan code,ASCII - + DB 22,09AH ;; scan code,ASCII - U diaresis + COM_TI_UP_T1_END: ;; because the diaresis is not + ;; available on the XT + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_K1_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,0C6H ;; scan code,ASCII - tilde a + DB 24,0E4H ;; scan code,ASCII - tilde o + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_K1_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: G, P12 +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_K1_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,0C7H ;; scan code,ASCII - tilde A + DB 24,0E5H ;; scan code,ASCII - tilde O + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_K1_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; PO Specific Translate Section for 860 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC PO_860_XLAT ;; +PO_860_XLAT: ;; + ;; + DW CP860_XLAT_END-$ ;; length of section + DW 860 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP860_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,015H ;; section symbol +CP860_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP860_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP860_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP860_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP860_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,090H ;; E acute + DB 22,096H ;; U acute + DB 23,08BH ;; I acute + DB 24,09FH ;; O acute + DB 30,086H ;; A acute +CP860_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP860_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP860_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Grave Upper +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP860_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,092H ;; E grave + DB 22,09DH ;; U grave + DB 23,098H ;; I grave + DB 24,0A9H ;; O grave + DB 30,091H ;; A grave +CP860_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP860_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,08FH ;; A circumflex + DB 18,089H ;; E circumflex + DB 24,08CH ;; O circumflex +CP860_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 07eH,0 ;; error character = standalone accent + ;; + DW CP860_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,094H ;; scan code,ASCII - o tilde + DB 30,084H ;; scan code,ASCII - a tilde + CP860_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP860_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 860 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: XT, , G, P12, +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 07eH,0 ;; error character = standalone accent + ;; + DW CP860_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,099H ;; scan code,ASCII - O tilde + DB 30,08EH ;; scan code,ASCII - A tilde + CP860_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP860_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Diaresis Lower +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP860_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 22,081H ;; u diaeresis +CP860_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Diaresis Upper +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP860_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 22,09AH ;; U diaeresis +CP860_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 860 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP860_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 0FEH,0 ;; error character = standalone accent + ;; + DW CP860_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0FEH ;; scan code,ASCII - SPACE +CP860_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP860_DI_SP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP860_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; PO Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC PO_850_XLAT ;; +PO_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0F5H ;; section symbol +CP850_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,090H ;; E acute + DB 21,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,089H ;; e diaeresis + DB 21,098H ;; y diaeresis + DB 22,081H ;; u diaeresis + DB 23,08BH ;; i diaeresis + DB 24,094H ;; o diaeresis + DB 30,084H ;; a diaeresis +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper +;; KEYBOARD TYPES: G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E diaeresis + DB 22,09AH ;; U diaeresis + DB 23,0D8H ;; I diaeresis + DB 24,099H ;; O diaeresis + DB 30,08EH ;; A diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; scan code,ASCII - SPACE +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 30,0C6H ;; scan code,ASCII - a tilde + DB 24,0E4H ;; scan code,ASCII - o tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: XT, , G, P12, +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 07eH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 30,0C7H ;; scan code,ASCII - A tilde + DB 24,0E5H ;; scan code,ASCII - O tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 23,08CH ;; i circumflex + DB 22,096H ;; u circumflex +CP850_CI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: XT, , G, P12, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW XT_KB+G_KB+P12_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; + diff --git a/v4.0/src/DEV/KEYBOARD/KDFSF.ASM b/v4.0/src/DEV/KEYBOARD/KDFSF.ASM new file mode 100644 index 0000000..6165b0d --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFSF.ASM @@ -0,0 +1,1627 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Swiss French +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC SF_LOGIC ;; + PUBLIC SF_437_XLAT ;; + PUBLIC SF_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SG State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +SF_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +IFF EITHER_ALT,NOT ;; +ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; +ENDIFF ;; +IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; +ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. + IFF CAPS_STATE ;; + XLATT BOTRH_F_CAPS ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT BOTRH_CAPS ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;IFF EITHER_SHIFT,NOT ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; +; ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SF Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SF_COMMON_XLAT ;; +SF_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_SF_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + DB 27 ;; scan code + FLAG DIARESIS ;; flag bit to set + ;; + ;; +COM_SF_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_SF_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set +COM_SF_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG TILDE ;; flag bit to set + DB 12 ;; scan code + FLAG ACUTE ;; flag bit to set +COM_DK_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 2 ;; 5 Number of entries +; DB 12,-1,-1 ;; +; DB 13,-1,-1 ;; + DB 21,0,2CH ;; + DB 44,0,15H ;; +; DB 53,0,82H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; Number of entries + DB 12,-1,-1 ;; + DB 21,01AH,15H ;; + DB 43,-1,-1 ;; + DB 44,019H,2CH ;; + DB 53,01FH,35H ;; + DB 86,01CH,56H ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 21,'z' ;; small z + DB 44,'y' ;; small y + ;; +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 21,'Z' ;; caps Z + DB 44,'Y' ;; caps Y +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 26,8AH ;; e Grave + DB 39,82H ;; e Acute + DB 40,85H ;; a Grave + DB 43,'$' ;; + DB 86,'<' ;; + DB 53,'-' ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 26,8AH ;; e Grave + DB 39,82H ;; e Acute + DB 40,85H ;; a Grave + DB 41,'<' ;; + DB 43,'$' ;; + DB 53,'-' ;; +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 26,8AH ;; e Grave + DB 39,82H ;; e Acute + DB 40,85H ;; a Grave + DB 41,'$' ;; + DB 43,'<' ;; + DB 53,'-' ;; +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,0F8H ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 43,09CH ;; + DB 27,'!' ;; + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 26,81H ;; u diaeresis + DB 39,94H ;; o diaeresis + DB 40,84H ;; a diaeresis +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 41,'>' ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 43,09CH ;; + DB 27,'!' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 26,81H ;; u diaeresis + DB 39,94H ;; o diaeresis + DB 40,84H ;; a diaeresis +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 43,'>' ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,09CH ;; + DB 27,'!' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 26,81H ;; u diaeresis + DB 39,94H ;; o diaeresis + DB 40,84H ;; a diaeresis +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 7,0AAH ;; + DB 43,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 40,'{' ;; + DB 86,'\' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 5,0F8H ;; degree symbol + DB 8,07CH ;; broken vertical - | + DB 40,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'{' ;; + DB 41,'\' ;; +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 5,0F8H ;; degree symbol + DB 6,0E8H ;; symbol + DB 41,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 40,'{' ;; + DB 43,'\' ;; +COM_THIRD_T1_K3_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,08AH ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SF Specific Translate Section for 437 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SF_437_XLAT ;; +SF_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,015H ;; Section Symbol +CP437_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 2,0B3H ;; Solid vertical + DB 8,07CH ;; Broken vertical + DB 9,09BH ;; cent sign +CP437_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Third Shift +;; KEYBOARD TYPES: AT+XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 8,07CH ;; Broken vertical + DB 6,015H ;; Section Symbol +CP437_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 34,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 34,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: CapsLock +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_BOTRH_END-$ ;; length of state section + DB BOTRH_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_BOTRH_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 39,082H ;; e ACUTE + DB 26,08AH ;; e GRAVE + DB 40,085H ;; a GRAVE +CP437_BOTRH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_BOTRH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: CapsLock + Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_BOTRH_K1_END-$ ;; length of state section + DB BOTRH_F_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_BOTRH_T2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 39,094H ;; o di + DB 26,081H ;; u di + DB 40,084H ;; a di +CP437_BOTRH_T2_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_BOTRH_K1_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SF Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SF_850_XLAT ;; +SF_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: CapsLock +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_BOTRH_END-$ ;; length of state section + DB BOTRH_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_BOTRH_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 39,090H ;; CAP E ACUTE + DB 26,0D4H ;; CAP E GRAVE + DB 40,0B7H ;; CAP A GRAVE +CP850_BOTRH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_BOTRH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: CapsLock + Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_BOTRH_K1_END-$ ;; length of state section + DB BOTRH_F_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_BOTRH_T2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,09AH ;; CAP U di + DB 39,099H ;; CAP O di + DB 40,08EH ;; CAP A di +CP850_BOTRH_T2_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_BOTRH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0F5H ;; Section Symbol +CP850_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 2,07CH ;; Solid vertical + DB 8,0DDH ;; Broken vertical + DB 9,0BDH ;; cent sign +CP850_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: AT+XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 8,0DDH ;; Broken vertical + DB 6,0F5H ;; Section Symbol +CP850_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 44,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFSG.ASM b/v4.0/src/DEV/KEYBOARD/KDFSG.ASM new file mode 100644 index 0000000..233da93 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFSG.ASM @@ -0,0 +1,1629 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Swiss German +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC SG_LOGIC ;; + PUBLIC SG_437_XLAT ;; + PUBLIC SG_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SG State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +SG_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +IFF EITHER_ALT,NOT ;; +ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; +ENDIFF ;; +IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; +ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. + IFF CAPS_STATE ;; + XLATT BOTLH_F_CAPS ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + XLATT NON_ALPHA_UPPER ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT BOTLH_CAPS ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + XLATT NON_ALPHA_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;IFF EITHER_SHIFT,NOT ;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + XLATT CTRL_CASE ;; + ENDIFF ;; +; ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SG Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SG_COMMON_XLAT ;; +SG_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_SG_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + DB 27 ;; scan code + FLAG DIARESIS ;; flag bit to set + ;; + ;; +COM_SG_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_SG_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set +COM_SG_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG TILDE ;; flag bit to set + DB 12 ;; scan code + FLAG ACUTE ;; flag bit to set +COM_DK_TH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 2 ;; 5 Number of entries +; DB 12,-1,-1 ;; +; DB 13,-1,-1 ;; + DB 21,0,2CH ;; + DB 44,0,15H ;; +; DB 53,0,82H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; + DB 6 ;; Number of entries + DB 12,-1,-1 ;; + DB 21,01AH,15H ;; + DB 43,-1,-1 ;; + DB 44,019H,2CH ;; + DB 53,01FH,35H ;; + DB 86,01CH,56H ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 21,'z' ;; small z + DB 44,'y' ;; small y + ;; +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 21,'Z' ;; caps Z + DB 44,'Y' ;; caps Y +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 39,'' ;; diaresis - o + DB 26,'' ;; diaresis - u + DB 40,'' ;; diaresis - a + DB 43,'$' ;; + DB 86,'<' ;; + DB 53,'-' ;; +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 39,'' ;; diaresis - o + DB 26,'' ;; diaresis - u + DB 40,'' ;; diaresis - a + DB 41,'<' ;; + DB 43,'$' ;; + DB 53,'-' ;; +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 7 ;; number of entries + DB 12,"'" ;; + DB 39,'' ;; diaresis - o + DB 26,'' ;; diaresis - u + DB 40,'' ;; diaresis - a + DB 41,'$' ;; + DB 43,'<' ;; + DB 53,'-' ;; +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 20 ;; number of entries + DB 41,0F8H ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 43,09CH ;; + DB 27,'!' ;; + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 39,'' ;; acute e + DB 26,'' ;; grave e + DB 40,'' ;; grave a +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 41,'>' ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 43,09CH ;; + DB 27,'!' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 39,'' ;; acute e + DB 26,'' ;; grave e + DB 40,'' ;; grave a +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 19 ;; number of entries + DB 43,'>' ;; degree symbol + DB 2,'+' ;; + DB 3,'"' ;; + DB 4,'*' ;; + DB 5,087H ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,09CH ;; + DB 27,'!' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 39,'' ;; acute e - Shift stae for SWISS GR + DB 26,'' ;; grave e + DB 40,'' ;; grave a +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 7,0AAH ;; + DB 43,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 40,'{' ;; + DB 86,'\' ;; +COM_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 5,0F8H ;; degree symbol + DB 8,07CH ;; broken vertical - | + DB 40,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 39,'{' ;; + DB 41,'\' ;; +COM_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,"@" ;; + DB 4,'#' ;; + DB 5,0F8H ;; degree symbol + DB 6,0E8H ;; symbol + DB 41,'}' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 40,'{' ;; + DB 43,'\' ;; +COM_THIRD_T1_K3_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,08AH ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SG Specific Translate Section for 437 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SG_437_XLAT ;; +SG_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,015H ;; Section Symbol +CP437_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 2,0B3H ;; Solid vertical + DB 8,07CH ;; Broken vertical + DB 9,09BH ;; cent sign +CP437_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Third Shift +;; KEYBOARD TYPES: AT+XT+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 8,07CH ;; Broken vertical + DB 6,015H ;; Section Symbol +CP437_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 34,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 34,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: CapsLock +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_BOTLH_K1_END-$ ;; length of state section + DB BOTLH_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_BOTLH_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 39,099H ;; CAP O Umlaut + DB 26,09AH ;; CAP U Umlaut + DB 40,08EH ;; CAP A Umlaut +CP437_BOTLH_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_BOTLH_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: CapsLock + Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_BOTLH_T1_END-$ ;; length of state section + DB BOTLH_F_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_BOTLH_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 39,082H ;; e Acute + DB 26,08AH ;; e Grave + DB 40,085H ;; a Grave +CP437_BOTLH_T1_K2_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_BOTLH_T1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SG Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SG_850_XLAT ;; +SG_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: CapsLock +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_BOTLH_END-$ ;; length of state section + DB BOTLH_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_BOTLH_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,09AH ;; CAP U Umlaut + DB 39,099H ;; CAP O Umlaut + DB 40,08EH ;; CAP A Umlaut +CP850_BOTLH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_BOTLH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: CapsLock + Shift +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_BOTLH_K1_END-$ ;; length of state section + DB BOTLH_F_CAPS ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_BOTLH_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,0D4H ;; CAP E Grave + DB 39,090H ;; CAP E Acute + DB 40,0B7H ;; CAP A Grave +CP850_BOTLH_T1_K1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_BOTLH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0F5H ;; Section Symbol +CP850_NA_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_LO_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 2,07CH ;; Solid vertical + DB 8,0DDH ;; Broken vertical + DB 9,0BDH ;; cent sign +CP850_THIRD_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Third Shift +;; KEYBOARD TYPES: AT+XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 8,0DDH ;; Broken vertical + DB 6,0F5H ;; Section Symbol +CP850_THIRD_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_THIRD_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 44,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 44,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFSP.ASM b/v4.0/src/DEV/KEYBOARD/KDFSP.ASM new file mode 100644 index 0000000..30955e3 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFSP.ASM @@ -0,0 +1,1373 @@ +;; LATEST CHANGE ALT & CTL (November) +;LATEST CHANGE XT "\" third shift (December) +;;;;******************************************** +;;;;******************************************** +;;;;CONTAINS UPDATES FOR +;;;; 1) ALT, CTRL CASES +;;;; 2) DECIMAL SEPERATOR ON NUMERIC PAD +;;;; 3) STANDALONE DIARESIS VALID ONLY FOR 850 +;;;;CHANGES ARE MARKED ***BD +;;;;******************************************** +;;;;******************************************** + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC SP_LOGIC ;; + PUBLIC SP_437_XLAT ;; + PUBLIC SP_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SP State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +SP_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SP Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SP_COMMON_XLAT ;; +SP_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_K1_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 26 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 40 ;; + FLAG ACUTE ;; + ;; + ;; +COM_DK_LO_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: AT + XT + +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_K2_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 26 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; + FLAG GRAVE ;; + ;; + ;; +COM_DK_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_K1_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 26 ;; scan code + FLAG CIRCUMFLEX ;; flag bit to set + DB 40 ;; + FLAG DIARESIS ;; + ;; +COM_DK_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: AT + XT + +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 26 ;; scan code + FLAG DIARESIS ;; flag bit to set + DB 27 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: G + AT + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_K1_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW G_KB+AT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 39,164 ;; n-tilde + DB 43,135 ;; c-cedilla +COM_AL_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_K1_END: ;; + +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: p12 + G +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 0 ;; number of entries +; THIS IS A TEST ENTRY TO SHOW AN EXAMPLE +; DB 83,44 ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: AT+ XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;; +;; DW COM_PAD_K2_END-$ ;; length of state section +;; DB NUMERIC_PAD ;; State ID +;; DW AT_KB+XT_KB ;; Keyboard Type +;; DB -1,-1 ;; Buffer entry for error character +;; ;; +;; DW COM_PAD_K2_T2_END-$ ;; Size of xlat table +;; DB STANDARD_TABLE ;; xlat options: +;; DB 1 ;; number of entries +;; DB 74,05eh ;; circumflex carat under the Prtscr key +;;COM_PAD_K2_T2_END: ;; +;; ;; +;; DW 0 ;; Size of xlat table - null table +;; ;; +;;COM_PAD_K2_END: ;; +;; ;; +;;;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T2_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 1 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash +COM_CTRL_K2_T2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_K2_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 39,164 ;; n-tilde + DB 41,135 ;; c-cedilla +COM_AL_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: G + AT + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_K1_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW G_KB+AT_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 39,165 ;; N-tilde + DB 43,128 ;; C-cedilla +COM_AL_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_K2_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 39,165 ;; N-tilde + DB 41,128 ;; C-cedilla +COM_AL_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 6 ;; number of entries + DB 12,"'" ;; ' + DB 27,'+' ;; + + DB 86,'<' ;; < + DB 53,'-' ;; - + DB 41,167 ;; o-underline + DB 13,173 ;; upside-dowm ! +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 40,';' ;; ; + DB 41,'<' ;; < + DB 53,"'" ;; quote + DB 55,05eh ;; circumflex carat under the Prtscr key +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 40,';' ;; ; + DB 43,'<' ;; < + DB 53,"'" ;; quote + DB 55,05eh ;; circumflex carat under the Prtscr key +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 16 ;; number of entries + DB 3,'"' ;; + DB 4,250 ;; diacritic + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 13,168 ;; upside-dowm ? + DB 27,'*' ;; + DB 41,166 ;; a-underline + DB 86,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of entries + DB 41,'>' ;; + DB 2,0ADH ;; UPSIDE DOWN + DB 3,168 ;; UPSIDE DOWN ? + DB 7,'/' ;; + DB 40,':' ;; + DB 51,'?' ;; + DB 52,'!' ;; + DB 53,'"' ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 8 ;; number of entries + DB 43,'>' ;; + DB 2,0ADH ;; UPSIDE DOWN + DB 3,168 ;; UPSIDE DOWN ? + DB 7,'/' ;; + DB 40,':' ;; + DB 51,'?' ;; + DB 52,'!' ;; + DB 53,'"' ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 41,'\' ;; + DB 2,'|' ;; + DB 3,'@' ;; + DB 4,'#' ;; + DB 7,170 ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 40,'{' ;; + DB 43,'}' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 41,'\' ;; + DB 3,'@' ;; + DB 26,'[' ;; + DB 27,']' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: XT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K3_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 3,'@' ;; + DB 26,'[' ;; + DB 27,']' ;; + DB 43,'\' ;; +COM_THIRD_K3_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_LO_END-$ ;; length of state section +; DB ACUTE_LOWER ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_LO_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 5 ;; number of scans +; DB 18,'' ;; scan code,ASCII - e +; DB 30,'' ;; scan code,ASCII - a +; DB 24,'' ;; scan code,ASCII - o +; DB 22,'' ;; scan code,ASCII - u +; DB 23,'' ;; scan code,ASCII - i +;COM_AC_LO_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_LO_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Acute Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_UP_END-$ ;; length of state section +; DB ACUTE_UPPER ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_UP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 2 ;; number of scans +; DB 18,'' ;; scan code,ASCII - e +;COM_AC_UP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_UP_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Acute Space Bar +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW COM_AC_SP_END-$ ;; length of state section +; DB ACUTE_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 39,0 ;; error character = standalone accent +; ;; +; DW COM_AC_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,39 ;; scan code,ASCII - SPACE +;COM_AC_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;COM_AC_SP_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 21,'' ;; scan code,ASCII - y +COM_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW COM_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u +COM_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 30,'' ;; scan code,ASCII - a + DB 24,'' ;; scan code,ASCII - o + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SP Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SP_437_XLAT ;; +SP_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: Specific 437 +; STATE: Acute Lower Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_LO_END-$ ; length of state section + DB ACUTE_LOWER ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_LO_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +CP437_AC_LO_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_LO_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 437 +; STATE: Acute Upper Case +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_UP_END-$ ; length of state section + DB ACUTE_UPPER ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_UP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 18,'' ; scan code,ASCII - e +CP437_AC_UP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_UP_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; CODE PAGE: 437 +; STATE: Acute Space Bar +; KEYBOARD TYPES: All +; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW CP437_AC_SP_END-$ ; length of state section + DB ACUTE_SPACE ; State ID + DW ANY_KB ; Keyboard Type + DB 39,0 ; error character = standalone accent + ; + DW CP437_AC_SP_T1_END-$ ; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ; xlat options: + DB 1 ; number of scans + DB 57,39 ; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ; + ; + DW 0 ; Size of xlat table - null table + ; +CP437_AC_SP_END: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SP Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SP_850_XLAT ;; +SP_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,'' ; scan code,ASCII - a + DB 24,'' ; scan code,ASCII - o + DB 22,'' ; scan code,ASCII - u + DB 23,'' ; scan code,ASCII - i +; DB 21,0ECH Delete until 4.00 ;; y acute +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ; scan code,ASCII - e + DB 30,0B5H ;; A acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 22,0E9H ;; U acute +; DB 21,0EDH Delete until 4.00 ;; Y acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 0EFH,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,0EFH ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 18,0D3H ;; E diaeresis + DB 23,0D8H ;; I diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B7H ;; A grave + DB 18,0D4H ;; E grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 22,0EBH ;; U grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 30,0B6H ;; A circumflex + DB 18,0D2H ;; E circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 22,0EAH ;; U circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFSU.ASM b/v4.0/src/DEV/KEYBOARD/KDFSU.ASM new file mode 100644 index 0000000..9710310 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFSU.ASM @@ -0,0 +1,1680 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Finnish +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC SU_LOGIC ;; + PUBLIC SU_437_XLAT ;; + PUBLIC SU_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a linear search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SU State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +SU_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_CTL,NOT ;; + IFF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some + ANDF R_ALT_SHIFT ;; dead keys are on third shift + ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NON_DEAD: ;; +;;ADDED FOR DIVIDE SIGN ;; + IFKBD G_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + XLATT DIVIDE_SIGN ;; + ENDIFF ;; + EXIT_STATE_LOGIC ;; + ENDIFF ;; + ;; + IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic + IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; Third and Fourth shifts + ELSEF ;; ctl off, alt on at this point + IFKBD XT_KB+AT_KB ;; XT, AT, keyboards. Nordics + IFF EITHER_SHIFT ;; only. + XLATT FOURTH_SHIFT ;; ALT + shift + ELSEF ;; + XLATT THIRD_SHIFT ;; ALT + ENDIFF ;; + ELSEF ;; ENHANCED keyboard + IFF R_ALT_SHIFT ;; ALTGr + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFKBD AT_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;********************************************************************** +;; SU Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; Some common Characters are included from 128 - 165 where appropriate. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SU_COMMON_XLAT ;; +SU_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; + FLAG DIARESIS ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 27 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 27 ;; scan code + FLAG TILDE ;; flag bit to set + ;; +COM_DK_TH_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries + DB 12,-1,-1 ;; + DB 53,0,82H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT, , AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries + DB 12,-1,-1 ;; + DB 53,01FH,35h ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 8 ;; number of entries + DB 9,01BH,09H ;; + DB 10,01DH,0AH ;; + DB 12,-1,-1 ;; + DB 26,-1,-1 ;; + DB 27,-1,-1 ;; + DB 43,-1,-1 ;; + DB 53,01FH,35H ;; + DB 86,01CH,56H ;; +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,086H ;; a-overcircle + DB 39,094H ;; o-diaeresis + DB 40,084H ;; a-diaeresis +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,08FH ;; A-OVERCIRCLE + DB 39,099H ;; A-DIAERESIS + DB 40,08EH ;; O-DIAERESIS +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + INCLUDED FOR SIMPLIC. + DB 43,"'" ;; ' + DB 86,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"'" ;; ' + DB 43,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"<" ;; < + DB 43,"'" ;; ' + DB 53,"-" ;; - +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'' ;; + DB 43,'*' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 86,'>' ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB + _KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,09CH ;; POUND STERLING + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'*' ;; + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,09CH ;; POUND STERLING + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'>' ;; + DB 43,'*' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type FERRARI + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,'@' ;; + DB 4,09CH ;; + DB 5,'$' ;; + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; + DB 12,'\' ;; Broken Vertical Line + DB 86,'|' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,060H,060H ;; + DB 43,'\','\' ;; + DB 53,'/','/' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,'\','\' ;; + DB 43,060H,060H ;; + DB 53,'/','/' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: XT, +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'~','~' ;; + DB 43,'|','|' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_K1_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'|','|' ;; + DB 43,'~','~' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SU Specific Translate Section for 437 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SU_437_XLAT ;; +SU_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0 ;; International Currency Symb +CP437_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_K1_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,015H ;; SECTION Symb +CP437_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_K1_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP437_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 254,0 ;; error character = standalone accent +; ;; +; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,254 ;; error character = standalone accent +;CP437_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP437_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SU Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SU_850_XLAT ;; +SU_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Divide Sign +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DIVID_END-$ ;; length of state section + DB DIVIDE_SIGN ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; error character = standalone accent + ;; + DW CP850_DIVID_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of scans + DB 0E0H,0F6H,0E0H ;; + DB 53,0F6H,0E0H ;; DIVIDE SIGN +CP850_DIVID_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DIVID_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 55,09EH ;; +CP850_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_PAD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0CFH ;; International Currency Symb +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_K1_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0F5H ;; SECTION Symb +CP850_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_K1_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 21,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFSV.ASM b/v4.0/src/DEV/KEYBOARD/KDFSV.ASM new file mode 100644 index 0000000..b3d37f9 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFSV.ASM @@ -0,0 +1,1687 @@ + PAGE ,132 + TITLE DOS - Keyboard Definition File +;LATEST CHANGE MULTIPLICATION & DIVISION SIGNS +;DOLLAR SIGN output ON P12 should be International Currency sign +;Enabled P12 Tag for CP850 UC section +;****************** CNS 12/18 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Swedish +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC SV_LOGIC ;; + PUBLIC SV_437_XLAT ;; + PUBLIC SV_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a linear search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SV State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +SV_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;; ***BD - THIS SECTION HAS BEEN UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_CTL,NOT ;; + IFF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ELSEF ;; + IFKBD G_KB+P12_KB ;; For ENHANCED keyboard some + ANDF R_ALT_SHIFT ;; dead keys are on third shift + ANDF EITHER_SHIFT,NOT ;; which is accessed via the altgr key + SET_FLAG DEAD_THIRD ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO TILDE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; TILDE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TILDE_PROC: ;; + ;; + IFF TILDE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT TILDE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT TILDE_LOWER ;; + ELSEF ;; + XLATT TILDE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT TILDE_UPPER ;; + ELSEF ;; + XLATT TILDE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_TILDE: ;; + PUT_ERROR_CHAR TILDE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;; ***BD - NON_DEAD THRU LOGIC_END IS UPDATED +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NON_DEAD: ;; +;ADDED FOR DIVIDE SIGN ;; ***** DIVIDE OMITTED **** CNS + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the +; IFF EITHER_CTL,NOT ;; country comforms with U.S. currently +; ANDF EITHER_ALT,NOT +; XLATT DIVIDE_SIGN ;; +; ENDIFF +;BD END OF ADDITION + EXIT_STATE_LOGIC ;; + ENDIFF ;; + ;; + IFF EITHER_CTL,NOT ;; Lower and upper case. Alphabetic + IFF EITHER_ALT,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; Third and Fourth shifts + ELSEF ;; ctl off, alt on at this point + IFKBD XT_KB+AT_KB+JR_KB ;; XT, AT, JR keyboards. Nordics + IFF EITHER_SHIFT ;; only. + XLATT FOURTH_SHIFT ;; ALT + shift + ELSEF ;; + XLATT THIRD_SHIFT ;; ALT + ENDIFF ;; + ELSEF ;; ENHANCED keyboard + IFF R_ALT_SHIFT ;; ALTGr + ANDF EITHER_SHIFT,NOT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB+JR_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; +;**************************************;; + IFKBD AT_KB+JR_KB+XT_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + IFKBD G_KB+P12_KB ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;********************************************************************** +;; SV Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; Some common Characters are included from 128 - 165 where appropriate. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SV_COMMON_XLAT ;; +SV_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Lower Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_LO_END-$ ;; length of state section + DB DEAD_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG ACUTE ;; flag bit to set + DB 27 ;; + FLAG DIARESIS ;; + ;; + ;; +COM_DK_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Upper Shift Dead Key +;; KEYBOARD TYPES: All +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_UP_END-$ ;; length of state section + DB DEAD_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 2 ;; number of entries + DB 13 ;; scan code + FLAG GRAVE ;; flag bit to set + DB 27 ;; + FLAG CIRCUMFLEX ;; + ;; +COM_DK_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift Dead Key +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Flag Table +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_DK_TH_END-$ ;; length of state section + DB DEAD_THIRD ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; Set Flag Table + DW 1 ;; number of entries + DB 27 ;; scan code + FLAG TILDE ;; flag bit to set + ;; +COM_DK_TH_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR NUMERIC PAD (DECIMAL SEPERATOR) +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common ;;********* CNS ******* change +;; STATE: Numeric Key Pad +;; KEYBOARD TYPES: All except the p12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_PAD_K1_END-$ ;; length of state section + DB NUMERIC_PAD ;; State ID + DW G_KB+AT_KB+XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_PAD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 83,',' ;; decimal seperator = , +COM_PAD_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_PAD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K1_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; 2 number of entries +; DB 12,-1,-1 ;; +; DB 53,0,82H ;; +COM_ALT_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: XT, JR, AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K1_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW XT_KB+JR_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries + DB 12,-1,-1 ;; + DB 53,01FH,35h ;; +COM_CTRL_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 8 ;; number of entries + DB 9,01BH,09H ;; + DB 10,01DH,0AH ;; + DB 12,-1,-1 ;; + DB 26,-1,-1 ;; + DB 27,-1,-1 ;; + DB 43,-1,-1 ;; + DB 53,01FH,35H ;; + DB 86,01CH,56H ;; +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_LO_END-$ ;; length of state section + DB ALPHA_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,086H ;; a-overcircle + DB 39,094H ;; o-diaeresis + DB 40,084H ;; a-diaeresis +COM_AL_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alpha Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_AL_UP_END-$ ;; length of state section + DB ALPHA_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_AL_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 26,08FH ;; A-OVERCIRCLE + DB 39,099H ;; A-DIAERESIS + DB 40,08EH ;; O-DIAERESIS +COM_AL_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_AL_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + INCLUDED FOR SIMPLIC. + DB 43,"'" ;; ' + DB 86,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT + JR +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB+JR_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"'" ;; ' + DB 43,"<" ;; < + DB 53,"-" ;; - +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 4 ;; number of entries + DB 12,"+" ;; + + DB 41,"<" ;; < + DB 43,"'" ;; ' + DB 53,"-" ;; - +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G + P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB + P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'' ;; + DB 43,'*' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; + DB 86,'>' ;; +COM_NA_UP_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT + JR +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB + JR_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,09CH ;; POUND STERLING + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'*' ;; + DB 43,'>' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; +COM_NA_UP_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 13 ;; number of entries + DB 3,'"' ;; + DB 4,09CH ;; POUND STERLING + DB 7,'&' ;; + DB 8,'/' ;; + DB 9,'(' ;; + DB 10,')' ;; + DB 11,'=' ;; + DB 12,'?' ;; + DB 41,'>' ;; + DB 43,'*' ;; + DB 51,';' ;; + DB 52,':' ;; + DB 53,'_' ;; +COM_NA_UP_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type FERRARI + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 9 ;; number of entries + DB 3,'@' ;; + DB 4,09CH ;; + DB 5,'$' ;; + DB 8,'{' ;; + DB 9,'[' ;; + DB 10,']' ;; + DB 11,'}' ;; + DB 12,'\' ;; Broken Vertical Line + DB 86,'|' ;; +COM_THIRD_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: XT, JR +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW XT_KB+JR_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,060H,060H ;; + DB 43,'\','\' ;; + DB 53,'/','/' ;; +COM_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Third Shift (ALTERNATE) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_THIRD_K2_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_THIRD_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 9 ;; number of entries + DB 12,'-','-' ;; + DB 13,'=','=' ;; + DB 26,'[','[' ;; + DB 27,']',']' ;; + DB 39,';',';' ;; + DB 40,027H,027H ;; + DB 41,'\','\' ;; + DB 43,060H,060H ;; + DB 53,'/','/' ;; +COM_THIRD_K2_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_THIRD_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: XT, JR +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW XT_KB+JR_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'~','~' ;; + DB 43,'|','|' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Fourth Shift (ALTERNATE+SHIFT) +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_FOURTH_K1_END-$ ;; length of state section + DB FOURTH_SHIFT ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_FOURTH_K1_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 18 ;; number of entries + DB 3,'@','@' ;; + DB 4,'#','#' ;; + DB 7,'^','^' ;; + DB 8,'&','&' ;; + DB 9,'*','*' ;; + DB 10,'(','(' ;; + DB 11,')',')' ;; + DB 12,'_','_' ;; + DB 13,'+','+' ;; + DB 26,'{','{' ;; + DB 27,'}','}' ;; + DB 39,':',':' ;; + DB 40,'"','"' ;; + DB 41,'|','|' ;; + DB 43,'~','~' ;; + DB 51,'<','<' ;; + DB 52,'>','>' ;; + DB 53,'?','?' ;; +COM_FOURTH_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +COM_FOURTH_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_LO_END-$ ;; length of state section + DB GRAVE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_GR_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Grave Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_GR_SP_END-$ ;; length of state section + DB GRAVE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW COM_GR_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,96 ;; STANDALONE GRAVE +COM_GR_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_GR_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_LO_END-$ ;; length of state section + DB CIRCUMFLEX_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +COM_CI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; +COM_CI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Circumflex Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CI_SP_END-$ ;; length of state section + DB CIRCUMFLEX_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW COM_CI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,94 ;; STANDALONE CIRCUMFLEX +COM_CI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A4H ;; scan code,ASCII - + COM_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + COM_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: Common +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 49,0A5H ;; scan code,ASCII - + COM_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + COM_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Tilde Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_TI_SP_END-$ ;; length of state section + DB TILDE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW COM_TI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,07EH ;; STANDALONE TILDE +COM_TI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_TI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SV Specific Translate Section for 437 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SV_437_XLAT ;; +SV_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0 ;; International Currency Symb +CP437_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_K1_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,015H ;; SECTION Symb +CP437_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_K1_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of entries + DB 18,'' ;; scan code,ASCII - +CP437_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 39,0 ;; error character = standalone accent + ;; + DW CP437_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,39 ;; scan code,ASCII - SPACE +CP437_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP437_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP437_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 254,0 ;; error character = standalone accent + ;; + DW CP437_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 3 ;; number of scans + DB 22,'' ;; scan code,ASCII - U + DB 24,'' ;; scan code,ASCII - O + DB 30,'' ;; scan code,ASCII - A +CP437_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 437 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP437_DI_SP_END-$ ;; length of state section +; DB DIARESIS_SPACE ;; State ID +; DW ANY_KB ;; Keyboard Type +; DB 254,0 ;; error character = standalone accent +; ;; +; DW CP437_DI_SP_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: +; DB 1 ;; number of scans +; DB 57,254 ;; error character = standalone accent +;CP437_DI_SP_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +;CP437_DI_SP_END: ;; length of state section +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; SV Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC SV_850_XLAT ;; +SV_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Numeric Pad - Divide Sign +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP850_DIVID_END-$ ;; length of state section +; DB DIVIDE_SIGN ;; State ID +; DW G_KB+P12_KB ;; Keyboard Type +; DB -1,-1 ;; error character = standalone accent +; ;; +; DW CP850_DIVID_T1_END-$ ;; Size of xlat table +; DB TYPE_2_TAB ;; xlat options: +; DB 0 ;; number of scans +; DB 0E0H,0F6H,0E0H ;; DIVIDE SIGN omitted sv/su +; DB 53,0F6H,0E0H ;; has decidied to stick with U.S. +; DB 0E0H,09eH,0E0H ;; standards in order to use BASIC +; DB 55,09eH,0E0H ;; +;CP850_DIVID_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;CP850_DIVID_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Numeric Key Pad - Multiplication +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; ;; +; DW CP850_PAD_K1_END-$ ;; length of state section +; DB NUMERIC_PAD ;; State ID +; DW G_KB+P12_KB ;; Keyboard Type +; DB -1,-1 ;; Buffer entry for error character +; ;; +; DW CP850_PAD_K1_T1_END-$ ;; Size of xlat table +; DB STANDARD_TABLE ;; xlat options: +; DB 0 ;; number of entries +; DB 55,09eH (moved *** CNS ****) ;; MULTIPLICATION SIGN +;CP850_PAD_K1_T1_END: ;; +; ;; +; DW 0 ;; Size of xlat table - null table +; ;; +;CP850_PAD_K1_END: ;; +; ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type *** CNS 12/18 + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 5,0CFH ;; International Currency Symb +CP850_NA_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G, P12 +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_K1_LO_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0F5H ;; SECTION Symb +CP850_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_K1_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_LO_END-$ ;; length of state section + DB ACUTE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,0ECH ;; y acute + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_AC_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_UP_END-$ ;; length of state section + DB ACUTE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of entries + DB 18,090H ;; E acute + DB 21,0EDH ;; Y acute + DB 22,0E9H ;; U acute + DB 23,0D6H ;; I acute + DB 24,0E0H ;; O acute + DB 30,0B5H ;; A acute +CP850_AC_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_UP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Acute Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_AC_SP_END-$ ;; length of state section + DB ACUTE_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 239,0 ;; error character = standalone accent + ;; + DW CP850_AC_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,239 ;; scan code,ASCII - SPACE +CP850_AC_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_AC_SP_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Lower Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_LO_END-$ ;; length of state section + DB DIARESIS_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 6 ;; number of scans + DB 18,'' ;; scan code,ASCII - e + DB 21,'' ;; scan code,ASCII - y + DB 22,'' ;; scan code,ASCII - u + DB 23,'' ;; scan code,ASCII - i + DB 24,'' ;; scan code,ASCII - o + DB 30,'' ;; scan code,ASCII - a +CP850_DI_LO_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_LO_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Upper Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_UP_END-$ ;; length of state section + DB DIARESIS_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D3H ;; E Diaeresis + DB 22,'' ;; U Diaeresis + DB 23,0D8H ;; I Diaeresis + DB 24,'' ;; O Diaeresis + DB 30,'' ;; A Diaeresis +CP850_DI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_DI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Diaresis Space Bar +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_DI_SP_END-$ ;; length of state section + DB DIARESIS_SPACE ;; State ID + DW ANY_KB ;; Keyboard Type + DB 249,0 ;; error character = standalone accent + ;; + DW CP850_DI_SP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 1 ;; number of scans + DB 57,249 ;; error character = standalone accent +CP850_DI_SP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table +CP850_DI_SP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Grave Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_GR_UP_END-$ ;; length of state section + DB GRAVE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 96,0 ;; error character = standalone accent + ;; + DW CP850_GR_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D4H ;; E grave + DB 22,0EBH ;; U grave + DB 23,0DEH ;; I grave + DB 24,0E3H ;; O grave + DB 30,0B7H ;; A grave +CP850_GR_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_GR_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Tilde Lower +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_LO_END-$ ;; length of state section + DB TILDE_LOWER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_LO_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E4H ;; scan code,ASCII - o tilde + DB 30,0C6H ;; scan code,ASCII - a tilde + CP850_TI_LO_T1_END: ;; + ;; + DW 0 ;; + ;; + CP850_TI_LO_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; CODE PAGE: 850 +;;; STATE: Tilde Upper Case +;;; KEYBOARD TYPES: All +;;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_TI_UP_END-$ ;; length of state section + DB TILDE_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 07EH,0 ;; error character = standalone accent + ;; + DW CP850_TI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 2 ;; number of scans + DB 24,0E5H ;; scan code,ASCII - O tilde + DB 30,0C7H ;; scan code,ASCII - A tilde + CP850_TI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; + CP850_TI_UP_END: ;; length of state section + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: 850 +;; STATE: Circumflex Upper +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_CI_UP_END-$ ;; length of state section + DB CIRCUMFLEX_UPPER ;; State ID + DW ANY_KB ;; Keyboard Type + DB 94,0 ;; error character = standalone accent + ;; + DW CP850_CI_UP_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE+ZERO_SCAN ;; xlat options: + DB 5 ;; number of scans + DB 18,0D2H ;; E circumflex + DB 22,0EAH ;; U circumflex + DB 23,0D7H ;; I circumflex + DB 24,0E2H ;; O circumflex + DB 30,0B6H ;; A circumflex +CP850_CI_UP_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_CI_UP_END: ;; length of state section + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK.ASM new file mode 100644 index 0000000..1b3d7cf --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFUK.ASM @@ -0,0 +1,655 @@ +;CODE to be deleted has a double ;; followed by actual asm code....**** +;; LATEST CHANGE ALT & CTL + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC UK_LOGIC ;; + PUBLIC UK_437_XLAT ;; + PUBLIC UK_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +UK_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK_COMMON_XLAT ;; +UK_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY +COM_ALT_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K2_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 40,"'" ;; ' + DB 43,'#' ;; # +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 41,"\" ;; \ + DB 40,"'" ;; ' + DB 43,'#' ;; # +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 40,"'" ;; ' + DB 41,'#' ;; # + DB 43,'\' ;; # +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 41,0AAh ;; + DB 3,'"' ;; " + DB 4,09CH ;; + DB 40,'@' ;; at sign + DB 43,07EH ;; ~ +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 3,'"' ;; " + DB 4,09CH ;; + DB 41,07EH ;; ~ + DB 40,'@' ;; at sign + DB 43,07CH ;; Broken vertical bar +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 41,07Ch ;; + DB 3,'"' ;; " + DB 4,09CH ;; + DB 40,'@' ;; at sign + DB 43,07EH ;; ~ +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK_437_XLAT ;; +UK_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0DDH ;; Solid vertical bar - graphics block +CP437_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 86,07ch ;; vertical bar +CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK_850_XLAT ;; +UK_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,07CH ;; Solid vertical bar - | +CP850_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 86,0DDh ;; broken vertical +CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM new file mode 100644 index 0000000..4e7d1c7 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFUK166.ASM @@ -0,0 +1,655 @@ +;CODE to be deleted has a double ;; followed by actual asm code....**** +;; LATEST CHANGE ALT & CTL + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; + INCLUDE POSTEQU.INC ;; + INCLUDE KEYBMAC.INC ;; + ;; + PUBLIC UK2_LOGIC ;; + PUBLIC UK2_437_XLAT ;; + PUBLIC UK2_850_XLAT ;; + ;; +CODE SEGMENT PUBLIC 'CODE' ;; + ASSUME CS:CODE,DS:CODE ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Standard translate table options are a liner search table +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK State Logic +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +UK2_LOGIC: + + DW LOGIC_END-$ ;; length + ;; + DW 0 ;; special features + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; OPTIONS: If we find a scan match in +;; an XLATT or SET_FLAG operation then +;; exit from INT 9. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + OPTION EXIT_IF_FOUND ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key definitions must come before +;; dead key translations to handle +;; dead key + dead key. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + IFF EITHER_ALT,NOT ;; + ANDF EITHER_CTL,NOT ;; + IFF EITHER_SHIFT ;; + SET_FLAG DEAD_UPPER ;; + ELSEF ;; + SET_FLAG DEAD_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ACUTE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE_PROC: ;; + ;; + IFF ACUTE,NOT ;; + GOTO DIARESIS_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT ACUTE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT ACUTE_LOWER ;; + ELSEF ;; + XLATT ACUTE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT ACUTE_UPPER ;; + ELSEF ;; + XLATT ACUTE_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_ACUTE: ;; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT + BEEP ;; failed or we are ina bad shift state. + GOTO NON_DEAD ;; Either is invalid so BEEP and fall + ;; through to generate the second char. + ;; Note that the dead key flag will be + ;; reset before we get here. + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DIARESIS ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DIARESIS_PROC: ;; + ;; + IFF DIARESIS,NOT ;; + GOTO GRAVE_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_LOWER ;; + ELSEF ;; + XLATT DIARESIS_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE ;; + XLATT DIARESIS_UPPER ;; + ELSEF ;; + XLATT DIARESIS_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_DIARESIS: ;; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; GRAVE ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +GRAVE_PROC: ;; + ;; + IFF GRAVE,NOT ;; + GOTO CIRCUMFLEX_PROC ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT GRAVE_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT GRAVE_LOWER ;; + ELSEF ;; + XLATT GRAVE_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_GRAVE: ;; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CIRCUMFLEX ACCENT TRANSLATIONS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +CIRCUMFLEX_PROC: ;; + ;; + IFF CIRCUMFLEX,NOT ;; + GOTO NON_DEAD ;; + ENDIFF ;; + ;; + RESET_NLS ;; + IFF R_ALT_SHIFT,NOT ;; + XLATT CIRCUMFLEX_SPACE ;; + ENDIFF ;; + IFF EITHER_CTL,NOT ;; + ANDF EITHER_ALT,NOT ;; + IFF EITHER_SHIFT ;; + IFF CAPS_STATE ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ELSEF ;; + IFF CAPS_STATE,NOT ;; + XLATT CIRCUMFLEX_LOWER ;; + ELSEF ;; + XLATT CIRCUMFLEX_UPPER ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; +INVALID_CIRCUMFLEX: ;; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent + BEEP ;; Invalid dead key combo. + GOTO NON_DEAD ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Upper, lower and third shifts +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +NON_DEAD: ;; + ;; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating + ANDF LC_E0 ;; the "/" on the numeric pad of the + EXIT_STATE_LOGIC ;; G keyboard + ENDIFF ;; +;;***BD ADDED FOR ALT, CTRL CASES ;; + IFF EITHER_CTL,NOT ;; + IFF ALT_SHIFT ;; ALT - case + ANDF R_ALT_SHIFT,NOT ;; + XLATT ALT_CASE ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_ALT,NOT ;; CTRL - case + XLATT CTRL_CASE ;; + ENDIFF ;; + ENDIFF ;; +;;***BD END OF ADDITION + ;; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. + IFF EITHER_SHIFT ;; Numeric keys are not. +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE,NOT ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_UPPER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_LOWER ;; + ELSEF ;; + XLATT ALPHA_UPPER ;; + ENDIFF ;; + ELSEF ;; +;;***BD ADDED FOR NUMERIC PAD + IFF NUM_STATE ;; + XLATT NUMERIC_PAD ;; + ENDIFF ;; +;;***BD END OF ADDITION + XLATT NON_ALPHA_LOWER ;; + IFF CAPS_STATE ;; + XLATT ALPHA_UPPER ;; + ELSEF ;; + XLATT ALPHA_LOWER ;; + ENDIFF ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_SHIFT,NOT ;; + IFKBD XT_KB+AT_KB ;; + IFF EITHER_CTL ;; + ANDF ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ELSEF ;; + IFF EITHER_CTL,NOT ;; + ANDF R_ALT_SHIFT ;; + XLATT THIRD_SHIFT ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ENDIFF ;; + ;; + EXIT_STATE_LOGIC ;; + ;; +LOGIC_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Common Translate Section +;; This section contains translations for the lower 128 characters +;; only since these will never change from code page to code page. +;; In addition the dead key "Set Flag" tables are here since the +;; dead keys are on the same keytops for all code pages. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK2_COMMON_XLAT ;; +UK2_COMMON_XLAT: ;; + ;; + DW COMMON_XLAT_END-$ ;; length of section + DW -1 ;; code page + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;;***BD - ADDED FOR ALT CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Alt Case +;; KEYBOARD TYPES: All +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_ALT_K2_END-$ ;; length of state section + DB ALT_CASE ;; State ID + DW ANY_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_ALT_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 0 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,225,0 ;; TEST ENTRY +COM_ALT_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_ALT_K2_END: ;; + ;; +;;****************************** +;;***BD - ADDED FOR CTRL CASE +;;****************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Ctrl Case +;; KEYBOARD TYPES: G_KB+P12_KB+AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_CTRL_K2_END-$ ;; length of state section + DB CTRL_CASE ;; State ID + DW G_KB+P12_KB+AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table + DB TYPE_2_TAB ;; xlat options: + DB 2 ;; number of entries +;;***BD THIS ENTRY IS A TEST ENTRY +;; DB 53,226,0 ;; TEST ENTRY + DB 43,-1,-1 ;; invalid slash + DB 41,28,41 ;; valid slash +COM_CTRL_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_CTRL_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K1_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 40,"'" ;; ' + DB 43,'#' ;; # +COM_NA_LO_K1_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: AT +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K2_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 3 ;; number of entries + DB 41,"\" ;; \ + DB 40,"'" ;; ' + DB 43,'#' ;; # +COM_NA_LO_K2_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K2_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Lower Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_LO_K3_END-$ ;; length of state section + DB NON_ALPHA_LOWER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 2 ;; number of entries + DB 40,"'" ;; ' + DB 41,'#' ;; # + DB 43,'\' ;; # +COM_NA_LO_K3_T1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_LO_K3_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 41,0AAh ;; + DB 3,'"' ;; " + DB 4,09CH ;; + DB 40,'@' ;; at sign + DB 43,07EH ;; ~ +COM_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: XT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K2_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW XT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 3,'"' ;; " + DB 4,09CH ;; + DB 41,07EH ;; ~ + DB 40,'@' ;; at sign + DB 43,07CH ;; Broken vertical bar +COM_NA_UP_T1_K2_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K2_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: AT_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW COM_NA_UP_K3_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW AT_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 5 ;; number of entries + DB 41,07Ch ;; + DB 3,'"' ;; " + DB 4,09CH ;; + DB 40,'@' ;; at sign + DB 43,07EH ;; ~ +COM_NA_UP_T1_K3_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +COM_NA_UP_K3_END: ;; + ;; + ;; + DW 0 ;; Last State +COMMON_XLAT_END: ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Specific Translate Section for 437 +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE. +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK2_437_XLAT ;; +UK2_437_XLAT: ;; + ;; + DW CP437_XLAT_END-$ ;; length of section + DW 437 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,0DDH ;; Solid vertical bar - graphics block +CP437_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP437_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP437 +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP437_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 86,07ch ;; vertical bar +CP437_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP437_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP437_XLAT_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;*************************************** +;; UK Specific Translate Section for 850 +;;*************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + PUBLIC UK2_850_XLAT ;; +UK2_850_XLAT: ;; + ;; + DW CP850_XLAT_END-$ ;; length of section + DW 850 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: CP850 +;; STATE: Third Shift +;; KEYBOARD TYPES: G_KB+P12_KB +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_THIRD_K1_END-$ ;; length of state section + DB THIRD_SHIFT ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_THIRD_K1_T1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 41,07CH ;; Solid vertical bar - | +CP850_THIRD_K1_T1_END: ;; + ;; + DW 0 ;; Last xlat table +CP850_THIRD_K1_END: ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; CODE PAGE: Common +;; STATE: Non-Alpha Upper Case +;; KEYBOARD TYPES: G_KB+P12_KB+ +;; TABLE TYPE: Translate +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + DW CP850_NA_UP_K1_END-$ ;; length of state section + DB NON_ALPHA_UPPER ;; State ID + DW G_KB+P12_KB ;; Keyboard Type + DB -1,-1 ;; Buffer entry for error character + ;; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table + DB STANDARD_TABLE ;; xlat options: + DB 1 ;; number of entries + DB 86,0DDh ;; broken vertical +CP850_NA_UP_T1_K1_END: ;; + ;; + DW 0 ;; Size of xlat table - null table + ;; +CP850_NA_UP_K1_END: ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + DW 0 ;; LAST STATE + ;; +CP850_XLAT_END: ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CODE ENDS ;; + END ;; diff --git a/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM b/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM new file mode 100644 index 0000000..29da334 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KDFUK168.ASM @@ -0,0 +1,848 @@ +;CODE to be deleted has a double ;; followed by actual asm code....**** +;; LATEST CHANGE ALT & CTL + + + + PAGE ,132 + TITLE DOS - Keyboard Definition File + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Defintion File +;; (c) Copyright 1988 Microsoft +;; +;; This file contains the keyboard tables for Spanish. +;; +;; Linkage Instructions: +;; Refer to KDF.ASM. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + INCLUDE KEYBSHAR.INC ;; ;AN000; + INCLUDE POSTEQU.INC ;; ;AN000; + INCLUDE KEYBMAC.INC ;; ;AN000; + ;; ;AN000; + PUBLIC UK1_LOGIC ;; ;AN000; + PUBLIC UK1_437_XLAT ;; ;AN000; + PUBLIC UK1_850_XLAT ;; ;AN000; + ;; ;AN000; +CODE SEGMENT PUBLIC 'CODE' ;; ;AN000; + ASSUME CS:CODE,DS:CODE ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Standard translate table options are a liner search table ;AN000; +;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY) ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +STANDARD_TABLE EQU TYPE_2_TAB+ASCII_ONLY ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; UK State Logic ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + ;; ;AN000; +UK1_LOGIC: ;AN000; + ;AN000; + DW LOGIC_END-$ ;; length ;AN000; + ;; ;AN000; + DW 0 ;; special features ;AN000; + ;; ;AN000; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; OPTIONS: If we find a scan match in ;AN000; +;; an XLATT or SET_FLAG operation then ;AN000; +;; exit from INT 9. ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + OPTION EXIT_IF_FOUND ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Dead key definitions must come before ;AN000; +;; dead key translations to handle ;AN000; +;; dead key + dead key. ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + IFF EITHER_ALT,NOT ;; ;AN000; + ANDF EITHER_CTL,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + SET_FLAG DEAD_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + SET_FLAG DEAD_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; ACUTE ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +ACUTE_PROC: ;; ;AN000; + ;; ;AN000; + IFF ACUTE,NOT ;; ;AN000; + GOTO DIARESIS_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT ACUTE_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ACUTE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ACUTE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ACUTE_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ACUTE_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_ACUTE: ;; ;AN000; + PUT_ERROR_CHAR ACUTE_LOWER ;; If we get here then either the XLATT ;AN000; + BEEP ;; failed or we are ina bad shift state. ;AN000; + GOTO NON_DEAD ;; Either is invalid so BEEP and fall ;AN000; + ;; through to generate the second char. ;AN000; + ;; Note that the dead key flag will be ;AN000; + ;; reset before we get here. ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; DIARESIS ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +DIARESIS_PROC: ;; ;AN000; + ;; ;AN000; + IFF DIARESIS,NOT ;; ;AN000; + GOTO GRAVE_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT DIARESIS_SPACE ;; exist for 437 so beep for ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT DIARESIS_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT DIARESIS_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT DIARESIS_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT DIARESIS_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_DIARESIS: ;; ;AN000; + PUT_ERROR_CHAR DIARESIS_SPACE ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; GRAVE ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +GRAVE_PROC: ;; ;AN000; + ;; ;AN000; + IFF GRAVE,NOT ;; ;AN000; + GOTO CIRCUMFLEX_PROC ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT GRAVE_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT GRAVE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT GRAVE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE,NOT ;; ;AN000; + XLATT GRAVE_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT GRAVE_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_GRAVE: ;; ;AN000; + PUT_ERROR_CHAR GRAVE_LOWER ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CIRCUMFLEX ACCENT TRANSLATIONS ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +CIRCUMFLEX_PROC: ;; ;AN000; + ;; ;AN000; + IFF CIRCUMFLEX,NOT ;; ;AN000; + GOTO NON_DEAD ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + RESET_NLS ;; ;AN000; + IFF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT CIRCUMFLEX_SPACE ;; ;AN000; + ENDIFF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF EITHER_ALT,NOT ;; ;AN000; + IFF EITHER_SHIFT ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT CIRCUMFLEX_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT CIRCUMFLEX_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF CAPS_STATE,NOT ;; ;AN000; + XLATT CIRCUMFLEX_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT CIRCUMFLEX_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; +INVALID_CIRCUMFLEX: ;; ;AN000; + PUT_ERROR_CHAR CIRCUMFLEX_LOWER ;; standalone accent ;AN000; + BEEP ;; Invalid dead key combo. ;AN000; + GOTO NON_DEAD ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; Upper, lower and third shifts ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +NON_DEAD: ;; ;AN000; + ;; ;AN000; + IFKBD G_KB+P12_KB ;; Avoid accidentally translating ;AN000; + ANDF LC_E0 ;; the "/" on the numeric pad of the ;AN000; + EXIT_STATE_LOGIC ;; G keyboard ;AN000; + ENDIFF ;; ;AN000; +;;***BD ADDED FOR ALT, CTRL CASES ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + IFF ALT_SHIFT ;; ALT - case ;AN000; + ANDF R_ALT_SHIFT,NOT ;; ;AN000; + XLATT ALT_CASE ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_ALT,NOT ;; CTRL - case ;AN000; + XLATT CTRL_CASE ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + ;; ;AN000; + IFF EITHER_ALT,NOT ;; Lower and upper case. Alphabetic ;AN000; + ANDF EITHER_CTL,NOT ;; keys are affected by CAPS LOCK. ;AN000; + IFF EITHER_SHIFT ;; Numeric keys are not. ;AN000; +;;***BD ADDED FOR NUMERIC PAD ;AN000; + IFF NUM_STATE,NOT ;; ;AN000; + XLATT NUMERIC_PAD ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + XLATT NON_ALPHA_UPPER ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ALPHA_LOWER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ALPHA_UPPER ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; +;;***BD ADDED FOR NUMERIC PAD ;AN000; + IFF NUM_STATE ;; ;AN000; + XLATT NUMERIC_PAD ;; ;AN000; + ENDIFF ;; ;AN000; +;;***BD END OF ADDITION ;AN000; + XLATT NON_ALPHA_LOWER ;; ;AN000; + IFF CAPS_STATE ;; ;AN000; + XLATT ALPHA_UPPER ;; ;AN000; + ELSEF ;; ;AN000; + XLATT ALPHA_LOWER ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_SHIFT,NOT ;; ;AN000; + IFKBD XT_KB+AT_KB ;; ;AN000; + IFF EITHER_CTL ;; ;AN000; + ANDF ALT_SHIFT ;; ;AN000; + XLATT THIRD_SHIFT ;; ;AN000; + ENDIFF ;; ;AN000; + ELSEF ;; ;AN000; + IFF EITHER_CTL,NOT ;; ;AN000; + ANDF R_ALT_SHIFT ;; ;AN000; + XLATT THIRD_SHIFT ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ENDIFF ;; ;AN000; + ;; ;AN000; + EXIT_STATE_LOGIC ;; ;AN000; + ;; ;AN000; +LOGIC_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; UK Common Translate Section ;AN000; +;; This section contains translations for the lower 128 characters ;AN000; +;; only since these will never change from code page to code page. ;AN000; +;; In addition the dead key "Set Flag" tables are here since the ;AN000; +;; dead keys are on the same keytops for all code pages. ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC UK1_COMMON_XLAT ;; ;AN000; +UK1_COMMON_XLAT: ;; ;AN000; + ;; ;AN000; + DW COMMON_XLAT_END-$ ;; length of section ;AN000; + DW -1 ;; code page ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;;***BD - ADDED FOR ALT CASE ;AN000; +;;****************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Alt Case ;AN000; +;; KEYBOARD TYPES: All ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_ALT_K2_END-$ ;; length of state section ;AN000; + DB ALT_CASE ;; State ID ;AN000; + DW ANY_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_ALT_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB TYPE_2_TAB ;; xlat options: ;AN000; + DB 0 ;; number of entries ;AN000; +;;***BD THIS ENTRY IS A TEST ENTRY ;AN000; +;; DB 53,225,0 ;; TEST ENTRY ;AN000; +COM_ALT_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_ALT_K2_END: ;; ;AN000; + ;; ;AN000; +;;****************************** ;AN000; +;;***BD - ADDED FOR CTRL CASE ;AN000; +;;****************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Ctrl Case ;AN000; +;; KEYBOARD TYPES: G_KB+P12+AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_CTRL_K2_END-$ ;; length of state section ;AN000; + DB CTRL_CASE ;; State ID ;AN000; + DW G_KB+P12_KB+AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_CTRL_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB TYPE_2_TAB ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; +;;***BD THIS ENTRY IS A TEST ENTRY ;AN000; +;; DB 53,226,0 ;; TEST ENTRY ;AN000; + DB 43,-1,-1 ;; invalid slash ;AN000; + DB 41,28,41 ;; valid slash ;AN000; +COM_CTRL_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_CTRL_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 6 ;; number of entries ;AN000; + DB 13,"" ;; ;AN000; + DB 26,"@" ;; ' ;AN000; + DB 27,"[" ;; ' ;AN000; + DB 40,":" ;; ' ;AN000; + DB 41,"\" ;; ' ;AN000; + DB 43,']' ;; # ;AN000; +COM_NA_LO_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_PK1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_PK1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; + DB 40,"'" ;; ' ;AN000; + DB 43,'#' ;; # ;AN000; +COM_NA_LO_PK1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_PK1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: AT ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K2_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 3 ;; number of entries ;AN000; + DB 41,"\" ;; \ ;AN000; + DB 40,"'" ;; ' ;AN000; + DB 43,'#' ;; # ;AN000; +COM_NA_LO_K2_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K2_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Lower Case ;AN000; +;; KEYBOARD TYPES: XT_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_LO_K3_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_LO_K3_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; + DB 40,"'" ;; ' ;AN000; + DB 41,'#' ;; # ;AN000; + DB 43,'\' ;; # ;AN000; +COM_NA_LO_K3_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_LO_K3_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: G_KB+P ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 14 ;; number of entries ;AN000; + DB 3,'"' ;; ;AN000; + DB 4,"" ;; ;AN000; + DB 7,"&" ;; ;AN000; + DB 8,"'" ;; ;AN000; + DB 9,"(" ;; ;AN000; + DB 10,")" ;; ;AN000; + DB 11,"#" ;; ;AN000; + DB 12,"=" ;; ;AN000; + DB 26,"`" ;; ;AN000; + DB 27,"{" ;; ;AN000; + DB 39,"+" ;; ;AN000; + DB 40,"*" ;; ;AN000; + DB 43,"}" ;; ;AN000; + DB 86,"_" ;; ;AN000; +COM_NA_UP_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_PK1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_T1_PK1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 5 ;; number of entries ;AN000; + DB 41,0AAh ;; ;AN000; + DB 3,'"' ;; " ;AN000; + DB 4,09CH ;; ;AN000; + DB 40,'@' ;; at sign ;AN000; + DB 43,07EH ;; ~ ;AN000; +COM_NA_UP_T1_PK1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_PK1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: XT_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K2_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW XT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_T1_K2_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 5 ;; number of entries ;AN000; + DB 3,'"' ;; " ;AN000; + DB 4,09CH ;; ;AN000; + DB 41,07EH ;; ~ ;AN000; + DB 40,'@' ;; at sign ;AN000; + DB 43,07CH ;; Broken vertical bar ;AN000; +COM_NA_UP_T1_K2_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K2_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: AT_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_NA_UP_K3_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW AT_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_NA_UP_T1_K3_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 5 ;; number of entries ;AN000; + DB 41,07Ch ;; ;AN000; + DB 3,'"' ;; " ;AN000; + DB 4,09CH ;; ;AN000; + DB 40,'@' ;; at sign ;AN000; + DB 43,07EH ;; ~ ;AN000; +COM_NA_UP_T1_K3_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +COM_NA_UP_K3_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: COMMON ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: G_KB+P ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW COM_THIRD_K1_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW COM_THIRD_K1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 8 ;; number of entries ;AN000; + DB 3,0FDH ;; SUPERSCRPIT 2 ;AN000; + DB 4,0FCH ;; SUPERSCRIPT 3 ;AN000; + DB 6,0ABH ;; ONE HALF SYMBOL ;AN000; + DB 10,0F1H ;; PLUS OR MINUS SYMBOL ;AN000; + DB 11,0F8H ;; DEGREE SYMBOL ;AN000; + DB 27,07EH ;; TILDE ;AN000; + DB 40,05EH ;; CIRCUMFLEX CARAT ;AN000; + DB 50,0E6H ;; MU ;AN000; +COM_THIRD_K1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; +COM_THIRD_K1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW 0 ;; Last State ;AN000; +COMMON_XLAT_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; UK Specific Translate Section for 437 ;AN000; +;; 437 IS COMPLETELY COVERED BY THE COMMON TABLE except for vertical bars ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC UK1_437_XLAT ;; ;AN000; +UK1_437_XLAT: ;; ;AN000; + ;; ;AN000; + DW CP437_XLAT_END-$ ;; length of section ;AN000; + DW 437 ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: CP437 ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_THIRD_PK1_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP437_THIRD_PK1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 41,0DDH ;; Solid vertical bar - graphics block ;AN000; + CP437_THIRD_PK1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; + CP437_THIRD_PK1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: CP437 ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP437_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; + DB 41,0DDh ;; GRAPHICS vertical bar ;AN000; + DB 13,"" ;; may change current codepoint = 192(c4);AN000; +CP437_NA_UP_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP437_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: CP437 ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_NA_UP_PK1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP437_NA_UP_PT1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 86,07ch ;; vertical bar ;AN000; +CP437_NA_UP_PT1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP437_NA_UP_PK1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: CP437 ;AN000; +;; STATE: Non-Alpha LOWER Case ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP437_NA_LO_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP437_NA_LO_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 86,07Ch ;; SOLID(PIPING)VERTICAL bar ;AN000; +CP437_NA_LO_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP437_NA_LO_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + DW 0 ;; LAST STATE ;AN000; + ;; ;AN000; +CP437_XLAT_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;*************************************** ;AN000; +;; UK Specific Translate Section for 850 ;AN000; +;;*************************************** ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + PUBLIC UK1_850_XLAT ;; ;AN000; +UK1_850_XLAT: ;; ;AN000; + ;; ;AN000; + DW CP850_XLAT_END-$ ;; length of section ;AN000; + DW 850 ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: CP850 ;AN000; +;; STATE: Third Shift ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_THIRD_PK1_END-$ ;; length of state section ;AN000; + DB THIRD_SHIFT ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP850_THIRD_PK1_T1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 41,07CH ;; Solid vertical bar - | ;AN000; + CP850_THIRD_PK1_T1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Last xlat table ;AN000; + CP850_THIRD_PK1_END: ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_NA_UP_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP850_NA_UP_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 2 ;; number of entries ;AN000; + DB 41,07Ch ;; SOLID vertical (PIPING) ;AN000; + DB 13,0EEH ;; OVERSCORE SYMBOL ;AN000; +CP850_NA_UP_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP850_NA_UP_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha Upper Case ;AN000; +;; KEYBOARD TYPES: P12_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_NA_UP_PK1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_UPPER ;; State ID ;AN000; + DW P12_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP850_NA_UP_T1_PK1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 86,0DDh ;; broken vertical ;AN000; +CP850_NA_UP_T1_PK1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP850_NA_UP_PK1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +;; CODE PAGE: Common ;AN000; +;; STATE: Non-Alpha LOWER Case ;AN000; +;; KEYBOARD TYPES: G_KB ;AN000; +;; TABLE TYPE: Translate ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; + DW CP850_NA_LO_K1_END-$ ;; length of state section ;AN000; + DB NON_ALPHA_LOWER ;; State ID ;AN000; + DW G_KB ;; Keyboard Type ;AN000; + DB -1,-1 ;; Buffer entry for error character ;AN000; + ;; ;AN000; + DW CP850_NA_LO_T1_K1_END-$ ;; Size of xlat table ;AN000; + DB STANDARD_TABLE ;; xlat options: ;AN000; + DB 1 ;; number of entries ;AN000; + DB 86,0DDh ;; broken vertical ;AN000; +CP850_NA_LO_T1_K1_END: ;; ;AN000; + ;; ;AN000; + DW 0 ;; Size of xlat table - null table ;AN000; + ;; ;AN000; +CP850_NA_LO_K1_END: ;; ;AN000; + ;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; + DW 0 ;; LAST STATE ;AN000; + ;; ;AN000; +CP850_XLAT_END: ;; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;AN000; +CODE ENDS ;; ;AN000; + END ;; ;AN000; diff --git a/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC b/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC new file mode 100644 index 0000000..8f1b108 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KEYBMAC.INC @@ -0,0 +1,323 @@ +.XLIST +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - Keyboard Definition File +;; (C) Copyright 1988 Microsoft +;; +;; File Name: KEYBMAC.INC +;; ---------- +;; +;; Description: +;; ------------ +;; Include file containing macros for the Keyboard Definition File. +;; +;; Change History: +;; --------------- +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dead key flags +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +ACUTE EQU 80H ;; NLS_FLAG_1 +GRAVE EQU 40H ;; +DIARESIS EQU 20H ;; +CIRCUMFLEX EQU 10H ;; +CEDILLA EQU 08H ;; +TILDE EQU 04H ;; + ;; NLS_FLAG_2 : nothing defined yet + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; State IDs +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +DEAD_LOWER EQU 1 ;; dead keys on lower shift +DEAD_UPPER EQU 2 ;; +ALPHA_LOWER EQU 3 ;; +ALPHA_UPPER EQU 4 ;; +NON_ALPHA_LOWER EQU 5 ;; +NON_ALPHA_UPPER EQU 6 ;; +THIRD_SHIFT EQU 7 ;; +ACUTE_LOWER EQU 8 ;; +ACUTE_UPPER EQU 9 ;; +ACUTE_SPACE EQU 10 ;; +GRAVE_LOWER EQU 11 ;; +GRAVE_UPPER EQU 12 ;; +GRAVE_SPACE EQU 13 ;; +DIARESIS_LOWER EQU 14 ;; +DIARESIS_UPPER EQU 15 ;; +DIARESIS_SPACE EQU 16 ;; +CIRCUMFLEX_LOWER EQU 17 ;; +CIRCUMFLEX_UPPER EQU 18 ;; +CIRCUMFLEX_SPACE EQU 19 ;; +CEDILLA_LOWER EQU 20 ;; +CEDILLA_UPPER EQU 21 ;; +CEDILLA_SPACE EQU 22 ;; +CEDILLA_CEDILLA EQU 23 ;; +DEAD_THIRD EQU 24 ;; +ACUTE_ACUTE EQU 25 ;; +GRAVE_GRAVE EQU 26 ;; +DIARESIS_DIARESIS EQU 27 ;; +CIRCUMFLEX_CIRCUMFLEX EQU 28 ;; +FOURTH_SHIFT EQU 29 ;; +DEAD_FOURTH EQU 30 ;; +TILDE_LOWER EQU 31 ;; +TILDE_UPPER EQU 32 ;; +TILDE_SPACE EQU 33 ;; +ALT_CASE EQU 34 ;; +CTRL_CASE EQU 35 ;; +NUMERIC_PAD EQU 36 ;; +DIVIDE_SIGN EQU 37 ;; +BOTLH_CAPS EQU 38 ;; +BOTRH_CAPS EQU 39 ;; +BOTLH_F_CAPS EQU 40 ;; +BOTRH_F_CAPS EQU 41 ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Logic Macros +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + +UNKNOWN = 255 + +FIND_FLAG MACRO FLAG_MASK + IFIDN , + FLAG_ID = EXT_KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = EXT_KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = EXT_KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = EXT_KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_3_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_3_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = NLS_FLAG_1_ID + ELSE + IFIDN , + FLAG_ID = KB_FLAG_3_ID + ELSE + FLAG_ID = UNKNOWN + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +FLAG MACRO FLAG_MASK + FIND_FLAG FLAG_MASK + IF (FLAG_ID EQ UNKNOWN) + IF2 + %OUT Unknown parameter FLAG_MASK on FLAG MACRO + ENDIF + ELSE + DB FLAG_ID + DB FLAG_MASK + ENDIF + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IFF MACRO FLAG_MASK,MASK_TYPE + MAC_OK = 1 + IFB + NOT_BIT = 00000000B + ELSE + IFIDN , + NOT_BIT = 00001000B + ELSE + MAC_OK = 0 + IF2 + %OUT Unknown parameter MASK_TYPE on IFF MACRO + ENDIF + ENDIF + ENDIF + IF MAC_OK + FIND_FLAG FLAG_MASK + IF (FLAG_ID EQ UNKNOWN) + IF2 + %OUT Unknown parameter FLAG_MASK on IFF MACRO + ENDIF + ELSE + DB IFF_COMMAND+NOT_BIT+FLAG_ID + DB FLAG_MASK + ENDIF + ENDIF + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IFKBD MACRO SYS + DB IFKBD_COMMAND + DW SYS + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ANDF MACRO FLAG_MASK,MASK_TYPE + MAC_OK = 1 + IFB + NOT_BIT = 00000000B + ELSE + IFIDN , + NOT_BIT = 00001000B + ELSE + MAC_OK = 0 + IF2 + %OUT Unknown parameter MASK_TYPE on ANDF MACRO + ENDIF + ENDIF + ENDIF + IF MAC_OK + FIND_FLAG FLAG_MASK + IF (FLAG_ID EQ UNKNOWN) + IF2 + %OUT Unknown parameter FLAG_MASK on ANDF MACRO + ENDIF + ELSE + DB ANDF_COMMAND+NOT_BIT+FLAG_ID + DB FLAG_MASK + ENDIF + ENDIF + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ELSEF MACRO + DB ELSEF_COMMAND + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ENDIFF MACRO + DB ENDIFF_COMMAND + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +XLATT MACRO STATE + DB XLATT_COMMAND + DB STATE + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +PUT_ERROR_CHAR MACRO STATE + DB PUT_ERROR_COMMAND + DB STATE + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +OPTION MACRO MASK,MASK_TYPE + MAC_OK = 1 + IFB + NOT_BIT = 00000000B + ELSE + IFIDN , + NOT_BIT = 00001000B + ELSE + MAC_OK = 0 + IF2 + %OUT Unknown parameter MASK_TYPE on OPTION MACRO + ENDIF + ENDIF + ENDIF + IF MAC_OK + DB OPTION_COMMAND+NOT_BIT + DB MASK + ENDIF + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SET_FLAG MACRO STATE + DB SET_FLAG_COMMAND + DB STATE + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +RESET_NLS MACRO + DB RESET_NLS_COMMAND + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +BEEP MACRO + DB BEEP_COMMAND + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GOTO MACRO GOTO_OFFSET + DB GOTO_COMMAND + DW GOTO_OFFSET-$-2 + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EXIT_INT_9 MACRO + DB GOTO_COMMAND+EXIT_INT_9_FLAG + DW 0 + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EXIT_STATE_LOGIC MACRO + DB GOTO_COMMAND+EXIT_STATE_LOGIC_FLAG + DW 0 + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CHECK_FOR_CORE_KEY MACRO + DB CHECK_CORE_COMMAND + ENDM + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +.LIST diff --git a/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK b/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK new file mode 100644 index 0000000..3b52fd0 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KEYBOARD.LNK @@ -0,0 +1,6 @@ +kdfnow.OBJ+KDFSP.OBJ+KDFPO.OBJ+KDFFR120.obj+kdffr189.obJ+KDFDK.OBJ+ +KDFSG.OBJ+KDFGE.OBJ+KDFIT141.OBJ+KDFIT142.OBJ+KDFUK166.OBJ+KDFUK168.OBJ+ +KDFSF.OBJ+KDFBE.OBJ+KDFNL.OBJ+KDFNO.OBJ+KDFCF.OBJ+ +kdfsv.obj+KDFLA.OBJ+kdfeof.OBJ +KEYBOARD.EXE; + \ No newline at end of file diff --git a/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC b/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC new file mode 100644 index 0000000..d7ac257 --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/KEYBSHAR.INC @@ -0,0 +1,304 @@ +.XLIST + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; DOS - - NLS Support - KEYB Command +;; (C) Copyright 1988 Microsoft +;; +;; File Name: KEYBSHAR.INC +;; ---------- +;; +;; Description: +;; ------------ +;; Include file containing structure definitions Shared Data Area +;; for the Shared Data Area. +;; The Shared Data Area contains data which is required by +;; both the resident and transient KEYB code. The Shared +;; Data Area is allocated in the KEYBI2F file and will be +;; resident following initial installation. +;; +;; Change History: +;; --------------- +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; SHARED_DATA_STR defines the initial fixed length portion of the +;; Shared Data Area. +;; Tables are loaded beginning at TABLE_AREA in the following order: +;; State Logic +;; Common Translate Section +;; Specific Translate Sections for +;; each code page +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; SPECIAL_FEATURES equates: +TYPEWRITER_CAPS_LK EQU 8000H ;; typewriter style caps lock +JR_HOT_KEY_1_2 EQU 4000H ;; on PCjr use 1/2 as the hot keys + ;; instead of F1/F2 + ;; + ;; Some useful scan codes: +F1_SCAN EQU 59 ;; F1 +F2_SCAN EQU 60 ;; F2 +ONE_SCAN EQU 2 ;; "1" +TWO_SCAN EQU 3 ;; "2" + ;; + ;; SYSTEM_FLAG equates: +EXT_16 EQU 8000H ;; extended int16 support is there +PC_AT EQU 4000H ;; code for pcat +PC_LAP EQU 2000H ;; code for pc lap computer (p-12) +PC_XT EQU 1000H ;; code for PC, PC/XT, PORTABLE +PC_JR EQU 0800H ;; code for PCjr +PC_PAL EQU 0400H ;; code for ??? +PC_386 EQU 0200H ;; code for ??? +PC_NET EQU 0100H ;; PC Net is installed + ;; + ;; HOT_KEY_FLAG EQUATES: +US_MODE EQU 0 ;; hot key is active => US +LANG_MODE EQU 0FFH ;; hot key is inactive + ;; + ;; ----------------------------------- +SHARED_DATA_STR STRUC ;; SHARED DATA AREA + ;; +OLD_INT_9 DD 0 ;; saved int 9 vector +OLD_INT_2F DD 0 ;; saved int 2F vector +OLD_INT_48 DD 0 ;; saved int 48 vector (if PCjr) +KEYB_TYPE DW 0 ;; type of keyboard +SYSTEM_FLAG DW 0 ;; system configuration flags +TABLE_OK DB 0 ;; flag to INT 9 that table is built +JR_KB_FLAG DB 0 ;; flag for special PCjr processing + DB 4 DUP(0) ;; reserved + ;; + ;; Table copy begins here: +ACTIVE_LANGUAGE DB 'US' ;; language code +INVOKED_CP_TABLE DW 437 ;; ptr to table for invoked code page +ACTIVE_XLAT_PTR DW -1 ;; ptr to active Specific Translate Sect +FIRST_XLAT_PTR DW -1 ;; ptr to first Specific Translate Sect +RESIDENT_END DW 0ffffh ;; offset of last byte in resident mem +LOGIC_PTR DW -1 ;; ptr to State Logic +COMMON_XLAT_PTR DW -1 ;; ptr to Common Translate Section +SPECIAL_FEATURES DW ? ;; special Features +TABLE_OVERFLOW DB 0 ;; overflow flag for table rebuild +HOT_KEY_ON_SCAN DB ? ;; scan codes to use with ALT+CTRL +HOT_KEY_OFF_SCAN DB ? ;; to turn hot key on and off + DB 4 DUP(0) ;; reserved +TABLE_AREA DB ? ;; tables loaded here: + ;; State Logic + ;; Common Translate Section + ;; Specific Translate Sections for + ;; each code page +SHARED_DATA_STR ENDS ;; + ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; State Logic equates. +;; Contains equates for our NLS Flags and for the State Logic +;; commands. +;; State Logic command macros are defined in KEYBMAC.INC +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STATE_LOGIC_STR STRUC ;; + ;; +SL_LOGIC_LEN DW ? ;; length of state logic +SL_SPECIAL_FEATURES DW ? ;; +SL_LOGIC_CMDS DB 0 ;; state logic commands begin here + ;; +STATE_LOGIC_STR ENDS ;; + ;; + ;; +NUM_BIOS_FLAGS EQU 4 ;; +NUM_NLS_FLAGS EQU 2 ;; '+1' below is the EXT_KB_FLAG +NUM_FLAGS EQU NUM_BIOS_FLAGS+NUM_NLS_FLAGS+1 + ;; + ;; +EITHER_SHIFT EQU 80H ;; EXT_KB_FLAG : our own shift state +EITHER_CTL EQU 40H ;; flags +EITHER_ALT EQU 20H ;; +SCAN_MATCH EQU 08H ;; set if scan code found in XLATT + ;; or SET_FLAG searches + ;; + ;; +KB_FLAG_ID EQU 0 ;; Flag ID's as coded in IFF and ANDF +KB_FLAG_1_ID EQU 1 ;; commands +KB_FLAG_2_ID EQU 2 ;; +KB_FLAG_3_ID EQU 3 ;; +EXT_KB_FLAG_ID EQU 4 ;; +NLS_FLAG_1_ID EQU 5 ;; +NLS_FLAG_2_ID EQU 6 ;; + ;; +COMMAND_BITS EQU 0F0H ;; Mask to isolate command code +SUB_CMD_BITS EQU 0FH ;; mask to isolate sub command code +NOT_TEST EQU 08H ;; NOT bit in IFF, ANDF +COMMAND_SHIFT EQU 4 ;; shift amount for command code +FLAG_ID_BITS EQU 07H ;; mask to isolate flag id in IFF, ANDF +NUM_COMMANDS EQU 0CH ;; number of commands + ;; +IFF_COMMAND EQU 00H ;; +ANDF_COMMAND EQU 10H ;; +ELSEF_COMMAND EQU 20H ;; +ENDIFF_COMMAND EQU 30H ;; +XLATT_COMMAND EQU 40H ;; +OPTION_COMMAND EQU 50H ;; +SET_FLAG_COMMAND EQU 60H ;; +PUT_ERROR_COMMAND EQU 70H ;; +IFKBD_COMMAND EQU 80H ;; +GOTO_COMMAND EQU 90H ;; +BEEP_COMMAND EQU 0A0H ;; +RESET_NLS_COMMAND EQU 0B0H ;; +CHECK_CORE_COMMAND EQU 0C0H ;; + ;; + ;; +EXIT_INT_9_FLAG EQU 01H ;; Special forms of GOTO. These +EXIT_STATE_LOGIC_FLAG EQU 02H ;; values are in the right nibble + ;; of the GOTO command. + ;; + ;; PROCESSING OPTIONS: +EXIT_IF_FOUND EQU 80H ;; exit INT 9 if a translation + ;; match is found + ;; +ANY_KB EQU 0FFFFH ;; +JR_KB EQU 8000H ;; Keyboard types +XT_KB EQU 4000H ;; +AT_KB EQU 2000H ;; +G_KB EQU 1000H ;; +P_KB EQU 0800H ;; +P12_KB EQU 0400H ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Translate Table Sections. Both the Specific and Common +;; Translate Sections are formatted as follows. +;; +;; The Specific Translate Sections are chained together using the +;; XS_NEXT_SECT_PTR field (-1 if last section). +;; Translate Sections contains multiple States. +;; A State contains the translate tables for a single +;; shift state (IE lower case, upper case ....) +;; Each State may contain multiple translate tables. +;; +;; The Translate Section layout is defined using several STRUCs. +;; These STRUCs are allocated in the Shared Data Area as follows: +;; +;; XLAT_SECT_STR ; header info for the section +;; STATE_STR ; header for state #1 +;; XLAT_STR ; first translate tab for state #1 +;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR +;; XLAT_STR ; second translate tab +;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR +;; ... +;; STATE_STR ; header for state #2 +;; XLAT_STR +;; XLAT_TYPE_1_STR or XLAT_TYPE_2_STR +;; ... +;; ... +;; +;; A State may contain a "Set_Flag" table instead of translate tables. +;; These tables are used to set the NLS flags instead of generating +;; ASCII codes (for example: to remember dead key states). +;; There can be only on Set_Flag table per state. +;; The Set_Flag table layout is defined in the SET_FLAG_STR STRUC. +;; +;; So some states will contain translate tables (to generate ASCII codes) +;; and some states will contain a Set_Flag table (to record dead key +;; status). +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +XLAT_SECT_STR STRUC ;; + ;; +XS_NEXT_SECT_PTR DW ? ;; Pointer to next Specific Translate + ;; Section +XS_CP_ID DW ? ;; code page id +XS_FIRST_STATE DB ? ;; + ;; +XLAT_SECT_STR ENDS ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; State structure. +;; The last State is a null State containing only the +;; XS_STATE_LEN field with a value of 0. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STATE_STR STRUC ;; + ;; +XS_STATE_LEN DW ? ;; length of state section +XS_STATE_ID DB ? ;; State ID +XS_KBD_TYPE DW ? ;; Keyboard Type +XS_ERROR_CHAR DW ? ;; Buffer entry for error character +XS_FIRST_TAB DB ? ;; + ;; +STATE_STR ENDS ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Translate Table structures. +;; There may be many translate tables in a State. The last +;; table is a null table containing only the XLAT_TAB_SIZE field with +;; a value of 0. +;; The xlate table can be in one of two forms: +;; Type 1 = Table contains buffer entries only. +;; Scan code is used as an index into xlat table +;; Type 2 = Table contains pairs of SCAN/BUFFER_ENTRY. +;; Table must be searched for matching scan. +;; Type 1 is the default. Type 2 tables should be identified by setting +;; the TYPE_2_TAB bit in XLAT_OPTIONS. +;; Buffer entries default to 2-bytes per entry. +;; Optionally the table may contain ASCII codes only +;; (1-byte entries). This is specified by setting the ASCII_ONLY bit +;; in XLAT_OPTIONS. 2-byte buffer entries are coded ASCII,SCAN. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; Translate options: +ASCII_ONLY EQU 80H ;; Only ASCII codes listed - use + ;; incoming scan for buffer entry +TYPE_2_TAB EQU 40H ;; search xlat table for matching scan +ZERO_SCAN EQU 20H ;; set the scan half of the buffer + ;; entry to 0 + ;; +NULL_ASCII_CODE EQU -1 ;; + ;; +DEFAULT_TAB_2_ENT_SZ EQU 3 ;; +ASC_ONLY_TAB_2_ENT_SZ EQU 2 ;; + ;; + ;; +XLAT_STR STRUC ;; + ;; +XLAT_TAB_SIZE DW ? ;; Size in bytes of this table - + ;; includes this field, options etc. +XLAT_OPTIONS DB ? ;; xlat options + ;; XLAT TABLE IS HERE +XLAT_STR ENDS ;; + ;; +XLAT_TYPE_1_STR STRUC ;; use scan code as index into table + DB TYPE XLAT_STR DUP(?) ;; filler +XLAT_SCAN_LO DB ? ;; Scan code +XLAT_SCAN_HI DB ? ;; range +XLAT_1_BUF_ENTRY DB ? ;; The table itself +XLAT_TYPE_1_STR ENDS ;; + ;; +XLAT_TYPE_2_STR STRUC ;; search table for scan + DB TYPE XLAT_STR DUP(?) ;; filler +XLAT_NUM DB ? ;; number of scans +XLAT_SCAN DB ? ;; Scan code +XLAT_2_BUF_ENTRY DB ? ;; The table itself +XLAT_TYPE_2_STR ENDS ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Set_Flag Tables. +;; State Sections immediately following the LAST_ENTRYs. +;; Dead key definitions. If the scan matches then +;; set the bit in NLS_FLAGs indicated in DK_MASK +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +SF_ENT_SZ EQU 3 ;; size of entry + ;; +SET_FLAG_STR STRUC ;; + ;; +SF_NUM DB 0 ;; Number of entries +SF_SCAN_CODE DB 0 ;; scan code +SF_FLAG_ID DB 0 ;; flag id +SF_FLAG_MASK DB 0 ;; flag mask + ;; +SET_FLAG_STR ENDS ;; + ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +.LIST diff --git a/v4.0/src/DEV/KEYBOARD/MAKEFILE b/v4.0/src/DEV/KEYBOARD/MAKEFILE new file mode 100644 index 0000000..5bdd36f --- /dev/null +++ b/v4.0/src/DEV/KEYBOARD/MAKEFILE @@ -0,0 +1,59 @@ +#*************************** Makefile for Bios ************************ + +msg =..\..\msg +dos =..\..\dos +inc =..\..\inc + +# +###################### Dependencies begin here ######################### +# + +all: keyboard.sys + +kdfnow.obj: kdfnow.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdffr120.obj: kdffr120.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdffr189.obj: kdffr189.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfeof.obj: kdfeof.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfuk166.obj: kdfuk166.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfuk168.obj: kdfuk168.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfit141.obj: kdfit141.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfit142.obj: kdfit142.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfge.obj: kdfge.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfsp.obj: kdfsp.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfnl.obj: kdfnl.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfno.obj: kdfno.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfdk.obj: kdfdk.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfsg.obj: kdfsg.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfsf.obj: kdfsf.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfpo.obj: kdfpo.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfbe.obj: kdfbe.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfcf.obj: kdfcf.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfla.obj: kdfla.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +kdfsv.obj: kdfsv.asm keybmac.inc keybshar.inc $(inc)\postequ.inc + +keyboard.sys: kdfsp.obj kdfpo.obj kdffr120.obj kdffr189.obj kdfdk.obj \ + kdfsg.obj kdfge.obj kdfit141.obj kdfit142.obj kdfuk166.obj \ + kdfsf.obj kdfbe.obj kdfnl.obj kdfno.obj kdfcf.obj \ + kdfla.obj kdfsv.obj kdfeof.obj kdfnow.obj kdfuk168.obj + link @keyboard.lnk + exe2bin keyboard.exe keyboard.sys + del keyboard.exe -- cgit v1.2.3