IBM AT 5170 Technical Reference page 272

Table of Contents

Advertisement

[BM Personal COMpute,.. NACRO Allsembler
Version 2.00
1-4
DSKETTE --
06/10/85
DISKETTE BIOS
06-10-65
312
PAGE
313
314
: -
~ ~ ~~~~~~~T ~--
-
~~~~~ -;~~-~~~;~;;~- ~;~;~~:--
315
31.
;
ON EXIT:
.DSKETTE_STATUS, CY REFLECT STATUS OF OPERATION
317
~
7;;-
~~~~;
------
;~~~
----
~~~~
--------------------------------------------------­
318
007E
319
007E BA 03F2
-
NOV
ox, 03F2H
ADAPTER CONTROL PORT
320
0081 FA
CL I
NO
INTERRUPTS
321
0082 AO 003F R
NOV
AL,ClMOTOR STATUS
GET DIGITAL OUTPUT REGISTER REFLECTION
322
0085 24 3F
AND
AL,OO!!! tTIB
KEEP SELECTED AND MOTOR ON BITS
323
0087 CO CO 04
ROL
AL, 4
MOTOR VALUE TO HIGH NIBBLE
324
DR I VE SELECT TO LOW NIBBLE
325
008A OC 08
OR
AL,OOOOIOOOB
TURN ON
I
NTERRUPT ENABLE
326
008C EE
OUT
DX,AL
RESET THE ADAPTER
327
0080 C6 06 003E R 00
NOV
.SEEK STATUS,O
SET RECALIBRATE REQUIRED ON ALL DRIVES
328
0092 EB 00
$+2
-
)!tAIT FOR
110
329
0094
04
OR
AL,OOOOOIOOB
TURN OFF RESET BIT
OC
"".
330
0096 EE
OUT
OX ,AL
RESET THE ADAPTER
331
0097 FB
5T I
ENABLE THE
INTERRUPTS
332
0096 E8 02HC R
CALL
WA[T
[NT
WA I T FOR THE
[NTERRUPT
333
009B 72 44
DR ERR
I F ERROR. RETURN IT
334
0090 B9 OOCO
"OV
CX-;-I 1000000B
CL
=
EXPECTED 'lINEC_STATUS
335
"C
336
OOAO
NXT DRV:
337
OOAO 51
-
PUSH
CX
SA VE FOR CALL
338
OOA I B8 OOEO R
"OV
AX, OFFSET DR POP ERR
~OAD
NEC_OUTPUT ERROR ADDRESS
339
00A4 50
PUSH
AX
- ­
340
00A5 Bo4 08
"OV
AH,08H
SENSE
INTERRUPT STATUS COMMAND
341
00A7 E8 07BD R
CALL
NEC ouTPUT
342
OOAA 58
POP
AX -
THROW AWAY ERROR RETURN
343
OOAB
E8
08A4 R
CALL
RESULTS
READ I N THE RESULTS
30404
OOAE 59
POP
ex
RESTORE AFTER CALL
345
OOAF 72 30
DR ERR
ERROR RETURN
3046
OOBI
3A OE 0042 R
c••
TEST FOR DR I VE READY TRANS I T I ON
"e
g~-;-~~~C_STATUS
347
00B5 75 2A
"NZ
EVERYTH I NG OK
348
00B7 FE C 1
INC
eL­
NEXT EXPECTED .NEC STATUS
349
00B9 80 F9 C3
C••
CL,JIOOOOIIB
ALL POSS I BLE DR I VES CLEARED
350
OOBC 76 E2
"BE
NXT_DRV
FALL THRU
IF 11000l00B OR
>
351
352
SEND SPEC I
F'(
COMMAND TO NEC
353
354
OOBE B8 0008 R
NOV
AX, OFFSET RESBAC
LOAD ERROR ADDRESS
355
OOC I 50
PUSH
AX
PUSH NEC OUT ERROR RETURN
356
00C2 B4 03
NOV
AH,03H
SPEC I
F'(
COMMAND
357
00C4 E8 07BO R
CALL
NEC OUTPUT
OUTPUT THE COMMAND
358
00C7 2A 02
SUB
DL.DL
FIRST SPECIFY BYTE
359
00C9 E8 06CC R
CALL
GET PARM
GET PARAMETER TO AH
360
OOCC E8 07BD R
CALL
NEC-OUTPUT
OUTPUT THE COMMAND
361
OOCF B2 01
"OV
DL.
T
SECOND SPEC [FY BYTE
362
000 I E8 06CC R
CALL
GET PARM
GET PARAMETER TO AH
363
0004 E8 07BD R
CALL
NEC-OUTPUT
OUTPUT THE COMMAND
364
0007 58
POP
AX
POP ERROR RETURN
365
0008
RESBAC:
366
0008 E8 0620 R
CALL
SETUP _END
VAR I OUS CLEANUPS
367
OODB 8B DE
"OV
BX, S [
GET SAVED AL TO BL
368
0000 8A C3
"OV
AL,BL
PUT BACK FOR RETURN
369
OOOF C3
RET
310
371
ODED
DR POP ERR:
372
OOEO 59
-
-
POP
ex
CLEAR STACK
373
OOEI
DR_ERR:
374
OOEI
80 OE 0041 R 20
OR
ClDSKETTE STATUS,BAD NEC
SET ERROR CODE
375
00E6 EB FO
SHORT RESBAC
-
RETURN FROM RESET
"
..
376
00E8
01
SK_RESET
ENDP
377
375
I - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - - - - - - - - - - - - - - - - - - - - - -­
37.
I
DISK_STATUS:
DISKETTE STATUS.
350
351
;
ON ENTRY:
AH
I
STATUS OF PREVIOUS OPERATiON
352
353
;
ON EXIT:
AH. ClDSKETTE STATUS. CY REFLECT STATUS OF PREVIOUS OPERATION.
354
,
- -
-
-
----
-
------
- - -
----
- - - - -
-::
- - - - -
-
- - - - - - - - - - - - - - -
---
- - - --- - -- - - - - - ­
365
00E8
DISK STATUS
PROC
NEAR
386
00E8 88 26 00041 R
-
MOV
'lIDSKETTE STATUS,AH
PUT BACK FOR SETUP END
367
OOEC E8 0620 R
CALL
SETUP END
VAR IOUS CLEANUPS
­
388
OOEF 8B DE
MOV
BX,SI
GET SAVED AL TO BL
389
OOF I 8A C3
MOV
AL,BL
PUT BACK FOR RETURN
390
OOF3 C3
RET
391
00F4
D[ SK_STATUS
ENDP
3'2
,-
- - - - ----
- -
- - - - - - - - ----------------------- - --------- - - - - -- --
---------------­
393
DISK_READ:
DISKETTE READ.
394
395
ON ENTRY:
01
: DRIVE.
39.
S
I-H
I
:
HEAD.
397
S I-LOW :
OF SECTORS
395
E5
I
8UFFER SEGMENT
39.
[BP]
1
SECTOR'
400
[BP+ I]
: TRACK #
401
[8P+2]
: BUFFER OFFSET
402
403
ON EXIT:
CIIDSKETTE_STATUS. CY REFLECT STATUS OF OPERATION
404
~ ~~;
-
~~;~
-
- - - - -
-
;~~~
--
- -
~~~~
- - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
-
- -
--
- - - - -
- - - - - - - - - -
0405
00F4
406
00F4 80 26 003F R 7F
-
AND
.MOTOR STATUS,OlllllliB ;
INDICATE A READ OPERATION
407
00F9 B8 E646
MOV
AX, OE646H
I
AX :::: NEC COMMAND. DMA COMMAND
408
OOFC E8 035C R
CALL
RD_WR_VF
; COMMON READtWRITE/VERIFY
409
OOFF C3
RET
410
0100
01 SK_READ
ENDP
411
;
- -
---
- -
------
- - - -
----
- - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - -­
412
I
DISK_WRITE:
DISKETTE WRITE.
413
;
414
ON ENTRY:
01
: DRIVE.
415
S
I-HI
: HEAD #
41.
SI -LOW
1
#
OF SECTORS
417
ES
:
SUFFER SEGMENT
415
[BP]
:
SECTOR.
419
[BP+ I]
: TRACK.
420
[BP+2]
, BUFFER OFFSET
421
422
ON EX[T:
'lIDSKETTE_STATUS, CY REFLECT STATUS OF OPERATION
423
~ ~ ~~ -;~~;~-
- -
---
~~~~
-
---~~~~---------------
- - - - - - - - - - - - - - - - - - - - ---------------­
424
0100
425
a I 00 B8 C54A
-
MOV
AX. OC504AH
, AX :::: NEC COMMAND,
DMA COMMANO
5-100
DISKETTE

Advertisement

Table of Contents
loading

Table of Contents