home *** CD-ROM | disk | FTP | other *** search
- ADR: equ $c80000
- len: equ $29e0
- trk: equ $66
-
-
- org $70000
- load $70000
- j: move.w #$7fff,$dff09a
- bsr LOAD
- move.w #$e02c,$dff09a
- rts
-
-
- DISKbuffer: dc.l $75000
- STtrk: dc.w 0
- ONtrk: dc.w 0
- RETRY: dc.w 0
- DIREC: dc.w 0
-
- LOAD: lea $dff000,a0
- LEA $BFE001,A1
- LEA $BFD100,A2
- BCLR #7,$0E00(A2)
- CLR.B $0900(A2)
- CLR.B $0800(A2)
- CLR.B $0700(A2)
- ST (A2)
- BCLR #7,(A2)
- BCLR #3,(A2)
- BSR C164
- LEA ADR,A5
- MOVE.L #LEN,D5
- MOVE.L D5,D7
- ADD.L #$000018A7,D7
- DIVU #$18A8,D7
- SUBQ.W #1,D7
- MOVE.W #TRK,STtrk
- BSR C202
- ST (A2)
- BCLR #3,(A2)
- ST (A2)
- rts
-
- C164: BTST #4,(A1)
- BEQ.S C174
- BSET #1,(A2)
- BSR C1BC
- BRA.S C164
-
- C174: CLR.W ONtrk
- RTS
- C17C: MOVE.W STtrk,D4
- BSET #2,(A2)
- BTST #0,D4
- BEQ.S C18E
- BCLR #2,(A2)
- C18E: BCLR #1,(A2)
- LSR.W #1,D4
- SUB.W ONtrk,D4
- BEQ.S C1AE
- BPL.S C1A4
- NEG.W D4
- BSET #1,(A2)
- C1A4: SUBQ.W #1,D4
- C1A6: BSR C1BC
- DBRA D4,C1A6
- C1AE: MOVE.W STtrk,D4
- LSR.W #1,D4
- MOVE.W D4,ONtrk
- RTS
- C1BC: BTST #1,(A2)
- SEQ D0
- CMP.B DIREC,D0
- BEQ.S C1D4
- MOVE.L #$0000011D,D1
- NOT.B DIREC
- BRA.S C1D6
-
- C1D4: MOVEQ #$2F,D1
- C1D6: moveq #0,d0
- move.b $900(a2),d0
- lsl.w #8,d0
- move.b $800(a2),d0
- lsl.l #8,d0
- move.b $700(a2),d0
- cmp.l d1,d0
- bls c1d6
- BCLR #0,(A2)
- BSET #0,(A2)
- CLR.B $0900(A2)
- CLR.B $0800(A2)
- CLR.B $0700(A2)
- RTS
- C202: MOVE.W #8,RETRY
- BSR C17C
- C20C: BTST #5,(A1)
- BNE.S C20C
- MOVE.W #2,$009C(A0)
- MOVE.W #$8210,$0096(A0)
- MOVE.W #$7f00,$009E(A0)
- MOVE.W #$9500,$009E(A0)
- MOVE.W #$a245,$007E(A0)
- MOVE.W #$4000,$0024(A0)
- MOVE.L DISKBUFFER,$0020(A0)
- MOVE.W #$9b00,$0024(A0)
- MOVE.W #$9b00,$0024(A0)
- C23E: btst #6,$bfe001
- beq.L nr
- btst #2,$dff016
- bne.s ff
- btst #2,$dff016
- beq.s *-10
- bra.L nr1
- ff: MOVE.W $1E(A0),D0
- AND.W #2,D0
- BEQ.S C23E
- MOVE.W D0,$009C(A0)
- MOVE.W #$4000,$0024(A0)
- move.l DISKBUFFER,A3
- addq.w #2,a3
- MOVE.L A5,A4
- MOVE.L #$55555555,D3
- MOVE.W (A3)+,D2
- MOVE.W (A3)+,D6
- AND.W D3,D2
- AND.W D3,D6
- ADD.W D2,D2
- OR.W D2,D6
- SWAP D6
- MOVEQ #-1,D4
- MOVE.W #$0629,D6
- C274: MOVE.L $18AC(A3),D1
- AND.L D3,D1
- MOVE.L (A3)+,D2
- AND.L D3,D2
- ADD.L D2,D2
- OR.L D2,D1
- sub.L D1,D4
- MOVE.L D1,(A4)+
- DBRA D6,C274
- MOVE.L $18AC(A3),D1
- AND.L D3,D1
- MOVE.L (A3)+,D2
- AND.L D3,D2
- ADD.L D2,D2
- OR.L D2,D1
- ; NOT.L D4
- CMP.L D4,D1
- BEQ.S C2B0
- SUBQ.W #1,RETRY
- BNE C20C
- btst #6,$bfe001
- beq.s nr
- bra.s c2b1
- C2B0: move.w #$fff,$dff180
- C2B1: SWAP D6
- CMP.W STtrk,D6
- BEQ.S C2C0
- BSR C164
- BRA C202
- nr: rts
- nr1: addq.w #1,sttrk
- bra C202
-
- C2C0: MOVE.L A4,A5
- ADDQ.W #1,STtrk
- DBRA D7,C202
- RTS
-