IBM AT 5170 Technical Reference page 280

Table of Contents

Advertisement

r8M Personal
Computer NACRO ASl!lembler
Verl!llo" 2.00
1-12
OSKETTE --
06/10/85
DISKETTE 810S
06-10-85
1224 057F
SET END POP:
1225 057F 90
-
-POPF
1226 0580 E8 F5
JMP
SHORT SET END
1227 0582
NEC TERM
E N D P ­
1228
1229
;
-
~~;~;~ ~
-
-----
-
~~; ~~~ ~ ~~ -~; ~;~
-
~;~~
-
~~~~~~~;~~
-
~;~~~;; ~~~
- - - -
------­
1230
- -
;~~~
----
- - - - - - - - - - - -- - - - - -- - -
--
- - - - - - - - -
-
.
--------
-
------
- -- - - - - -- ­
1231
0582
~~; ~;~
~~~~
1232 0582 80 3E 0041 R 00
CMP
II!IDSKETTE STATUS,O
CHECK FOR ERROR
1233 0587 75 27
1234 0589 80 80 0090
1235 058E F6 85 0090
10
04
JNZ
~~ST
SETBAC
-
:g~~-;~~+~~g:
I :
~~e-g~~
I F ERROR JUMP
~~
I
~~Rg~+E~~7~E~E~
I A AS DE TERM I NED
1236 0593 75
18
JNZ
SETeAC
-
IF DETERMINED NO TRY TO DETERMINE
1237 0595 8A 85 0090 R
1238 0599 24 CO
~~6
~t:~~i~_~~~TE(DI]
~~~~ ~~~~ERATE
1239 0598 3C 80
CMP
AL,RATE-250
CHECK FOR
t
.2M
1240 0590 75 OC
JNE
N 12
-
;
MUST BE 1.2
1241 059F 80 A5 0090 R FD
1242 05A4 80 80 0090 R 04
~~D
:g;~_;~~~~~g:I:~~~ 6~~-C~P~ARK D~I~~R~E~~~M~~~~AT
CAPABILITY
1243 05A9 E8 05
JMP
SHORT SET8AC
-
;
BACK
1244
1245 05A8
1246 05A9 80 80 0090 R 06
OR
II!IDSK_STATE{DI],DRV_DET+FMT_CAPA; TURN ON DETERMINED
&
FMT CAPA
1247
1248 0590
SETBAC:
1249 0580 C3
RET
12500581
DSTATE
ENDP
1251
- - - -
- - - -
---------------
--------- ----­
1252
; RETRY:
DETERM I NES WHETHER A RETRY
I S NECESSARY.
I F RETRY
IS REQU I RED
1253
,
THEN STATE INFORMHION IS UPDATED FOR RETRY.
1254
1255
; ON EXIT:
CY
=
I FOR RETRY, CY
=
0 FOR NO RETRY
1256
1-------------- - ---------- ------------ - - - ------------ ---------------- - - - - - - - -- ­
1257 0581
RETRY
PROC
NEAR
1258 0581
80 3E 0041 R 00
CMP
IIItDSKETTE STATUS,O
GET STATUS OF OPERATION
!
259 0586 74 39
JZ
NO RETRY-
,
SUCCESSFUL OPERATION
1260 0588 80 3E 0041 R 80
CNP
II!IDSKETTE STATUS,TlME OUT
I
IF TINE OUT NO RETRY
1261 0580 74 32
JZ
NO RETRY-
­
1262 05BF 8A A5 0090 R
MDV
AH~II!IDSK
STATE(OI
J
GET MEDIA STATE OF DRIVE
1263 05C3 F6 C4 10
TEST
AH,MED DET
ESTABLISHED/DETERMINED?
1264 05C6 75 29
JNZ
NO RETRY
IF ESTABLISHED STATE THEN TRUE ERROR
1265 05C8 80 E4
CO
AND
AH~RATE
MSK
I SOLATE RATE
1266 05C8 8A 2E 0069
R
MOV
CH,Il'ILASTRATE
GET START OPERATION STATE
1267 05CF CO C5 04
ROL
CH,4
TO CORRESPONDING 81TS
1268 0502 80 E5 CO
AND
CH,RATE MSK
ISOLATE RATE BITS
1269 0505 3A EC
CMP
CH,AH-
ALL RATES TRIED
1270 0507 74
18
JE
NO_RETRY
IF YES, THEN TRUE ERROR
1271
1272
SETUP STATE
INDICATOR FOR RETRY ATTEMPT TO NEXT RATE
1273
000000008 (500)
->
100000008 (250)
1274
100000008 (250)
->
OIOOOOOOB
(300)
1275
010000008 (300)
->
000000008
(500)
1276
1277 0509
eo
FC 01
CMP
AH,RATE_500+ I
;
SET CY FOR RATE 500
1278 05DC DO DC
RCR
AH,I
;
TO NEXT STATE
1279 050E 80 E4 CO
AND
AH,RATE NSK
;
KEEP ONLY RATE BITS
1280 05EI
80 A5 0090 R IF
AND
tlDSK STATE[Dl] ,NOT RATE MSK+DBL STEP
; RATE, OBL STEP OFF
1281 05E6 08 A5 0090 R
OR
Il'IDSK-STATE[DI] ,AH
-
TURN ON NEW RATE
1282 05EA C6 06 0041
R 00
MOV
Il'IDSKETTE STATUS,O
RESET STATUS FOR RETRY
1283 05EF F9
STC
-
SET CARRY FOR RETRY
1284 05FO C3
RET
RETRY RETURN
1285
1286 05FI
NO RETRY:
1287 05FI
F8
-
CLC
CLEAR CARRY NO RETRY
1288 05F2 C3
RET
NO RETRY RETURN
1289 05F3
RETRY
ENDP
1290
.
-- - - -- -
- -
-------------- --------------------- - - - - - - -
- -
- - -- - - - - - --- --
--------
1291
; NUM_TRANS:
THIS ROUTINE CALCULATES THE NUMBER OF SECTORS THAT WERE
1292
;
ACTUALLY TRANSFERRED TO/FROM THE DISKETTE.
1293
1294
ON ENTRY:
[SP+
1] "
TRACK
1295
S I-HI
=
HEAD
1296
[8P)
=
START SECTOR
1297
1298
ON EXIT:
AL
=
NUMSER ACTUALLY TRANSFERRED
1299
1300 05F3
~~~-;~~~~----- --;~~~---- ~~~~------
1301 05F3 32 CO
-
.XOR
AL,AL
CLEAR FOR ERROR
1302 05F5 80 3E 0041
R
00
CMP
IlIDSKETTE STATUS,O
CHECK FOR ERROR
1303 05FA 75 23
JNZ
NT OUT
-
I F ERROR 0 TRANSFERRED
1304 05FC 82 04
MoV
DL74
SECTORS/TRACK OFFSET TO DL
\ 305 05FE E8 06CC R
CALL
GET P ARM
AH "
SECTORS/TRACK
1306 0601
8A
IE 0041
R
MDV
8L,iiNEC STATUS+5
GET END I NG SECTOR
1307 0605 88 CE
MOV
CX,SI-
CH
=
HEAD # STARTED
1308 0607 3A 2E 0046 R
CMP
CH,Il'INEC STATUS+4
GET HEAD ENDED UP ON
1309 0608 75 OB
JNZ
DIF_HD -
IF ON SAME HEAD. THEN NO ADJUST
1310
13110600
SA
2E 0045
R
MaY
CH,II!INEC STATUS+3
GET TRACK ENDED UP ON
13120611
3A 6E 01
eMP
CH, [BP+
TJ
lSI T ASKED FOR TRACK
1313 0614 14 04
JZ
SAME_TRK
I
F"
SAME TRACK NO
!
NCREASE
1314
1315061602 DC
AOO
BL,AH
ADD SECTORS/TRACK
1316 0618
DIF_HD:
1317 0618 02 DC
AOO
BL,AH
ADD SECTORSITRACK
1318061A
SAME TRK:
1319 061A 2A 5E 00
-
SUS
8L,18P]
SUBTRACT START FROM END
1320 0610
SA
C3
MaY
AL,8L
TO AL
1321
1322 061F
1323 061F C3
RET
1324 0620
NUM_TRANS
ENOP
1325
;
--- - - ------ - - ------------- - - -------------- - - - - - - - - - - - - - - ----- --- - - - -
--------- ­
1326
SETUP _END:
RESTORES OMOTOR COUNT TO PARAMETER PROV IDEO
!
N T ASLE AND LOADS
1321
;
iIIDSKETTE_STATUS-TO AH, AND SETS CY.
1328
1329
;
ON EXIT:
AH, II!IDSKETTE_STATUS, CY REFLECT STATUS OF OPERA T I ON
1330
.
- -
- - ------- - - ---------------------------- - - - - - - - - - - --- - -­
1331 0620
SETUP END
PROC
NEAR
1332 0620 82 02
-
MOV
DL,2
GET THE MOTOR WA I T PARAMETER
1333 0622 50
PUSH
AX
SAVE NUNBER TRANSFERRED
1334 0623 E8 06CC R
CALL
GET PARM
1335 0626 88 26 0040 R
MOV
.MOTOR COUNT, AH
STORE UPON RETURN
1336 062A 58
POP
AX
-
RESTORE NUMBER TRANSFERRED
1337 0628 8A 26 0041 R
MOV
AH,.DSKETTE_STATUS
GET STATUS OF OPERATION
5-108
DISKETTE

Advertisement

Table of Contents
loading

Table of Contents