home *** CD-ROM | disk | FTP | other *** search
- org $10f5a6
- load $10f5a6
-
- P MOVEM.L d1-a6,-(SP)
- ext.l d1
- ext.l d2
- mulu #$200,d1
- mulu #$200,d2
- lea buf(pc),a2
- lea CurrTrk(pc),a4
- sf 1(a4)
- LEA $BFD100,A5
- LEA $DFF000,A6
- addq.w #3,d0
- move.w d0,.DRV-CurrTrk(A4)
- MOVE.L d2,-(a7)
- MOVE.L A0,-(A7)
- MOVE.L a1,.Diskbuf-CurrTrk(A4)
- divu #$200,d1
- moveq #0,d7
- move.w d1,d7
- clr.w d1
- swap d1
- move.l d1,-(A7)
- .nxt move.w #7,(A7)
- .t subq.w #1,(a7)
- bmi.s .err
- BSR.B .loadsector
- tst.w d0
- bne.s .t
- lea $200(a0),a3
- add.w 2(a7),a0
- move.l 4(a7),a1
- .t1 move.b (a0)+,(a1)+
- subq.l #1,8(a7)
- beq.s .end
- cmp.l a3,a0
- blt.s .t1
- move.l a1,4(a7)
- clr.w 2(a7)
- addq.l #1,d7
- bra.s .nxt
- .end moveq #0,d0
- .exit move.b #$ff,(a5)
- and.b #$87,(a5)
- move.b #$ff,(A5)
- add.w #12,a7
- movem.l (A7)+,d1-a6
- rts
- .err ST (A4)
- bra.s .exit
-
- .loadsector
- MOVE.L D7,D0
- DIVU #11,D0
- tst.b 1(a4)
- beq.s .wg
- CMP.B (A4),D0
- BEQ.W .trkfnd
- .wg st 1(a4)
- move.w #$4489,a0
- MOVE.W a0,$7e(A6)
- MOVE.W #$7F00,$9e(A6)
- MOVE.L #$55555555,D2
- .l0 move.b #$7D,d1
- MOVE.B d1,(a5)
- move.w #0,d3
- .DRV equ *-2
- bclr d3,d1
- MOVE.B d1,(a5)
- move.w #30,d4
- .rr bsr.w timeita
- BTST #5,$F01(A5)
- dbeq d4,.rr
- tst.w d4
- bmi.w error1
- cmp.b #-1,(A4)
- Bne.S .notrk0
- .l1 BTST #4,$F01(A5)
- BEQ.S .trk0
- BSR.W StepheadBack
- BRA.S .l1
- .trk0 CLR.B (A4)
- .notrk0 MOVE.L D0,D1
- BCLR #0,D1
- BCLR #0,(A4)
- CMP.B (A4),D1
- BEQ.S .oktrk
- BCS.S .l2
- BSR.W StepHeadFor
- ADDQ.B #2,(A4)
- BRA.S .notrk0
- .l2 BSR.W StepheadBack
- SUBQ.B #2,(A4)
- BRA.S .notrk0
- .oktrk BTST #0,D0
- BEQ.S .Sside0
- ADDQ.B #1,(A4)
- BCLR #2,(A5)
- .Sside0 MOVEQ #11,D3
- MOVE.W #$4000,$24(A6)
- move.l #0,A3
- .Diskbuf equ *-4
- MOVE.L A3,$20(A6)
- CLR.L $440(A3)
- MOVE.W #$8210,$96(A6)
- MOVE.L #$29500,$9c(A6)
- move.w #$9960,d4
- MOVE.W d4,$24(A6)
- MOVE.W d4,$24(A6)
- .waitb TST.L $440(A3)
- BEQ.S .waitb
- .Nexts CMP.W (A3)+,a0
- BEQ.S .Nexts
- SUBQ.W #2,A3
- BSR.S Decode1L
- MOVE.L D5,D4
- SWAP D4
- CMP.B (A4),D4
- BEQ.S .oksector
- ST (A4)
- .error1 BRA.W .l0
-
- .oksector
- LSR.W #8,D5
- LSL.W #2,D5
- MOVE.W D5,D6
- ADD.W #$28,A3
- BSR.S Decode1L
- MOVE.L A3,(A2,D6.W)
- MOVEQ #$7F,D4
- .decode MOVE.L (A3),D1
- MOVE.L $200(A3),D6
- AND.L D2,D1
- AND.L D2,D6
- EOR.L D1,D5
- EOR.L D6,D5
- ADD.L D1,D1
- OR.L D1,D6
- MOVE.L D6,(A3)+
- DBF D4,.decode
- TST.L D5
- BNE.S .error1
- SUBQ.B #1,D3
- BEQ.S .trkfnd
- add.w #$200,a3
- .w btst #1,$1f(a6)
- beq.s .w
- .w2 CMP.W (A3)+,a0
- BNE.S .w2
- BRA.S .Nexts
- .trkfnd SWAP D0
- LSL.W #2,D0
- MOVE.L (A2,d0.w),A0
- moveq #0,d0
- RTS
- error st (A4)
- moveq #-3,d0
- rts
- error1 st (A4)
- moveq #$1e,d0
- rts
- Decode1L
- MOVE.L (A3)+,D4
- MOVE.L (A3)+,D5
- AND.L D2,D4
- AND.L D2,D5
- ADD.L D4,D4
- OR.L D4,D5
- RTS
- StepheadBack
- BSET #1,(A5)
- BRA.S Stepit
- StepHeadFor
- BCLR #1,(A5)
- Stepit BCLR #0,(A5)
- BSET #0,(A5)
- bra.s timeit
-
- timeita MOVE.B #$40,$600(A5)
- bra timeit1
- timeit MOVE.B #$10,$600(A5)
- timeit1 MOVE.B #0,$500(A5)
- MOVE.B #$19,$E00(A5)
- .w1 BTST #0,$E00(A5)
- BNE.S .w1
- rts
- CurrTrk dc.w $FF00
- buf blk.b $2c,0
- jend
-