mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-01 07:41:51 +00:00
Kernel version 0.9 : CP/MV/RM , implementing -Y
This commit is contained in:
parent
a9ba29a701
commit
d178bd75f7
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
|
@ -12,7 +12,6 @@ AUTO 6
|
|||
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||
.INB /A2OSX.DEV/INC/MLI.ERR.I
|
||||
*--------------------------------------
|
||||
X.MAX.RECURSE .EQ 8
|
||||
X.COPY.TO.DEST .EQ 1
|
||||
X.DELETE.SOURCE .EQ 0
|
||||
*--------------------------------------
|
||||
|
@ -27,6 +26,7 @@ OptionVars .DA #bContinue,#bRecurse,#bNoConfirm
|
|||
MSG.USAGE >CSTR "Usage : CP [Src File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n -Y : Dont't prompt for override\n"
|
||||
MSG.DIR >CSTR "CP Dir :%S%S to %S..."
|
||||
MSG.FILE >CSTR "CP File:%S%S to %S..."
|
||||
MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?"
|
||||
MSG.OK >CSTR "[OK]\n"
|
||||
MSG.ERR >CSTR "[%h]\n"
|
||||
*--------------------------------------
|
||||
|
|
71
BIN/LS.S.txt
71
BIN/LS.S.txt
|
@ -11,7 +11,6 @@ AUTO 6
|
|||
.INB /A2OSX.DEV/INC/MACROS.I
|
||||
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||
*--------------------------------------
|
||||
X.MAX.RECURSE .EQ 8
|
||||
X.COPY.TO.DEST .EQ 0
|
||||
X.DELETE.SOURCE .EQ 0
|
||||
*--------------------------------------
|
||||
|
@ -19,6 +18,8 @@ MAX.COL .EQ 4
|
|||
*--------------------------------------
|
||||
ZPPtr1 .EQ ZPBIN
|
||||
ZPPtr2 .EQ ZPBIN+2
|
||||
ZPFileName .EQ ZPBIN+4
|
||||
ZPFileStat .EQ ZPBIN+6
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -140,16 +141,16 @@ CS.RUN >SYSCALL GetC
|
|||
|
||||
>SYSCALL GetMemPtrA
|
||||
>PUSHYA
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>SYSCALL PStrMatch
|
||||
bcs .8 no match, skip....
|
||||
|
||||
.4 ldy #S.STAT.P.DRIVE
|
||||
lda (ZPPtr2),y ProDOS Device ?
|
||||
lda (ZPFileStat),y ProDOS Device ?
|
||||
bne .5
|
||||
|
||||
ldy #S.STAT.P.TYPE
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
cmp #$0F Directory ?
|
||||
bne .6
|
||||
|
||||
|
@ -181,20 +182,20 @@ CS.RUN.DEV ldy #bLong
|
|||
bpl CS.RUN.DIR
|
||||
|
||||
ldy #S.STAT.P.DEVBLOCKS+1
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
dey
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
ldy #S.STAT.BLOCKS+1
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
dey
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
|
||||
ldy #S.STAT.P.DRIVE
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
dey SLOT
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>LDYA L.MSG.DEVEXT
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
@ -203,7 +204,7 @@ CS.RUN.DEV ldy #bLong
|
|||
lda (pData),y
|
||||
bpl .8
|
||||
|
||||
>LDYA ZPPtr1
|
||||
>LDYA ZPFileName
|
||||
jsr EnterSubDirYA
|
||||
bcs .9
|
||||
jsr CS.RUN.ENTER.MSG
|
||||
|
@ -217,7 +218,7 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
bpl .10
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
lda (ZPFileName),y
|
||||
cmp #'.'
|
||||
beq .5
|
||||
|
||||
|
@ -225,14 +226,14 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
lda (pData),y
|
||||
bmi .4
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>LDYA L.MSG.DIR
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
||||
lda #80/MAX.COL-2
|
||||
sec
|
||||
sbc (ZPPtr1)
|
||||
sbc (ZPFileName)
|
||||
beq .2
|
||||
tax
|
||||
|
||||
|
@ -251,13 +252,13 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
.4 jsr CS.RUN.PUSHEXTRA
|
||||
|
||||
ldy #S.STAT.MODE+1
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA File Mode
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>LDYA L.MSG.DIREXT
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
@ -267,14 +268,14 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
bpl .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
lda (ZPFileName),y
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
jsr CS.RUN.NewLine
|
||||
bcs .9
|
||||
|
||||
>LDYA ZPPtr1
|
||||
>LDYA ZPFileName
|
||||
jsr EnterSubDirYA
|
||||
bcs .9
|
||||
jsr CS.RUN.ENTER.MSG
|
||||
|
@ -287,7 +288,7 @@ CS.RUN.FILE ldy #bLong
|
|||
lda (pData),y
|
||||
bmi .8
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>LDYA L.MSG.FILE
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
@ -296,34 +297,34 @@ CS.RUN.FILE ldy #bLong
|
|||
|
||||
.8 jsr CS.RUN.PUSHEXTRA
|
||||
|
||||
lda ZPPtr2
|
||||
lda ZPFileStat
|
||||
clc
|
||||
adc #S.STAT.SIZE
|
||||
tay
|
||||
lda ZPPtr2+1
|
||||
lda ZPFileStat+1
|
||||
adc #0
|
||||
>PUSHYA File Size
|
||||
|
||||
ldy #S.STAT.MODE+1
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA File Mode
|
||||
|
||||
ldy #S.STAT.P.AUXTYPE+1
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA AuxType
|
||||
|
||||
dey
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
jsr FileType2PSTR
|
||||
>PUSHYA Type
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>LDYA L.MSG.FILEEXT
|
||||
>SYSCALL CPrintFYA
|
||||
.9 rts
|
||||
|
@ -338,31 +339,31 @@ CS.RUN.PUSHEXTRA
|
|||
bpl .10
|
||||
|
||||
ldy #S.STAT.MTIME+S.TIME.MONTH
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
beq .1 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW L.TIME.Mod
|
||||
>PUSHW L.TIME.Format
|
||||
lda ZPPtr2
|
||||
lda ZPFileStat
|
||||
clc
|
||||
adc #S.STAT.MTIME
|
||||
tay
|
||||
lda ZPPtr2+1
|
||||
lda ZPFileStat+1
|
||||
adc #0
|
||||
>PUSHYA
|
||||
>SYSCALL PStrFTime
|
||||
|
||||
.1 ldy #S.STAT.CTIME+S.TIME.MONTH
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
beq .2 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW L.TIME.Create
|
||||
>PUSHW L.TIME.Format
|
||||
lda ZPPtr2
|
||||
lda ZPFileStat
|
||||
clc
|
||||
adc #S.STAT.CTIME
|
||||
tay
|
||||
lda ZPPtr2+1
|
||||
lda ZPFileStat+1
|
||||
adc #0
|
||||
>PUSHYA
|
||||
>SYSCALL PStrFTime
|
||||
|
|
|
@ -12,7 +12,6 @@ AUTO 6
|
|||
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||
.INB /A2OSX.DEV/INC/MLI.ERR.I
|
||||
*--------------------------------------
|
||||
X.MAX.RECURSE .EQ 8
|
||||
X.COPY.TO.DEST .EQ 1
|
||||
X.DELETE.SOURCE .EQ 1
|
||||
*--------------------------------------
|
||||
|
@ -27,6 +26,7 @@ OptionVars .DA #bContinue,#bRecurse,#bNoConfirm
|
|||
MSG.USAGE >CSTR "Usage : MV [Src File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n -Y : Dont't prompt for override\n"
|
||||
MSG.DIR >CSTR "MV Dir :%S%S to %S..."
|
||||
MSG.FILE >CSTR "MV File:%S%S to %S..."
|
||||
MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?"
|
||||
MSG.OK >CSTR "[OK]\n"
|
||||
MSG.ERR >CSTR "[%h]\n"
|
||||
*--------------------------------------
|
||||
|
|
|
@ -12,7 +12,6 @@ AUTO 6
|
|||
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||
.INB /A2OSX.DEV/INC/MLI.ERR.I
|
||||
*--------------------------------------
|
||||
X.MAX.RECURSE .EQ 8
|
||||
X.COPY.TO.DEST .EQ 0
|
||||
X.DELETE.SOURCE .EQ 1
|
||||
*--------------------------------------
|
||||
|
|
|
@ -5,10 +5,12 @@ INC 1
|
|||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
COPY.BUF.SIZE .EQ 4096
|
||||
X.COPY.BUF.SIZE .EQ 4096
|
||||
*--------------------------------------
|
||||
ZPPtr1 .EQ ZPBIN
|
||||
ZPPtr2 .EQ ZPBIN+2
|
||||
ZPFileName .EQ ZPBIN+4
|
||||
ZPFileStat .EQ ZPBIN+6
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -31,6 +33,9 @@ CS.START cld
|
|||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.DIR .DA MSG.DIR
|
||||
L.MSG.FILE .DA MSG.FILE
|
||||
.DO X.COPY.TO.DEST=1
|
||||
L.MSG.OVERWRTE .DA MSG.OVERWRTE
|
||||
.FIN
|
||||
L.MSG.OK .DA MSG.OK
|
||||
L.MSG.ERR .DA MSG.ERR
|
||||
L.STAT .DA STAT
|
||||
|
@ -83,18 +88,18 @@ CS.INIT >SYSCALL GetArgC
|
|||
|
||||
.4 ldy #index
|
||||
lda (pData),y
|
||||
*--------------------------------------
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
bne .5 Already have a Src dir...
|
||||
.ELSE
|
||||
bne .99
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
>LDYA ZPPtr1
|
||||
jsr InitSrcDirPatYA
|
||||
bcc .1 success, scan for any other args
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
.5 ldy #hDstBasePath
|
||||
lda (pData),y
|
||||
|
@ -105,11 +110,11 @@ CS.INIT >SYSCALL GetArgC
|
|||
bcc .1 success, scan for any other args
|
||||
rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
.7 ldy #index processed all args
|
||||
lda (pData),y
|
||||
beq .99 , no src ? ERROR
|
||||
*--------------------------------------
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
ldy #hDstBasePath
|
||||
lda (pData),y
|
||||
|
@ -121,7 +126,7 @@ CS.INIT >SYSCALL GetArgC
|
|||
jsr InitDstDirYA
|
||||
bcs .99
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
.8 lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
|
@ -129,8 +134,6 @@ CS.INIT >SYSCALL GetArgC
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* CS.RUN
|
||||
*--------------------------------------
|
||||
CS.RUN >SYSCALL GetC
|
||||
bcs .11 no char
|
||||
|
||||
|
@ -152,14 +155,14 @@ CS.RUN >SYSCALL GetC
|
|||
bpl .1
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
||||
.1 .DO X.COPY.TO.DEST=1
|
||||
ldy #bCopy
|
||||
lda (pData),y
|
||||
bpl .2
|
||||
jmp CS.RUN.Copy
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
.2 .DO X.DELETE.SOURCE=1
|
||||
ldy #hToDelete
|
||||
lda (pData),y
|
||||
|
@ -180,9 +183,9 @@ CS.RUN >SYSCALL GetC
|
|||
plp
|
||||
jmp CS.RUN.CheckErr
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
.3 jsr GetNextEntry Ptr1=NAME, Ptr2=STAT
|
||||
bcs .9
|
||||
|
||||
.3 jsr GetNextEntry
|
||||
bcs CS.RUN.LEAVE
|
||||
|
||||
ldy #hFilter
|
||||
lda (pData),y
|
||||
|
@ -190,22 +193,28 @@ CS.RUN >SYSCALL GetC
|
|||
|
||||
>SYSCALL GetMemPtrA
|
||||
>PUSHYA
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>SYSCALL PStrMatch
|
||||
bcs .8 no match, skip....
|
||||
|
||||
.4 ldy #S.STAT.P.DRIVE
|
||||
lda (ZPPtr2),y ProDOS Device ?
|
||||
lda (ZPFileStat),y ProDOS Device ?
|
||||
bne .6
|
||||
|
||||
ldy #S.STAT.P.TYPE
|
||||
lda (ZPPtr2),y
|
||||
lda (ZPFileStat),y
|
||||
cmp #$0F Directory ?
|
||||
bne .5
|
||||
|
||||
ldy #bRecurse
|
||||
lda (pData),y
|
||||
bpl .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPFileName),y
|
||||
cmp #'.'
|
||||
beq .8 Skip "." & ".."
|
||||
|
||||
jmp CS.RUN.DIR
|
||||
|
||||
.5 jmp CS.RUN.FILE
|
||||
|
@ -213,8 +222,11 @@ CS.RUN >SYSCALL GetC
|
|||
.6 lda #MLI.ERR.UNSUPSS
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.9 jsr LeaveSubDir exit this sub dir....
|
||||
CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir....
|
||||
bcs .99 base, we are done, exit
|
||||
|
||||
.DO X.DELETE.SOURCE=1
|
||||
|
@ -233,27 +245,22 @@ CS.RUN >SYSCALL GetC
|
|||
bcs .99
|
||||
.FIN
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
jsr BasePath..
|
||||
.8 clc
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 lda #0
|
||||
sec
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DIR ldy #1
|
||||
lda (ZPPtr1),y
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
ldy #hDstBasePath
|
||||
lda (pData),y
|
||||
>SYSCALL GetMemPtrA
|
||||
>PUSHYA
|
||||
CS.RUN.DIR .DO X.COPY.TO.DEST=1
|
||||
|
||||
>PUSHW ZPPtr1 Filename
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetFilePath
|
||||
>PUSHWI UsrBuf256
|
||||
|
||||
>PUSHW ZPFileName Filename
|
||||
|
||||
ldy #hSrcBasePath
|
||||
lda (pData),y
|
||||
|
@ -264,20 +271,62 @@ CS.RUN.DIR ldy #1
|
|||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetFilePath
|
||||
>PUSHW L.STAT
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL Stat
|
||||
bcs .2 File Not exists...go create
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
ldy #bNoConfirm
|
||||
lda (pData),y
|
||||
bmi .12 no prompt, nothing to create, enter subdir
|
||||
|
||||
>LDYA L.MSG.OVERWRTE
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
||||
.1 >SYSCALL Sleep
|
||||
>SYSCALL GetC
|
||||
bcs .1
|
||||
cmp #3
|
||||
beq .99 abort
|
||||
|
||||
cmp #'N'
|
||||
bne .11
|
||||
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
rts no overwrite, nothing to do, no recurse
|
||||
|
||||
.11 cmp #'Y'
|
||||
beq .12 no create, but recurse
|
||||
|
||||
cmp #'A'
|
||||
bne .1
|
||||
|
||||
ldy #bNoConfirm
|
||||
lda #$ff
|
||||
sta (pData),y
|
||||
|
||||
.12 lda #0
|
||||
clc
|
||||
bra .3
|
||||
|
||||
.2 >LDYAI UsrBuf256
|
||||
>SYSCALL MKDirYA
|
||||
jsr CS.RUN.CheckErr
|
||||
|
||||
.3 jsr CS.RUN.CheckErr
|
||||
bcs .9
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
>LDYA ZPPtr1
|
||||
|
||||
.7 >LDYA ZPFileName
|
||||
jmp EnterSubDirYA
|
||||
*--------------------------------------
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
||||
.99 lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.FILE .DO X.COPY.TO.DEST=1
|
||||
ldy #hDstBasePath
|
||||
|
@ -286,7 +335,7 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1
|
|||
>PUSHYA
|
||||
.FIN
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
|
||||
ldy #hSrcBasePath
|
||||
lda (pData),y
|
||||
|
@ -296,15 +345,55 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1
|
|||
>LDYA L.MSG.FILE
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
*--------------------------------------
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
jsr CS.RUN.CopyStart
|
||||
bcc .1
|
||||
|
||||
>PUSHW L.STAT
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL Stat
|
||||
bcs .2 File Not exists...go create
|
||||
|
||||
ldy #bNoConfirm
|
||||
lda (pData),y
|
||||
bmi .2 no prompt, ovverwrite
|
||||
|
||||
>LDYA L.MSG.OVERWRTE
|
||||
>SYSCALL CPrintFYA
|
||||
bcs .9
|
||||
|
||||
.1 >SYSCALL Sleep
|
||||
>SYSCALL GetC
|
||||
bcs .1
|
||||
cmp #3
|
||||
beq .99 abort
|
||||
|
||||
cmp #'N'
|
||||
bne .11
|
||||
|
||||
lda #13
|
||||
>SYSCALL PutCA
|
||||
rts no overwrite exit
|
||||
|
||||
.11 cmp #'Y'
|
||||
beq .12 copy
|
||||
|
||||
cmp #'A'
|
||||
bne .1
|
||||
|
||||
ldy #bNoConfirm
|
||||
lda #$ff
|
||||
sta (pData),y
|
||||
|
||||
.12
|
||||
* jsr GetEntry get back current entry corrupted by SLEEP
|
||||
|
||||
.2 jsr CS.RUN.CopyStart
|
||||
bcc .4
|
||||
jsr CS.RUN.CheckErr
|
||||
rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
.1 .DO X.DELETE.SOURCE=1
|
||||
|
||||
.4 .DO X.DELETE.SOURCE=1
|
||||
ldy #hSrcBasePath
|
||||
jsr CS.RUN.GetFilePath
|
||||
>LDYAI UsrBuf256
|
||||
|
@ -314,17 +403,20 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1
|
|||
ldy #hToDelete
|
||||
sta (pData),y
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
.9 rts
|
||||
.99 lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.DO X.COPY.TO.DEST=1
|
||||
CS.RUN.CopyStart
|
||||
ldy #S.STAT.P.AUXTYPE+1
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
dey
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
ldy #S.STAT.P.TYPE
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
>PUSHBI SYS.FOpen.R
|
||||
ldy #hSrcBasePath
|
||||
jsr CS.RUN.GetFilePath
|
||||
|
@ -338,11 +430,11 @@ CS.RUN.CopyStart
|
|||
sta (pData),y
|
||||
|
||||
ldy #S.STAT.P.AUXTYPE+1
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
dey
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
ldy #S.STAT.P.TYPE
|
||||
>PUSHB (ZPPtr2),y
|
||||
>PUSHB (ZPFileStat),y
|
||||
>PUSHBI SYS.FOpen.W+SYS.FOpen.X
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetFilePath
|
||||
|
@ -370,7 +462,7 @@ CS.RUN.CopyStart
|
|||
.99 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Copy stz .90+1
|
||||
>PUSHWI COPY.BUF.SIZE
|
||||
>PUSHWI X.COPY.BUF.SIZE
|
||||
>PUSHBI 0
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
@ -379,7 +471,7 @@ CS.RUN.Copy stz .90+1
|
|||
stx .90+1
|
||||
|
||||
>PUSHW ZPPtr1 Dst Ptr
|
||||
>PUSHWI COPY.BUF.SIZE Bytes To Read
|
||||
>PUSHWI X.COPY.BUF.SIZE Bytes To Read
|
||||
ldy #hSrcFile
|
||||
>PUSHB (pData),y
|
||||
>SYSCALL FRead
|
||||
|
@ -467,7 +559,7 @@ CS.RUN.CheckErr bcs .1
|
|||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
jsr CS.RUN.GetBasePath
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL PStrCat
|
||||
rts
|
||||
|
|
|
@ -11,6 +11,8 @@ AUTO 6
|
|||
* hSrcBasePath .BS 1
|
||||
* hDstBasePath .BS 1 (optional)
|
||||
*--------------------------------------
|
||||
X.MAX.RECURSE .EQ 8
|
||||
*--------------------------------------
|
||||
InitSrcDirPatYA ldx #$80
|
||||
.HS 2C bit abs
|
||||
InitSrcDirYA ldx #0
|
||||
|
@ -31,7 +33,7 @@ InitSrcDirYA ldx #0
|
|||
|
||||
>PUSHW L.STAT
|
||||
>PUSHW ZPPtr1
|
||||
>SYSCALL STAT
|
||||
>SYSCALL Stat
|
||||
|
||||
bcs .1 File/DIR does not exists, go extract pattern
|
||||
|
||||
|
@ -197,7 +199,7 @@ GetNextEntry ldy #index
|
|||
|
||||
>SYSCALL ReadDirA
|
||||
bcs InitSrcDirYA.RTS
|
||||
>STYA ZPPtr1
|
||||
>STYA ZPFileName
|
||||
|
||||
ldy #index
|
||||
lda (pData),y
|
||||
|
@ -220,7 +222,7 @@ GetNextEntry ldy #index
|
|||
bra .2
|
||||
|
||||
.1 >SYSCALL GetMemPtrA
|
||||
>STYA ZPPtr1
|
||||
>STYA ZPFileName
|
||||
|
||||
ldy #index
|
||||
lda (pData),y
|
||||
|
@ -228,17 +230,17 @@ GetNextEntry ldy #index
|
|||
adc #oDIRENTs-1 CC from ASL
|
||||
tay
|
||||
|
||||
lda ZPPtr1
|
||||
* clc from ADC
|
||||
lda ZPFileName
|
||||
clc
|
||||
adc (pData),y
|
||||
sta ZPPtr1
|
||||
sta ZPFileName
|
||||
|
||||
lda ZPPtr1+1
|
||||
iny
|
||||
lda ZPFileName+1
|
||||
adc (pData),y
|
||||
sta ZPPtr1+1
|
||||
sta ZPFileName+1
|
||||
|
||||
.2 lda (ZPPtr1) first/next DIRENT
|
||||
.2 lda (ZPFileName) first/next DIRENT
|
||||
bne .8
|
||||
|
||||
sta (pData),y reset offset...
|
||||
|
@ -265,25 +267,26 @@ GetNextEntry ldy #index
|
|||
adc #oDIRENTs-1
|
||||
tay
|
||||
|
||||
lda (ZPPtr1) Add file len+1...
|
||||
lda (ZPFileName) Add file len+1...
|
||||
sec
|
||||
adc #S.STAT +S.STAT
|
||||
|
||||
* clc from ADC
|
||||
clc
|
||||
adc (pData),y Make oDIRENTs[i] point to next DIRENT
|
||||
sta (pData),y
|
||||
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
sta (pData),y
|
||||
|
||||
lda ZPPtr1 set Ptr2=Ptr1+LEN-> S.STAT
|
||||
lda ZPFileName set Ptr2=Ptr1+LEN-> S.STAT
|
||||
sec
|
||||
adc (ZPPtr1)
|
||||
sta ZPPtr2
|
||||
lda ZPPtr1+1
|
||||
adc (ZPFileName)
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPPtr2+1
|
||||
sta ZPFileStat+1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
|
Loading…
Reference in New Issue
Block a user