Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

363 lines
16 KiB

;CODE to be deleted has a double ;; followed by actual asm code....****
;; LATEST CHANGE ALT & CTL
PAGE ,132
TITLE PC DOS 3.3 Keyboard Definition File
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PC DOS 3.3 - NLS Support - Keyboard Defintion File
;; (c) Copyright IBM Corp 198?,...
;;
;; This file contains the keyboard tables for Japanese.
;;
;; Linkage Instructions:
;; Refer to KDF.ASM.
;;
;; Author: Shuzo Kusuda - IBM Japan, Yamato Lab. - Feb. 1990
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
INCLUDE KEYBSHAR.INC ;;
;M000 INCLUDE POSTEQU.SRC ;;
include postequ.inc ; M000 -- our inc file reflects the
; ; necessary changes as M024
INCLUDE KEYBMAC.INC ;;
;;
PUBLIC JP_LOGIC ;;
PUBLIC JP_COMMON_XLAT ;;
PUBLIC JP_932_XLAT ;;
PUBLIC JP_437_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
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;***************************************
;; JP State Logic
;;***************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;
JP_LOGIC: ;;
;;
DW LOGIC_END-$ ;; length
;;
DW 0 ;; special features
;;
;; COMMANDS START HERE
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; DBCS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; OPTIONS: If we find a scan match in
;; an XLATT or SET_FLAG operation then
;; exit from INT 9.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
OPTION EXIT_IF_FOUND ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; OPTIONS: If we find a scan match in
;; an XLATT or SET_FLAG operation then
;; exit from INT 9.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
IFF EITHER_ALT, NOT ;; ;JP900807
ANDF EITHER_CTL, NOT ;; ;JP900807
IFF LC_E0 ;; Avoid accidentally translating
XLATT NUMERIC_PAD ;; the key of the numeric ;JP900807
EXIT_STATE_LOGIC ;;
ENDIFF ;;
ENDIFF ;; ;JP900807
;;
;JP900727 IFF EITHER_CTL,NOT ;;
;JP900727 IFF EITHER_ALT ;; ALT - case
;JP900727 XLATT ALT_CASE ;;
;JP900727 ENDIFF ;;
;JP900727 ELSEF ;;
IFF EITHER_ALT ;; ;JP900727
XLATT ALT_CASE ;; ALT case ;JP900727
ENDIFF ;; ;JP900727
IFF EITHER_CTL ;; ;JP900727
IFF EITHER_ALT,NOT ;;
XLATT CTRL_CASE ;; CTRL case
ENDIFF ;;
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.
;JP900807 IFF NUM_STATE,NOT ;;
;JP900807 XLATT NUMERIC_PAD ;;
;JP900807 ENDIFF ;;
XLATT NON_ALPHA_UPPER ;;
IFF CAPS_STATE ;;
XLATT ALPHA_LOWER ;;
ELSEF ;;
XLATT ALPHA_UPPER ;;
ENDIFF ;;
ELSEF ;;
;JP900807 IFF NUM_STATE ;;
;JP900807 XLATT NUMERIC_PAD ;;
;JP900807 ENDIFF ;;
XLATT NON_ALPHA_LOWER ;;
IFF CAPS_STATE ;;
XLATT ALPHA_UPPER ;;
ELSEF ;;
XLATT ALPHA_LOWER ;;
ENDIFF ;;
ENDIFF ;;
ENDIFF ;;
;;
EXIT_STATE_LOGIC ;;
;;
LOGIC_END: ;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;***************************************
;; JP 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.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;
; Hardware Scan Codes
;
HW_SC_0 equ 0bh ;JP9007
HW_SC_HAT equ 0dh ;JP9007
HW_SC_BACK_SLASH equ 56h
HW_SC_YEN_NEW equ 7dh
HW_SC_CONV equ 5bh
HW_SC_NO_CONV equ 5ah
HW_SC_KANJI equ 71h
HW_SC_KATAKANA equ 72h
HW_SC_TORIKESHI equ 55h ;JP9009
HW_SC_PA1 equ 5ah ;JP9009
HW_SC_CSR_BLINK equ 5bh ;JP9009
HW_SC_INTERRUPT equ 5ch ;JP9009
HW_SC_UF1 equ 5dh ;JP9009
HW_SC_PA2 equ 5eh ;JP9009
HW_SC_UF2 equ 63h ;JP9009
HW_SC_UF3 equ 64h ;JP9009
HW_SC_UF4 equ 65h ;JP9009
HW_SC_ATTENTION equ 66h ;JP9009
HW_SC_SIZE_CONV equ 69h ;JP9009
HW_SC_MESSAGE equ 6ah ;JP9009
HW_SC_COPY equ 6bh ;JP9009
HW_SC_SHUHRYOH equ 6ch ;JP9009
HW_SC_ERASE_EOF equ 6dh ;JP9009
HW_SC_CLEAR equ 76h ;JP9009
;
; Type of converted scan code
;
PSEUDO_CODE equ 00h
EXTENDED_CODE equ 0f0h
EXTENDED_CODE_E0 equ 0e0h ;JP900807
;
; Extended code list
;
EXT_HALF_FULL equ 0afh
EXT_HALF_FULL_UPPER equ 0b0h
EXT_HALF_FULL_CTRL equ 0b1h
EXT_KANJI equ 0b2h
EXT_ALPHA_NUMERIC equ 0b3h
EXT_ALPHA_NUMERIC_CTRL equ 0b4h
EXT_KANJI_NO equ 0b5h
EXT_HIRAGANA equ 0b6h
EXT_KATAKANA equ 0b7h
EXT_HIRAGANA_CTRL equ 0b8h
EXT_ROMAJI equ 0b9h
EXT_HALF_FULL_ALT equ 0bah
EXT_ALPHA_NUMERIC_ALT equ 0bbh
EXT_HIRAGANA_UPPER equ 0bch
EXT_KATAKANA_CTRL equ 0bdh
EXT_KANJI_UPPER equ 0beh
EXT_KANJI_CTRL equ 0bfh
EXT_KATAKANA_SHIFT_A equ 0c0h ;JP9009
EXT_KATAKANA_ALT_A equ 0c1h ;JP9009
EXT_TANGO_A equ 0c2h ;JP9009
EXT_TANGO_SHIFT_A equ 0c3h ;JP9009
EXT_TANGO_CTRL_A equ 0c4h ;JP9009
EXT_TANGO_ALT_A equ 0c5h ;JP9009
EXT_NO_CONV_1 equ 0abh
EXT_NO_CONV_2 equ 0ach
EXT_NO_CONV_3 equ 0adh
EXT_NO_CONV_4 equ 0aeh
EXT_CONV_1 equ 0a7h
EXT_CONV_2 equ 0a8h
EXT_CONV_3 equ 0a9h
EXT_CONV_4 equ 0aah
JP_COMMON_XLAT: ;;
;;
DW COMMON_XLAT_END-$ ;; length of section
DW -1 ;; code page
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;SK900807
;; CODE PAGE: Common
;; STATE: Alt Case
;; KEYBOARD TYPES: New DBCS keyboard
;; TABLE TYPE: Translate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
DW COM_ALT_K1_END-$ ;; length of state section
DB ALT_CASE ;; State ID
DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
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 5 ;; number of entries
db HW_SC_YEN_NEW, -1, HW_SC_BACK_SLASH
db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_NO
db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ALPHA_NUMERIC_CTRL
db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_4
db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_4
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: New DBCS keyboard
;; TABLE TYPE: Translate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
DW COM_CTRL_K1_END-$ ;; length of state section
DB CTRL_CASE ;; State ID
DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
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 HW_SC_YEN_NEW, 1ch, HW_SC_BACK_SLASH
db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI_CTRL
db HW_SC_KATAKANA, EXTENDED_CODE, EXT_ROMAJI
db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_3
db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_3
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: New DBCS keyboard
;; TABLE TYPE: Translate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
DW COM_NA_LO_K1_END-$ ;; length of state section
DB NON_ALPHA_LOWER ;; State ID
DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
DB -1,-1 ;; Buffer entry for error character
;;
DW COM_NA_LO_K1_T1_END-$ ;; Size of xlat table
DB TYPE_2_TAB ;; xlat options:
DB 5 ;; number of entries
db HW_SC_YEN_NEW, '\', HW_SC_BACK_SLASH
db HW_SC_KANJI, EXTENDED_CODE, EXT_KANJI
db HW_SC_KATAKANA, EXTENDED_CODE, EXT_KATAKANA
db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_1
db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_1
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: New DBCS keyboard
;; TABLE TYPE: Translate
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
DW COM_NA_UP_K1_END-$ ;; length of state section
DB NON_ALPHA_UPPER ;; State ID
DW G_KB + P_KB + DBCS_OLD_KB ;; Keyboard Type ;SK900807
DB -1,-1 ;; Buffer entry for error character
;;
DW COM_NA_UP_T1_K1_END-$ ;; Size of xlat table
DB TYPE_2_TAB ;; xlat options:
DB 5 ;; number of entries
db HW_SC_YEN_NEW, '|', HW_SC_BACK_SLASH
db HW_SC_KANJI, EXTENDED_CODE, EXT_HALF_FULL
db HW_SC_KATAKANA, EXTENDED_CODE, EXT_HIRAGANA
db HW_SC_CONV, EXTENDED_CODE, EXT_CONV_2
db HW_SC_NO_CONV, EXTENDED_CODE, EXT_NO_CONV_2
COM_NA_UP_T1_K1_END: ;;
;;
DW 0 ;; Size of xlat table - null table
COM_NA_UP_K1_END: ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DW 0 ;; LAST STATE
COMMON_XLAT_END: ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; JP Specific Translate Section for ;;
;; Code Page 932. ;;
;; It is completely covered by the ;;
;; common table. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
JP_932_XLAT: ;;
;;
DW CP932_XLAT_END - $ ;;
DW 932 ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DW 0 ;;
CP932_XLAT_END: ;;
;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; JP Specific Translate Section for ;;
;; Code Page 437. ;;
;; It is completely covered by the ;;
;; common table. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
JP_437_XLAT: ;;
;;
DW CP437_XLAT_END - $ ;;
DW 437 ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DW 0 ;;
CP437_XLAT_END: ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODE ENDS ;;
END ;;