ORG $2000 LST OFF *************************************************** * DUMP UTILITY - READ BENEATH APPLE FOR MORE INFO * *************************************************** PTR EQU $0 A1L EQU $3C A2L EQU $3E BUFFER EQU $4000 DELAY EQU $FCA8 XAM EQU $FDB3 DRVSM0 EQU $C080 DRVSM1 EQU $C081 DRVSM2 EQU $C082 DRVSM4 EQU $C084 DRVSM6 EQU $C086 DRVOFF EQU $C088 DRVON EQU $C089 DRVSL1 EQU $C08A DRVRD EQU $C08C DRVRDM EQU $C08E JMP START TRACK DFB $00 UNITNUM DFB $60 SLOT DFB $60 DESTRK DFB $00 CURTRK DFB $00 DELTA DFB $00 FLAG DFB $00 START LDA UNITNUM PHA AND #$70 STA SLOT TAX PLA BPL DRIVE1 INX DRIVE1 LDA DRVSL1,X LDX SLOT LDA DRVON,X LDA DRVRDM,X JSR RECALC LDA TRACK STA DESTRK JSR ARMOVE LDA #BUFFER STA PTR+1 LDY #0 LDX SLOT LOOP1 LDA DRVRD,X BPL LOOP1 CMP #$FF BNE LOOP1 LOOP2 LDA DRVRD,X BPL LOOP2 CMP #$FF BNE LOOP1 LOOP3 LDA DRVRD,X BPL LOOP3 CMP #$FF BEQ LOOP3 BNE LOOP4 LOOPD LDA DRVRD,X BPL LOOPD LOOP4 STA (PTR),Y INC PTR BNE LOOPD INC PTR+1 BPL LOOPD LDX SLOT LDA DRVOFF,X LDA #BUFFER STA A1L+1 LDA #BUFFER+$AF STA A2L+1 JMP XAM * RECALC LDA #$30 STA CURTRK LDA #$00 STA DESTRK JSR ARMOVE LDX SLOT LDA DRVSM0,X LDA DRVSM2,X LDA DRVSM4,X LDA DRVSM6,X RTS * ARMOVE LDA #$00 STA FLAG LDA CURTRK SEC SBC DESTRK BEQ DONE BCS OK EOR #$FF ADC #$01 OK STA DELTA ROL FLAG LSR CURTRK ROL FLAG ASL FLAG LDY FLAG LOOP LDA TABLE,Y JSR PHASE LDA TABLE+1,Y JSR PHASE TYA EOR #$02 TAY DEC DELTA LDA DELTA BNE LOOP LDA DESTRK STA CURTRK DONE RTS * PHASE ORA SLOT TAX LDA DRVSM1,X JSR WAIT LDA DRVSM0,X RTS * WAIT LDA #$56 JSR DELAY RTS * TABLE DFB $02,$04,$06,$00 DFB $06,$04,$02,$00