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 $c80000,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,#-$22
- MOVE.W D0,D5
- AND.W #3,D5
- MOVE.W D5,-$22(A6)
- MOVE.W D1,-$20(A6)
- MOVE.W D2,-$1E(A6)
- MOVE.W D3,-$1C(A6)
- MOVE.L D4,-$12(A6)
- MOVE.L A0,-$1A(A6)
- MOVE.L A1,-$16(A6)
- ROR.W #2,D0
- AND.W #1,D0
- ADDQ.W #1,D0
- MOVE.W D0,-14(A6)
- MOVEQ #0,D0
- MOVE.W D2,D3
- BEQ.S C0A8
- MOVEQ #$1E,D0
- ADD.W D1,D3
- CMP.W #$780,D3
- BGT C0D2
- EXT.L D1
- DIVU #12,D1
- CMP.W #1,-14(A6)
- BEQ.S C058
- ADD.W D1,D1
- C058 MOVE.W D1,-12(A6)
- SWAP D1
- MOVE.W D1,-10(A6)
- BSR C3C8
- C066 MOVE.W -10(A6),D0
- MOVEQ #12,D1
- SUB.W D0,D1
- CMP.W -$1E(A6),D1
- BLE.S C078
- MOVE.W -$1E(A6),D1
- C078 MOVE.W D1,-8(A6)
- BSR.S C0DC
- BNE.S C0A8
- MOVE.W -$1E(A6),D0
- SUB.W -8(A6),D0
- BEQ.S C0A8
- MOVE.W D0,-$1E(A6)
- MOVE.W -8(A6),D0
- LSL.L #8,D0
- ADD.L D0,D0
- ADD.L D0,-$1A(A6)
- CLR.W -10(A6)
- MOVE.W -14(A6),D0
- ADD.W D0,-12(A6)
- BRA.S C066
-
- C0A8 MOVE.L D0,-(SP)
- BSR C39A
- MOVE.L (SP)+,D0
- BEQ.S C0D2
- MOVEQ #0,D1
- MOVE.W -12(A6),D1
- CMP.W #1,-14(A6)
- BEQ.S C0C2
- LSR.W #1,D1
- C0C2 MULU #12,D1
- ADD.W -10(A6),D1
- ADD.W -4(A6),D1
- MOVE.L D1,$26(SP)
- C0D2 UNLK A6
- TST.L D0
- MOVEM.L (SP)+,D1-D7/A0-A5
- RTS
-
- C0DC MOVEQ #2,D5
- C0DE MOVE.W -12(A6),D0
- BSR C2DC
- MOVEQ #$1D,D0
- BTST #2,$BFE001
- BEQ.S C11A
- MOVE.L -$16(A6),A5
- MOVE.L A5,A0
- MOVE.L A5,A1
- MOVEQ #11,D0
- C0FC ADD.W #$40A,A0
- CLR.W (A0)+
- ADD.W #$40A,A1
- CLR.W (A1)+
- ADD.W #$38,A1
- DBRA D0,C0FC
- MOVE.L A5,A0
- BSR.S C12E
- BSR C1A6
- BEQ.S C12C
- C11A MOVE.L D0,-(SP)
- MOVEQ #2,D0
- BSR C2DC
- BSR C304
- MOVE.L (SP)+,D0
- DBRA D5,C0DE
- C12C BRA.S C192
-
- C12E LEA $DFF000,A1
- MOVE.W #$4000,$24(A1)
- MOVE.W #$8010,$96(A1)
- MOVE.W #$6600,$9E(A1)
- MOVE.W #$9500,$9E(A1)
- MOVE.L A0,$20(A1)
- MOVE.W #2,$9C(A1)
- MOVE.W #$1448,$7E(A1)
- MOVE.W #$998B,$DFF024
- MOVE.W #$998B,$DFF024
- RTS
-
- LEA $DFF000,A1
- MOVE.L #$9C4,D0
- BSR C3FA
- C17E BTST #1,$1F(A1)
- BNE.S C190
- BSR C3EC
- BNE.S C17E
- MOVEQ #-1,D0
- BRA.S C192
-
- C190 MOVEQ #0,D0
- C192 MOVE.W #2,$DFF09C
- MOVE.W #$4000,$DFF024
- TST.L D0
- RTS
-
- C1A6 CLR.W -6(A6)
- CLR.W -4(A6)
- MOVE.L -$1A(A6),A2
- MOVE.L -$16(A6),A5
- BSR C26E
- BEQ C262
- MOVE.W #$600,$DFF09E
- MOVE.W #0,$DFF07E
- C1CE BSR C26E
- BEQ C262
- CMP.W #$4891,(A5)
- BNE C266
- LEA 2(A5),A0
- MOVE.L (A0)+,D0
- MOVE.L (A0)+,D1
- AND.L #$55555555,D0
- AND.L #$55555555,D1
- ADD.L D0,D0
- OR.L D1,D0
- MOVE.L -$12(A6),D1
- BSET #$1F,D1
- EOR.L D1,D0
- MOVE.L D0,D3
- SWAP D0
- CMP.B -11(A6),D0
- BNE.S C266
- LSR.W #8,D0
- CMP.B -5(A6),D0
- BNE.S C266
- CMP.B -9(A6),D0
- BLT.S C23A
- MOVE.B -7(A6),D1
- ADD.B -9(A6),D1
- CMP.B D1,D0
- BGE.S C23A
- LEA 10(A5),A0
- BSR.S C286
- CMP.W D0,D3
- BNE.S C26A
- MOVE.L A2,A1
- BSR.S C2AC
- LEA $200(A2),A2
- ADDQ.W #1,-4(A6)
- C23A ADD.W #$40A,A5
- MOVE.W (A5)+,D0
- MOVEQ #0,D1
- MOVEQ #7,D2
- C244 ROXL.W #2,D0
- ROXL.B #1,D1
- DBRA D2,C244
- ADD.W D1,D1
- ADD.L D1,A5
- ADDQ.W #1,-6(A6)
- CMP.W #12,-6(A6)
- BNE C1CE
- MOVEQ #0,D0
- RTS
-
- C262 MOVEQ #-1,D0
- RTS
-
- C266 MOVEQ #$1B,D0
- RTS
-
- C26A MOVEQ #$19,D0
- RTS
-
- C26E MOVE.L #$BB8,D0
- BSR C3FA
- C278 BSR C3EC
- BEQ.S C284
- TST.W $40A(A5)
- BEQ.S C278
- C284 RTS
-
- C286 MOVEM.L D1/D2/A0,-(SP)
- MOVEQ #0,D0
- MOVE.W #$FF,D1
- C290 MOVE.L (A0)+,D2
- EOR.L D2,D0
- DBRA D1,C290
- AND.L #$55555555,D0
- MOVE.L D0,D1
- SWAP D1
- ADD.W D1,D1
- OR.W D1,D0
- MOVEM.L (SP)+,D1/D2/A0
- RTS
-
- C2AC MOVEM.L D0-D4/A0-A2,-(SP)
- MOVEQ #$7F,D0
- LEA $200(A0),A2
- MOVE.L #$55555555,D3
- MOVE.L -$12(A6),D4
- C2C0 MOVE.L (A0)+,D1
- MOVE.L (A2)+,D2
- AND.L D3,D1
- AND.L D3,D2
- ADD.L D1,D1
- OR.L D2,D1
- EOR.L D1,D4
- MOVE.L D4,(A1)+
- MOVE.L D1,D4
- DBRA D0,C2C0
- MOVEM.L (SP)+,D0-D4/A0-A2
- RTS
-
- C2DC MOVE.W D0,-(SP)
- MOVE.W -$22(A6),D0
- ADD.W D0,D0
- LEA L336(PC,D0.W),A0
- TST.W (A0)
- BPL.S C2EE
- BSR.S C304
- C2EE MOVE.W (SP),D0
- LSR.W #1,D0
- LSR.W (A0)
- MOVEQ #0,D1
- SUB.W (A0),D0
- BPL.S C2FE
- MOVEQ #-1,D1
- NEG.W D0
- C2FE BSR.S C36A
- MOVE.W (SP)+,(A0)
- BRA.S C32C
-
- C304 MOVEQ #$55,D1
- C306 BTST #4,$BFE001
- BEQ.S C320
- MOVE.L D1,-(SP)
- MOVEQ #1,D0
- MOVEQ #-1,D1
- BSR.S C36A
- MOVE.L (SP)+,D1
- DBRA D1,C306
- RTS
-
- C320 MOVE.W -$22(A6),D0
- ADD.W D0,D0
- LEA L336(PC,D0.W),A0
- CLR.W (A0)
- C32C BSR.S C33E
- MOVE.B D0,$BFD100
- RTS
-
- L336 dc.l $FFFFFFFF
- dc.l $FFFFFFFF
-
- C33E MOVE.W D1,-(SP)
- MOVE.B $BFD100,D0
- OR.B #$7F,D0
- MOVE.W -$22(A6),D1
- ADDQ.B #3,D1
- BCLR D1,D0
- SUBQ.B #3,D1
- ADD.W D1,D1
- LEA L336(PC,D1.W),A0
- BTST #0,1(A0)
- BEQ.S C366
- BCLR #2,D0
- C366 MOVE.W (SP)+,D1
- RTS
-
- C36A TST.B D0
- BEQ.S C398
- MOVE.W D0,-(SP)
- BSR.S C33E
- TST.B D1
- BMI.S C37A
- BCLR #1,D0
- C37A BCLR #0,D0
- MOVE.B D0,$BFD100
- BSET #0,D0
- MOVE.B D0,$BFD100
- MOVEQ #3,D0
- BSR.S C3DA
- MOVE.W (SP)+,D0
- SUBQ.B #1,D0
- BNE.S C36A
- C398 RTS
-
- C39A MOVE.W #$400,$DFF09E
- TST.W -$1C(A6)
- BPL.S C3C6
- MOVEQ #-1,D1
- C3AA MOVE.B D1,$BFD100
- MOVE.W -$22(A6),D0
- ADDQ.L #3,D0
- BCLR D0,D1
- MOVE.B D1,$BFD100
- BSET D0,D1
- MOVE.B D1,$BFD100
- C3C6 RTS
-
- C3C8 MOVEQ #-1,D1
- MOVE.B D1,$BFD100
- BCLR #7,D1
- BSR.S C3AA
- MOVEQ #$64,D0
- ADD.L D0,D0
- C3DA BSR.S C3FA
- C3DC BTST #0,$BFDE00
- BNE.S C3DC
- SUBQ.L #1,D0
- BNE.S C3DA
- RTS
-
- C3EC BTST #0,$BFDE00
- BNE.S C412
- SUBQ.L #1,D0
- BEQ.S C412
- C3FA MOVE.B #8,$BFDE00
- MOVE.B #$CC,$BFD400
- MOVE.B #2,$BFD500
- C412 RTS
- end
-
-