IBM AT 5170 Technical Reference page 279

Table of Contents

Advertisement

IBM Person.] Computer MACRO Assembler
Vers,on 2.00
1-11
OSKETTE -- 06/10/85
DISKETTE BIOS
06-10-85
I I 10
1111
; -----
SEND OUT THE PARAMETERS TO THE CONTROLLER
112
113 0408 E8 07BO R
CALL
NEC OUTPUT
OUTPUT THE OPERAT I ON COMMAND
114040888 C6
"OV
AX,SI
AH
=
HEAD #
I 15 0400 88 OF
"OV
eX,DI
BL
=
DRIVE #
I 16 04DF CO E4 02
SAL
AH,2
MOVE IT TO BIT 2
I I 1 04E2 80 E4 04
AND
AH,OOOOOl008
ISOLATE THAT BIT
I 18 04E5 OA E3
OR
AH,BL
OR
I N THE DR I VE NUMBER
119 04E7 E8 0180 R
CALL
NEC OUTPUT
FALL THRU CY SET IF ERROR
I
120 04EA 58
POP
BX -
THROW AWAY ERROR RETURN
1121
04E8
1122 04E8 C3
RET
112304EC
NEC_INlT
ENOP
1124
- -
- - ----- -
---------
--- - - ----- -
--­
1125
; RWV_COM:
THIS ROUTINE SENDS PARAMETERS TO THE NEC SPECIFIC TO THE
1126
;
READ/WRITE/VERIFY OPERATIONS.
121
;
126
;
ON EXIT:
~OSKETTE_STATUS,
CY REFLECT STATUS OF OPERATION
129
~;~
-
;~~-;~~;----~~~~
--------- ------ - -- - - --
-
-
-
- - - --- - - - - - -
- -
--------- -
- - - ---- -­
r
30 04EC
131 04EC 88 052F R
-
MOV
AX,OFFSET ER 2
LOAD ERROR ADDRESS
132 04EF 50
PUSH
AX
-
PUSH NEC OUT ERROR RETURN
133 04FO 8A 66 01
MOV
AH, [BP+ 1]
OUTPUT TRACK
#
134 04F3 E8 0180 R
CALL
NEC OUTPUT
135 04F6 8B C6
MOV
AX,SI
OUTPUT HEAD
#
136 04F8 E8 0180 R
CALL
NEC OUTPUT
137 04F8 8A 66 00
MOV
AH,Tep]
OUTPUT SECTOR
#
138 04FE E8 0180 R
CALL
NEC OUTPUT
139 0501
82 03
MOV
DL,3
8YTES/SECTOR PARAMETER FROM BLOCK
1140 ('503 E8 06CC R
CALL
GET PARM
• TO THE NEC
1141
0506 E8 0180 R
CALL
NEC-OUTPUT
OUTPUT TO CONTROLLER
114205098204
MOV
DL.4
EaT PARAMETER FROM BLOCK
1 143 0508 E8 06CC R
CALL
GET PARM
• TO THE NEC
1144 050E E8 01BO R
CALL
NEC-OUTPUT
OUTPUT TO CONTROLLER
11450511
8A 85 0090 R
MOV
AL,iOSK STATE[OI]
GET DRIVE STATE VALUE
1146 0515 84 IB
MOV
AH,OIBH
1.2/1.2 DRIVE GAP LENGTH
11410511 24 CO
AND
AL. RA TE MSK
STRIP OFF HIGH BITS
1148 0519 74 08
JZ
R 15
-
IF SO JUMP
1149
0518 84 23
MOV
AH,023H
320.360' 1 .2 OR
I
VE GAP LENGTH
1150 0510 FE C8
DEC
AL
CHECK FOR 320 MEDIA IN 1.2 DRIVE
1151
051F 74 02
JZ
RI5
IF SO JUMP
1152
11530521 842A
AH,02AH
360/360 DRIVE GAP LENGTH
1154 0523
R15;
1155 0523 E8 0780 R
CALL
NEC OUTPUT
115605268206
"OV
OL.6
DTL PARAMETER FROM BLOCK
1151 0528 E8 06CC R
CALL
GET PARM
TO THE NEC
158 0528 E8 0180 R
CALL
NEC-OUTPUT
OUTPUT TO CONTROLLER
159 052E
58
POP
AX -
THROW AWAY ERROR EXIT
160 052F
161
052F
C3
RET
162 0530
RWV_COM ENDP
163
----------­
164
j
NEC_TERM:
TH
I S ROUT I NE WA ITS FOR THE OPERAT! ON THEN ACCEPTS THE STATUS
165
FROM THE NEC FOR THE READ
I
WR I TE!VER I FY ! FORMA T OPERAT! ON.
166
161
; _
~N _:~~~~
______
~~:~:~~:-=:~~~~::_:~ _~::~::::~ _:~
A
~~:
_
~~
_
~~:~~~ ~~~
_______________ _
166
169 0530
NEC _TERM
PROC
NEAR
110
111
LET THE OPERAT ION HAPPEN
112
113 0530 56
PUSH
S 1
SAVE HEAD
#.
#
OF SECTORS
1140531
E8 081C R
CALL
WAIT
INT
WA I T FOR THE INTERRUPT
175 0534 9C
PUSHF
116 0535 E8 08A4 R
CALL
RESULTS
GET THE NEC S T A TUS
111 0538 12 45
JC
SET_END_POP
118 053A 90
POPF
1119053812 3A
JC
SET_END
I LOOK FOR ERROR
1 180
1181
;-----
CHECK THE RESULTS RETURNED BY THE CONTROLLER
1182
1183 0530 FC
CLO
SET THE CORRECT 0 I RECT I ON
1184 053E 8E 0042 R
"OV
S I ,OFFSET (\IoNEC STATUS
POINT TO STATUS FIELD
11850541 AC
LOOS
(\INEC STATUS
-
GET STO
1186054224 CO
AND
AL,lToOOOOOB
TEST FOR NORMAL TERMINATION
1181 0544 14 31
JZ
SET END
11880546 3C 40
C"P
AL,Ol0000008
TEST FOR ABNORMAL TERMINATION
11890548 15 27
JNZ
JI6
NOT ABNORMAL, BAD NEe
I
190
1191
;-----
ABNORMAL TERMINAT!ON,
FINO OUT WHY
I 192
1193 054A AC
LOOS
!1'NEC STATUS
: GET STI
I 194 0548 DO EO
SAL
AL,
I
; TEST FOR EDT FOUND
1195 05408404
"OV
AH, RECORD NOT FND
1196 054F 12 22
JC
JI9
- ­
11910551 CO EO 02
SAL
AL,2
1198055484 10
"OV
AH,BAD eRe
119905561'218
JC
J19
­
1200 0558 DO EO
SAL
AL,I
TEST FOR OMA OVERRUN
1201
OSSA 84 08
MOV
AH,BAD DMA
1202 055C 72
15
JC
J19
­
1203 055E CO EO 02
SAL
AL,2
TEST FOR RECORD NOT FOUND
1204 0561
84 04
"OV
AH, RECORD NOT FNO
1205 0563 72 OE
JC
JI9
- ­
1206 0565 DO EO
SAL
AL, I
1201' 0561 84 03
"OV
AH, WR I TE PROTECT
TEST FOR WR
I
TE_PROTECT
1208 0569 72 08
JC
JI9
­
1209 0568 DO EO
SAL
AL,
I
TEST MISSING ADDRESS MARK
1210 056084 02
"OV
AH, B ....O AODR MARK
1211
056F 72 02
JC
JI9
-
­
1212
1213
NEC MUST HAVE FAILED
12140511
JIB:
12150511 84 20
1216 0513
J 19:
1211 0513 08 26 0041
R
OR
«IDSKETTE_STATUS, AH
1218 0517
SET END:
12190517 80 3E 0041 R 01
-
CMP
¢IDSKETTE_STATUS, I
SET ERROR COND I T I ON
1220 051C F5
C"C
1221
0510 5E
POP
RESTORE HEAD' • • OF SECTORS
1222 051E C3
RET
1223
DISKETTE
5-107

Advertisement

Table of Contents
loading

Table of Contents