IBM 5170 Technical Reference page 212

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

RECOVER VALUE Of PORT
007C
E6 61
OUT
DOn
C3
RET
007A
8A C4
MOV
RETURN TO CALLER
OOH
BEEP
ENDP
;
--
----
------
- --
---
- -
--------
-
--
-
--------------
--------
-----
-
------
---
- -
THIS PROCEDURE WILL SEND A SOFTWARE RESET TO THE KEYBOARD.
SCAN CODE' AA'
SHOULD BE RETURNED TO THE CPU.
SCAN CODE '65'
IS DEFINED fOR MANUFACTURING TEST
.--------
---
------
-
-------
-
---------------
--- --
-------------
-
----
-----
--­
007F
KBD RESET
PROC
NEAR
007F
BO FF
-
MOV
AL,OFFH
SET KEYBOARD RESET COMMAND
0081
E8 0000 E
CALL
XM I T 8042
GO I SSUE THE COMMAND
0084
E3 23
JCXZ
G13 -
GO
I F ERROR
0086
3C FA
eMP
AL, KB_ACK
0088
75 1F
J NL
e13
008A
BO
Fa
MOV
AL,OFDH
ENABLE KEYBOARD 1 NTERRUPTS
008C
E6 21
OUT
INTA01,AL
WRITE 8259
IC~R
008E
C6 06 006B R 00
MOV
I NTR_FLAG, 0
RESET
INTERRUPT INDICATOR
0093
FB
STI
ENABLE
INTERRUPTS
0094
B3 OA
MOV
BL,10
TRY FOR 400 MSEC
0096
2B C9
SUB
ex,cx
SETUP I NTERRU PT TIMEOUT CNT
0098
F6 06 006B R 02
Gl1 ;
TEST
1NTR_FLAG, 02H
OlD A KEYBOARD
I NTR OCCUR?
0090
75 06
JNZ
e12
YES -
READ SCAN CODE RETURNED
009F
E2 F7
I_OOP
ell
NO -
LOOP TILL TIMEOUT
OOAl
FE CB
DEC
BL
00A3
75 F3
JNZ
ell
TRY AGAI N
00A5
E4 60
G12:
IN
AL, PORT_A
READ hEYBOARD SCAN CODE
00A7
8A 08
MOV
BL,AL
SAVE SCAN CODE JUST READ
00A9
C3
G13:
RET
RETURN TO CALLER
OOAA
KBD_RESET
ENDP
OOAA
DDS
PROC
NEAR
OOAA
50
PUSH
AX
OOAB
BB
---- R
MOV
AX, DATA
OOAE
8E 08
MOV
DS,AX
OOBO
58
PPP
AX
OOBl
C3
RET
00B2
DDS
ENDP
;
----
--------
--
-
-- -- -
----------------------------
-------­
TEMPORARY INTERRUPT SERVICE ROUTINE
l. TH I 5 ROUT I NE
I S ALSO LEFT I N PLACE AFTER THE
POWER ON DIAGNOSTICS TO SERVICE UNUSED
INTERRUPT VECTORS.
LOCATION' tNTR_FLAG' WILL
CONTAIN EITHER;
1. LEVEL OF HARDWARE INT. THAT
CAUSED CODE TO BE EXEC.
2.
'FF'
FOR NON-HARDWARE I NTERUPTS THAT WAS
EXECUTED ACCIDENTLY.
OOB2
611
PROC
NEAR
ASSUME
OS: DATA
00B2
1E
PUSH
OS
00B3
52
PUSH
OX
00B4
50
PUSH
AX
SAVE REG AX CONTENTS
00B5
53
PUSII
BX
00B6
E8 OOAA R
CALL
DDS
SET DATA SEGMENT
00B9
BO DB
MOV
AL,OBH
READ
I N-SERV I CE REG
OOBB
E6 20
OUT
INTAOO,AL
(FINO OUT WHAT LEVEL BEING
OOBD
EB 00
JMP
SHORT $+2
10 DELAY
OOBF
90
NOP
SERVICED)
OOCO
E4 20
IN
AL,INTAOO
GET LEVEL
00C2
8A EO
~IOV
AH,AL
SAVE
IT
00C4
OA C4
OR
AL,AH
DO? (NO HARDWARE ISR ACTIVE)
00e6
75 04
JNL
HW
tNT
00C8
B4 FF
MOV
AH-;OFFH
OOCA
EB 2A
JMP
SHORT SET_ I NTR_FLAG
SET FLAG TO r r
IF NON-HDI-IARE
ooce
HI-I_I NT;
ooce
BO OB
MOV
AL,OBH
OOCE
E6 AD
OUT
INTBOO,AL
READ I N-SERV I CE REG INT CHIP 2
0000
EB 00
JMP
SHORT $+2
10 DELAY
0002
[II AO
IN
Al, I NTBOO
CHECK THE SECOND I NT CH I P
OdD4
8A F8
MOV
BH,AL
SAVE IT
0006
OA FF
OR
SH, BII
QOD8
711 DE
JZ
NOT SEC
CONT I NUE
!
F NOT
OODA
E4 Al
IN
AL,INTBOl
GET SECOND
I NT MASK
OODC
OA C7
OR
AL, SH
MASK OFF LVL BEING SERVICED
OODE
EB 00
JMP
SHORT $+2
10 DELAY
OOEO
E6 A1
OOT
INTB01,AL
00E2
BO 20
MOV
AL, EOI
SEND EO I TO SECOND CH I P
00[4
EB 00
JMP
SHORT $+2
10 DELAY
00[6
E6 AO
OUT
I NTBOO,AL
00E8
E4 21
NOT_SEC: IN
AL,INTA01
GET MASK VALUE
OOEA
EB 00
JMP
SHORT $+2
10 DELAY
ODEC
OA C4
OR
AL,AH
MASK OFF LVL BEING SERVICED
OOEE
E6 21
OUT
INTA01,AL
OOFO
EB 00
JMP
SHORT $+2
to DELAY
00F2
BO 20
MOV
AL, EOI
OOFII
E6 20
OUT
INTAOO,AL
00F6
SET
INTR FLAG:
00F6
88 26 006B R
MOV
I NTR_FLAG, AH
SET FLAG
OOFA
5B
POP
BX
DOFB
58
PDP
AX
RESTORE REG AX CONTENTS
OOFC
5A
POP
DX
OOFD
1F
POP
OS
OOFE
DUMMY_RETURN
,
NEED
I RET FOR VECTOR TABLE
OOFE
CF
I RET
"
OOFF
Dll
ENDP
;--HAROWARE
INT 13 (LEVEL 75H)
---------~----------------
SERVICE X287
INTERRUPTS
.
TH I S ROUT I NE FIELDS X287
I NTERRUPTS AND CONTROL
I S PASSED TO THE NM I
I NTERRU PT HANDLER FOR
COMPATABILITY.
OOFF
I NT _287 PROC
NEAR
~OFF
50
PUSH
AX
SAVE AX
0100
32 CO
XOR
AL,AL
0102
E6 FO
OUT
X287,AL
REMOVE THE 'NT REQUEST
0104
BO 20
MOV
AL, EOI
ENABLE THE INTERRUPT
0106
E6 AD
OUT
INTBOO,AL
THE SLAVE
0108
E6 20
OUT
JNTAOO,AL
THE MASTER
OlOA
58
POP
AX
RESTORE AX
010B
CD 02
INT
2
GIVE CONTROL TO NM
t
5-70 Test 4

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents