IBM XT 5160 Technical Reference page 197

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

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 18B
-
¢;
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:
o
19C
T_SYS_KEY:
o
19C 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)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents