home *** CD-ROM | disk | FTP | other *** search
- ;
- ; EXECUTE A LEGAL COMMAND WITH D#
- ;
- PFDCOM LDA DKCMD
- ;
- ; EXECUTE DISC COMMAND
- ;
- PFLCOM
- PFLCO0
- PFCOM STA DKCMD
- STX BUFFNO
- PFCOM1 LDA DSCSEC,X
- STA BLKBUF
- LDA DSCTRC,X
- BEQ PFCOM3
- CMP #36 ;MAX TRACK
- BCS PFCOM3
- JSR ONTRAC
- CMP BLKBUF
- BEQ PFCOM3
- BCS PFCOM6
- PFCOM3 JSR PFCOM5
- PFCOM4 LDA #$66 ;ILLEGAL TRACK AND SECTOR
- JMP ERRB
- PFCOM5 LDX BUFFNO
- LDA DSCTRC,X
- STA TRACK
- LDA DSCSEC,X
- STA SECTOR
- RTS
- ;
- ; CHECK T&S LEGALITY
- ;
- CHKTS LDA TRACK
- BEQ PFCOM4
- CMP #36
- BCS PFCOM4
- JSR ONTRAC
- CMP SECTOR
- BEQ PFCOM4
- BCC PFCOM4
- RTS
- ;
- ; GIVE MESSAGE CMB DOS V2
- ;
- CBMDOS JSR PFCOM5
- LDA #$73 ;CBM DOS V2
- JMP ERRB
- ;
- PFCOM6 LDX BUFFNO
- LDA DKCMD
- STA DKCMDS,X
- ;
- ; EXECUTE DISC COMMAND
- ;
- EXDISC LDY DSCTRC,X
- LDA DSCSEC,X
- JSR RAMSET
- LDX BUFFNO
- LDY #0
- LDA BUFMSB,X
- STA OBJPNT+1
- LDA DKCMD
- ; READ COMMAND
- CMP #$80
- BNE EXDIS3
- EXDIS1 LDA (BLKPNT),Y
- STA (OBJPNT),Y
- INY
- BNE EXDIS1
- EXDIS2 TYA
- STY IFDRDY
- CLC
- RTS
- ; WRITE COMMAND
- EXDIS3 CMP #$90
- BNE EXDIS2
- LDA BAMD0+2
- BEQ EXDIS4
- CMP #'A'
- BNE CBMDOS
- EXDIS4 LDA (OBJPNT),Y
- STA (BLKPNT),Y
- INY
- BNE EXDIS4
- BEQ EXDIS2
- ;
- ; DISC COMMAND PARAMETERS
- ;
- DSCPRM JSR BUFNO
- DSCPR0 TAY ;DISC PRMS
- LDA TRACK
- STA DSCTRC,Y
- LDA SECTOR
- STA DSCSEC,Y
- RTS
- ;
- ; SET RAM POINTERS (Y=TRACK, A=SECTOR)
- ;
- RAMSET CLC
- ADC LTRACK-1,Y
- BPL RAMSE0
- EOR #$C0
- INY
- RAMSE0 STA BLKPNT+1
- LDA HTRACK-1,Y
- STA PIA
- RTS
- ;
- ; TOTAL NUMBER OF SECS ON A TRACK
- ;
- ONTRAC TAX
- LDA ONTRA1-1,X
- RTS
- ONTRA1 .BYTE 21,21,21
- .BYTE 21,21,21,21
- .BYTE 21,21,21,21
- .BYTE 21,21,21,21
- .BYTE 21,21,19,19
- .BYTE 19,19,19,19
- .BYTE 19,18,18,18
- .BYTE 18,18,18,17
- .BYTE 17,17,17,17
- ;
- ; TRACK START ADDRESSES
- ;
- HTRACK .BYTE $10,$10,$10,$10
- .BYTE $20,$20,$20
- .BYTE $30,$30,$30
- .BYTE $40,$40,$40
- .BYTE $50,$50,$50
- .BYTE $60,$60,$60
- .BYTE $70,$70,$70
- .BYTE $80,$80,$80,$80
- .BYTE $90,$90,$90
- .BYTE $A0,$A0,$A0,$A0
- .BYTE $B0,$B0
- LTRACK .BYTE 64,85,106,127
- .BYTE 84,105,126,83
- .BYTE 104,125,82,103
- .BYTE 124,81,102,123
- .BYTE 80,101,120,75
- .BYTE 94,113,68,87
- .BYTE 106,124,78,96
- .BYTE 114,68,86,103
- .BYTE 120,73,90
- .END
-