LOC OBJ
ECE4 FB
feES EB2:AOZ
EtES A04200
ftEe xeo
ECED 7406
ECEF 800E410020
ECF4 C3
ECF5
ECF5 8403
ECF7 E84701
ECfA 8BOI00
ECfD E86eOI
fDOO 880300
ED03 £86601
ED06
E006 C3
E007
E007 A04100
EDOA C3
EDOB
EDOB 8046
EOOO
EOOD E88801
EDI0 B4E6
EDI, E836
ED14
EDl4 B042
E016 EBF5
ED18
E018 800E3F0080
EOI0 B04A
EOIF E8A601
EOZZ B440
E02:4 EB24
E026
ED26 BB0700
E029 E84001
ED2C BB0900
E02F E83AOI
ED32 BeDFOO
E035 E83401
E038 BBII 00
EOlB E9ABOO
£D3E
ED3£ 800£3F0080
E043 804A
E045 E88001
E048 84C5
LINE
SOURCE
2561
STI
; REENABlE THE INTERRUPTS
2562
CAll
CHK_STAT_2
I 00 SENSE
INTERRUPT
STATUS
2563
;
FOLLOWING RESET
2564
HOV
AL,NEt_STATUS
I IGNORE ERROR RETURN AND DO OWN TEST
2565
CHP
AL,otOH
; TEST FOR DRIVE READY TRANSITION
2566
JZ
J7
I EVERYTHING OK
2:567
OR
DISKETTE_STATUS.BAD_NEC
I
SET ERROR CODE
2566
RET
2569
2570
1----- SEND SPECIFY COMMAND TO NEt
2571
2572
J7:
I
DRIVE_READY
2573
HOV
AH.03H
I SPECIFY Cott1Af«)
2574
CALL
NEC_OUTPUT
; OUTPUT THE COMI'IAtIJ
2575
HOV
ex.!
; FIRST BYTE PAR" IN BLOCK
2576
CALL
GET_PARH
,
TO THE NEe CONTROLLER
2577
MOV
BX,]
I SECON) aYTE PARH IN BLOCK
2576
CALL
GET_PARM
,
TO THE NEe CONTROLLER
2579
J8:
I RESET_RET
2580
RET
I RETURN TO CALLER
2581
DISK..RESET
ENDP
2582
2583
;----- DISKETTE STATUS ROUTINE
2584
2585
DISK_STATUS
PROC
NEAR
2586
HOV
AL .DISKETTE_STAl1IS
2587
RET
2588
DISK_STATUS
ENDP
2589
2590
;----- DISKETTE READ
2591
2592
DISK.-REAO
PROC
NEAR
2593
HOY
AL.046H
I READ Cot1t1AND FOR OMA
2594
J9:
I DISK_READ_CONT
2595
CALL
DI1A_SETUP
;. SET UP THE DMA
2596
MOV
AH,OE6H
; SET UP RO COt1I1AND FOR NEC COtfTROLLER
2597
JHP
SHORT
R~COF'H
I GO DO THE OPERATION
2598
DISK_READ
EtIlP
2599
2600
1----- DISKETTE VERIFY
2601
2602
DISK..VERF
PROC
NEAR
2603
HOV
AL,042H
I YERIFY COMHAhI) FOR OMA
2604
JHP
J9
; DO AS IF DISK READ
2605
DISK..YERF
ENDP
2606
2607
,----- DISKETTE FORMAT
2608
2609
DISK_FORMAT
PROC
NEAR
2610
OR
MOTOR_STATUS,80H
I INDICATE WRITE OPERATION
2611
HOY
AL,04AH
; WILL WRITE TO THE DISKETTE
2612
CALL
DMA_SETUP
I SET UP THE OttA
2613
MOV
AH.040H
I ESTABLISH THE FORMAT Cott"IAtI)
2614
JMP
SHORT RW_OPN
;. DO THE OPERATION
2615
JIO:
I CONTINUATION OF RI,COF'H FOR FttT
2616
HOY
BX.7
I GET THE
2617
CALL
GET_PARM
I
BYTES/SECTOR VALUE TO NEC
2618
HOY
BX,9
I GET THE
2619
CALL
GET_PARM
,
SECTORS/TRACK VALUE TO NEC
2620
HOY
BX,15
; GET THE
2621
CALL
GET_PARH
,
GAP LENGTH VALUE TO NEC
2622
MOV
BX.17
• GET THE FILLER BYTE
2623
JHP
Jl.
I
TO THE CONTROLLER
2624
DISK_FORMAT
ENDP
2625
2626
;----- DISKETTE WRITE ROUTINE
2627
2628
DISK_WRITE
""OC
NEAR
2629
OR
HOTOR_STA TUS, BOH
J
INDICATE WRITE OPERATION
2630
HOY
AL,04AH
;. DMA WRITE COMMAND
2631
CALL
DMA_SETUP
2632
MOV
AH,OC5H
I NEC CotI1AHD TO WRITE TO DISKETTE
2633
DISK_WRITE
ENDP
2634
2635
1----- ALLOIol WRITE ROUTINE TO FALL INTO RI'COPN
2636
2637
1---------------------------------------------------------------
5-66 System BIOS