IBM XT 5160 Technical Reference page 199

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

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-ALT-KEYPAD
ZERO ANY PREV I OUS ENTRY I NTO INPUT
DI,ES ALREADY POINTING
LOOK FOR MATCH I N ALPHABET
MATCH 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
"ALT 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)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents