mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-02 11:41:30 +00:00
Implemented *DTITLE (disk title.) See #213.
This commit is contained in:
parent
c7bc1a7adc
commit
6d418d7b4a
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -317,7 +317,7 @@ FSCCOMMAND ASC 'ACCESS'
|
||||||
ASC 'FREE'
|
ASC 'FREE'
|
||||||
DB $FF
|
DB $FF
|
||||||
DW FSCFREE-1 ; FREE (<drv>), LPTR=>params
|
DW FSCFREE-1 ; FREE (<drv>), LPTR=>params
|
||||||
ASC 'TITLE'
|
ASC 'DTITLE'
|
||||||
DB $FF
|
DB $FF
|
||||||
DW FSCTITLE-1 ; TITLE (<drv>) <title>, LPTR=>params
|
DW FSCTITLE-1 ; TITLE (<drv>) <title>, LPTR=>params
|
||||||
*
|
*
|
||||||
|
@ -846,7 +846,19 @@ DESTROY JSR PARSLPTR ; Copy filename->MOSFILE
|
||||||
* LPTR=>parameters string
|
* LPTR=>parameters string
|
||||||
* Syntax: *TITLE (<drive>) <title>
|
* Syntax: *TITLE (<drive>) <title>
|
||||||
*
|
*
|
||||||
FSCTITLE RTS
|
FSCTITLE JSR PARSLPTR ; Copy arg1->MOSFILE
|
||||||
|
BEQ :SYNTAX ; No args
|
||||||
|
JSR PARSLPTR2 ; Copy arg2->MOSFILE2
|
||||||
|
BNE :S1 ; If two args, skip
|
||||||
|
>>> WRTMAIN
|
||||||
|
STZ MOSFILE2 ; One arg, MOSFILE2=""
|
||||||
|
>>> WRTAUX
|
||||||
|
:S1 >>> XF2MAIN,DISKTITLE
|
||||||
|
RTS
|
||||||
|
:SYNTAX BRK
|
||||||
|
DB $DC
|
||||||
|
ASC 'Syntax: TITLE (<drv>) <title>'
|
||||||
|
BRK
|
||||||
|
|
||||||
|
|
||||||
* Parse filename pointed to by XY
|
* Parse filename pointed to by XY
|
||||||
|
|
|
@ -33,7 +33,7 @@ RENFILE >>> ENTMAIN
|
||||||
JSR PREPATH ; Preprocess arg2
|
JSR PREPATH ; Preprocess arg2
|
||||||
JSR COPYMF12 ; Put it back in MOSFILE2
|
JSR COPYMF12 ; Put it back in MOSFILE2
|
||||||
JSR TMPtoMF ; Recover arg1->MOSFILE
|
JSR TMPtoMF ; Recover arg1->MOSFILE
|
||||||
LDA #<MOSFILE
|
RENFILE2 LDA #<MOSFILE
|
||||||
STA RENPL+1
|
STA RENPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA RENPL+2
|
STA RENPL+2
|
||||||
|
@ -46,6 +46,27 @@ RENFILE >>> ENTMAIN
|
||||||
DW RENPL
|
DW RENPL
|
||||||
>>> XF2AUX,RENRET
|
>>> XF2AUX,RENRET
|
||||||
|
|
||||||
|
|
||||||
|
* Set name of volume dir, for *TITLE
|
||||||
|
* Special case of renaming
|
||||||
|
* Case 1: Disk ID in MOSFILE, title in MOSFILE2
|
||||||
|
* Case 2: Title in MOSFILE, MOSFILE2=""
|
||||||
|
*
|
||||||
|
DISKTITLE >>> ENTMAIN
|
||||||
|
LDA MOSFILE2
|
||||||
|
BNE :CASE1
|
||||||
|
JSR COPYMF12 ; Copy title->MOSFILE2
|
||||||
|
LDA #$01 ; MOSFILE2 = "@"
|
||||||
|
STA MOSFILE1
|
||||||
|
LDA #'@'
|
||||||
|
STA MOSFILE1 + 1
|
||||||
|
:CASE1 JSR PREPATH ; Preprocess pathname
|
||||||
|
BCS :EXIT
|
||||||
|
JSR TRUNCPATH ; Truncate to top level
|
||||||
|
JMP RENFILE2
|
||||||
|
:EXIT >>> XF2AUX,RENRET
|
||||||
|
|
||||||
|
|
||||||
* ProDOS file handling for file copying
|
* ProDOS file handling for file copying
|
||||||
* Returns with ProDOS error code in A
|
* Returns with ProDOS error code in A
|
||||||
COPYFILE >>> ENTMAIN
|
COPYFILE >>> ENTMAIN
|
||||||
|
@ -1034,6 +1055,22 @@ INFOFIRST LDA WILDIDX
|
||||||
CATARG DB $00
|
CATARG DB $00
|
||||||
|
|
||||||
|
|
||||||
|
* Helper routine to truncate path in MOSFILE at the top level
|
||||||
|
* So '/FOO/BAR/BAZ' -> '/FOO'
|
||||||
|
TRUNCPATH LDX #$01 ; Skip over initial '/'
|
||||||
|
:L1 CPX MOSFILE ; See if end of string
|
||||||
|
BCS :EXIT ; If so ... we are done
|
||||||
|
BEQ :EXIT
|
||||||
|
LDA MOSFILE+1,X ; Get char from path
|
||||||
|
CMP #'/' ; See if it is slash
|
||||||
|
BNE :NOTSLASH
|
||||||
|
STX MOSFILE ; If so, truncate here
|
||||||
|
BRA :EXIT
|
||||||
|
:NOTSLASH INX
|
||||||
|
BRA :L1
|
||||||
|
:EXIT RTS
|
||||||
|
|
||||||
|
|
||||||
* Set prefix. Used by *CHDIR/*DRIVE to change directory
|
* Set prefix. Used by *CHDIR/*DRIVE to change directory
|
||||||
* Y= $00 - CHDIR, select any directory
|
* Y= $00 - CHDIR, select any directory
|
||||||
* Y<>$00 - DRIVE, must select root
|
* Y<>$00 - DRIVE, must select root
|
||||||
|
@ -1045,9 +1082,11 @@ SETPFX >>> ENTMAIN
|
||||||
JSR WILDONE ; Handle any wildcards
|
JSR WILDONE ; Handle any wildcards
|
||||||
LDA #$2E
|
LDA #$2E
|
||||||
BCS :EXIT ; Exit with wildcard path
|
BCS :EXIT ; Exit with wildcard path
|
||||||
* TO DO: If DRIVE disallow selecting a directory
|
PLY ; CHDIR/DRIVE flag
|
||||||
*
|
CPY #$00 ; If <> $00 (ie: *DRIVE)
|
||||||
LDA #<MOSFILE
|
BEQ :CHDIR
|
||||||
|
JSR TRUNCPATH ; Truncate to top level
|
||||||
|
:CHDIR LDA #<MOSFILE
|
||||||
STA SPFXPL+1
|
STA SPFXPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA SPFXPL+2
|
STA SPFXPL+2
|
||||||
|
@ -1055,8 +1094,7 @@ SETPFX >>> ENTMAIN
|
||||||
DB SPFXCMD
|
DB SPFXCMD
|
||||||
DW SPFXPL
|
DW SPFXPL
|
||||||
|
|
||||||
:EXIT PLY ; Drop CHDIR/DRIVE flag
|
:EXIT >>> XF2AUX,CHDIRRET
|
||||||
>>> XF2AUX,CHDIRRET
|
|
||||||
|
|
||||||
|
|
||||||
* Obtain info on total/used blocks
|
* Obtain info on total/used blocks
|
||||||
|
@ -1068,20 +1106,8 @@ DRVINFO >>> ENTMAIN
|
||||||
STA MOSFILE+1 ; Convert "" to "@"
|
STA MOSFILE+1 ; Convert "" to "@"
|
||||||
:DRVINF2 JSR PREPATH
|
:DRVINF2 JSR PREPATH
|
||||||
BCS :EXIT
|
BCS :EXIT
|
||||||
|
JSR TRUNCPATH ; Truncate to top level
|
||||||
LDX #$01 ; Skip over initial '/'
|
LDA #<MOSFILE
|
||||||
:L1 CPX MOSFILE ; See if end of string
|
|
||||||
BCS :S1 ; If so ... we are done
|
|
||||||
BEQ :S1
|
|
||||||
LDA MOSFILE+1,X ; Get char from path
|
|
||||||
CMP #'/' ; See if it is slash
|
|
||||||
BNE :S2
|
|
||||||
STX MOSFILE ; If so, truncate here
|
|
||||||
BRA :S1
|
|
||||||
:S2 INX
|
|
||||||
BRA :L1
|
|
||||||
|
|
||||||
:S1 LDA #<MOSFILE
|
|
||||||
STA GINFOPL+1
|
STA GINFOPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA GINFOPL+2
|
STA GINFOPL+2
|
||||||
|
|
Loading…
Reference in New Issue
Block a user