IBM AT 5170 Technical Reference page 303

Table of Contents

Advertisement

IBM Personal
Computer MACRO Assembler
Veroslon 2.00
1-3
KYBD
06/10/85
KEYBOARD BIOS
06-10 85
229
230
00E4 3C FF
CMP
AL, KB OVER RUN
:
IS TH IS AN OVERRUN CHAR
231
00E6 15 00
oN'
K 16
-
-
;
NO,
TEST FOR SHIFT KEY
232
00E8 E9 04EB R
oMP
K62
:
BUFFER_FULL_BEEP
233
234
THIS CODE CONTAINS THE K8X SUPPORT FOR
INT 09H
235
236
;
EQUATES
F"
-
2 "
237
0009
M
EOU
FUNC
MAKE
238
0001
F"
8
EOU
2 "
FUNC
"
"
BREAK
239
OODA
FI2 M
EOU
FUNC
12 MAKE
-
" 8
" 6
240
0008
FI2-B
EOU
FUNC
12 BREAK
241
0056
K
I
02 M
EOU
86
KEY
102 MAKE
" 4
242
0006
K I 02::::B
EOU
KEY
102 BREAK
243
244
0052
INS M
EOU
82
INSERT KEY MAKE
245
0053
DEL-M
EOU
83
DELETE KEY MAKE
246
004B
LEFT M
EOU
75
CURSOR LEFT MAKE
241
0040
RIGHT M EQU
77
CUR SOR RIGHT MAKE
248
0048
UP M
EOU
72
CURSOR UP MAKE
-
249
0050
DN-M
EOU
80
CURSOR DOWN MAKE
250
0049
PGUP M
EOU
73
PG UP MAKE
-
251
0051
PGON M
EOU
81
PG ON MAKE
252
0041
HOME
-
M
EOU
71
HOME MAKE
253
004F
END
EOU
79
END MAKE
254
-
"
255
0085
FUNCI!
EOU
133
FUNCT I ON
"
KEY
256
OOEO
HC
EOU
224
HIDDEN CODE
257
258
TA8LE OF KEYPAD CURSOR
&.
CONTROL KEYS
259
260
OOEB 48 50 52 53 48 40
DB
UP M,DN M,INS M,DEL M,LEFT M,RIGHT M
261
OOFI
49 51
41 4F
08
PGOP M,PGDN M-;-HOME M.ENO M-
­
262
:: OOOA
EQU
S-K_TABI
-
-
­
263
264
00F5
K16:
265
00F5 24 1F
AND
Al,07FH
REMOVE BREAK BI T
266
00F1 OE
PUSH
CS
267
00F8 01
PDP
ES
ESTABLISH ADDRESS OF TA8LES
268
269
OOF9 F6 06 0096 R CO
TEST
tltKB FLAG 3, RD ID+LC AB
ARE WE DOING A READ ID?
210
OOFE
14
33
NOT-ID
-
CONT I NUE I F NOT
0'
271
010019
II
oN5
TST-ID
2
I S THE RD
10 FLAG ON?
272
0102 80 FC A8
CMP
AH,
To I
IS THIS THE 1ST 10 CHARACTER7
213
0105 15 05
oNE
RST RD 10
274
0107 80 OE 0096
R
40
DR
ilK8-FLAG 3,LC A8
INDICATE 1ST
10 WAS OK
275
01 OC
RST_RD_IO:
276
0 I OC 80 26 0096 R 7F
AND
ilK8 FLAG 3, NOT RD
RESET THE READ 10 FLAG
271
0 I I I
E8 48
oMP
SHORT DO::::EXT
­
278
279
0113
TST
JD 2:
280
0113 80
26 0096
R
BF
~K8
FLAG 3, NOT LC AB
RESET FLAG
-
-
AND
281
0 118 80 FC 41
CMP
AH,ID 2
-
IS THIS THE 2ND
JD CHARACTER7
282
0 118 75 41
oNE
DO_EXT
LEAVE
IF NOT
283
284
A READ
[0 SAID THAT
IT WAS KBX
285
286
0110 80 aE 0096 R 01
DR
ilK8 FLAG 3, KBX
INDICATE K8X WAS FOUND
287
0122 F6 06 0096 R 20
TEST
(lKB-FLAG-3, SET NUM LK
SHOULD WE SET NUM LOCK?
288
0121 74 35
or
00 EXT
-
EXIT
IF NOT
289
0129 80 OE 00
I
7 R 20
OR
\ilKS FLAG,NUM STATE
FORCE NUM LOCK ON
290
012E E8 0536
R
CAll
SNO-LED
GO SET THE NUM LOCK
INDICATOR
291
0131
EB 70
JMP
SHORT EX I T
292
0133
293
0133 F6 06 0096 R 02
TEST
PKS FLAG 3, LC HC
WAS THE LAST CHARACTER A HIDDEN CODE
294
0138
14
5F
NOT-LC He
-
.JUMP
IF NOT
295
J'
296
THE LAST CHARACTER WAS A HIDDEN CODE
297
298
013A 80
26 0096
R
FO
AND
IlIKB FLAG 3,NOT lC HC
RESET LAST CHAR HIDDEN CODE FLAG
299
013F 3C 52
CMP
AL, INS M
WAS
IT THE
INSERT KEY?
300
0141
14 05
JE
NOT
I
301
0143 F6 C4 80
TEST
AH,80H
IS TH I S A BREAK CODE
302
0146 75 5B
IN'
EXIT
IGNORE BREAK ON REST OF THESE KEYS
303
0148
304
0148 8F 00E8 R
MOV
01 ,OFFSET K
TEST FOR ONE OF THE KEYPAD CURSOR FUNC
305
0148 89 OOOA
MOV
CX,L TA81
306
014E F2/
AE
REPNE
SCASB
SCAN FOR THE KEY
307
0150 15 54
JNE
NOT CUR
GO ON
I F NOT FOUND
308
0152 F6 06 00 I 8 R 08
TEST
~KB-FLAG
I ,HOLD STATE
ARE WE
IN HOLD STATE?
309
0157 74 07
JZ
N
HLD
310
015980 26 0018 R F7
AND
\IIK8~FLAG_1
,NOT HOLD_STATE
; EXIT HOLD STATE
311
015E
312
015E E8 43
SHORT EX IT
IGNORE THIS KEY
313
0160
314
0160 F6 06 0017
R
08
TEST
(lKB FLAG,ALT SHIFT
IS ALT DOWN?
315
0165 74 OE
JZ
NOT-AL T
316
0167 F6 06 0017
R
04
TEST
ClK8-FLAG,CTL SHIFT
HOW ABOUT CTRl7
317
016C 74 35
JZ
EXIT
I GNORE ALL
IF ONLY AL T DOWN
318
0 I 6E 3C 53
CMP
AL,DEL M
WAS
I T THE DELETE KEn
319
0170 15 31
JNE
EX IT
-
IGNORE J F NOT
320
0172 E9 0300 R
JMP
K29
GO DO THE CTl,
AL T, DEL RESET
32 I
322
0175
NOT ALT:
323
0175 F6 06 0017 R 04
TEST
~KB
FLAG,CTL SHIFT
J
S CTl DOWN7
324
017A 75
15
oN'
CTL -ON
SPECIAL CASE
IF SO
325
017C 3C 52
CMP
AL,INS M
IS THIS THE
INSERT KEY?
326
0' 7E 15 OE
oNE
N_INS
327
328
SPECIAL HANDL I NG FOR
INSERT KEY
329
330
0180 8A C4
MDV
AL,AH
RECOVER SCAN CODE
33 I
0182 84 80
MDV
AH,INS_SHIFT
AH :: MASK FOR
INSERT
332
0184 A8 80
TEST
Al,80H
WAS THIS A BREAK CODE?
333
0186 75 03
8 C
oN'
334
0188 E9 028F
R
oMP
K22
GO HANDLE
INSERT SH I FT
335
0188
B_C:
336
0188 E9 0202 R
HANDLE BREAK
337
o 18E
N [NS:
338
o 18E E9 0453
R
HANDLE
&.
IGNORE NUMLOCK
-
339
0191
CTl_ON:
340
0191
80 F9 05
CMP
CL,5
WA SIT
INS,
DEL, UP OR DOWN 7
341
0194
77 00
oA
EXIT
IGNORE
IF SO
342
0196 E9 040 I
R
oMP
K42
GO HANDLE CTRL CASE
KYBD
5-131

Advertisement

Table of Contents
loading

Table of Contents