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...
0000
0000 IE
0001
53
0002
E8
0000
E
0005
OA
E4
0007
74
10
0009
FE
CC
OOOB
74
2B
0000
FE
CC
OOOF
74
3B
0011
80
EC
02
0014
74
39
0016
EB
49
90
;
ASSUME
cs:
ROMCODE,
CS
:
DATA
KYBD_IO
PROC
FAR
PUSH
OS
PUSH
BX
CALL
DDS
OR
AH,AH
JZ
Kl
DEC
AH
JZ
K2
DEC
AH
JZ
K3
SUB
AH,2
JZ
K4
JMP
KYBD_END
;
SAVE
CURRENT
OS
;
SAVE
BX
TEMPORARI
L Y
;
AH=O
;
ASCILREAD
;
AH=1
;
ASCI
LSTATUS
AH=2
SHI
FLSTATUS
,AH=4
CLICI<-STATE
EXIT
;
-----
READ
THE
KEY
TO
FIGURE
OUT
WHAT
TO
DO
0019
0019
FA
OOlA
8B
IE
OOIA
R
OOlE
3B
IE
OOlC
R
0022
75
08
Kl:
CLI
MOV
CMP
JNE
BX,
BUFFEILHEAD
BX,
BUFFER_TAIL
KLA
ISSUE
KEYBOARD
BUSY
WAIT
0024
B8
9002
0027
CD
15
0029
FB
MOV
INT
STI
AX,09002H
ISH
;
ASCI
I
READ
INTERRUPTS
OFF
GET
POINTER
TO
HEAD
OF
BUFFER
CHECK
FOR
HEAD
= TAIL
JUMP
IF
SOMETHING
IN
BUFFER
CALL
KEYBOARD
BUSY
HANDLER
INTERRUPTS
ON
BIOS
INT
ISH
WILL
RETURN
HERE
WHEN
HEAD
<>
TAIL
002A
EB
ED
JMP
Kl
;
LOOP
BACK
TO
WAIT
FOR
BFR
NOT
EMPTY
DATA
IN
KEYBOARD
BUFFER
002C
KLA:
002C
8B
07
MOV
AX,
[BX] ;
GET
SCAN
CODE
AND
ASCI
I
CODE
002E
E8
03A4
R
CALL
PTILINC ;
MOVE
POINTER
TO
NEXT
POSITION
0031
89
IE
OOlA
R
MOV
BUFFEILHEAD,
BX
;
STORE
VALUE
IN
VARIABLE
0035
EB
2A
90
JMP
KYBD_END
;
RETURN
;-----
ASCII
STATUS
0038
K2:
0038
FA
CLI
I
NTERRUPTS
OFF
0039
8B
IE
OOlA
R
MOV
BX,
BUFFER_HEAD
GET
HEAD
POINTER
0030
3B
IE
OOlC
R
CMP
BX,
BUFFEILTAIL
I F
EQUAL
(Z=l)
THEN
NOTHING
THERE
0041
8B
07
MOV
AX,
[BX]
0043
FB
STI
RE-ENABLE
INTERRUPTS
0044
5B
POP
BX
RECOVER
REGISTER
0045
IF
POP
OS
;
RECOVER
SEGMENT
0046
CA
0002
RET
2
;
THROW
AWAY
FLAGS
,
;-----
SHIFT
STATUS
0049
K3:
0049
AO
0017
R
MOV
AL,KB_FLAG
GET
THE
SHI
FT
STATUS
FLAGS
004C
EB
13
90
JMP
KYBD_END
RETURN
,
;-----
CLICK
STATE
004F
K4:
004F
OA
CO
OR
AL,AL ;
TURN
OFF
KEYBOARD
CLICK?
0051
75
05
JNZ
K5
;
JUMP
FOR
RANGE
CHECK
0053
80
26
00B4
R
F7
AND
KB_NMLCNTL,
NOT
CLI
CI<-ON
;
TURN
OFF
CLI
CK
0058
K5:
0058
3C
01
CMP
AL,l
;
RANGE
CHECK
005A
75
05
JNE
KYBD_END
;
NOT
I N
RANGE,
RETURN
005C
80
OE
00B4
R
08
OR
KB_NMLCNTL,CLICI<-ON
;
TURN
ON
KEYBOARD
CLICK
0061
KYBD_END:
0061
5B
POP
BX
;
RECOVER
REGISTER
ROM BIOS 2-67

Related product manuals