IBM PC CONVERTIBLE Technical Reference page 95

Table of Contents

Advertisement

0107
A8 80
0109
75 54
TEST
JNZ
AL ,80H
K23
; TEST FOR BREAK KEY
; BREAICSHI FLFOUND
;
-
--
---
-----
- -- - - -
- - - - - ----
-
- - - -
- - - - -
- - -- - - -
---
; SHI FT MAKE FOUND, DETERMINE SET OR TOGGLE
010B
80 FC 10
OlOE
73 OA
CMP
JAE
AH, SCROLLSHI FT
K18
; IF SCRL SFT OR ABOVE, TOGGLE KEY
PLAIN SHIFT KEY, SET SHIFT ON
0110
08 26 0017 R
0114
E9 0396 R
OR
JMP
KLFLAG,AH
KYBD9_EXIT
; TURN ON SHI FT BIT
; INTERRUPLRETURN
~-----
TOGGLED SHIFT KEY, TEST FOR 1ST MAKE OR NOT
0117
E9 01C5 R
K25_JMP: JMP
K25
JUMP TO K25 FOR JNZ' s BELOW
OllA
K18:
SHI FT - TOGGLE
OllA
F6 06 0017 R 04
TEST
KBJLAG, CTL_SH 1FT
CHECK CTL SHI FT STATE
OllF
75 F6
JNZ
K25_JMP
JUMP IF CTL STATE
0121
3C 52
CMP
AL, INS_KEY
CHECK FOR INSERT KEY
0123
75 22
JNE
K22
JUMP I F NOT I NSERT KEY
[[[[ INSERT KEY HIT
llll
0125
F6 06 0017 R 08
TEST
KB_FLAG, AL LSHIFT
CHECK FOR ALTERNATE SHI FT
012A
75 EB
JNZ
K25_JMP
; JUMP IF ALTERNATE SHIFT
012C
F6 06 0017 R 20
K19 :
TEST
KBJLAG, NUM_STATE ; CHECK FOR BASE STATE
0131
75 OD
JNZ
K21
; JUMP IF NUM LOCK IS ON
0133
F6 06 0017 R 03
TEST
KLFLAG, LEFLSHIFT+ RIGHLSHIFT
0138
74 OD
JZ
K22
JUMP I F BASE STATE
013A
K20:
NUMERIC ZERO, NOT INSERT KEY
013A
B8 5230
MOV
AX, 5230H
PUT OUT AN ASCI I ZERO
013D
E9 0334 R
JMP
K57
BUFFERJI LL
0140
K21 :
; MIGHT BE NUMERIC
0140
F6 06 0017 R 03
TEST
KLFLAG, LEFLSHIFTt RIGHLSHIFT
0145
74 F3
JZ
K20
JUMP NUMERIC, NOT INSERT
0147
K22:
SHFT TOGGLE KEY HIT; PROCESS
0147
84 26 0018 R
TEST
AH, KB_FLAG_l
IS KEY ALREADY DEPRESSED
014B
75 37
JNZ
KYBD9_EXITl
JUMP I F KEY ALREADY DEPRESSED
014D
08 26 0018 R
OR
KLFLAG_l,AH
IND THAT THE KEY IS DEPRESSED
0151
30 26 0017 R
XOR
KLFLAG,AH
TOGGLE THE SHIFT STATE
0155
3C 52
CMP
AL, INS_KEY
TEST 1ST MAKE OF INSERT KEY
0157
75 2B
JNE
KYBDLEXITl
JUMP IF NOT INSERT KEY
0159
B8 5200
MOV
AX, I NS_KEY*256
SET CODE INTO AH, 0 INTO AL
015C
E9 0334 R
JMP
K57
PUT INTO OUTPUT BUFFER
---
- -- - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -
- -- - - - -
- --
; SH I FT BREAK FOUND
-
--
-
-
--------
- -- - - - - - - - - - - - - - - - -- - - -
- --
-
-
- - - --
015F
K23:
BREAK-SH I FT - FOUND
015F
80 FC 10
CMP
AH, SCROLL_SH I FT
IS THIS A TOGGLE KEY
0162
73 lA
JAE
K24
YES, HANDLE BREAK TOGGLE
0164
F6 D4
NOT
AH
INVERT MASK
0166
20 26 0017 R
AND
KLFLAG,AH
TURN OFF SHI FT BIT
016A
3C B8
CMP
AL ,AL LKEY+80H
IS THIS ALT SHIFT RELEASE
016C
75 16
JNE
KYBDLEXITl
GO TO EOI EXIT
-
-
-
- -- - - - -
- - - - -
- - - -
- - - -
- - - -
-
--
- - - - - - - - -- - - - - -
--
- -
- - - - - -
- - - -
- -
--
; ALLSHIFT RELEASED,
PROCESS ALT + KEYPAD (0-9) IF PENDING
;
---------
-
----------
- -- - - - - - - - - - - - - - - - - - - - - -
-
-- - - - - - - - - - - -' - - - --
016E
AO 0019 R
MOV
AL,AL LINPUT
0171
B4 00
MOV
AH,O
BUILD PSEUDO SC
0173
88 26 0019
MOV
AL LINPUT ,AH
CLEAR ALT_INPUT
0177
3C 00
CMP
AL,O
WAS ALT_INPUT HOLDING?
0179
74 09
JE
KYBDLEXITI
NO, EOI EXIT
017B
E9 033D R
JMP
K58
YES, T, SO PUT IN BUFFER
SHI FT BREAK IS A STATE KEY - TOGGLE FLAG
017E
017E
F6 D4
0180
20 26 0018 R
,
K24:
NOT
AND
; LINK TO KEYBOARD EXIT FOR SHORT JUMPS
2-70 ROM BIOS
BREAK-TOGGLE
INVERT MASK
INDICATE STATE EXITED

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents