IBM 5170 Technical Reference page 221

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

OOAC
2B CO
SUB
AX,AX
STR
AX
GET THE TR
REG
OOAE
OF
+
OB
OOFll
OOAF
+ ??0008
LABEL
BYTE
OOAf
88 CB
+
MOV
eX,AX
OORl
+ ??OO09
LABEL
BYTE
OUAF
ORC
OFFSET CS:??0008
OOAF
00
DB
OOOH
OOBl
OI,G
OFFSET CS: ??0009
OOBl
00B4
25 00F8
3D 0068
ANO
CMI)
AX,OFBH
AX, POST_ TR
; CORRECT SELECTOR?
00B7
75 08
JNZ
ERROR
TEST 286 CONTROL FLAGS
,r-....
00B9
OOBA
FO
ge
STO
PUSHF
SET DIRECTION FLAG FOR DECREMENT
GET THE FLAGS
OOBB
58
POP
AX
OOBC
OOBF
A9
74
TEST
JZ
AX,0200H
T74
INTERRUPT FLAG SHOULD BE OFF
CaNT I NUE I F OFF
OOCl
E9
ERROR:
JMP
ERROR EXIT
-
GO I F NOT
ooc4
T7_11:
()oc4
00c7
A9 0400
75 03
TEST
JNZ
AX,0400H
T7
5
CHECK 0 I RECT
I
ON FLAG
ooc9
E9 02EA R
JMP
ERROR
-
EXIT
GO IF NOT SET
OOCC
Fe
T7_5:
CLO
CLEAR DIRECT I ON FLAG
ooco
9C
PUSHF
! NSURE 0 I REeT I ON FLAG I S RESET
OOCE
58
POP
AX
DOCf
A9 0400
TEST
AX,0400H
OOD2
74
03
JZ
T7_6
00D4
E9 02EA R
JMP
ERROR [XIT
-
GO IF NOT
0007
;-------
~E~ ~ F~
­;86-
;~~ ~
0-
~
NS
T~C~T ~~N-
-----------­
; DESCRI PTION
;
CREATE A SIGNEO ARRAY INDEX WITHIN AND
OUTSIDE fHE LIMITS (EXPECT INT 5)
0007
0009
0006
BO F4
E6 80
B8 004B
MOV
OUT
MOV
AL,OF4H
MFG PORT,AL
AX, ES_TEMP
; <><><><><><><><><><><><><><>
; <><><>CHECKPO I NT F4 <><><><>
LOAD ES REG I STER
OODE
8E CO
MOV
ES,AX
; ------­ CHECK BOUND FUNCT IONS CORRECTLY
OOEO
00E2
2B FF
26: C7 05 0000
SUB
Mav
01,01
WORD PTR ES:[OI],O
POINT BEGININe OF THE BLOCK
SET FIRST WORO TO ZERO
00E7
26 : C7
45
02 7FFf
MaY
WORD PTR ES: [ 0 I +2
L
07 FFFH ;
SET SECOND TO 07F
fFH
OOED
BO 95
MOV
AL,095H
SET INTERRUPT 5 FLAG
OOH
E6 8B
OUT
DMA_PAGE +OAH, AL
OOFl
lHl 1000
MOV
AX,1000H
SET AX WITHIN BOUNDS
SEGOV
ES
USE THE ES REG
00F4
26
OB
026H
OOFS
+ ??OOOB
BOUND
LABEL
AX, [01]
BYTE
OOFS
88 05
+
MOV
AX, [0 I]
1"""""\
OOF7
OaFS
+ ??OOOC
+
LABEL
ORC
BYTE
OFFSET CS: 1?000B
OOFS
62
OB
062H
OOF7
OIIG
OFFSET Cs:??oooe
00F7
2B C9
suu
CX,CX
WAIT FOR POSSIBLE INTERRUPT
00F9
E2 FE
LOOPA:
LOOP
LOOPA
OOFB
E4 BB
IN
AL,DMA_PAGE+OAH
GET THE RESULTS
OOFD
3C
00
CMP
AL,O
DID AN
INTERRUPT OCCUR?
OOFF
75 03
JNZ
T7 7
CaNT I NUE I F NOT
0101
E9 02EA R
JMP
ERROR_EX I T
GO I F YES
0104
T7 7:
;-=------­
CHECK LOW BOUND WORD CAUSES INT
5
0104
28 FF
SUB
01,01
;
POINT BECINING OF THE BLOCK
0106
26:
C7 05 3FFO
MaY
WORD PTR ES:[0Ij,Q3FFOH ;
SET FIRST WORD TO 03FFOH
0108
B8 1000
MOV
AX,lOOOH
SET
AX OUT OF BOUNDS
SECOV
ES
USE THE ES REG
OlOE
26
DB
026H
010F
+ ??OOOE
BOUND
LABEL
AX, [01)
BYTE
OlOF
88
05
+
MOV
AX,
[01)
0111
+ ??OOOF
LABEL
BYTE
OlOF
ORC
OFfSET CS: ?1000E
010F
62
OB
062H
0111
ORC
OFFSET CS: ??OOOF
0111
2B C9
SUB
CX,CX
WAIT FOR POSSIBLE IN·fERRUPT
0113
LOOPB:
0113
E4 8B
IN
AL,OMA_PAGE+OAH
GET THE RESULTS
0115
3C 00
CMP
AL,OH
DID AN
INTERRUPT OCCUR?
0117
EO FA
LOOPNZ
LOOPB
TRY AGAIN
0119
74 03
JZ
T7 B
CONT I NUE I F INTERRUPT
011B
E9 02EA R
JMP
ERROR_EX IT
GO I F NO INTERRUPT
; -------­ CHECK III GH BOUND WORD CAUSES I NT 5
011E
BO 95
MOV
AL,95H
SE T FLAG FOR INTERRUPT
0120
E6
66
OUT
DMA_PAGE+OAH, AL
0122
0124
2B FF
26: C7 05 0000
SUB
Mav
01,01
WORD PTR [5:[01),0
;
POINT BEGINING OF THE BLOCK
SET FIRST WORD TO
0
0129
012F
26:
c7 45
B8 1000
02 OFFF
MOV
MOV
WORD PTR [S:[DI+2],OFFFH ;
SET SECOND TO OFFFH
AX,1000H
SET AX OUT OF BOUNDS
SECOV
ES
USE THE ES REG
013?
26
DU
026H
BOUND
AX, [0 I]
0133
+
?10011
LABEL
BYTE
~
0133
0135
8B
05
+
+
110012
MOV
LABEL
AX, [01
I
BYTE
0133
+
OHG
OFFSET CS:??0011
0133
62
DB
062H
0135
DRC
OFFSET CS: ??001?
0135
213 C9
SUB
cX,ex
WAIT FOR POSSIBLE INTERRUPT
0137
LOOPC:
0137
[4 BB
IN
AL,DMA_PAG£+OAH
GET THE RESULTS
0139
3C 00
CMP
AL,OH
DID AN
INTr.RHUPT OCCUR?
0138
EO FA
LOOPNZ
LOOPC
TRY AGA I N
0130
74 03
JZ
T79
013F
E9 02EA R
JMP
ERROR_EX I T
GO I F NO I NTEHRUPT
;
VERIFY PUSH ALL AND POP ALL INSTRUCTIONS:
;
OESCR I PT I ON
Test 7 5-79

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents