home *** CD-ROM | disk | FTP | other *** search
- ***********************************
- * BLOCK reader/writer for
- * AMIGA DOS
- ***********************************
- j: move.l #0,d0 ;Drive number
- move.l #0,d1 ;Block number to start from
- move.l #4,d2 ;Blocks to read/write
- move.l #$8000,d3 ;$8000 drive on,0 skip turn on,+1 write
- lea $40000,a0 ;data address
- lea $75000,a1 ;diskbuffer address
- lea $800000,a6
- move.w #$7fff,$dff09a
- move.w #$87f0,$dff096
- bsr LOAD
- move.w #$83f0,$dff096
- move.w #$e02c,$dff09a
- rts
-
-
-
- LOAD: MOVEM.L D1-D7/A0-A5,-(SP)
- LINK A6,#-$24
- MOVE.W D0,D4
- AND.W #3,D4
- MOVE.W D4,-$24(A6)
- MOVE.W D1,-$22(A6)
- MOVE.W D2,-$20(A6)
- MOVE.W D3,-$1E(A6)
- MOVE.L A0,-$1C(A6)
- MOVE.L A1,-$18(A6)
- ROR.W #2,D0
- AND.W #1,D0
- ADDQ.W #1,D0
- MOVE.W D0,-$14(A6)
- MOVEQ #$1E,D0
- MOVE.W D2,D3
- BEQ CEA
- ADD.W D1,D3
- CMP.W #$6E0,D3
- BGT CEA
- AND.L #$FFFF,D1
- DIVU #11,D1
- CMP.W #1,-$14(A6)
- BEQ.S C58
- ADD.W D1,D1
- C58: MOVE.W D1,-$12(A6)
- SWAP D1
- MOVE.W D1,-$10(A6)
- BSR C6B8
- C66: MOVE.W -$10(A6),D0
- MOVEQ #11,D1
- SUB.W D0,D1
- CMP.W -$20(A6),D1
- BLE.S C78
- MOVE.W -$20(A6),D1
- C78: MOVE.W D1,-14(A6)
- BSR CF4
- BNE.S CBC
- CMP.B #1,-$1D(A6)
- BNE.S C94
- BSR C474
- BSR C1D6
- BNE.S CBC
- C94: MOVE.W -$20(A6),D0
- SUB.W -14(A6),D0
- BEQ.S CBC
- MOVE.W D0,-$20(A6)
- MOVE.W -14(A6),D0
- LSL.L #8,D0
- ADD.L D0,D0
- ADD.L D0,-$1C(A6)
- CLR.W -$10(A6)
- MOVE.W -$14(A6),D0
- ADD.W D0,-$12(A6)
- BRA.S C66
-
- CBC: MOVE.L D0,-(SP)
- BSR C68A
- BSR C584
- MOVE.L (SP)+,D0
- BEQ.S CEA
- MOVEQ #0,D1
- MOVE.W -$12(A6),D1
- CMP.W #1,-$14(A6)
- BEQ.S CDA
- LSR.W #1,D1
- CDA: MULU #11,D1
- ADD.W -$10(A6),D1
- ADD.W -6(A6),D1
- MOVE.L D1,$28(SP)
- CEA: UNLK A6
- TST.L D0
- MOVEM.L (SP)+,D1-D7/A0-A5
- RTS
-
- CF4: MOVEQ #4,D4
- CF6: CLR.W -4(A6)
- CLR.W -6(A6)
- CLR.W -8(A6)
- MOVE.W -$12(A6),D2
- BSR C6D2
- BNE C1BE
- MOVEQ #$1D,D0
- BTST #2,$BFE001
- BEQ C1BE
- MOVE.L -$18(A6),A5
- LEA $400(A5),A5
- MOVE.L #$AAAAAAAA,(A5)
- MOVE.W #$4489,4(A5)
- BSR C3F8
- BSR C584
- BSR C254
- BNE C1BE
- MOVE.W -12(A6),D0
- BEQ.S C194
- MULU #$440,D0
- LEA 6(A5),A0
- BSR C614
- LEA $DFF01E,A4
- BSR C2AC
- BNE.S C1CC
- CMP.B #1,-$1D(A6)
- BEQ.S C170
- MOVE.W -6(A6),D0
- SUB.W -14(A6),D0
- BEQ.S C1D0
- C170: MOVE.L -$18(A6),A5
- LEA $400(A5),A5
- MOVE.W -12(A6),D0
- MULU #$440,D0
- ADD.L D0,A5
- MOVE.L #$AAAAAAAA,(A5)
- MOVE.W #$4489,4(A5)
- MOVE.L A5,A0
- BSR C5CA
- C194: MOVE.W -10(A6),D0
- BEQ.S C1B2
- MULU #$440,D0
- LEA 6(A5),A0
- BSR C614
- LEA -2(A6),A4
- CLR.W (A4)
- BSR C2AC
- BNE.S C1CC
- C1B2: MOVE.W -6(A6),D0
- SUB.W -14(A6),D0
- BEQ.S C1D0
- MOVEQ #$1A,D0
- C1BE: MOVE.L D0,-(SP)
- MOVEQ #2,D2
- BSR C6D2
- BSR C726
- MOVE.L (SP)+,D0
- C1CC: DBRA D4,CF6
-
- C1D0: BSR C676
- RTS
-
- C1D6: MOVEQ #4,D2
- CLR.W -6(A6)
- C1DC: BSR C786
- MOVE.L #$64,D0
- BSR C7C6
- MOVEQ #$1C,D0
- BTST #3,$BFE001
- BEQ.S C244
- LEA $DFF000,A0
- MOVE.W #$4000,$24(A0)
- MOVE.L -$18(A6),$20(A0)
- MOVE.W #$6600,$9E(A0)
- MOVE.W #$9100,$9E(A0)
- CMP.W #$50,-$12(A6)
- BCS.S C222
- MOVE.W #$A000,$9E(A0)
- C222: MOVE.W #$8010,$96(A0)
- MOVE.W #2,$9C(A0)
- MOVE.W #$D961,$24(A0)
- MOVE.W #$D961,$24(A0)
- BSR C652
- BEQ.S C244
- DBRA D2,C1DC
-
- C244: MOVE.L D0,-(SP)
- MOVE.L #2,D0
- BSR C7C6
- MOVE.L (SP)+,D0
- RTS
-
- C254: MOVEQ #10,D2
- C256: LEA 6(A5),A0
- MOVE.W #$40,D0
- BSR C614
- BSR C652
- BNE.S C29E
- BSR C442
- BEQ.S C274
- DBRA D2,C256
-
- BRA.S C2A0
-
- C274: BSR C40A
- BNE.S C2A4
- CMP.W -$12(A6),D1
- BNE.S C2A4
- CMP.B #11,D2
- BGE.S C2A4
- CMP.B #11,D3
- BGT.S C2A4
- SUBQ.B #1,D3
- MOVE.W D3,-12(A6)
- MOVE.W #11,-10(A6)
- SUB.W D3,-10(A6)
- MOVEQ #0,D0
- C29E: RTS
-
- C2A0: MOVEQ #$18,D0
- RTS
-
- C2A4: MOVEQ #$1B,D0
- RTS
-
- C2A8: MOVEQ #$19,D0
- RTS
-
- C2AC: MOVE.L -$18(A6),A5
- LEA $400(A5),A5
- MOVE.W -8(A6),D0
- MULU #$440,D0
- ADD.L D0,A5
- MOVE.L #$1770,D0
- BSR C7E8
- C2C8: BTST #1,1(A4)
- BNE C3D0
- BSR C7DA
- BEQ C3D4
- TST.L $440(A5)
- BEQ.S C2C8
- BSR C442
- BNE.S C2A0
- BSR C40A
- BNE.S C2A4
- CMP.W -$12(A6),D1
- BNE.S C2A4
- MOVE.W D2,D3
- LEA 8(A5),A0
- BSR C42C
- MOVE.B #11,D0
- SUB.B -7(A6),D0
- LEA 8(A5),A0
- BSR C5BC
- BSR C454
- LEA $30(A5),A0
- BSR C5BC
- CMP.W -$10(A6),D3
- BLT C3C2
- MOVE.W -14(A6),D0
- ADD.W -$10(A6),D0
- CMP.W D0,D3
- BGE C3C2
- BTST #1,1(A4)
- BNE C3D0
- MOVE.W -4(A6),D0
- BTST D3,D0
- BNE C3C2
- CMP.B #1,-$1D(A6)
- BNE.S C380
- BSR C3D8
- MOVE.L -$1C(A6),A0
- ADD.L D1,A0
- LEA $40(A5),A1
- BSR C4D0
- BTST #1,1(A4)
- BNE C3D0
- LEA $40(A5),A0
- MOVE.W #$400,D1
- BSR C45A
- LEA $38(A5),A0
- BSR C5BC
- BSR C3E8
- BRA.S C3C2
-
- C380: LEA $40(A5),A0
- MOVE.W #$400,D1
- BSR C45A
- MOVE.L D0,-(SP)
- LEA $38(A5),A0
- BSR C42C
- CMP.L (SP)+,D0
- BNE C2A8
- BTST #1,1(A4)
- BNE.S C3D0
- BSR.S C3D8
- LEA $40(A5),A0
- MOVE.L -$1C(A6),A1
- ADD.L D1,A1
- BSR C49A
- BSR C3E8
- MOVE.W -6(A6),D0
- CMP.W -14(A6),D0
- BEQ.S C3D0
- C3C2: ADDQ.W #1,-8(A6)
- CMP.W #11,-8(A6)
- BNE C2AC
- C3D0: MOVEQ #0,D0
- RTS
-
- C3D4: MOVEQ #-1,D0
- RTS
-
- C3D8: MOVE.L D3,D1
- SUB.W -$10(A6),D1
- MOVE.L #$200,D0
- MULU D0,D1
- RTS
-
- C3E8: MOVE.W -4(A6),D0
- BSET D3,D0
- MOVE.W D0,-4(A6)
- ADDQ.W #1,-6(A6)
- RTS
-
- C3F8: MOVE.L A5,A0
- MOVEQ #10,D1
- MOVEQ #0,D0
- C3FE: LEA $440(A0),A0
- MOVE.L D0,(A0)
- DBRA D1,C3FE
-
- RTS
-
- C40A: LEA 8(A5),A0
- BSR C42C
- MOVE.W D0,D3
- AND.W #$FF,D3
- MOVE.W D0,D2
- LSR.W #8,D2
- SWAP D0
- MOVE.W D0,D1
- AND.W #$FF,D1
- LSR.W #8,D0
- CMP.B #$FF,D0
- RTS
-
- C42C: MOVE.L (A0)+,D0
- MOVE.L (A0)+,D1
- AND.L #$55555555,D0
- AND.L #$55555555,D1
- ADD.L D0,D0
- OR.L D1,D0
- RTS
-
- C442: BSR C454
- MOVE.L D0,-(SP)
- LEA $30(A5),A0
- BSR C42C
- CMP.L (SP)+,D0
- RTS
-
- C454: LEA 8(A5),A0
- MOVEQ #$28,D1
- C45A: MOVE.L D2,-(SP)
- LSR.W #2,D1
- SUBQ.W #1,D1
- MOVEQ #0,D0
- C462: MOVE.L (A0)+,D2
- EOR.L D2,D0
- DBRA D1,C462
-
- MOVE.L (SP)+,D2
- AND.L #$55555555,D0
- RTS
-
- C474: MOVE.L -$18(A6),A0
- LEA $400(A0),A1
- MOVE.L #$AAAAAAAA,D0
- MOVE.L D0,D1
- MOVE.L D0,D2
- MOVE.L D0,D3
- MOVE.L D0,D4
- MOVE.L D0,D5
- MOVE.L D0,D6
- MOVE.L D0,D7
- C490: MOVEM.L D0-D7,-(A1)
- CMP.L A1,A0
- BNE.S C490
- RTS
-
- C49A: MOVE.L A2,-(SP)
- BSR C590
- ADD.L D0,A0
- SUBQ.L #1,A0
- MOVE.L A0,$50(A2)
- ADD.L D0,A0
- MOVE.L A0,$4C(A2)
- ADD.L D0,A1
- SUBQ.L #1,A1
- MOVE.L A1,$54(A2)
- MOVE.W #$1DD8,$40(A2)
- MOVE.W #2,$42(A2)
- LSL.W #2,D0
- OR.W #8,D0
- MOVE.W D0,$58(A2)
- MOVE.L (SP)+,A2
- RTS
-
- C4D0: MOVEM.L D1-D3/A2,-(SP)
- BSR C590
- MOVE.W D0,D1
- LSL.W #2,D1
- OR.W #8,D1
- MOVE.L A0,$50(A2)
- MOVE.L A0,$4C(A2)
- MOVE.L A1,$54(A2)
- MOVE.W #$1DB1,$40(A2)
- MOVE.W #0,$42(A2)
- MOVE.W D1,$58(A2)
- BSR C584
- MOVE.L A0,$50(A2)
- MOVE.L A1,$4C(A2)
- MOVE.L A1,$54(A2)
- MOVE.W #$2D8C,$40(A2)
- MOVE.W D1,$58(A2)
- BSR C584
- MOVE.L A0,D2
- ADD.L D0,D2
- SUBQ.L #2,D2
- MOVE.L A1,D3
- ADD.L D0,D3
- ADD.L D0,D3
- SUBQ.L #2,D3
- MOVE.L D2,$50(A2)
- MOVE.L D2,$4C(A2)
- MOVE.L D3,$54(A2)
- MOVE.W #$DB1,$40(A2)
- MOVE.W #$1002,$42(A2)
- MOVE.W D1,$58(A2)
- BSR C584
- MOVE.L A1,D3
- ADD.L D0,D3
- MOVE.L A0,$50(A2)
- MOVE.L D3,$4C(A2)
- MOVE.L D3,$54(A2)
- MOVE.W #$1D8C,$40(A2)
- MOVE.W #0,$42(A2)
- MOVE.W D1,$58(A2)
- BSR C584
- MOVE.L D0,D1
- MOVE.L A1,A0
- BSR C5CA
- ADD.L D1,A0
- BSR C5CA
- ADD.L D1,A0
- BSR.S C5CA
- MOVEM.L (SP)+,D1-D3/A2
- RTS
-
- C584: BTST #6,$DFF002
- BNE.S C584
- RTS
-
- C590: LEA $DFF000,A2
- BSR C584
- MOVE.W #$8040,$96(A2)
- MOVE.L #$FFFFFFFF,$44(A2)
- MOVE.W #$5555,$70(A2)
- CLR.W $64(A2)
- CLR.W $62(A2)
- CLR.W $66(A2)
- RTS
-
- C5BC: MOVE.L D0,-(SP)
- LSR.L #1,D0
- BSR C5E8
- MOVE.L (SP)+,D0
- BSR C5E8
- C5CA: MOVE.B (A0),D0
- BTST #0,-1(A0)
- BNE.S C5E0
- BTST #6,D0
- BNE.S C5E6
- BSET #7,D0
- BRA.S C5E4
-
- C5E0: BCLR #7,D0
- C5E4: MOVE.B D0,(A0)
- C5E6: RTS
-
- C5E8: AND.L #$55555555,D0
- MOVE.L D0,D2
- EOR.L #$55555555,D2
- MOVE.L D2,D1
- ADD.L D2,D2
- LSR.L #1,D1
- BSET #$1F,D1
- AND.L D2,D1
- OR.L D1,D0
- BTST #0,-1(A0)
- BEQ.S C610
- BCLR #$1F,D0
- C610: MOVE.L D0,(A0)+
- RTS
-
- C614: LEA $DFF000,A1
- MOVE.W #$4000,$24(A1)
- MOVE.W #$8010,$96(A1)
- MOVE.W #$6600,$9E(A1)
- MOVE.W #$9500,$9E(A1)
- MOVE.W #$4489,$7E(A1)
- MOVE.L A0,$20(A1)
- MOVE.W #2,$9C(A1)
- LSR.W #1,D0
- OR.W #$8000,D0
- MOVE.W D0,$24(A1)
- MOVE.W D0,$24(A1)
- RTS
-
- C652: LEA $DFF000,A1
- MOVE.L #$1770,D0
- BSR C7E8
- C662: BTST #1,$1F(A1)
- BNE.S C674
- BSR C7DA
- BNE.S C662
- MOVEQ #-$1,D0
- BRA.S C676
-
- C674: MOVEQ #0,D0
- C676: MOVE.W #2,$DFF09C
- MOVE.W #$4000,$DFF024
- TST.L D0
- RTS
-
- C68A: MOVE.W #$400,$DFF09E
- TST.W -$1E(A6)
- BPL.S C6B6
- MOVEQ #-$1,D1
- C69A: MOVE.B D1,$BFD100
- MOVE.W -$24(A6),D0
- ADDQ.L #3,D0
- BCLR D0,D1
- MOVE.B D1,$BFD100
- BSET D0,D1
- MOVE.B D1,$BFD100
- C6B6: RTS
-
- C6B8: MOVEQ #-$1,D1
- MOVE.B D1,$BFD100
- BCLR #7,D1
- BSR.S C69A
- MOVE.L #$C8,D0
- BSR C7C6
- RTS
-
- C6D2: MOVEM.L D2/D3,-(SP)
- MOVE.L D2,D3
- BSR C786
- MOVE.W -$24(A6),D0
- ADD.W D0,D0
- LEA L802(PC),A0
- MOVE.W 0(A0,D0.W),D0
- BPL.S C6F2
- BSR C726
- BNE.S C720
- C6F2: LSR.W #1,D0
- LSR.W #1,D2
- MOVEQ #1,D1
- SUB.W D0,D2
- BEQ.S C70C
- BPL.S C702
- MOVEQ #-$1,D1
- NEG.W D2
- C702: MOVEQ #3,D0
- BSR C75C
- SUBQ.W #1,D2
- BNE.S C702
- C70C: MOVE.W -$24(A6),D0
- ADD.W D0,D0
- LEA L802(PC),A0
- MOVE.W D3,0(A0,D0.W)
- BSR C786
- MOVEQ #0,D0
- C720: MOVEM.L (SP)+,D2/D3
- RTS
-
- C726: MOVE.L D2,-(SP)
- MOVEQ #$55,D2
- C72C: BTST #4,$BFE001
- BEQ.S C746
- MOVEQ #3,D0
- MOVEQ #-$1,D1
- BSR C75C
- DBRA D2,C72C
-
- MOVEQ #$1E,D0
- BRA.S C756
-
- C746: MOVE.W -$24(A6),D0
- ADD.W D0,D0
- LEA L802(PC),A0
- CLR.W 0(A0,D0.W)
- MOVEQ #0,D0
- C756: MOVE.L (SP)+,D2
- RTS
-
- C75C: MOVE.L D0,-(SP)
- BSR C792
- TST.B D1
- BMI.S C76A
- BCLR #1,D0
- C76A: BCLR #0,D0
- MOVE.B D0,$BFD100
- BSET #0,D0
- MOVE.B D0,$BFD100
- MOVE.L (SP)+,D0
- BSR C7C6
- RTS
-
- C786: BSR C792
- MOVE.B D0,$BFD100
- RTS
-
- C792: MOVEM.W D1/D2,-(SP)
- MOVE.W -$24(A6),D0
- MOVE.B $BFD100,D2
- OR.B #$7F,D2
- ADD.B #3,D0
- BCLR D0,D2
- SUB.B #3,D0
- ADD.W D0,D0
- MOVE.W L802(PC,D0.W),D1
- BTST #0,D1
- BEQ.S C7BE
- BCLR #2,D2
- C7BE: MOVE.B D2,D0
- MOVEM.W (SP)+,D1/D2
- RTS
-
- C7C6: BSR C7E8
- C7CA: BTST #0,$BFEE01
- BNE.S C7CA
- SUBQ.L #1,D0
- BNE.S C7C6
- RTS
-
- C7DA: BTST #0,$BFEE01
- BNE.S C800
- SUBQ.L #1,D0
- BEQ.S C800
- C7E8: MOVE.B #8,$BFEE01
- MOVE.B #$CC,$BFE401
- MOVE.B #2,$BFE501
- C800: RTS
-
- L802: dc.l -1
- dc.l -1
-