IBM AT 5170 Technical Reference page 304

Table of Contents

Advertisement

•••
343
IBM Peraonel Computer MACRO Assembler
Version 2.00
1-'
KY8D ----- 06110165
KEY80ARD 810S
06-10-85
344
0199
NOT LC HC:
LAST CHARACTER WAS NOT A HIDDEN CODE
345
0 I 99 80 FC EO
-
-
CMP
AH,HC
IS TH I S CHARACTER A HIDDEN CODE?
346
019C 75 06
JNE
NOT CUR
347
019E 80 OE 0096 R 03
OR
OK8=FLAG_3,LC_HC+KBX
SET LAST CHAR WAS A HIDDEN CODE
&
KBX
348
0lA3
EXIT;
349
0 I A3 E9 02EE R
J"P
K2.
THROW AWAY THIS CODE
350
351
0lA6
NOT CUR:
352
0lA6 80 FC 09
-
CMP
AH,FII_M
WASITFII?
353
0lA9 75 04
JNE
T FI2
HANDLE IF SO
354
OIAB BI
85
NOV
CL,FUNCII
SET BASE FUNCT I ON I I
355
OIAD 1;:8 07
J"P
SHORT DO_FN
356
OlAF
357
OlAF 60 FC DA
e"p
AH,FI2 M
WAS
IT F12?
358
0182 75 43
JNE
T SYS KEY
GO TEST FOR SYSTEM KEY
359
0184 81
66
NOV
CL,FUNCII + 1
SET BASE FUNCT I ON 12
360
0lB6
361
blB6 80 FC 07
eMP
AH,FII
B
I S TH I S A 8REAK CODE
362
0189 74 E8
JE
EXIT
-
IGNORE 8REAK CODES
363
018B 80 FC 08
eMP
AH,FI2 8
I S TH I S A BREAK CODE
364
OIBE 74 E3
JE
ExiT
-
I GNORE BREAK CODES
365
0 I CO F6 06 00 18 R 08
TEST
ARE WE
IN HOLD STATE?
366
0lC5 74 07
JZ
367
0lC7 80 26 0018 R F7
AND
OKB FLAG
I ,NOT HOLD STATE
; EXIT HOLD STATE
368
OICC E8 05
JMP
SHORT EXIT
- ;
IGNORE TH I S KEY
369
OICE
310
OICE 8A EI
MOV
AH,CL
371
372
0100 F6 06 0017 R 08
TEST
OKB FLAG,ALT SHIFT
ARE WE IN ALT
373
0105 74 05
JZ
T CTL
­
374
0 I 07 80 C4 06
ADO
AH,6
CNVT TO ALT FN 11-12
375
aiDA EB 16
JMP
SHORT SET_FN
376
OIDC
377
OIDC F6 06 0017 R 04
TEST
OKB FLAG, CTL SH I FT
ARE WE
IN CTRL
378
aiEl
74 05
JZ
T SHF
­
379
0lE3 80 C4 04
ADO
AH,4
CNVT TO CTRL FN 11-12
380
0lE6 EB OA
JMP
SHORT SET_FN
381
0lE8
382
0lE8 F6 06 0017 R 03
TEST
OKB FLAG,LEFT SHIFT+RIGHT SHIFT;
IS EITHER SHIFT ON?
383
OlEO 74 03
,JZ
SET-FN
-
­
384
01 EF 80 C4 02
ADD
AH,2
I CNVT TO SHIFT FN
11-12
385
0lF2
SET_FN:
386
0lF2 2A CO
SUB
AL,AL
FORCE PSEUDO SCAN CODE
~K~[67AG_I,HOLD_STATE
K.,
387
0lF4 E9 04BA R
JMP
PUT I T
I NTO BUFFER
3 ••
3 ••
; -----
TEST FOR SYSTEM KEY
3.0
391
0lF7
T SYS KEY:
392
0lF7 3C 54
-
-
CMP
AL, SYS KEY
IS IT THE SYSTEM KEY?
393
0lF9 75 3D
JNZ
K 16A
-
CONTINUE
IF NOT
3 ••
395
01 F8 F6 C4 80
TEST
AH,080H
CHECK
IF TH I S A BREAK CODE
396
OIFE 75 21
JNZ
K 16C
00 NOT TOUCH SYSTEM INDICATOR IF TRUE
3.7
398
0200 F6 06 00 18 R 04
TEST
OKB FLAG
I,SYS_SHIFT
SEE
IF IN SYSTEM KEY HELD DOWN
399
0205 75
17
JNZ
K 168
-
IF YES, DON'T PROCESS SYSTEM INDICATOR
.00
401
0207 80 OE 0018 R 04
OR
INDICATE SYSTEM KEY DEPRESSED
:~~E6~AG_I,SYS_SHIFT
402
020C 80 20
MOV
END OF
I NTERRUPT COMMAND
403
020E E6 20
OUT
INTAOO,AL
SEND COMMAND TO I NTERRUPT CONTROL PORT
.0.
I NTERRUPT-RETURN-NO-EO I
405
0210 80 AE
MOV
AL,ENA KBD
I NSURE KEYBOARD IS ENA8LED
406
0212 E8 0595 R
CALL
SHIP IT
EXECUTE ENABLE
407
0215 B8 8500
NOV
AX, 08500H
FUNCTION VALUE FOR MAKE OF SYSTEM KEY
408
OZ 18 FB
STI
MAKE SURE
I NTERRUPTS ENABLED
409
0219 CD 15
INT
15H
USER
INTERRUPT
410
021B E9 02F8 R
JMP
K27A
END PROCESS I NG
411
021E
K 16B:
412
021E E9 02EE R
JMP
K2.
I GNORE SYSTEM KEY
413
0221
KI6C:
414
0221
80 26 0018 R FB
AND
toK8 FLAG I ,NOT SYS_SHIFT· TURN OFF SH I FT KEY HELD DOWN
4 I 5
0226 80 20
MOV
AL,EOI
-
END OF
I NTERRUPT COMMAND
416
0228 E6 20
OUT
INTAOO,AL
SEND COMMAND TO I NTERRUPT CONTROL PORT
.17
I NTERRUPT-RETURN-NO-EO I
4 I 8
022A 80 AE
MOV
AL,ENA K8D
INSURE KEY80ARD I S ENABLED
419
022C E8 0595 R
CALL
SHIP IT
EXECUTE ENABLE
420
022F 88 850
I
MOV
AX,08501H
FUNCTION VALUE FOR BREAK OF SYSTEM KEY
421
0232 FB
STI
MAKE SURE
INTERRUPTS ENA8LED
422
0233 CO 15
INT
15H
USER
INTERRUPT
423
0235 E9 02F8 R
J"P
K27A
IGNORE SYSTEM KEY
424
0238
KI6A:
425
0238 BF 0000 E
MOV
01 ,OFFSET K6
SHIFT KEY TABLE
426
023B 89 0000 E
MOV
CX, OFFSET K6L
LENGTH
427
023E
F21
AE
REPNE
SCASB
LOOK THROUGH THE TABLE FOR A MATCH
428
0240 8A Ci
MOV
AL,AH
RECOVER SCAN CODE
429
0242 74 03
JE
KI7
,JUMP IF MATCH FOUND
430
0244 E9 02DA R
JMP
K25
IF NO MATCH, THEN SHIFT NOT FOUND
431
.32
SH I FT KEY FOUND
433
0247
434
0247 81
EF 0001 E
SUB
01 ,OFFSET K6+1
AD,JUST PTR TO SCAN CODE MATCH
435
024B 2E; 8A A5 0000 E
MOV
AH,CS:K7[DI]
GET MASK INTO AH
436
0250 A8 80
TEST
AL,80H
TEST FOR BREAK KEY
437
0252 74 02
JZ
KI7C
BREAK SH I FT FOUND
438
0254 EB 50
JMP
SHORT K23
CONT INUE
­
.3.
440
DE TERM I NE SET OR TOGGLE
441
0256
442
0256 80 FC
10
eMp
AH, SCROLL SH I FT
443
0259 73 07
JAE
KI8
-
I F SCROLL SH I FT OR
AB~VE,
TOGGLE KEY
••4
•• 5
;-----
PLAIN SHIFT KEY,
SET SHIFT ON
447
0258 08 26 0017 R
OR
OKS FLAG, AH
TURN ON SHIFT BIT
448
025F E9 02EE R
JMP
K26-
I NTERRUPT_RETURN
4 ••
.450
;-----
TOGGLED SHIFT KEY,
TEST FOR
1ST MAKE OR NOT
451
452
0262
K 18:
SHIFT-TOGGLE
453
0262 F6 06 00
I
7 R 04
TEST
CIIKB FLAG, CTL SH I FT
CHECK CTL SHIFT STATE
-
454
0267 75 71
JNZ
K25-
,JUMP IF CTL STATE
455
456
0269 3C 52
eMP
I CHECK FOR
I NSERT KEY
5-132
KYBD

Advertisement

Table of Contents
loading

Table of Contents