EasyManua.ls Logo

IBM XT 5160 - Page 197

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
110/86
KEYBOARD ADAPTER B I
OS
1-5
01-10-86
; - - - - - -
SH
I
FT
MAKE
FOUND,
DETERM I NE
SET
OR
TOGGLE
PAGE
;
------
TEST
FOR SYSTEM KEY
ADJUST
PTR
TO SCAN CODE MTCH
GET
MASK
INTO
AH
SET
UP COUNT FOR
FLAG
SH
I
FTS
TEST
FOR KEY BREAK
JUMP I F
BREAK
I F SCROLL
SH
I
FT
OR
ABOVE,
TOGGLE KEY
BREAK-SH
1FT-FOUND
I S TH I S A TOGGLE
KEY?
INVERT
MASK
YES,
HANDLE
BREAK
TOGGLE
TURN
OFF
SHIFT
BIT
I S TH I S
AL
T
OR
CTL?
PUT
STATE
FLAGS
IN
BL
SH
I
FT
KEY
TABLE
LENGTH
LOOK THROUGH
THE
TABLE
FOR A MATCH
RECOVER SCAN CODE
JUMP
IF
MATCH FOUND
I F
NO
MATCH,
THEN
SH
I
FT
NOT FOUND
JUMP
IF
KEY
ALREADY
DEPRESSED
I
NO
I
CATE
THAT
THE KEY I S
DEPRESSED
TOGGLE
THE
SHIFT
STATE
TEST
FOR 1ST MAKE OF I NSERT
KEY
JUMP I F NOT I
NSERT
KEY
SCAN CODE I N BOTH
HALVES
OF AX
FLAGS
UPDATED,
PROC.
FOR
BUFFER
TURN
ON
SHIFT
BIT
I
SIT
AL
T
OR
CTRL?
YES,
MORE
FLAGS
TO
SET
NO,
I
NTERRUPT
RETURN
IS
TH I S ONE
OF-THE
NEW
KEYS?
NO,
JUMP
SET
BITS
FOR
RIGHT
CTRL,
AL
T
I
NTERRUPT
RETURN
MOVE
FLAG-B
I
TS
TWO
POS I T
IONS
SET
BITS
FOR
LEFT
CTRL,
AL
T
INTERRUPT_RETURN
I
SIT
THE SYSTEM
KEY?
CONT I NUE I F NOT
CHECK
IF
TH I S A BREAK CODE
DONT TOUCH SYSTEM I
NO
I CATOR I F TRUE
SEE I
FIN
SYSTEM
KEY
HELD
DOWN
IF
YES,
DONT PROCESS SYSTEM
INDICATOR
INDICATE
SYSTEM
KEY
DEPRESSED
END OF I
NTERRUPT
COMMAND
SEND COMMAND TO I
NTERRUPT
CONTROL PORT
I
NTERRUPT-RETURN-NO-EO
I
FUNCT
I
ON
VALUE
FOR MAKE OF SYSTEM KEY
MAKE SURE I
NTERRUPTS
ENABLED
USER
INTERRUPT
END PROCESS I
NG
I GNORE SYSTEM
KEY
TURN
OFF
SH
I
FT
KEY
HELD
DOWN
END OF I
NTERRUPT
COMMAND
SEND COMMAND TO I
NTERRUPT
CONTROL PORT
INTERRUPT
-RETURN-NO-EO
I
FUNCTION
VALUE
FOR BREAK OF SYSTEM KEY
MAKE SURE I
NTERRUPTS
ENABLED
USER
INTERRUPT
I GNORE SYSTEM KEY
;
PUT
SCAN CODE BACK
INTO
AH
; NUMERAL
"0",
STNDRD.
PROCESSING
01,
OFFSET
K6+
I
AH,CS:K1[DI]
CL,2
AL,80H
K
l1C
K23
t'KB
FLAG,AH
AH
,CTL
SH
I
FT
+
AL
T
SH
I
FT
KI1D
- -
K26
BH,LC
EO
Kl1E
-
t'KB
FLAG
3,
AH
K26-
-
AH,CL
t'KB
FLAG
1,
AH
K26-
-
BL,t'KB
FLAG
01
,OFFSET
K6
CX
,K6L
SCASB
AL,AH
K
11
K25
AH,
SCROLL
SH
I
FT
K18
-
AH,
SCROLL
SH
I
FT
AH
-
K24
t'KB
FLAG,AH
AH,NOT
CTL_SHIFT
AH,AL
K25
AH,
t'KB
FLAG
1
K22A
- -
K26
t'KB
FLAG
1,
AH
t'KB-FLAG-;-
AH
AL,
INS
KEY
K26
-
AH,AL
K28
BL,LEFT
SHIFT+RIGHT
SHIFT
;
MIGHT
BE
NUMERIC
K20
-
-;
IS
NUMERIC,
STD.
PROC.
SH
I
FT
TOGGLE
KEY
HIT;
PROCESS
IT
I S KEY
ALREADY
DEPRESSED
SUB
MOV
MOV
TEST
JZ
JMP
MOV
MOV
MOV
REPNE
MOV
JE
JMP
CMP
NOT
JAE
AND
CMP
;------
TEST
FOR
SHIFT
KEYS
;
------
SH
I
FT
KEY FOUND
;------
TOGGLED
SHIFT
KEY,
TEST
FOR
1ST
MAKE
OR
NOT
;
SH
I
FT
- TOGGLE
BL,
CTL
SH
I
FT
; CHECK
CTL
SH
I
FT
STATE
KI8A
- ; JUMP
IF
NOT
CTL
STATE
K25
; JUMP
IF
CTL
STATE
AL,
I NS KEY ; CHECK FOR I
NSERT
KEY
K22
- ; JUMP I F NOT I
NSERT
KEY
BL
,
AL
T
SH
I
FT
; CHECK FOR
ALTERNATE
SH
I
FT
K 1
8B
-
¢;
JUMP I F NOT
AL
TERNA
TE
SH
I
FT
K25
; JUMP
IF
ALTERNATE
SHIFT
BH
,LC
EO
; I S TH I S
THE
NEW
I
NSERT
KEY?
K22
- ;
YES,
THIS
ONE'S
NEVER A
"0"
BL,NUM_STATE
; CHECK FOR
BASE
STATE
K2
1 ; JUMP
IF
NUM
LOCK I S
ON
BL,LEFT
SHIFT+RIGHT
SHIFT
;
TEST
FOR
SHIFT
STATE
K22
-
-;
JUMP
IF
BASE
STATE
;
------
PLA
I N
SH
I
FT
KEY,
SET
SH
I
FT
ON
K
18:
TEST
JZ
JMP
K
18A:
CMP
JNE
TEST
JZ
JMP
K
18B:
TEST
JNZ
K
19:
TEST
JNZ
TEST
JZ
K20:
MOV
JMP
K21
:
TEST
JZ
Kl1:
K
l1C:
CMP
JAE
K
16A:
K22:
TEST
JZ
JMP
K22A:
OR
XOR
CMP
JNE
MOV
JMP
OR
TEST
JNZ
JMP
K
110:
TEST
JZ
OR
JMP
K
l1E:
SHR
OR
JMP
;
------
BREAK
SH
I
FT
FOUND
K23:
o19C
T_SYS_KEY:
o19C 3C
54
CMP
AL,SYS_KEY
019E
15
33
JNE
K
16A
01
AO
F6
C4
80
TEST
AH,080H
o
~A3
15
lC
JNZ
K
16C
01A5
F6
06
0018
R
04
TEST
t'KB
FLAG
-
1
,SYS_SH
I
FT
01AA
15
12
JNZ
K168
01
AC
80
OE
0018
R
04
OR
t'KB
FLAG
_I,SYS_SHIFT
01Bl
BO
20
MOV
AL,EOI
o
lB3
E6
20
OUT
020H,AL
01
B5 B8
8500
MOV
AX,08500H
o
lB8
FB
STI
o
lB9
CD
15
INT
15H
01
BB
E9
0204
R
JMP
K21
o
lBE
E9
02CA
R
K
16B:
JMP
K26
01Cl
80
26
0018
R
FB
K
16C:
AND
t'KB
FLAG
I,NOT
SYS
SHIFT;
01
C6
BO
20
MOV
AL,EOI
-
-;
01C8
E6
20
OUT
020H,
AL
;
01 CA
B8
8501
MOV
AX,
0850
1H
;
o
lCD
FB
STI
;
o
ICE
CD
15
INT
15H
;
0100
E9
0204
R
JMP
K21
363
364
365
366
361
368
369
310
311
312
313
314
315
316
311
318
319
380
381
382
383
384
385
386
381
388
389
390
391
392
393
394
395
396
391
398
0103
8A
1E
0011
R
399
0101
BF
054F
R
400
01 DA
B9
0008
90
401
01 DE
F21
AE
402
OlEO
8A
C4
403
01E2
14
03
404
01
E4 E9
02B6
R
405
406
401
408
01E1
81
EF
0550
R
409
01EB
2E:
8A
A5
0551
R
410
01FO
Bl
02
41 1 01
F2
A8
80
412
01F4
14
03
413
01
F6
EB
6E
90
414
415
416
411
01
F9
80
FC
10
418
01FC
13
21
419
420
421
422
01
FE
08
26
0011
R
423
0202
F6
C4
OC
424
0205
15
03
425
0201
E9
02CA
R
426
020A
F6
C1
02
421
0200
14
01
428
020F
08
26
0096
R
429
0213
E9
02CA
R
430
0216
02
EC
431
0218
08
26
0018
R
432
021C
E9
02CA
R
433
434
435
436
021
F
431
021F
F6
C3
04
438
0222
14
03
439
0224
E9
02B6
R
440
0221
3C
52
441
0229
15
21
442
022B
F6
C3
08
443
022E
14
03
444
0230
E9
02B6
R
445
0233
F6
C1
02
446
0236
15
14
441
0238
F6
C3
20
448
023B
15
OA
449
0230
F6
C3
03
450
0240
14
OA
451
0242
452
0242
8A
EO
453
0244
EB
10
90
454
455
0241
F6
C3
03
456
024A
14
F6
451
458
024C
459
024C
84
26
0018
R
460
0250
74
03
461
0252
EB
16
90
462
0255
08
26
0018
R
463
0259
30
26
0011
R
\464
0250
3C
52
465
025F
15
69
466
0261
8A
EO
461
0263
EB
18
90
468
469
410
411
0266
412
0266
80
FC
10
413
0269
F6
04
414
026B
13
43
415
0260
20 26
0011
R
416
0211
80
FC
FB
5-50
KEYBOARD
(01/10/86)

Table of Contents

Related product manuals