IBM 5170 Technical Reference page 253

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

-------------------------------------
-----
--- -------
---
-
--------------------
- - --
-----
- - -- -
---
bO;MANOO~---
04FB
04FB
E8 068F R
CALL
CHECK DMA
CHECK 64K BOUNDARY ERROR
04FE
72 FA
JC
CMD ABORT
O~OO
8B F3
CMO_OF: MOV
SI,BX
0502
E8 0544 R
CALL
COMMAND
OUTPUT COMMAND
0505
75 F3
JNZ
CMD ABORT
0507
E8 0608 R
CALL
WAI
f
DRQ
WAI T FOR DATA REQUEST
050A
72 EE
JC
TM OUT
TOO LONG
050C
1 E
CMO_Ol:
PUSH
DS­
0500
06
PUSH
ES
MOVE ES TO OS
050£
1F
POP
OS
050F
'19 0100
MOV
CX,256D
PUT THE DATA OUT TO THE CARD
0512
SA 01 FO
MOV
ox,
HF _PORT
0515
Fe
eLO
REP OUTSW
0516
F3 6F
Of3H,06FH
-
DB
0518
1 F
PDP
OS
RESTORE OS
0519
F6 06 0048 R 02
TEST
CMD_BLOCK+6, ECC_MODE
CHECK FOR NORMAL OUTPUT
051 E
74 12
JZ
CMD 03
0520
E8 0608 R
CALL
WA I T DRQ
WAI T FOR DATA REQUEST
0523
72
D5
JC
TM_OUT
0525
BA 01 FO
MOV
ox,
H F PORT
0528
B9 0004
MOV
CX,4 -
OUTPUT THE ECC GYTES
052B
26: 8A 04
CMO_02:
I~OV
AL,ES:BYTE PTR [SI]
052E
EE
OUT
DX,AL
OS2F
46
INC
SI
0530
E2 F9
LOOP
CMD_02
0532
0532
E8 05A5 R
CALL
WAIT
WA I T fOR SECTOR COMPLETE I NT
0535
75 C3
JNZ
TM_OUT
ERROR RETURNED
0537
E8 061E R
CALL
CHECK STATUS
053A
75 BE
JNZ
CMo ABORT
053C
F6 06
OOBC
R 08
TEST
HF STATUS,ST DRQ
CHECK FOR MORE
0541
75 C9
JNZ
SHORT CMO_Ol­
0543
C3
RET
;
-------
----- -- --
------------
-------
-- --
----------------­
~
COMMAND
;
TH I S ROUT I NE OUT PUTS THE COMMAND BLOCK
; OUTPUT
BL '" STATUS
BH '" ERROR REG I STER
0544
COMMAND PROC
NEAR
0544
53
PUSII
BX
WAIT FOR SEEK COMPLETE AND READY
0545
89
0600
MOV
CX,DELAY_2
SET
INITIAL DELAY BEFORE TEST
0548
COMMAN01 :
0548
51
PUSH
ex
SAVE LOOP COUNT
0549
E8 044[ R
CALL
TST ROY
CHECK DR
I
VE READY
054C
59
POP
ex ­
0540
7t~
OB
JZ
COMMAND2
DRIVE
IS READY
054F
80 3£ 0074 R 80
eMP
01 SK_STATUS1, TIME_OUT
TST_RDY TIMED OUT--GIVE UP
0554
74
43
JZ
CMD TIMEOUT
0556
E2 FO
LOOP
COMMANDl
KEEP TRY I NG FOR A WH I LE
0558
EB 44
JMP
SHORT COMMAND4
iTS NOT GO I NG TO GET READY
055A
COMMAND2 :
055A
5B
POP
BX
055B
57
PUSH
01
**
10 DELAY
NOT REQUIRED
**
055C
C6 06 008E R 00
~lOV
HF I NT FLAG, 0
RESET
I NTERRU PT FLAG
0561
E4 Al
IN
AL-;-I NT=CTL_PORT+l
TURN ON SECOND
INTERRUPT CH I P
,...-....,
0563
24 BF
AND
AL,OSFH
0'>65
E6 A1
OUT
INT CTL PORT+1,AL
0567
E4 21
IN
AL, TNT1=CTL_PORT+l
LET
j
NTERRUPTS PASS THRU TO
0569
24 fB
AND
AL,OFBH
SECOND CH I P
05611
E6 21
OUT
I NTl _CTL_PORT+l ,AL
0')60
Bf 0042 R
MOV
01 ,OFFSET CMD BLOCK
0:'>70
SA 01 f1
MOV
DX,HF PORT+l ­
0573
f6 06 0016 R CO
TEST
CONTROL_BYTE,OCOH
0.'">78
74 12
JZ
COMMAN03
057A
AO 0048 R
MDV
AL,CMD_BLOCK+6
YES-GET OP CODE
0570
24 FO
AND
AL,OFOH
GET
RID OF MODIFIERS
057F
3C 20
CMP
AL,20H
20H-!IOH
IS READ, WRITE, VERIFY
0581
72 09
JB
COMMANo3
0583
3C 110
eMP
AL,40H
0585
77
05
JA
COMMAND3
0587
80 OE 0048 R 01
OR
CMD_BLOCK+6, NO_RETR I ES
VAll
0 OP FOR RETRY SUPPRESS
058C
COMMAND3 :
058C
8A
D~
MOV
AL,
[011
GET THE COMMAND STR I NG
058E
EE
OUT
DX,AL
GIVE
'T
TO CONTROLLER
058F
47
INC
01
NEXT BYTE
0.'">90
42
INC
Ox
NEXT DISK REGISTER
0~91
61
FA 01 F8
eMP
OX, HF _PORT+8
ALL
~ONE?
0~9~
75 F5
JNZ
COMMAND3
NO--GO DO NEXT ONE
0597
5F
POP
DI
0598
e3
RET
ZERO FLAG I S SET
0599
CMD
TI
MEOUT:
0599
C6 06 0074 R 20
-
MOV
D I SK_STATUS1, BAD_CNTLR
059E
COMMAND4:
059E
5B
POP
BX
059F
80 3E 0074
R
00
eMP
DISK_STATUS1,O
;
SET CONDITION CODE FOR CALLER
05A4
e3
RET
05A5
COMMAND ENoP
; WA I T FOR I NTERRU PT
WAIT
PROC
NEAR
F6
STI
MAKE SURE
I
NTERRUPTS ARE ON
2B C9
SUB
CX,CX
SET
I NIT I AL DELAY BEFORE TEST
F6
eLC
B8 9000
MOV
AX,9000H
DEVICE WAIT INTERRUPT
CD 15
INT
15H
72
28
Je
WT3
DEVICE TIf-iED OUT
f6 06 008E
R
80
TEST
HF_INT_FLAG,80H
TEST FOR
I NTERRUPT ALREADY
JNZ
WT2
B3 20
MDV
BL,DELAY_'
SET DELAY COUNT
/'"'"""\
75 "
WAIT LOOP
05B9
F6 06 008E R 80
WTl :
EST
Hf_I NT_FLAG, 80H
TEST FOR INTERRUPT
OSBE
E1 F9
LOOPZ
WT1
05CO
75 06
JNZ
WT2
INTERRUPT--LETS GO
05C2
FE CB
DEC
BL
0'.)(;11
75 F3
JNZ
WTl
KEEP TRYING FOR A WHILE
05c6
EB 10
JMP
SHORT WT3
0:"C8
C6 06 0074
n
00
WT2:
MOV
01 SK_STATUSl ,0
05CD
C6 06 OOBE
R
00
MOV
HF ,INT FLAG,D
0502
80 3E 0074
R
00
WTX:
eMP
DISK_STATUS1,O
SET CONDITION CODE FOR CALLER
0~D7
e3
RET
0508
c6 06 0074
R
80
WT3:
MOV
DISK_STATUS1, TIME_OUT
REPORT TIME OUT ERROR
0500
EB F3
JMP
WTX
050F
WAIT
ENDP
Disk 5-111

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents