EasyManua.ls Logo

IBM XT 5160 - Page 199

IBM XT 5160
420 pages
Print Icon
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...
IBM
Personal
Computer
MACRO
Assembler
Version
2.00
KEYBRD
---
01/10/86
KEYBOARD ADAPTER
BIOS
1-7
01-10-86
PAGE
;------
NOT
IN
HOLD
STATE
AL,
AH
= SCAN CODE
(ALL
MAKES)
0200
K28:
NO-HOLD-STATE
0200
3C
58
CMP
AL,88
TEST
FOR
OUT-OF-RANGE
SCAN CODES
02DF
77
E9
..JA
K26
IGNORE
IF
OUT-OF-RANGE
02El
F6
C3
08
TEST
BL
,
AL
T_
SH
I
FT
ARE
WE
I N
AL
TERNA
TE
SH
I
FT?
02E4
74
OC
..JZ
K28A
..JUMP
I F NOT
AL
TERNA
TE
02E6
F6
C7
10
TEST
BH,KBX
IS
TH I S
THE
ENHANCED KEYBOARD?
02E9
74
OA
..JZ
K29
NO,
ALT
STATE
I S
REAL
02EB
F6
06
0018
R
04
TEST
"KB_FLAG
_"SYS_SHIFT
YES,
IS
SYSREQ KEY
DOWN?
02FO
74
03
..JZ
K29
NO,
ALT
STATE
IS
REAL
02F2
E9
03CC
R
K28A:
..JMP
K38
YES,
THIS
I S PHONY
AL
T
STATE
DUE TO PRESS I
NG
SYSREQ
;------
LOOK FOR TOP
ROW
OF
ALTERNATE
SHIFT
;
------
TRANSLATE
ALTERNATE
SH
I
FT
PSEUDO SCAN CODES
;
------
TEST
FOR
RESET
KEY SEQUENCE
(CTL
AL
T
DELl
10
NUMBERS
ON
KEYPAD
A-Z
TYPEWR I TER CHARS
AL
T-TOP-ROW
KEY
WITH
'1'
ON
I T
NOT ONE OF
INTERESTING
KEYS
I
SIT
I N THE REG I
ON
AL
T-FUNCT
I
ON
CONVERT PSEUDO SCAN CODE TO RANGE
GO
FILL
THE
BUFFER
AL
T-KEY-PAD
AL
T-I
NPUT-TABLE
LOOK FOR ENTRY US I
NG
KEYPAD
LOOK FOR MATCH
NO
AL
T
KEYPAD
I
S-THIS
ONE OF THE
NEW
KEYS?
YES,
..JUMP, NOT NUMPAD KEY
01
NOW
HAS ENTRY
VALUE
GET
THE CURRENT
BYTE
MUL
TI
PL
Y
BY
10
ADD
IN
THE
LATEST
ENTRY
STORE
IT
AWAY
THROW
AWAY
THAT
KEYSTROKE
NO-AL
T-KEYPAD
ZERO ANY PREV I OUS
ENTRY
I NTO
INPUT
DI,ES
ALREADY
POINTING
LOOK FOR MATCH I N
ALPHABET
MA
TCH
FOUND,
GO
FILL
THE
BUFFER
TEST-RESET
, ARE
WE
I N CONTROL
SH
I
FT
ALSO?
;
NO
RESET
;
SHIFT
STATE
I S
THERE,
TEST
KEY
;
NO_RESET,
IGNORE
AL,2
K37B
AL,13
K35
AH,118
SHORT
K37A
"AL
T
INPUT,
0
CX,26
SCASB
K37A
01
,OFFSET
K30
CX,
10
SCASB
K33
BH,LC
EO
K37C
-
01
,OFFSET
K30+1
AL,"ALT
INPUT
AH,IO
-
AH
AX,DI
"AL
T
INPUT,
AL
K26
-
BL,CTL
SHIFT
K31
-
AL,DEL
KEY
K31
-
MOV
MOV
REPNE
..JE
MOV
MOV
REPNE
..JNE
TEST
..JNZ
SUB
MOV
MOV
MUL
ADD
MOV
..JMP
CMP
..JB
CMP
..JA
ADD
..JMP
TEST
..JZ
CMP
..JNE
K31 :
CMP
AL,57
..JNE
K311
MOV
AL,
..JMP
K57
K311
:
CMP
AL,15
..JNE
K312
MOV
AX,OA500h
..JMP
K57
K312:
CMP
AL,74
..JE
K37B
CMP
AL,78
..JE
K37B
;
------
IN
ALTERNATE
SH
I
FT,
RESET
NOT FOUND
NO-RESET
TEST
FOR SPACE
KEY
NOT THERE
SET
SPACE CHAR
BUFFER_F
I
LL
TEST
FOR
TAB
KEY
NOT THERE
SET
SPEC I
AL
CODE FOR
AL
T-TAB
BUFFER_F
I
LL
TEST
FOR
KEYPAD
-
GO
PROCESS
TEST
FOR
KEYPAD
+
GO
PROCESS
K35:
AL
T-FUNCT
I
ON
CMP
AL,F"_M
IS
IT
Fll?
..JB
K35A
NO,
BRANCH
CMP
AL,FI2_M
IS
IT
F12?
..JA
K35A
NO,
BRANCH
ADD
AH,52
CONVERT TO PSEUDO SCAN CODE
..JMP
SHORT
K37A
GO
FILL
THE
BUFFER
K35A:
TEST
BH,LC_EO
DO
WE
HAVE
ONE OF
THE
NEW
KEYS?
..JZ
K37
NO,
..JUMP
CMP
AL,28
TEST
FOR
KEYPAD
ENTER
..JNE
K35B
NOT THERE
MOV
AX,OA600h
SPEC I
AL
CODE
..JMP
K57
BUFFER
FILL
K35B:
CMP
AL,83
TEST
FOR
DELETE
KEY
..JE
K37C
HANDLE
WITH
OTHER ED I T
KEYS
;
------
LOOK FOR SUPERSH I
FT
ENTRY
K33:
K32A:
K34:
;
------
CTL-AL
T-DEL
HAS BEEN
FOUND,
DO
1/0
CLEANUP
MOV
"RESET
FLAG,
1234H
SET
FLAG
FOR
RESET
FUNCT
I
ON
AND
WORD
PTR
"KB
FLAG
3,
KBX ,
CLEAR
ALL
FLAG
BI
TS
EXCEPT
KBX
..JMP
RESET
- - ;
..JUMP
TO
POWER
ON
0 I AGNOST I CS
;
------
AL
T-INPUT-TABLE
K30
LABEL
BYTE
DB
82,
79,
80
, 8 1 ,
75
DB
76
,
77
, 7 1 ,
72
,
73
;
------
SUPER-SH
1FT-TABLE
DB
16,
17,18,19,20,21
DB
22,23,24,25,30,31
DB
32,33,34,35,36,37
DB
38,44,45,46,47,48
DB
49,50
;
------
LOOK FOR KEY
PAD
ENTRY
K32:
K29:
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
02F5
561
02F5
F6
C3
04
562
02F8
74
37
563
02FA
3C
53
564
02FC
75
33
565
566
567
568
02FE
C7
06
0072
R
1234
569
0304
81
26
0096
R
0010
570
030A
E9
0000
E
571
572
573
0300
574
0300
52
4F
50
51
4B
575
0312
4C
40
47
48 49
576
577
031710
11
12 13
14
15
578
0310
16
17
18
19
IE
IF
579
0323
20
21
22 23
24
25
580
0329
26
2C
20
2E
2F
30
581
032F
3 I
32
582
583
584
585
0331
586
0331
3C
39
587
0333
75
05
588
0335
BO
20
589
0337
E9
0500
R
590
033A
591
033A
3C
OF
592
033C
75
06
593
033E
B8
A500
594
0341
E9
0500
R
595
0344
596
0344
3C
4A
597
0346
74
79
598
0348
3C
4E
599
034A
74
75
600
601
602
603
034C
604
034C
BF
0300
R
605
034F
B9
OOOA
606
0352
F21
AE
607
0354
75
18
608
0356
F6
C7
02
609
0359
75
6B
610
035B
81
EF
030E
R
61 1
035F
AO
0019
R
612
0362
B4
OA
613
0364
F6
E4
614
0366
03
C7
615
0368
A2
0019
R
616
036B
E9
02CA
R
617
618
619
620
036E
621
036E
C6
06
0019
R
00
622
0373
B9
001
A
623
0376
F21
AE
624
0378
74
42
625
626
627
628
037A
629
037A
3C
02
630
037C
72
43
631
037E
3C
00
632
0380
77
05
633
0382
80
C4
76
634
0385
EB
35
635
636
637
638
0387
639
0387
3C
57
640
0389
72
09
641
038B
3C
58
642
0380
77
05
643
038F
80
C4
34
644
0392
EB
28
645
646
0394
F6
C7
02
647
0397
74
18
648
0399
3C 1C
649
039B
75
06
650
0390
B8
A600
651
03AO
E9
0500
R
652
03A3
3C
53
653
03A5
74
1F
5-52 KEYBOARD
(01/10/86)

Table of Contents

Related product manuals