IBM AT 5170 Technical Reference page 305

Table of Contents

Advertisement

-
-
ISM Personal
Computer MACRO Assembler
VerSion 2.00
1-5
KY8D - - - - -
06/10/85
KEY80ARO 810S
06-10-85
451
0268 15 22
JNZ
K22
JUt.4P
I F NOT
I NSERT KEY
458
0260 F6 06 00 I 7 R 08
TEST
iIIKB FLAG,
ALT SHIFT
CHECK FOR AL TERNA TE SH I FT
459
0272
75 66
JNZ
K25
JUt.4P
IF ALTERNATE SHIFT
460
46 1
0274 F6 06 0017 R 20
TEST
iIIKS FLAG,
NUM STATE
CHECK FOR BASE STATE
462
0279
15
00
JNZ
K21
;
JUt.4P
IF NUM LOCK
I S ON
463
0278 F6 06 0017 R 03
TEST
iIIKB FLAG,
LEFT SH I FT + R
r
GHT SH I FT
464
0280
74 00
JZ
K22-
-
JUt.4P
IF BASE STATE
465
466
0282
K20:
;
NUt.4ER I C ZERO,
NOT
1
NSERT KEY
461
0282 B8
5230
MOV
AX,
5230H
;
PUT OUT AN ASC II
ZERO
468
0285 E9
048A R
JMP
K51
;
BUFFER F[LL
469
0288
K21:
;
t.4IGHT BE NUMERIC
470
0288 F6 06 00 I 7 R 03
TEST
iIIKS FLAG,
LEFT SHJFT+ RIGHT SHIFT
47 1
0280 14 F3
JZ
K20-
-
JUt.4P NUMERIC,
NOT
INSERT
472
473
028F
K22:
SHIFT TOGGLE KEY HIT;
PROCESS
IT
474
028F 84 26 0018 R
TEST
AH, iIIKS FLAG
I
I S KEY ALREADY DEPRESSED
475
0293
14 02
JZ
K22AO -
-
GO
IF NOT
476
0295 E8 51
JMP
SHORT K26
JUMP
I F KEY ALREADY DEPRESSED
477
0291
K22AO:
478
0291 08 26 0018 R
OR
ij)KB FLAG
I, AH
INDICATE THAT THE KEY
[S DEPRESSED
479
029B 30 26 0011 R
XOR
\!IIKB-FLAG~AH
TOGGLE THE SHIFT STATE
480
481
TOGGLE LEO
I F CAPS OR NUM KEY DEPRESSED
482
483
029F F6 C4
10
TEST
AH,CAPS SHIFT+NUt.4 SHIFT+SCROLL SHIFT;
SHIFT TOGGLE?
484
02A2 14 05
JZ
K22B
-
-
;
GO
I
F
NOT
485
486
02A4 50
PUSH
AX
SAVE SCAN CODE
AND SHIFT t.4ASK
487
02A5 E8 0536 R
CALL
SND LED
GO TURN MODE
INDICATORS ON
488
02A8 58
POP
AX -
RESTORE SCAN CODE
489
02A9
K22B:
490
02A9 3C 52
eMP
AL,INS KEY
TEST FOR
1
ST t.4AKE OF
I NSERT KEY
491
02AB 15 41
JNE
K26
-
JUMP
IF NOT
INSERT KEY
492
02AD 88 5200
MOV
AX, INS KEY·H
SET SCAN CODE
INTO AH,
0
INTO AL
493
0280 E9 048A R
JMP
K51
-
PUT
I NTO OUTPUT BUFFER
494
495
BREAK SHIFT FOUND
496
497
0283
K23:
BREAK -SH 1FT-FOUND
498
0283 80 FC
eMP
AH, SCROLL SH I FT
IS TH I S A TOGGLE KEY
499
0286 13
I A
JAE
K24
YES,
HANDLE BREAK TOGGLE
500
0288 F6 04
NOT
AH
I NVERT MASK
50 1
028A 20 26 0011 R
AND
OK8 _FLAG,AH
TURN OFF SHIFT BIT
502
028E 3C 88
eMP
AL, AL T KEY+80H
IS THIS ALTERNATE SHIFT RELEASE
503
02CO
15 2C
JNE
K26
1
NTERRUPT _RETURN
-
504
505
AL TERNA TE SH I FT KEY RELEASED,
GET THE
V ALUE
I NTO BUFFER
506
5"
5"
507
02C2
AO
0019 R
MOV
AL,'l>ALT_INPUT
508
02C5 84 00
MOV
AH,O
SCAN CODE OF 0
509
02C7 88 26 0019 R
MOV
iIIAL T
INPUT, AH
ZERO OUT THE FIELD
02C8 3C 00
eMP
AL,O
WAS THE
I NPUT=O
5"
02CO
14
IF
JE
K26
I NTERRUPT RETURN
02CF E9 0493 R
JMP
K58
IT WASN' T-;- SO PUT
I N BUFFER
"3
"6
0202
K24:
BREAK-TOGGLE
" 5
0202 F6 04
NOT
AH
I NVERT MASK
0204 20 26 0018 R
AND
OK8 FLAG _I,AH
INDICATE NO LONGER DEPRESSED
5"
0208 E8
14
JMP
SHORT K26
INTERRUPT_RETURN
"4
"8
TEST FOR HOLD STATE
520
521
020A
K25:
NO-SHIFT-FOUND
522
02DA 3C 80
eMP
AL,80H
TEST FOR BREAK KEY
523
020C 73
10
JAE
K26
NOTHING FOR BREAK CHARS FROM HERE ON
524
020E F6 06 0018 R 08
TEST
OK8 FLAG
I ,HOLD STATE
ARE WE
IN HOLD STATE
525
02E3 74
IE
JZ
K28
BRANCH AROUND TEST
I F NOT
526
02E5 3C 45
eMP
AL, NUM_KEY
527
02E7
14 05
JE
K26
CAN'T END HOLD ON NUM LOCK
528
02E9 80 26 0018 R F1
AND
OKB_FLAG_I ,NOT HOLD_STATJ
:
TURN OFF THE HOLD STATE BIT
"9
529
530
02EE
K26:
INTERRUPT-RETURN
531
02EE FA
eLi
TURN OFF
INTERRUPTS
532
02EF 80 20
MDV
AL,EDI
END OF
INTERRUPT COt.4t.4AND
533
02FI
E6 20
OUT
INTAOO ,AL
SEND COt.4MAND TO
I NTERRUPT CONTROL PORT
534
02F3
K21:
I NTERRUPT-RETURN-NO-EO I
535
02F3 BO AE
MOV
AL ,ENA K8D
I NSURE KEYBOARD
I S ENABLED
530
02F5 E8 0595 R
CALL
SHIP
IT
EXECUTE ENABLE
537
02F8
K21A:
-
538
02F8 FA
eLi
D I SABLE
INTERRUPTS
539
02F9 01
POP
E5
RESTORE REGl STERS
540
02FA
IF
POP
as
541
02FB 5F
pop
01
542
02FC 5E
POP
51
543
02FO 5A
PDP
OX
544
02FE 59
PDP
ex
545
02FF 5B
PDP
8X
546
0300
58
PDP
AX
547
030 I
50
POP
8P
548
0302 CF
IRET
RETURN,
INTERRUPTS ON WITH FLAG CHANGE
549
550
NOT
IN
HOLD STATE
55 1
552
K28;
NO-HOLD-STATE
553
F6
0017 R 08
TEST
OK8 FLAG, AL T SHIFT
ARE WE
IN ALTERNATE SHIFT
554
75
JNZ
K29
JUt.4P
IF AL TERNA TE SH I FT
555
JMP
K38
JUMP
I F NOT AL TERNA TE
556
557
TEST FOR CONTROL KEY
AND RESET KEY SEQUENCE
I
CTL AL T DEL
I
558
559
0300
K29:
TEST-RESET
560
0300 F6 06 0017 R 04
TEST
OKB FLAG,CTL SHIFT
ARE WE
I N CONTROL SH I FT ALSO
561
0312
14 39
JZ
K31-
-
NO RESET
562
0314 3C 45
eMP
AL,NUM KEY
CHECK FOR
INVALID NUt.4 LOCK KEY
563
0316
74 06
JE
K26
-
THROW AWAY
IF
IALT-CTLI +NUt.4 LOCK
564
0318 3C 46
eMP
AL, SCROLL KEY
CHECK FOR
INVALID SCROLL LOCK KEY
565
031 A 74 02
JE
K26
-
THROW AWAY
IF
(ALT-CTLI+SCROLL LOCK
566
031C 3C 53
eMP
AL, DEL KEY
CTL-ALT STATE,
TEST FOR DELETE-KEY
567
031E
15 20
JNE
K31
-
NO_RESET
568
569
CTL-AL T-DEL HAS BEEN FOUND
570
KYBD
5-133

Advertisement

Table of Contents
loading

Table of Contents