IBM 5170 Technical Reference page 233

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

DOSS
74 47
JE
0"'
i-----­
SETUP STATE
;
I F YES. THEN TRUE ERROR
INDICATOR FOR RETRY ATTEMPT
OOSD
OOCl
OOC3
OOC')
OOC8
OOCA
OOCD
8A AF 0090
DO C5
DO C5
80 E5 03
FE CD
80 FO FF
75 02
R
MOV
ROL
ROL
ANO
DEC
CMP
JNE
CtI,DSK_STATEIBX! ; GET STATE INDICATOR
CII,l
; MOVE TRANSFER RATE TO LOW ORDER BITS
CH,l
*
CH. TRAN_MSK
ISOLATE TRANSFER RATE BITS
CH
CONVERT TO NEXT RATE
CH.OFFH
SEE I F OVERFLOW OCCURRED
R3
JUMP 1 F NO OVERFLOW
oocr
0001
0003
OOD~
0008
B~
02
DO CD
DO CD
80 FC 01
75 03
R3 :
MDV
RDR
ROR
CMP
JNE
CH,XRATE
CH,1
CH,l
AH.l
R9
SET TO NEXT RATE
~UT
TRANSFER BITS BACK WHERE THEY BELONG
SEE I F THIS STATE REQUIRES DOUBLE STEP
I f NOT, BYPASS SETT I Ne DOUBLE STEP
OODA
~ODD
OOOF
80 CD 20
OA E5
88 A7 0090 R
R9:
DR
aR
Mav
CH. DOUBLE_STEP
TURN ON DOUI1LE ST"- P REQU I RED
AH,CH
, COMBINE WITH STATE TO MAKE NEW INDICATOR
DSK_STATE]BX).AH; SAVE AS NEW INDICATOR
;~-~---
SETUP FOR ACTUAL RETRY OPERATION
OOEl
00E6
00E9
OOEC
OOEE
88 '.>6 00
8B 4[ OA
8B 5E DC
8B C6
E9 0023 R
Mav
Mav
MOV
Mav
JMP
OX,] BP]
CX,IBP+l0]
BX, I BP+12j
AX,SI
R4
RESTORE PARAMETERS FROM STACK
.
GO RETRY OPERATION
OOFl
OOF4
00F7
88 56 00
E8 0604 R
75 03
MOV
CALL
JNZ
ox, [BP]
READ_DSKCHNG
DK4
RESTORE DR I VE PARMETER
GO READ DISK CHANGE LINE STATUS
IF ACTIVE, NO DISKETTE IN DRIVE. TIMEOUT
00F9
E9 0067 R
JMP
DK2
If NOT ACTIVE. DISKETTE IN DRIVE. DISK CHANGE
OOFC
0101
C6 06 0041
E9 0067 R
R 80
MOV
JMP
DISKETTE STATUS.TIME OUT;
OK2
-
-
INDICATE TIMEOUT IF DRIVE EMPTY
0104
0109
C6 87 0090
E9 0067
' R
R 80
MDV
JMP
DSK_STATE[BXj.POA_START;
OK2
ERROR PUT STATE AT POWER ON ASSUMPTION
OlOC
DISKETTE_IO_l
ENDP
;--~-~-
DETERMINE NEW MEDIA TYPE. NEED TO RESET OISK CHANGE LINE HERE
OlOC
OlOe
OlOF
80 Fe 01
76 76
j,
PROC
CMP
JBE
NEAR
AH.l
J1E
TEST fOR RESET AND STATUS OPERATION
BYPASS STATE CHECK AND UPDATE
0111
0116
F6 06 008f
74 11
R 01
TEST
JZ
H f CNTRL, DUAL
Jl"
GO DETERMINE TYPE Of CONTROLLER CARD
DISKETTE ATTACH CARD
0118
011B
80 fC 15
736A
CMP
JAE
AH,15H
J lE
TEST FOR DISK CHANGE STATUS OR DISK TYPE
BYPASS STATE CHECK AND UpDATE
011D
011 E
01lF
0120
0121
0124
50
53
51
52
E8 0604 R
74 OC
PUSH
PUSH
PUSH
PUSH
CALL
JZ
AX
BX
CX
OX
READ DSKCHNG
Jll -
SAVE OR I G I NAL PARAMET ERS
~VE
PARAMETERS
GO READ DISK CHANGE LI NE STATE
BYPASS HANDLING DISK CHANGE LINE
0126
E9 05E2 R
JMP
JlC
HANDLE 0 I SK CHANGE LINE ACT I VE
0129
012A
012B
Q12C
012D
0130
50
53
51
52
E8 0604 R
EB 51
PUSH
PUSII
PUSH
PUSH
CALL
JMP
AX
BX
CX
OX
READ DSKCHNG
SHORT J1H
SAVE OR I G I NAL PARAMETERS
~AVE
PARAMETERS
SELECT DRIVE FOR DISKETTE ATTACH CARD
IGNORE DISK CHANGE STATUS
0132
0136
0138
8A 87 0090
OA CO
7';; 06
R
MOV
DR
JNZ
Al.DSK STATE] BX]
AL.AL -
Jl0
; GET MEDIA STATE INFORMATION FOR DRIVE
CHECK FOR NO STATE INFORMATION AT ALL
IF INFORMATION DONT DEFAULT
013A
o 13c
BO 80
88 87 0090 R
MOV
HDV
AL, POA_START
; GET DEFAULT TO STATE 0
DSK_STATE[BXJ,AL; SET UP DEFAULT TO STATE 1
0140
0142
3C 61
75 1E
eMP
JNE
AL, POA_DUAl
J1G
SEE I f DOUBLE STEP RATE
BYPASS TRACK CHECK
0144
0147
014A
88 4E OA
80 FO 28
72 16
MOV
CMP
JB
CX, [BP+10
I
CH,40
J1G
GET OR I G I NAL TRACK PARAMETER
SEE If TRACK IS PAST END OF DISKETTE(320)
GO TRY OPERATION AT THIS STATE If NOT
014C
0151
0153
0157
0159
C6 fJ7 0090
SO 02
8A 87 0092
OA f6
75 13
R 02
R
MDV
MDV
MOV
OR
JNZ
DSK_STATE(BX],02H ;
sET NEXT STATE TO TRY IN ALGORITHM
AL,02H
,
PUT NEW STATE IN WORKING REGISTER
DH,DSK_STATE[BX+2] • GET OPERATION START STATE
DH.DH
CHECK FOR OPERATION START
J1C
IF STARTED PREVIOUSLY, BYPASS SETTING IT UP
0158
0160
C6 87 0092
EB OC
R 61
Mav
JMP
DSK_STATE[ BX+2]. POA_DUAL ;
SETUP START I
NG
STATE
SHORT J1C
; BYPASS NEXT STEP ALREADY DONE
0162
0166
OH,8
8A 97 0092
OA 02
75 04
R
MDV
OR
JNZ
DL. OSK_STATE[ BX+2] • GET START MED I A STATE
DL.DL
SEE IF THIS IS ORIGINAL OPERATION OR A RETRY
J1C
I F RETRY IGNORE
016A
016E
0172
0174
88 87 0092
8A DE 008B
3A C1
74 00
R
R
J lG:
Mav
MOV
eMP
J
E
DSK_STATE]BX+2],AL; SAVE AS STARTING DATA RATE
CL, LASTRAT£
GET LAST DATA RATE SELECTED
AL.CL
COMPARE TO LAST OPERATION
J1H
IF SAME DOtH SELECT NEW TRANSFER RATE
0176
0179
017B
0170
017F
0182
0183
0184
0185
0186
0187
0189
018E
0190
0192
0194
0196
o 19B
0190
o19F
OlAl
01A3
A2 008B R
DO co
DO CO
24 03
BA 03F7
EE
5A
59
5B
58
8A fO
80 26 003f
OA E4
74 38
FE CC
74 76
c6 06 0041
FE CC
74 6E
fE CC
75 03
E9 0240 R
R 7F
R 00
J1H:
J
1 E:
MOV
ROL
RDL
AND
MDV
OUT
PDP
POP
PDP
POP
MOV
AND
OR
JZ
OEe
JZ
Mav
DEC
JZ
aEC
JNZ
JMP
LASTRATE. AL
AL,1
AL.1
SAVE NEW TRANSFER RATE FOR NEXT CHECK
~OVE
TRANSFER RATE DATA TO LOW BITS
AL, TRAN_MSK
DX,03F7H
DX,AL
CLEAR ALL BITS BUT DATA TRANSFER RATE BITS
ADDRESS FLOPPY CONTfWL REGISTER
SeT DATA TRANSFER RATE
DX
ex
~ESTORE
PARAMETERS
BX
AX
DH, AL
,
SAVE
#
SECTORS IN DH
MOTOR STATUS.07fH
;
I NolCATE A READ OPERATION
AH.AH­
; AH:O
~~
SK_RESET
; AH:l
DISK_STATUS
OISKETTE_STATUS,O
;
RESET THE STATUS INDICATOR
AH
; AHo::2
DISK READ
AH
-
J2
DISK_WRITE
; AH=3
TEST_D1SK_VERf
Diskette 5·91

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents