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.
420 lines
11 KiB
420 lines
11 KiB
.XLIST
|
|
|
|
; * IBM CONFIDENTIAL * Jan 9 1990 *
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; PC DOS 3.3 - NLS Support - Keyboard Definition File
|
|
;; (C) Copyright IBM Corp 198?,...
|
|
;;
|
|
;; File Name: KEYBMAC.INC
|
|
;; ----------
|
|
;;
|
|
;; Author: Bill Devlin - IBM Canada Laboratory - May 1986
|
|
;; ------- ???????????
|
|
;;
|
|
;; 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 ;;
|
|
RUS_MODE EQU 01H ;; Added YST for Cyrillic keyboard
|
|
LAT_MODE EQU 00H ;; 1/21/91
|
|
;; NLS_FLAG_2 : nothing defined yet
|
|
CARON EQU 80H
|
|
BREVE EQU 40H
|
|
OVERCIRCLE EQU 20H
|
|
OGONEK EQU 10H
|
|
OVERDOT EQU 08H
|
|
DOUBLEACUTE EQU 04H
|
|
|
|
;;
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; 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 ;;
|
|
TILDE_TILDE EQU 34 ;;
|
|
ALT_CASE EQU 35 ;;
|
|
CTRL_CASE EQU 36 ;;
|
|
NUMERIC_PAD EQU 37 ;;
|
|
DIVIDE_SIGN EQU 38 ;;
|
|
BOTLH_CAPS EQU 39 ;;
|
|
BOTRH_CAPS EQU 40 ;;
|
|
BOTLH_F_CAPS EQU 41 ;;
|
|
BOTRH_F_CAPS EQU 42 ;;
|
|
RUS_MODE_SET EQU 43 ;; Added YST for Cyrillic keyboard
|
|
;;
|
|
;************************************************
|
|
; Mihindu 11/30/90 - Added Eastern Europe support
|
|
;************************************************
|
|
CARON_SPACE EQU 43
|
|
CARON_LOWER EQU 44
|
|
CARON_UPPER EQU 45
|
|
BREVE_SPACE EQU 46
|
|
BREVE_LOWER EQU 47
|
|
BREVE_UPPER EQU 48
|
|
OVERCIRCLE_SPACE EQU 49
|
|
OVERCIRCLE_LOWER EQU 50
|
|
OVERCIRCLE_UPPER EQU 51
|
|
OGONEK_SPACE EQU 52
|
|
OGONEK_LOWER EQU 53
|
|
OGONEK_UPPER EQU 54
|
|
OVERDOT_SPACE EQU 55
|
|
OVERDOT_LOWER EQU 56
|
|
OVERDOT_UPPER EQU 57
|
|
DOUBLEACUTE_SPACE EQU 58
|
|
DOUBLEACUTE_LOWER EQU 59
|
|
DOUBLEACUTE_UPPER EQU 60
|
|
|
|
;******************************************************
|
|
; M000 --- new state for KDFJP.ASM (Kermit) *******
|
|
;******************************************************
|
|
|
|
DBCS_OLD_A EQU 61 ; M000 (JP9009)
|
|
|
|
NON_ALPHA_LOWER_LAT EQU 62
|
|
NON_ALPHA_UPPER_LAT EQU 63
|
|
ALPHA_LOWER_LAT EQU 64
|
|
ALPHA_UPPER_LAT EQU 65
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Logic Macros
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
|
|
UNKNOWN = 255
|
|
|
|
FIND_FLAG MACRO FLAG_MASK
|
|
IFIDN <FLAG_MASK>,<SCAN_MATCH>
|
|
FLAG_ID = EXT_KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<EITHER_SHIFT>
|
|
FLAG_ID = EXT_KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<CAPS_STATE>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<NUM_STATE>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<EITHER_CTL>
|
|
FLAG_ID = EXT_KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<EITHER_ALT>
|
|
FLAG_ID = EXT_KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<LEFT_SHIFT>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<RIGHT_SHIFT>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<ALT_SHIFT>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<CTL_SHIFT>
|
|
FLAG_ID = KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<R_ALT_SHIFT>
|
|
FLAG_ID = KB_FLAG_3_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<R_CTL_SHIFT>
|
|
FLAG_ID = KB_FLAG_3_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<TILDE>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<ACUTE>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<GRAVE>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<DIARESIS>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<CEDILLA>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<CIRCUMFLEX>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<CARON>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<BREVE>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<OVERCIRCLE>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<OGONEK>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<OVERDOT>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<DOUBLEACUTE>
|
|
FLAG_ID = NLS_FLAG_2_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<LC_E0>
|
|
FLAG_ID = KB_FLAG_3_ID
|
|
ELSE
|
|
;; ============================================================
|
|
;; For Cyrillic keyboards (YST)
|
|
;; ============================================================
|
|
IFIDN <FLAG_MASK>,<SHIFTS_PRESSED>
|
|
FLAG_ID = EXT_KB_FLAG_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<RUS_MODE>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
IFIDN <FLAG_MASK>,<LAT_MODE>
|
|
FLAG_ID = NLS_FLAG_1_ID
|
|
ELSE
|
|
;; ============================================================
|
|
;; End of Cyrillic keyboards (YST)
|
|
;; ============================================================
|
|
FLAG_ID = UNKNOWN
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
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 <MASK_TYPE>
|
|
NOT_BIT = 00000000B
|
|
ELSE
|
|
IFIDN <MASK_TYPE>,<NOT>
|
|
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 <MASK_TYPE>
|
|
NOT_BIT = 00000000B
|
|
ELSE
|
|
IFIDN <MASK_TYPE>,<NOT>
|
|
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 <MASK_TYPE>
|
|
NOT_BIT = 00000000B
|
|
ELSE
|
|
IFIDN <MASK_TYPE>,<NOT>
|
|
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
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
RESET_NLS1 MACRO
|
|
DB RESET_NLS1_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
|
|
|