IBM 5170 Technical Reference page 258

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

; ------ I NCREMENT A BUFFER PO INTER
007F
.4
PROC
NEAR
007F
4'
INC
BX
MOVE TO NEXT WORD IN LI ST
0080
INC
BX
0081
' "
3 B lE 0082 R
eMP
BX, BU FFER_END
AT END OF BUFFER?
0085
75 04
JNE
K5
; NO, CaNT I NUE
0087
8B 1 E 0080 R
MOV
BX,BUFFER_START ; YES, RESET TO BUFFER BEGINNING
008B
K5:
008B
C,
RET
008C
K4
ENDP
;------ KEYBOARD INTERRUPT ROUTINE
008C
KB_INT_l PROC
FAR
008C
FB
ST I
; ENABLE INTERRUPTS
0080
55
PUSH
BP
008E
50
PUSH
AX
008F
PUSH
5'
BX
0090
51
PUSH
ex
0091
52
PUSH
OX
0092
56
PUSH
51
0093
57
PUSH
01
0094
1E
PUSH
OS
0095
06
PUSH
ES
0096
Fe
CLD
FORWARD DIRECT ION
0097
E8 0000 E
CALL
DDS
SET UP ADDRESSING
009A
BO AD
MOV
AL, 01 S_KBD
o I SABLE THE KEYBOARD
009C
E8 0498 R
CALL
SH! P_IT
EXECUTE
01
SABLE
;------- WAIT FOR COMMAND TO ACCEPTED
009F
FA
CLI
; DISABLE INTERRUPTS
DOAD
2B C9
SUB
eX,ex
00A2
KB_INT_Dl :
00A2
E4 64
IN
AL, STATUS_PORT
;
00A4
A8 02
TEST
AL,INPT_BUF_FULL
00A6
EO FA
lOOPNZ
KB_INT_Ol
WAIT FOR COMMAND TO BE ACCEPTED
00A8
E4 60
IN
READ
I
N THE CHARACTER
OOAA
FB
STI
ENABLE INTERRUPTS AGA I N
;--------CHECK FOR A RESEND COMMAND TO KEYBOARD
OOAB
3C FE
eMP
AL,
KB~RESEND
;
I S THE
J
NPUT A RESEND
OOAD
74 00
JE
KB_I NT_4
; GO I F RES END
; ------- CHECK FOR RESPONSE TO A COMMAND TO KEYBOARD
OOAF
3C FA
eMP
Al, KB_ACK
;
I S THE I NPUT AN ACKNOWLEDGE
OOBl
75 12
JNZ
KB_INT_2
;GOIFNOT
;------- A COMMAND TO THE KEYBOARD WAS ISSUED
00B3
FA
CLI
; DISABLE INTERRUPTS
00B4
80 DE 0097 R 10
OR
KBJLAG_2,KB_FA;
INDICATE ACK RECEIVED
00B9
E9 01E2 R
JMP
K26
; RETURN I f NOT (TH I SACK RETURNED FOR DATA)
; -------- RESENO THE LAST BYTE
OOBC
KB INT 4;
OOBC
FA
DISABLE INTERRUPTS
-
-
Cli
ODBD
60 DE 0097 R 20
OR
KBJLAG_2,KB_FE;
INDICATE RESEND RECEIVED
00C2
E9 01 E2 R
JMP
K26
; RETURN IF NOT (THIS ACK RETURNED fOR DATA)
00C5
KB_I NT_2:
;--------UPDATE MODE INDICATORS IF CHANGE IN STATE
00C5
50
PUSH
AX
SAVE DATA IN
00C6
E6 046A R
CALL
GO GET MOD[ INDICATOR DATA BYTE
00C9
6A lE 0097 R
MOV
=t~~B~~EAG_2
GET PREV 10US BITS
OOCD
32 08
XOR
BL,AL
SEE I F ANY OJ FFERENT
OOCF
60
£3
07
AND
Bl,07H
ISOLATE INDICATOR BITS
0002
711 03
JZ
UPO
I F NO CHANGE BYPASS UPDATE
0004
E8 0439 R
CALL
SND~LEO
GO TURN ON MODE INDICATORS
0007
5B
UPO:
POP
AX
RESTORE DATA IN
0008
8A EO
MOV
AH,AL
SAVE SCAN CODE IN AH ALSO
; ------ TEST FOR OVERRUN SCAN CODE FROM KEYBOARD
DODA
3C FF
eMP
AL,OFFH
IS TH [S
AN
OVERRUN CHAR
OODC
75 03
JNZ
NO, TEST FOR SHI
FT
KEY
DODE
E9 0306 R
JMP
K62
BUFFERJULl_BEEP
"6
; ------ TEST FOR SH I FT KEYS
OOEl
K16:
TEST SHIFT
OOEl
24 7F
AND
AL,07FH
TURN-OFF THE BREAK BIT
00E3
DE
PUSH
CS
00E4
07
POP
ES
ESTABLISH ADDRESS OF SHIFT TABLE
;-----~-
TEST FOR SYSTEM kEY
00E5
3C 54
CMP
AL, SYS_KEY
I SIT THE SYSTEM KEY?
00E7
75 3D
JNZ
K16A
CONT I NUE I F NOT
00E9
F6 C4 60
TEST
AH,080H
CHECK If TH I S A BREAK CODE
DOEC
75 21
JNZ
K16C
DONT TOUCH SYSTEM INDICATOR I F TRUE
OOEE
F6 06 0016 R 04
TEST
KB FLAG_l,SYS_SHIFT ;
SEE IF IN SYSTEM KEY HELD DOWN
00F3
75 17
JNZ
K16B
;
I F YES, DONT PROCESS SYSTEM INDlCATOR
00F5
80
0018
OR
KB_FLAG_ 1, SYS_SH 1FT; I NO I CATE SYSTEM KEY DEPRESSED
OOFA
BO 20
MOV
AL,EOt
; END OF INTERRUPT COMMAND
OOFC
E6 20
OUT
020H,AL
; SEND COMMMD TO INTERRUPT CONTROL PORT
;
INTERRUPT-RETURN-NO-EOI
OOFE
BO AE
MOV
AL, ENA_KBD
;
I NSURE KEYBOARD I S ENABLED
0100
E8 0498 R
CALL
SHIP IT
; EXECUTE ENABLE
0103
B6 8500
MOV
AX,08500H
FUNCTION VALUE FOR MAKE OF SYSTEM KEY
0106
Fa
ST I
MAKE SURE I NTERRUPTS ENABLED
0107
CO 15
I NT
15H
USER I NTERRU PT
0109
E9 01EC R
JMP
K27A
END PROCESS I NG
OlOC
E9 01E2 R
K16B:
JMP
'26
IGNORE SYSTEM KEY
DE
R 0"
OlOF
80 26 0018 R Fa
K16C:
AND
KB_FLAG_ 1, NOT SYS_SH 1FT; TURN OFF SH I FT KEY HELD DOWN
0114
BO 20
MOV
AL, EO I
; END OF I NTERRUPT COMMAND
0116
E6 20
OUT
02QH,AL
; SEND COMMAND TO INTERRUPT CONTROL PORT
;
'NTERRUPT-RETURN-NO-EO I
0118
BO AE
MOV
AL, ENA_KBD
;
I NSURE KEYBOARD t S ENABLED
OllA
E8 0498 R
CALL
SHI P IT
; EXECUTE ENABLE
0110
B8 8501
MOV
AX,08501H
FUNCT I ON VALUE FOR BREAK OF SYSTEM KEY
0120
FB
sn
MAKE SURE INTERRUPTS ENABLED
0121
CD 15
INT
15H
USER INTERRUPT
5-116 Keyboard

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents