EasyManua.ls Logo

IBM PC CONVERTIBLE

IBM PC CONVERTIBLE
275 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
ASSUME
OS:
DATA
ASSUME
ES:
DATA
SCAN
CODE
BUFFER
PROCESSING
0319
XL
TlO:
0319
E8
0000 E
CALL
;
DISABLE
ALL
INTERRUPTS
031C
F6
06
00B4
R
80
TEST
JNZ
KB_NMLCNTL,
P60_LOADED
; IS
PORT
60
CURRENTLY
LOADED?
0321
75
00
XL
Tl3
;
YES
THEN
EXIT
THE
ROUTINE
,
;
PORT
60
IS
NOT
LOADED
SO
CHECK
QUEUE
FOR
ANY
KEYS
0323
8A
IE
OOBB
R
0327
3A
IE
OOBC
R
;
BUFFER
HEAD
DISPLACEMENT
; I S
BUFFER
EMPTY
032B
75
06
MOV
CMP
JNE
BL, KLNMLHEAD
BL,KB_NMLTAIL
XL
Tl4
;
YES,
GO
TO
BUFFER
EMPTY
ENTRY
PORT
60
IS
NOT
LOADED
AND
NO
KEYS
IN
QUEUE
SO
FIX
NUM_LOCK
STATUS
AND
EXIT
0320
E8
0524 R'
CALL
RE-ENABLE
KEYBOARD
NMIS
AND
EXIT
THE
ROUTINE
0330
E9
0523
R XLTl3:
JMP
XL
T100
DEQUEUE
THE
SCAN
CODE
FROM
THE
NMI
QUEUE
0333
80
OE
00B4
R
10
XLTl4:
OR
KB_NMLCNTL,XLATLBUSY ;
SET
KEY
XLATE
IN
PROCESS
0338
B7
00
MOV
BH,O
;
CLEAR
BH
-
BL
IS
BUFFER
HEAD
DISP
033A
8A
87
OOBD
R
MOV
AL,KB_NMLBUFFER[BXl ;
GET
SCAN
CODE
FROM
BUFFER
033E
FE
C3
INC
BL
INCREMENT
HEAD
POINTER
0340
80
FB
10
CMP
BL,KB_NMLBLTH IS
BL
=
END
OF
BUFFER
+1
0343
72
02
JB
XL
Tl5
JUMP
I F
NOT
PAST
END
OF
BUFFER
0345
B3
00
MOV
BL,O
PAST
END
-
SET
TO
START
0347 XLTl5:
0347
88
IE
OOBB
R
MOV
KB_NMLHEAD,BL
UPDATE
BUFFER
HEAD
;
START
OF
SCAN
CODE
TRANSLATION
ENABLE
NMIS
AND
RESTORE
INTERRUPT
STATE
TO
PRE-NMI
CONDITION
;
---------------------------------
--
- - - - -
--
- - -
--
- - - - -
--
- - - - - - -
--
-
---
034B
E8
076E
R
CALL
NMLCYCLE
CYCLE
NMI
MASK,
RESTORE
INT
FLAGS
034E
8A
EO
MOV
AH,AL
AH
<===
ORIGINAL
NMI
SC
0350
3C
FF
CMP
AL,OFFH
KEYBOARD
OVERRUN
?
0352
75
14
JNE
XL
Tl8
NO,
GO
LOOK
FOR
FUNCTION
KEY
KEYBOARD
OVERRUN
DETECTED
0354
C7
06
00B5
R 0000
MOV
B_PENDl,O
;
RESET
BREAK
PENDING
FLAGS
035A
C7
06
00B7
R 0000
MOV
B_PEND2,0
;
RESET
BREAK
PENDING
FLAGS
0360
80
26
00B4
R
BF
AND
K
B_NM
LCNTL,
NOT
FUNCSTATE
;
CLEAR
FUNCTION
STATE
0365
E9
050C
R
JMP
XL
T90
;
OVERRUN,
GO
WRITE
PORT
60
;
CHECK
IF
SC
IS
FOR
A
BAS
E
KEY
ONLY
0368 XLTl8:
0368
80
E4
80
AND
AH
,
BR
EALB
IT
AH
<===
BREAK
BIT
OF
NMI
SC
036B
8A
DO
MOV
DL,AL
DL
<===
ORIGINAL
NMI
SC
036D
24
7F
AND
AL,NOT
BREALBIT
AL
<===
NMI
SC
W/O
BREAK
BIT
036F
8D
IE
0000
LEA
BX,
KBNMLTBL
SCAN
CODE
TABLE
-
NMI
TO
PCl
0373
2E:
D7
XLAT
KBNMLTBL
XLATE
NMI
SC
TO
PC!
SC
0375
A8
80
TEST
AL
,80H
BASE
KEY
ONLY?
0377
75
03
JNZ
XL
Tl9
NO,
JUMP
AROUND
0379
E9
04DE
R
JMP
XL
T60_1
YES,
JUMP
TO
BASE
KEY
PROCESS
IF
THIS
IS
THE
FUNCTION
KEY,
SET/RESET
FUNCTION
STATE
ROM BIOS 2-39

Related product manuals