617 lines
13 KiB
NASM
617 lines
13 KiB
NASM
|
||
.model tiny
|
||
.code
|
||
|
||
; to create the file:
|
||
; TASM <filename>
|
||
; TLINK /TDC <filename>
|
||
; REN <filename>.COM KEYBOARD.CFG
|
||
;
|
||
; Structure is:
|
||
; Keycode (1 byte)
|
||
; Condition (1 byte)
|
||
; Return value (1 word)
|
||
; Condition (1 byte)
|
||
; Return value (1 word)
|
||
; Condition (1 byte)
|
||
; Return value (1 word)
|
||
; .
|
||
; .
|
||
; .
|
||
; 0FFh <-- end of condition/return value list
|
||
;
|
||
; Keycode is the value in the keypress table in IT on Ctrl-F1 (remember the
|
||
; values on the keypress table are in HEX..)
|
||
;
|
||
; Condition is one of the following
|
||
; 0 = requires NO Shift/Ctrl/Alt/...,
|
||
; 1 = if Shift and key while caps lock OFF *OR* CAPS lock ON, no ctrl/alt
|
||
; 2 = if Shift and key while caps lock ON *OR* CAPS lock OFF, no ctrl/alt
|
||
; 3 = if Shift
|
||
; 4 = if Ctrl
|
||
; 5 = if left/right Alt
|
||
; 6 = if Left Alt
|
||
; 7 = if Right Alt
|
||
; 8 = if Numlock on, no ctrl/alt
|
||
; 9 = if Numlock off, no ctrl/alt
|
||
; 0FFh = end of list.
|
||
;
|
||
; Return value is the character, or a DOS character value
|
||
|
||
ORG 100h
|
||
|
||
FileStart:
|
||
|
||
FileLength DW Offset EndKeyboardTable - Offset StartKeyboardTable
|
||
|
||
StartKeyboardTable:
|
||
|
||
DB 2 ; 1
|
||
DB 0
|
||
DW '1'
|
||
DB 3 ; !
|
||
DW '!'
|
||
DB 0FFh
|
||
|
||
DB 3 ; 2
|
||
DB 0
|
||
DW '2'
|
||
DB 3 ; "
|
||
DW '"'
|
||
DB 0FFh
|
||
|
||
DB 4 ; 3
|
||
DB 0
|
||
DW '3'
|
||
DB 3 ; #
|
||
DW '#'
|
||
DB 0FFh
|
||
|
||
DB 5 ; 4
|
||
DB 0
|
||
DW '4'
|
||
DB 3 ; $
|
||
DW '$'
|
||
DB 0FFh
|
||
|
||
DB 6 ; 5
|
||
DB 0
|
||
DW '5'
|
||
DB 3 ; %
|
||
DW '%'
|
||
DB 0FFh
|
||
|
||
DB 7 ; 6
|
||
DB 0
|
||
DW '6'
|
||
DB 3 ; &
|
||
DW '&'
|
||
DB 0FFh
|
||
|
||
DB 8 ; 7
|
||
DB 0
|
||
DW '7'
|
||
DB 3 ; &
|
||
DW '/'
|
||
DB 7
|
||
DW '{' ; {
|
||
DB 0FFh
|
||
|
||
DB 9 ; 8
|
||
DB 0
|
||
DW '8'
|
||
DB 3 ; (
|
||
DW '('
|
||
DB 7
|
||
DW '[' ; [
|
||
DB 0FFh
|
||
|
||
DB 10 ; 9
|
||
DB 0
|
||
DW '9'
|
||
DB 3 ; )
|
||
DW ')'
|
||
DB 7
|
||
DW ']' ; ]
|
||
DB 0FFh
|
||
|
||
DB 11 ; 0
|
||
DB 0
|
||
DW '0'
|
||
DB 3 ; =
|
||
DW '='
|
||
DB 7
|
||
DW '}' ; }
|
||
DB 0FFh
|
||
|
||
DB 12 ; <20>
|
||
DB 0
|
||
DW '<27>'
|
||
DB 3 ; ?
|
||
DW '?'
|
||
DB 7
|
||
DW '\' ; \
|
||
DB 0FFh
|
||
|
||
DB 13 ; '
|
||
DB 0
|
||
DW "'"
|
||
DB 3 ; `
|
||
DW "`"
|
||
DB 0FFh
|
||
|
||
DB 14 ; Backspace
|
||
DB 4 ; Ctrl-Backspace
|
||
DW 127
|
||
DB 0FFh
|
||
|
||
DB 15 ; Tab
|
||
DB 3 ; ShiftTab
|
||
DW 0F00h
|
||
DB 0FFh
|
||
|
||
DB 16 ; Q
|
||
DB 1
|
||
DW 'Q'
|
||
DB 2 ; q
|
||
DW 'q'
|
||
DB 4 ; Ctrl-Q
|
||
DW 11h
|
||
DB 7 ; Alt-Gr-Q (Alt-Ctrl-Q)
|
||
DW '@'
|
||
DB 5 ; Alt-Q
|
||
DW 1000h
|
||
DB 0FFh
|
||
|
||
DB 17 ; W
|
||
DB 1
|
||
DW 'W'
|
||
DB 2 ; w
|
||
DW 'w'
|
||
DB 4 ; Ctrl-W
|
||
DW 17h
|
||
DB 5 ; Alt-W
|
||
DW 1100h
|
||
DB 0FFh
|
||
|
||
DB 18 ; E
|
||
DB 1
|
||
DW 'E'
|
||
DB 2 ;e
|
||
DW 'e'
|
||
DB 4 ; Ctrl-E
|
||
DW 5
|
||
DB 5 ; Alt-E
|
||
DW 1200h
|
||
DB 0FFh
|
||
|
||
DB 19 ; R
|
||
DB 1
|
||
DW 'R'
|
||
DB 2 ; r
|
||
DW 'r'
|
||
DB 4 ; Ctrl-R
|
||
DW 12h
|
||
DB 5 ; Alt-R
|
||
DW 1300h
|
||
DB 0FFh
|
||
|
||
DB 20 ; T
|
||
DB 1
|
||
DW 'T'
|
||
DB 2 ; t
|
||
DW 't'
|
||
DB 4 ; Ctrl-T
|
||
DW 14h
|
||
DB 5 ; Alt-T
|
||
DW 1400h
|
||
DB 0FFh
|
||
|
||
DB 21 ; Z
|
||
DB 1
|
||
DW 'Z'
|
||
DB 2 ; z
|
||
DW 'z'
|
||
DB 4 ; Ctrl-Z
|
||
DW 1ah
|
||
DB 5 ; Alt-Z
|
||
DW 2c00h
|
||
DB 0FFh
|
||
|
||
DB 22 ; U
|
||
DB 1
|
||
DW 'U'
|
||
DB 2 ; u
|
||
DW 'u'
|
||
DB 4 ; Ctrl-U
|
||
DW 15h
|
||
DB 5 ; Alt-U
|
||
DW 1600h
|
||
DB 0FFh
|
||
|
||
DB 23 ; I
|
||
DB 1
|
||
DW 'I'
|
||
DB 2 ; i
|
||
DW 'i'
|
||
DB 4 ; Ctrl-I
|
||
DW 9
|
||
DB 5 ; Alt-I
|
||
DW 1700h
|
||
DB 0FFh
|
||
|
||
DB 24 ; O
|
||
DB 1
|
||
DW 'O'
|
||
DB 2 ; o
|
||
DW 'o'
|
||
DB 4 ; Ctrl-O
|
||
DW 0Fh
|
||
DB 5 ; Alt-O
|
||
DW 1800h
|
||
DB 0FFh
|
||
|
||
DB 25 ; P
|
||
DB 1
|
||
DW 'P'
|
||
DB 2 ; p
|
||
DW 'p'
|
||
DB 4 ; Ctrl-P
|
||
DW 10h
|
||
DB 5 ; Alt-P
|
||
DW 1900h
|
||
DB 0FFh
|
||
|
||
DB 26 ; <20>
|
||
DB 0
|
||
DW '<27>'
|
||
DB 3 ; <20>
|
||
DW '<27>'
|
||
DB 0FFh
|
||
|
||
DB 27 ; +
|
||
DB 0
|
||
DW '+'
|
||
DB 3 ; *
|
||
DW '*'
|
||
DB 7
|
||
DW '~' ; ~
|
||
DB 0FFh
|
||
|
||
DB 30 ; A
|
||
DB 1
|
||
DW 'A'
|
||
DB 2 ; a
|
||
DW 'a'
|
||
DB 4 ; Ctrl-A
|
||
DW 1
|
||
DB 5 ; Alt-A
|
||
DW 1E00h
|
||
DB 0FFh
|
||
|
||
DB 31 ; S
|
||
DB 1
|
||
DW 'S'
|
||
DB 2 ; s
|
||
DW 's'
|
||
DB 4 ; Ctrl-S
|
||
DW 13h
|
||
DB 5 ; Alt-S
|
||
DW 1F00h
|
||
DB 0FFh
|
||
|
||
DB 32 ; D
|
||
DB 1
|
||
DW 'D'
|
||
DB 2 ; d
|
||
DW 'd'
|
||
DB 4 ; Ctrl-D
|
||
DW 4
|
||
DB 5 ; Alt-D
|
||
DW 2000h
|
||
DB 0FFh
|
||
|
||
DB 33 ; F
|
||
DB 1
|
||
DW 'F'
|
||
DB 2 ; f
|
||
DW 'f'
|
||
DB 4 ; Ctrl-F
|
||
DW 6
|
||
DB 5 ; Alt-F
|
||
DW 2100h
|
||
DB 0FFh
|
||
|
||
DB 34 ; G
|
||
DB 1
|
||
DW 'G'
|
||
DB 2 ; g
|
||
DW 'g'
|
||
DB 4 ; Ctrl-G
|
||
DW 7
|
||
DB 5 ; Alt-G
|
||
DW 2200h
|
||
DB 0FFh
|
||
|
||
DB 35 ; H
|
||
DB 1
|
||
DW 'H'
|
||
DB 2 ; h
|
||
DW 'h'
|
||
DB 4 ; Ctrl-H
|
||
DW 8
|
||
DB 5 ; Alt-H
|
||
DW 2300h
|
||
DB 0FFh
|
||
|
||
DB 36 ; J
|
||
DB 1
|
||
DW 'J'
|
||
DB 2 ; j
|
||
DW 'j'
|
||
DB 4 ; Ctrl-J
|
||
DW 0Ah
|
||
DB 5 ; Alt-J
|
||
DW 2400h
|
||
DB 0FFh
|
||
|
||
DB 37 ; K
|
||
DB 1
|
||
DW 'K'
|
||
DB 2 ; k
|
||
DW 'k'
|
||
DB 4 ; Ctrl-K
|
||
DW 0Bh
|
||
DB 5 ; Alt-K
|
||
DW 2500h
|
||
DB 0FFh
|
||
|
||
DB 38 ; L
|
||
DB 1
|
||
DW 'L'
|
||
DB 2 ; l
|
||
DW 'l'
|
||
DB 4 ; Ctrl-L
|
||
DW 0Ch
|
||
DB 5 ; Alt-L
|
||
DW 2600h
|
||
DB 0FFh
|
||
|
||
DB 39 ; <20>
|
||
DB 0
|
||
DW '<27>'
|
||
DB 3 ; <20>
|
||
DW '<27>'
|
||
DB 0FFh
|
||
|
||
DB 40 ; <20>
|
||
DB 0
|
||
DW "<22>"
|
||
DB 3 ; <20>
|
||
DW '<27>'
|
||
DB 0FFh
|
||
|
||
DB 41
|
||
DB 0
|
||
DW "^"
|
||
DB 3
|
||
DW "<22>"
|
||
DB 0FFh
|
||
|
||
DB 43 ; #
|
||
DB 0
|
||
DW '#'
|
||
DB 3 ; '
|
||
DW "'"
|
||
DB 0FFh
|
||
|
||
DB 44 ; Y
|
||
DB 1
|
||
DW 'Y'
|
||
DB 2 ; y
|
||
DW 'y'
|
||
DB 4 ; Ctrl-Y
|
||
DW 19h
|
||
DB 5 ; Alt-Y
|
||
DW 1500h
|
||
DB 0FFh
|
||
|
||
DB 45 ; X
|
||
DB 1
|
||
DW 'X'
|
||
DB 2 ; x
|
||
DW 'x'
|
||
DB 4 ; Ctrl-X
|
||
DW 1Ah
|
||
DB 5 ; Alt-X
|
||
DW 2D00h
|
||
DB 0FFh
|
||
|
||
DB 46 ; C
|
||
DB 1
|
||
DW 'C'
|
||
DB 2 ; c
|
||
DW 'c'
|
||
DB 4 ; Ctrl-C
|
||
DW 3
|
||
DB 5 ; Alt-C
|
||
DW 2E00h
|
||
DB 0FFh
|
||
|
||
DB 47 ; V
|
||
DB 1
|
||
DW 'V'
|
||
DB 2 ; v
|
||
DW 'v'
|
||
DB 4 ; Ctrl-V
|
||
DW 16h
|
||
DB 5 ; Alt-V
|
||
DW 2F00h
|
||
DB 0FFh
|
||
|
||
DB 48 ; B
|
||
DB 1
|
||
DW 'B'
|
||
DB 2 ; b
|
||
DW 'b'
|
||
DB 4 ; Ctrl-B
|
||
DW 2
|
||
DB 5 ; Alt-B
|
||
DW 3000h
|
||
DB 0FFh
|
||
|
||
DB 49 ; N
|
||
DB 1
|
||
DW 'N'
|
||
DB 2 ; n
|
||
DW 'n'
|
||
DB 4 ; Ctrl-N
|
||
DW 0Eh
|
||
DB 5 ; Alt-N
|
||
DW 3100h
|
||
DB 0FFh
|
||
|
||
DB 50 ; M
|
||
DB 1
|
||
DW 'M'
|
||
DB 2
|
||
DW 'm'
|
||
DB 4 ; Ctrl-M
|
||
DW 0Dh
|
||
DB 5 ; Alt-M
|
||
DW 3200h
|
||
DB 0FFh
|
||
|
||
DB 51 ; ,
|
||
DB 0
|
||
DW ','
|
||
DB 3
|
||
DW ';'
|
||
DB 0FFh
|
||
|
||
DB 52 ; .
|
||
DB 0
|
||
DW '.'
|
||
DB 3
|
||
DW ':'
|
||
DB 0FFh
|
||
|
||
DB 53 ; -
|
||
DB 0
|
||
DW '-'
|
||
DB 3
|
||
DW '_'
|
||
DB 0FFh
|
||
|
||
DB 55 ; XT/AT printscreen, Enhanced keyboard *
|
||
DB 0
|
||
DW '*'
|
||
DB 0FFh
|
||
|
||
DB 57 ; Spacebar
|
||
DB 0
|
||
DW ' '
|
||
DB 3
|
||
DW ' '
|
||
DB 0FFh
|
||
|
||
DB 71 ; Keypad 7
|
||
DB 8
|
||
DW '7'
|
||
DB 10
|
||
DW 7
|
||
DB 0FFh
|
||
|
||
DB 72 ; Keypad 8
|
||
DB 8
|
||
DW '8'
|
||
DB 10
|
||
DW 8
|
||
DB 0FFh
|
||
|
||
DB 73 ; Keypad 9
|
||
DB 8
|
||
DW '9'
|
||
DB 10
|
||
DW 9
|
||
DB 0FFh
|
||
|
||
DB 74 ; Grey -
|
||
DB 0
|
||
DW '-'
|
||
DB 0FFh
|
||
|
||
DB 75 ; Keypad 4
|
||
DB 8
|
||
DW '4'
|
||
DB 10
|
||
DW 4
|
||
DB 0FFh
|
||
|
||
DB 76 ; Keypad 5
|
||
DB 8
|
||
DW '5'
|
||
DB 10
|
||
DW 5
|
||
DB 0FFh
|
||
|
||
DB 77 ; Keypad 6
|
||
DB 8
|
||
DW '6'
|
||
DB 10
|
||
DW 6
|
||
DB 0FFh
|
||
|
||
DB 78 ; Grey +
|
||
DB 0
|
||
DW '+'
|
||
DB 0FFh
|
||
|
||
DB 79 ; Keypad 1
|
||
DB 8
|
||
DW '1'
|
||
DB 10
|
||
DW 1
|
||
DB 0FFh
|
||
|
||
DB 80 ; Keypad 2
|
||
DB 8
|
||
DW '2'
|
||
DB 10
|
||
DW 2
|
||
DB 0FFh
|
||
|
||
DB 81 ; Keypad 3
|
||
DB 8
|
||
DW '3'
|
||
DB 10
|
||
DW 3
|
||
DB 0FFh
|
||
|
||
DB 82 ; Keypad 0
|
||
DB 8
|
||
DW '0'
|
||
DB 10
|
||
DW 0
|
||
DB 0FFh
|
||
|
||
DB 86 ; <
|
||
DB 0
|
||
DW '<'
|
||
DB 3 ; >
|
||
DW '>'
|
||
DB 7
|
||
DW '|'
|
||
DB 0FFh
|
||
|
||
DB 128+35h ; Grey /
|
||
DB 0
|
||
DW '/'
|
||
DB 0FFh
|
||
|
||
DB 0FFh
|
||
|
||
EndKeyboardTable:
|
||
|
||
End FileStart
|