IBM AT 5170 Technical Reference page 302

Table of Contents

Advertisement

IBM Persona I Computer MACRO Asselllb ler
Vera
i
on 2.00
1-2
KY80 ----- 06/10(65
KEY80ARD 8105
06-10-85
115001290
116
0013 F8
117007458
POPF
RESTORE FLAGS
ST 1
I NTERRUPTS BACK ON
POP
8X
RECOVER REG I STER
POP
OS
RECOVER SEGMENT
RET
2
THROW AWAY FLAGS
;----­
SHIFT STATUS
"OV
AL.OKB FLAG
GET THE SHIFT STATUS FLAGS
POP
8X
-
RECOVER REG I STER
POP
05
RECOVER REG
I
STERS
IRET
RETURN TO CALLER
KEYBOARD_10_I
ENDP
I NCREMENT
A
BUFFER PO [NTER
K,
PROC
NEAR
INC
8X
I
MOVE TO NEXT WORD IN LIST
INC
8X
C"P
BX, ClBUFFER_END
A T END OF BUFFER?
~NE
K5
NO, CONT I NUE
"OV
BX,I!IIBUFFER_START
YES, RESET TO BUFFER BEG
I
NN I NG
K5:
RET
K.
ENDP
;--- HARDWARE
INT
09 H --
I
IRQ
LEVEL
I
I
---------------------------------- ­
KEYBOARD I NTERRUPT ROUT I NE
KB
tNT
I PROC
FAR
-
-
STI
; ENABLE
INTERRUPTS
PUSH
BP
PUSH
A.X
PUSH
BX
PUSH
CX
PUSH
OX
PUSH
S I
PUSH
0 I
PUSH
OS
PUSH
ES
CLO
; FORWARD 0 I RECTION
CALL
DDS
;
SET UP ADDRESSING
;-----
WAIT FOR KEYBOARD DISABLE COMMAND TO BE ACCEPTED
"OV
AL,DIS KBD
o
I SABLE THE KEYBOARD COMMAND
CALL
SHIP_IT
EXECUTE
0
I SABLE
eLi
o
I SABLE
INTERRUPTS
SU8
CX,CX
SET MAXIMUM TIMEOUT
KB_INT_O:~
AL,STATUS PORT
READ ADAPTER STATUS
TEST
AL, I NPT BUF FULL
CHECK
INPUT 8UFFER FULL STATUS 81T
LOOPNZ
KB_INT_OI
-
WA I T FOR COMMAND TO BE ACCEPTED
;--
READ CHARACTER FROM KEYBOARD INTERFACE
IN
AL,PORT_A
;
READ IN THE CHARACTER
SYSTEM HOOK
INT 15H -
FUNCTION 4FH
ION HARDWARE INTERRUPT LEVEL 9Hf
"OV
AH,04FH
SYSTEM iNTERCEPT - KEY CODE FUNCTION
STe
SET CY"
I
(IN CASE OF
I RET I
INT
15H
CASSETTE CALL
I AL)" KEY SCAN CODE
RETURNS CY"
I
FOR
INVALID FUNCTJON
~C
INT 02
CONTINUE
IF CARRY FLAG SET
I
(All =CODE)
"8
-
­
~"P
K2.
EX I T IF SYSTEM HANOLED SCAN CODE
EXIT HANDLES HARDWARE EOI
AND ENABLE
; -----
CHECK FOR A RESENO COMMAND TO KEYBOARD
KB~INT
02:
I
~
AL I
=
SCAN COOE
ST I
;
ENABLE
INTERRUPTS AGAIN
C"P
AL, KB RESEND
I
I S THE
INPUT
A
RESEND
~E
KB_INT_ 4
I
GO IF RESEND
1- - - - -
CHECK FOR RESPONSE TO A COMMAND TO KEYBOARD
C"P
AL,KB ACK
I
I S THE
I
NPUT AN ACKNOWLEDGE
"NZ
KB_'NT_2
;GOIFNOT
A COMMAND TO THE KEYBOARD WAS
ISSUED
eLI
o
I SABLE
INTERRUPTS
OR
,
INDICATE ACK RECEIVED
""P
; RETURN IF NOT
lACK RETURNED FOR DATA)
; -----
RESEND THE LAST BYTE
KB INT 4:
-
-
CLI
D I SABLE
INTERRUPTS
OR
....KB FLAG
2, KB FE
I NO I CA TE RESEND RECE I VEO
-
K26-
-
RETURN
IF NOT
(ACK RETURNED FOR DATA)
""P
KB_INT_2:
;-----
UPDATE MODE
INDICATORS
IF CHANGE
IN STATE
PUSH
AX
SAVE DATA
IN
CALL
MAKE LED
GO GET MODE
I
NO
I
CA TOR OA T
A
BYTE
"OV
BL,PKB FLAG 2
GET PREV 10US BITS
XOR
BL,AL -
-
SEE I F ANY
0
I FFERENT
AND
BL,KB LEOS
I SOL ATE
I NO I CATOR 81 TS
"Z
UPO
-
IF NO CHANGE BYPASS UPDATE
CALL
SND LED
GO TURN ON MODE
I
NO I CATOR S
UPOI
POP
AX -
RESTORE DATA
IN
"OV
AH,AL
SAVE SCAN CODE IN AH ALSO
TEST FOR OVERRUN SCAN CODE FRON KEYBOARD
118
I 19
120
121
122
123
124
125
126
127
128
12'
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
141
148
149
150
151
!
52
153
!
54
155
156
151
158
159
160
,.,
'.2 '.3
164
165
166
167
168
169
170
111
112
113
114
175
116
111
118
119
180
181
182
183
18'
185
186
181
188
18.
190
191
192
193
"4
"5
"6
197
198
I.'
200
201
202
203
204
205
20.
201
208
209
210
211
212
213
214
215
21.
217
218
219
220
221
222
22.
224
225
226
227
228
0015
0076
0079
0079
001C
0070
007E
007F
001F
001F
0080
0081
0085
0087
0088
0088
008C
008C
008C
0080
OOBE
008F
0090
0091
0092
0093
0094
0095
0096
0097
0091.
009C
009F
OOAO
00A2
00A2
001.4
00A6
00A8
OOAA
OOAC
001.0
OOAF
0081
0084
0084
00B5
0081
0089
00B8
OOBO
OOBE
00C3
00C6
00C6
OOCl
OOCC
OOCF
OOCF
0000
0003
0007
0009
DOOe
OOOE
00E1
00E2
IF
CA
AO
58
IF
CF
43
43
38
75
88
C3
Fe
55
50
53
51
52
56
57
IE
06
FC
E8
80
E8
FA
28
E4
A8
EO
E4
84
F9
CD
12
E9
FB
3C
74
3C
75
FA
80
E9
FA
80
E9
50
E8
81.
32
80
14
E8
58
8A
0002
0017 R
IE 0082 R
04
IE 0080 R
0000 E
AD
0595 R
C9
64
02
FA
60
4F
15
03
02EE R
FE
00
FA
12
DE 0097 RIO
02EE R
OE 0097 R 20
02EE R
0587 R
IE 0097 R
08
E3 07
03
0536 R
EO
5-130
KYBD

Advertisement

Table of Contents
loading

Table of Contents