home *** CD-ROM | disk | FTP | other *** search
- ;
- ; 'NEW' COMMAND (FORMAT A DISC)
- ;
- NEW JSR DRIVFN
- LDA #0
- STA DRVNO
- JSR BAMGET
- LDY COMMPO+1
- CPY CMDLEN
- BEQ NEW1 ;NO ID
- LDA CMDCHN,Y
- STA DXID
- LDA CMDCHN+1,Y
- STA DXID+1
- LDA #1
- STA TRACK
- ;
- ; CLEAR DISC
- ;
- HEADER LDA #$40
- STA BLKPNT+1
- LDX #<683
- LDA #>683
- STA BLKBUF
- LDA #$10
- STA PIA
- LDY #0
- HEADE0 LDA #'K'
- HEADE1 STA (BLKPNT),Y
- LDA #0
- INY
- BNE HEADE1
- INC BLKPNT+1
- BPL HEADE2
- LDA BLKPNT+1
- EOR #%11000000
- STA BLKPNT+1
- CLC
- LDA PIA
- ADC #$10
- STA PIA
- HEADE2 DEX
- BNE HEADE0
- DEC BLKBUF
- BNE HEADE0
- JMP NEW2
- ; FORMAT WITHOUT ID
- NEW1 JSR INIT
- ; READ ID
- LDY #162
- LDA (BAMPNT),Y
- STA DXID
- INY
- LDA (BAMPNT),Y
- STA DXID+1
- ; CHECK CORRECT DOS
- LDY #2
- LDA (BAMPNT),Y
- CMP #'A' ;'A'-FORMAT?
- BEQ NEW2
- JMP CBMDOS
- NEW2 LDA #0
- TAY
- NEW3 STA (BAMPNT),Y
- INY
- BNE NEW3
- LDA #12
- STA BUFFNO
- ASL A
- TAX
- LDA #144 ;FILE NAME START
- STA BPNTS,X
- LDY #1 ;NEXT SECTOR
- STY SECTOR
- LDA #255
- STA (BAMPNT),Y
- LDA #18
- STA TRACK
- JSR SETWCM ;WRITE EMPTY DIRECTORY BLOCK
- JSR CLRBA0
- LDY #2
- LDA #'A'
- STA (BAMPNT),Y
- JSR ALLOC ;FIRST DIR BLOCK
- DEC SECTOR
- JSR ALLOC ;BAM BLOCK
- LDY BUFFNO
- LDX COMMPO
- LDA #$1B
- JSR STENTR ;PUT DISC NAME
- ;PUT ID TO DISC NAME
- LDY #18
- LDA DXID
- STA (BPNT),Y
- INY
- LDA DXID+1
- STA (BPNT),Y
- INY
- INY
- LDA #'2'
- STA (BPNT),Y
- INY
- LDA #'A'
- STA (BPNT),Y
- JSR SETWCM
- JMP CMDERR
- ;
- ; SCRATCH
- ;
- SCRATC JSR FTYPE
- JSR DRCMD
- JSR DSPIN
- LDA #0
- STA PNTE
- JSR FENT99
- BMI SCRAT4
- SCRAT0 JSR IFOPEN
- BCC SCRAT3
- LDY #0
- LDA (BPNT),Y
- AND #$40
- BNE SCRAT3
- JSR ERASE2
- LDY #19
- LDA (BPNT),Y
- BEQ SCRAT1
- STA TRACK
- INY
- LDA (BPNT),Y
- STA SECTOR
- JSR ERASE
- SCRAT1 LDX DHELP
- LDA #$20
- AND FNTYPE,X
- BNE SCRAT2
- LDA JOKERS,X
- AND #$7F
- STA TRACK
- LDA FNSEC,X
- STA SECTOR
- JSR ERASE
- SCRAT2 INC PNTE
- SCRAT3 JSR FENT98
- BPL SCRAT0
- SCRAT4 LDA PNTE
- STA TRACK
- LDA #1
- LDY #0
- JMP CMDER0
- ;
- ; FREE BLOCKS OF THE FILE
- ;
- ERASE JSR SCRBLO
- JSR SYSOPN
- ERASE0 LDA #0
- JSR SETBPN
- JSR IEELD
- STA TRACK
- JSR IEELD
- STA SECTOR
- LDA TRACK
- BNE ERASE1
- JSR COLLEC
- JMP CCLOSE
- ERASE1 JSR SCRBLO
- JSR RSBPNT
- JMP ERASE0
- ERASE2 LDY #0
- TYA
- STA (BPNT),Y
- JMP W2NDDB
- ;
- ; DUPLICATE
- ;
- DUPLIC LDA #$30
- JMP ERRD
- ;
- ; COPY FILES
- ;
- COPY JSR COLON
- BNE COPY00
- JSR COPY03
- LDA #'*'
- LDX #39
- STX COMMPO+1
- STA CMDCHN,X
- INX
- STX CMDLEN
- LDX #1
- STX COMMNO
- INX
- STX FNNO
- JMP COPY08
- COPY00 JSR SCHECK
- JSR DRCMD
- LDA SYXMAP
- AND #$55
- BNE COPY02
- LDX COMMPO
- LDA CMDCHN,X
- CMP #$2A
- BNE COPY02
- LDX #1
- STX COMMNO
- INX
- STX FNNO
- JMP COPY06
- COPY01 LDA #$30
- JMP ERRD
- COPY02 LDA SYXMAP
- AND #$D9
- BNE COPY01
- JMP COPY15
- COPY03 LDA #$3D
- JSR SEARCH
- BNE COPY05
- COPY04 LDA #$30
- JMP ERRD
- COPY05 LDA CMDCHN,Y
- JSR CHKDNS
- BMI COPY04
- STA FNTYPE+1
- DEY
- DEY
- LDA CMDCHN,Y
- JSR CHKDNS
- BMI COPY04
- CMP FNTYPE+1
- BEQ COPY04
- STA FNTYPE
- RTS
- COPY06 LDA COMMPO+1
- STA PNTA
- LDY #$28
- LDX CMDLEN
- STY CMDLEN
- COPY07 DEY
- DEX
- LDA CMDCHN,X
- STA CMDCHN,Y
- CPX PNTA
- BNE COPY07
- STY COMMPO+1
- COPY08 JSR DSPIN
- JSR COPY14
- JSR FENT99
- BPL COPY11
- BMI COPY10
- COPY09 PLA
- STA NXTDIR
- PLA
- STA COMMPO+1
- PLA
- STA ENDDIR
- PLA
- STA DIRCNT
- PLA
- STA ENTPOS
- PLA
- STA IFALL
- PLA
- STA ENTLOC
- PLA
- STA IFLAST
- JSR COPY14
- JSR FENT98
- BPL COPY11
- COPY10 JMP CMDERR
- COPY11 LDA IFLAST
- PHA
- LDA ENTLOC
- PHA
- LDA IFALL
- PHA
- LDA ENTPOS
- PHA
- LDA DIRCNT
- PHA
- LDA ENDDIR
- PHA
- LDA COMMPO+1
- PHA
- LDA NXTDIR
- PHA
- JSR COPY12
- LDA #1
- STA COMMNO
- STA FNNO
- JSR FENTRY
- LDA #1
- STA COMMNO
- LDA #2
- STA FNNO
- JSR COPY19
- JMP COPY09
- COPY12 LDY #3
- STY COMMPO
- COPY13 LDA (BPNT),Y
- STA CMDCHN,Y
- INY
- CPY #19
- BNE COPY13
- RTS
- COPY14 LDA #0
- STA IFDRV
- STA JOKERS
- STA JOKERS+1
- LDA FNTYPE+1
- AND #$01
- STA DRVNO
- ORA #$01
- STA ENTSEC
- LDA COMMPO+1
- STA COMMPO
- RTS
- COPY15 JSR FENTRY
- LDA FNNO
- CMP #3
- BCC COPY18
- LDA FNTYPE
- CMP FNTYPE+1
- BNE COPY18
- LDA FNDPOS
- CMP FNDPOS+1
- BNE COPY18
- JSR RENAM1
- LDA #1
- STA HELPA
- JSR COPY24
- JSR GFTYP
- BEQ COPY16
- CMP #2
- BNE COPY17
- COPY16 LDA #$64
- JSR ERRD
- COPY17 LDA #18
- STA CHNLNO
- LDA CHSTAT+17
- STA CHSTAT+18
- LDA #255
- STA CHSTAT+17
- JSR APPEND
- LDX #2
- JSR COPY20
- JMP CMDERR
- COPY18 JSR COPY19
- JMP CMDERR
- COPY19 JSR RENAM4
- LDA FNTYPE
- AND #$01
- STA DRVNO
- JSR WSYSOP
- JSR FNSTO
- LDX COMMNO
- COPY20 STX HELPA
- JSR COPY24
- LDA #$08
- STA EOIACC
- JMP COPY22
- COPY21 JSR SYSPUT
- COPY22 JSR SYSNXB
- LDA #$80
- JSR BITFTY
- BEQ COPY21
- JSR GFTYP
- BEQ COPY23
- JSR SYSPUT
- COPY23 LDX HELPA
- INX
- CPX FNNO
- BCC COPY20
- LDA #18
- STA CHNLNO
- JMP SCLOS4
- COPY24 LDX HELPA
- LDA FNTYPE,X
- AND #$01
- STA DRVNO
- LDA #18
- STA TRACK
- LDA FNDPOS,X
- AND #$1F
- STA SECTOR
- JSR SYSOPN
- LDX HELPA
- LDA FNDPOS,X
- AND #$E0
- ORA #$02
- JSR SETBPN
- LDX HELPA
- LDA FNTYPE,X
- AND #$0E
- LSR A
- STA FILTYP
- LDA #0
- STA RLENGT
- JSR PROPEN
- LDY #1
- JSR GFTYP
- BEQ COPY25
- INY
- COPY25 TYA
- JMP SETBPN
- ;
- ; RENAME
- ;
- RENAME JSR DRCMD
- LDA FNTYPE+1
- AND #$01
- STA FNTYPE+1
- CMP FNTYPE
- BEQ RENAM0
- ORA #$80
- RENAM0 STA FNTYPE
- JSR FENTRY
- JSR RENAM4
- LDA FNTYPE+1
- AND #$01
- STA DRVNO
- LDA FNDPOS+1
- PHA
- AND #$1F
- STA SECTOR
- JSR R1STDB
- PLA
- AND #$E0
- ORA #$05
- JSR SETBPN
- JSR BUFNO
- TAY
- LDX COMMPO
- LDA #16
- JSR STENTR
- JSR W2NDDB
- JMP CMDERR
- RENAM1 LDA FNTYPE+1
- AND #$0E
- LSR A
- STA FILTYP
- LDX FNNO
- RENAM2 DEX
- CPX COMMNO
- BCC RENAM3
- LDA JOKERS,X
- AND #$7F
- BNE RENAM2
- LDA #$62
- JMP ERRD
- RENAM3 RTS
- RENAM4 JSR RENAM1
- RENAM5 LDA JOKERS,X
- AND #$7F
- BEQ RENAM6
- LDA #$63
- JMP ERRD
- RENAM6 DEX
- BPL RENAM5
- RTS
- ;
- ; VALIDATE A DISC
- ;
- VALDAT JSR FNDDRV
- JSR INIT
- JSR CLRBAM
- LDA #0
- STA ENTLOC
- JSR DIROPN
- BNE VALDA4
- VALDA0 LDA #0
- STA SECTOR
- LDA #18
- STA TRACK
- JSR VALDA5
- LDA DRVNO
- JSR COLLE0
- JMP CMDERR
- VALDA1 INY
- LDA (BPNT),Y
- PHA
- INY
- LDA (BPNT),Y
- PHA
- LDY #19
- LDA (BPNT),Y
- BEQ VALDA2
- STA TRACK
- INY
- LDA (BPNT),Y
- STA SECTOR
- JSR VALDA5
- VALDA2 PLA
- STA SECTOR
- PLA
- STA TRACK
- JSR VALDA5
- VALDA3 JSR DIROP4
- BEQ VALDA0
- VALDA4 LDY #0
- LDA (BPNT),Y
- BMI VALDA1
- JSR ERASE2
- JMP VALDA3
- VALDA5 JSR BAMGET
- JSR ALLOC
- JSR SYSOPN
- VALDA6 LDA #0
- JSR SETBPN
- JSR CHRLD
- STA TRACK
- JSR CHRLD
- STA SECTOR
- LDA TRACK
- BNE VALDA7
- JMP CCLOSE
- VALDA7 JSR ALLOC
- JSR RSBPNT
- JMP VALDA6
- ;
- ; INITIALIZE
- ;
- FINIT JSR FNDDRV
- JSR INIT
- JMP CMDERR
- ;
- ; CHECK IF FILE IS OPEN
- ;
- IFOPEN LDX #0
- IFOPE0 STX PNTB
- LDA CHSTAT,X
- CMP #$FF
- BNE IFOPE2
- IFOPE1 LDX PNTB
- INX
- CPX #16
- BCC IFOPE0
- RTS
- IFOPE2 STX PNTB
- AND #$3F
- TAY
- LDA FTYPED,Y
- AND #$01
- STA PNTA+1
- LDX DHELP
- LDA FNTYPE,X
- AND #$01
- CMP PNTA+1
- BNE IFOPE1
- LDA ENTPSS,Y
- CMP FNDPOS,X
- BNE IFOPE1
- CLC
- RTS
- ;
- ; INITIALIZE
- ;
- INIT00 LDA #12
- STA BUFFNO
- LDX #18
- STX TRACK
- LDX #0
- STX SECTOR
- JSR DSCPR0 ;DISC PRMS
- LDX BUFFNO
- LDA #$B0 ;READ ID,T,S
- JMP PFLCOM
- INIT JSR DCLOSE
- JSR INIT00
- LDA #0
- STA DSCSEC,Y
- LDA #$80
- JMP PFLCOM
- .END
-