IBM 5170 Technical Reference page 254

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

-- - --- - --
------------
----
-----------------
-- -
---
~ -wAiT-FOR-CONjRO~~ER -NOT·B~SY -~
---. --------------------­
;
---------------
--------
---
--
---
-
--------
---------------­
050F
050F
FB
NOT_BUSYST I
PROC
NEAR
MAKE SURE I NTERRUPTS ARE ON
05EO
53
PUSH
BX
05E1
B3 20
MOV
BL,DElAY_l
05E3
2B C9
SUB
CX, CX
SET INITIAL DELAY BEFORE TEST
05E5
BA 01 F7
MOV
OX, HF PORT+7
05E8
EC
NBl :
IN
Al,DX­
CHECK STATUS
05E9
A8 80
TEST
Al, ST_BUSY
05EB
EO FB
LOOPNZ
HBl
05EO
71t 06
JZ
NB2
NOT BUSY--LETS GO
05EF
FE CB
DEC
Bl
05F1
75 F5
JNZ
NBl
KEEP TRYING FOR A WHilE
05F3
EB OC
JMP
SHORT NB3
05F5
C6 06 0074 R 00
NB2:
MOY
0ISK_STATUS1,0
05FA
5B
NBX:
POP
BX
05FB
0600
80 3E 0074 R 00
Cl
CMP
RET
01 SK_STATUS1,0
SET CONO I T I ON CODE FOR CALLER
0601
c6 06 0074 R 80
NB3:
MOY
0ISK_STATUS1, TIME_OUT
REPORT T I ME OUT ERROR
0606
EB F2
JMP
NBX
0608
NOT_BUSY
ENOP
0608
WAIT_DRQ
PROC
NEAR
0608
B9 0100
MOY
CX,OELAY_3
060B
8A 01
F7
MOY
OX, HF_PORT+7
060E
EC
WQ_l:
IN
Al,OX
GET STATUS
060F
A8 08
TEST
Al,ST_ORQ
WAIT FOR ORQ
0611
75 09
JHZ
0613
E2 F9
lOOP
KEEP TRY I NG fOR A SHORT WH I lE
~g_~K
0615
c6 06 0074 R 80
MOY
o
15K_STATUSl , T I ME_OUT
ERROR
061A
F9
STC
061B
Cl
RET
061C
F8
WfLOK:
ClC
0610
Cl
RET
061£
WAIT_DRQ
ENOP
~
-
cHEC~-HARD-f
iLE-STATUS----- -----.---- ---------­
061E
bHECK,:STATUS----PROC----NEAR--------------------­
061E
E8 0630 R
CALL
CHECK ST
CHECK THE STATUS BYTE
0621
75 07
JNZ
CHECK-S1
AN ERROR WAS FOUND
0623
A8 01
TEST
AL,ST-ERROR
WERE THERE ANY OTHER ERRORS
0625
74 03
JZ
CHECK:S1
NO ERROR REPORTED
0627
E8 0664 R
CALL
CHECK_ER
ERROR REPORTED
062A
062A
80 3E 0074 R 00
CHECK_Slh:"Ip
DISK_STATUS1,O
SET STATUS FOR CALLER
062F
Cl
RET
0630
CHECK_STATUS
ENOP
; CHECK HARD FILE STATUS BYTE
0630
CHECK ST
PROC
NEAR
0630
BA 01
F7
-
MOV
OX, HF_PORT+7
GET THE STATUS
0633
EC
IN
Al,DX
0634
A2 008C R
MOV
HF_STATUS,Al
0637
B4 00
MOV
AH,O
0639
A8 80
TEST
Al,ST_BUSY
IF STILL BUSY
063B
75 1A
JNZ
CKST EXIT
REPORT OK
0630
B4 CC
MOV
AH,WRITEJAULT
063F
A8 20
TEST
AL, ST_WRT_FL T
CHECK FOR WRITE FAULT
06111
75 1L1
JNZ
CKST_EXIT
0643
B4 AA
MOY
AH, NOT_ROY
0645
A8 40
TEST
AL.ST_READY
CHECK FOR NOT READY
0647
74 OE
JZ
CKST_EXIT
0649
B4 40
MOV
AH, BAD_SEEK
064B
A8 10
TEST
Al, ST _SEEK_COMPL
CHECK FOR SEEK NOT COMPLETE
0640
74 08
JZ
CKST EXIT
064F
MOV
AH, DATA_CORRECTED
84
l'
0651
A8 04
TEST
AL,ST CORRCTO
CHECK FOR CORRECTED ECC
0653
75 02
JNZ
CKST_EXIT
0655
B4 00
MOV
AH,O
0657
CKST_EXIT:
0657
88 26 0074 R
MOV
DISK STATUS1,AH
SET ERROR FLAG
0653
80 FC 11
eMP
AH, DATA_CORRECTED
KEEP GOING WITH DATA CORRECTED
065E
74 03
JZ
CKST_EX1
0660
80 FC 00
CMP
AH,D
0663
CKST_EXl
~ET
0663
Cl
0664
CHECK_ST
ENOP
~ -cHiC;-~;;:RD-f
i
~i -i~~OR-REGi
STiR----------------;
b~EC~=ER--------PRO~----NiA~---------------------
0664
0664
BA 01 Fl
MOV
ox,
H F _PORT+l
GET THE ERROR REG
0667
EC
IN
AL,DX
0668
A2 0080 R
MOV
HF_ERROR,AL
066B
53
PUSH
BX
066C
B9 0008
MOV
CX,8
TEST ALL
8
BITS
066F
DO ED
CK1 :
SHL
Al,l
MOVE NEXT [RROR B! T TO CARRY
0671
72
02
JC
CK2
FOUND THE ERROR
0673
E2 FA
lOOP
CK1
KEEP TRYI NG
0675
BB 0686 R
CK2;
MOV
BX, OFFSET ERR_TBl
COMPUTE ADDRESS OF
0678
03 09
ADD
BX,CX
ERROR CODE
a67A
2E: 8A 27
MOY
AH,BYTE PTR CS: [BX]
GET ERROR CODE
0670
88 26 0074 R
CKEX;
MOV
OISK_STATUS1,AH
SAVE ERROR CODE
0681
5B
POP
BX
0682
80 FC 00
CMP
AH,O
0685
Cl
RET
0686
EO
ERR TBl DB
0687
02 40 01 BB
-
DB
068B
04 BB 10 OA
DB
068F
CHECK.ER
ENDP
CHECK DMA
-CHECK ES:BX AND
#
SECTORS TO MAKE SURE THAT IT WilL
;
FIT WITHOUT SEGMENT OVERFLOW.
;
-ES:BX HAS BEEN REVISED TO THE FORMAT SSSS:OOQX
;
-OK IF
II
SECTORS < 80H (7FH IF lONG READ OR WRITE)
;
-OK IF
#
SECTORS
=
80H (7FH) AND BX
<=
DOH 104H)
;
-ERROR OTHERWI SE
bHEc~-D;A-------P~oc----NEAR-----------------------------
068F
068F
50
-
PUSH
AX
SAVE REGS
0690
B8 8000
MOV
AX,8000H
; AH
=
MAX
#
SECTORS
; AL
=
MAX
OFFSET
0693
F6 06 0048 R 02
TEST
5-112 Disk

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents