diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index a081e5ce..bc347400 100644 Binary files a/A2OSX.BOOT.po and b/A2OSX.BOOT.po differ diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index b1bc30ae..9aab52cf 100644 Binary files a/A2OSX.SRC.po and b/A2OSX.SRC.po differ diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index 04afe83d..e038f819 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -16,7 +16,7 @@ X.MAX.RECURSE .EQ 8 X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 0 *-------------------------------------- - .INB BIN/X.CPMV.S + .INB BIN/X.CPMVRM.S *-------------------------------------- .INB BIN/X.FILEENUM.S *-------------------------------------- @@ -49,6 +49,7 @@ hSrcFile .BS 1 hDstFile .BS 1 bPause .BS 1 bCopy .BS 1 +hToDelete .BS 1 CopyRC .BS 1 bContinue .BS 1 bRecurse .BS 1 diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 2331d806..58b7aa2a 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -10,12 +10,13 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .INB /A2OSX.DEV/INC/A2OSX.I + .INB /A2OSX.DEV/INC/MLI.ERR.I *-------------------------------------- X.MAX.RECURSE .EQ 8 -X.DST.BASE.PATH .EQ 1 +X.COPY.TO.DEST .EQ 1 X.DELETE.SOURCE .EQ 1 *-------------------------------------- - .INB BIN/X.CPMV.S + .INB BIN/X.CPMVRM.S *-------------------------------------- .INB BIN/X.FILEENUM.S *-------------------------------------- @@ -25,7 +26,7 @@ OptionList >PSTR "CRY" 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 to %S..." +MSG.DIR >CSTR "MV Dir :%S%S to %S..." MSG.FILE >CSTR "MV File:%S%S to %S..." MSG.OK >CSTR "[OK]\n" MSG.ERR >CSTR "[%h]\n" @@ -44,7 +45,12 @@ oDIRENTs .BS X.MAX.RECURSE*2 hSrcBasePath .BS 1 hDstBasePath .BS 1 hFilter .BS 1 +hSrcFile .BS 1 +hDstFile .BS 1 bPause .BS 1 +bCopy .BS 1 +hToDelete .BS 1 +CopyRC .BS 1 bContinue .BS 1 bRecurse .BS 1 bNoConfirm .BS 1 diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index ed4bdcba..ad85cbd7 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -10,318 +10,20 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .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 0 +X.DELETE.SOURCE .EQ 1 *-------------------------------------- -ZPPtr1 .EQ ZPBIN -ZPPtr2 .EQ ZPBIN+2 -*-------------------------------------- -* File Header (16 Bytes) -*-------------------------------------- -CS.START cld - jmp (.1,x) - .DA #$61 6502,Level 1 (65c02) - .DA #1 BIN Layout Version 1 - .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA DS.END-DS.START Data Segment to Allocate - .DA 0 - .DA 0 -*-------------------------------------- -* Relocation Table -*-------------------------------------- -.1 .DA CS.INIT - .DA CS.RUN - .DA CS.DOEVENT - .DA CS.QUIT -L.MSG.USAGE .DA MSG.USAGE -L.MSG.DIR .DA MSG.DIR -L.MSG.FILE .DA MSG.FILE -L.MSG.OK .DA MSG.OK -L.MSG.ERR .DA MSG.ERR -L.STAT .DA STAT - .DA 0 -*-------------------------------------- -CS.INIT >SYSCALL GetArgC - sta ArgCount - cmp #1 - beq .99 - -.1 dec ArgCount - beq .5 - - lda ArgCount - >SYSCALL GetArgA - >STYA ZPPtr1 - - lda (ZPPtr1) - cmp #2 - bne .4 - - ldy #1 - lda (ZPPtr1),y - cmp #'-' - bne .4 - - iny - lda (ZPPtr1),y - - ldx OptionList - -.2 cmp OptionList,x - beq .3 - dex - bne .2 - - lda #SYSMGR.ERRSYN - sec - rts - -.3 ldy OptionVars-1,x - lda #$80 - sta (pData),y - bra .1 - -.4 >LDYA ZPPtr1 - jsr InitSrcDirPatYA - bcs .9 - - bra .1 scan for any other args - -.5 ldy #index - lda (pData),y - beq .99 - -.8 lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - - clc - rts - -.99 >LDYA L.MSG.USAGE - >SYSCALL CPrintFYA - lda #SYSMGR.ERRSYN - sec -.9 rts -*-------------------------------------- -CS.RUN ldy #bCANCEL - lda (pData),y - bmi .99 - - ldy #bSTOP - lda (pData),y - bmi .8 - - jsr GetNextEntry - bcs .9 - - ldy #hFilter - lda (pData),y - beq .4 No filter.... - - >SYSCALL GetMemPtrA - >PUSHYA - >PUSHW ZPPtr1 - >SYSCALL PStrMatch - bcs .8 no match, skip.... - -.4 ldy #S.STAT.P.DRIVE - lda (ZPPtr2),y ProDOS Device ? - bne .5 - - ldy #S.STAT.P.TYPE - lda (ZPPtr2),y - cmp #$0F Directory ? - bne .6 - - jmp CS.RUN.DIR -.5 jmp CS.RUN.DEV -.6 jmp CS.RUN.FILE - -.9 jsr LeaveSubDir - bcs .99 - - ldy #bRecurse - lda (pData),y - bpl .8 - - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtrA - >PUSHYA - >LDYA L.MSG.DIR - >SYSCALL CPrintFYA - - jsr CS.RUN.DELETE.DIR - jsr CS.RUN.PRINT.RC - - jsr BasePath.. - -.8 clc - rts - -.99 lda #0 - sec - rts -*-------------------------------------- -CS.RUN.DEV >PUSHW ZPPtr1 - >LDYA L.MSG.FILE - >SYSCALL CPrintFYA - bcs .9 - - ldy #bRecurse - lda (pData),y - bpl .8 - - jsr CS.RUN.PRINT.FILE - bcs .9 - - lda #0 - clc - jsr CS.RUN.PRINT.RC - - >LDYA ZPPtr1 - jmp EnterSubDirYA - -.8 clc -.9 rts -*-------------------------------------- -CS.RUN.DIR ldy #1 - lda (ZPPtr1),y - cmp #'.' - beq .8 - - ldy #bRecurse - lda (pData),y - bpl CS.RUN.FILE - - >LDYA ZPPtr1 - jmp EnterSubDirYA - -.8 clc -.9 rts -*-------------------------------------- -CS.RUN.FILE jsr CS.RUN.PRINT.FILE - bcs .9 - jsr CS.RUN.DELETE.FILE - jsr CS.RUN.PRINT.RC -.9 rts -*-------------------------------------- -CS.RUN.PRINT.FILE - >PUSHW ZPPtr1 - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtrA - >PUSHYA - - >LDYA L.MSG.FILE - >SYSCALL CPrintFYA - rts -*-------------------------------------- -CS.RUN.DELETE.DIR - jsr CS.RUN.GET.BASE.PATH - bra CS.RUN.DELETE -*-------------------------------------- -CS.RUN.DELETE.FILE - jsr CS.RUN.GET.BASE.PATH - >PUSHW ZPPtr1 - >PUSHWI UsrBuf256 - >SYSCALL PStrCat - -CS.RUN.DELETE >LDYAI UsrBuf256 - >SYSCALL RemoveYA - rts -*-------------------------------------- -CS.RUN.GET.BASE.PATH - ldy #hSrcBasePath - lda (pData),y - >SYSCALL GetMemPtrA - >PUSHYA - >PUSHWI UsrBuf256 - >SYSCALL PStrCpy - rts -*-------------------------------------- -CS.RUN.PRINT.RC pha - php - bcs .1 - >LDYA L.MSG.OK - bra .8 - -.1 >PUSHA - >LDYA L.MSG.ERR - -.8 >SYSCALL CPrintFYA - bcs .9 - plp - ldy #bContinue - lda (pData),y - eor #$80 - asl - pla - rts - -.9 plx - plx - rts -*-------------------------------------- -CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? - lda (pEvent),y - ldy #S.PS.hStdIn - cmp (pPs),y - bne .9 - - lda (pEvent) - and #S.EVT.F.KEY is it a KEY event? - beq .9 - - ldy #S.EVT.DATAHI is it an O or SAPPLE key ? - lda (pEvent),y - bne .9 - - ldy #S.EVT.DATALO - lda (pEvent),y - cmp #$03 Ctrl-C - bne .1 - - lda #$FF - ldy #bCANCEL - sta (pData),y - bra .8 - -.1 cmp #$13 Ctrl-S - bne .8 - - ldy #bSTOP - lda (pData),y - eor #$FF - sta (pData),y - -.8 clc - rts - -.9 sec - rts -*-------------------------------------- -CS.QUIT jsr LeaveSubDir - bcc CS.QUIT - - ldy #hFilter - lda (pData),y - beq .3 - >SYSCALL FreeMemA - -.3 clc - rts + .INB BIN/X.CPMVRM.S *-------------------------------------- .INB BIN/X.FILEENUM.S *-------------------------------------- CS.END *-------------------------------------- -OptionList >PSTR "CR" -OptionVars .DA #bContinue,#bRecurse +OptionList >PSTR "CRY" +OptionVars .DA #bContinue,#bRecurse,#bNoConfirm *-------------------------------------- MSG.USAGE >CSTR "Usage : RM [File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n" MSG.DIR >CSTR "RM Dir :%S..." @@ -331,6 +33,7 @@ MSG.ERR >CSTR "[%h]\n" *-------------------------------------- STAT .BS S.STAT ArgCount .BS 1 +ArgIndex .BS 1 *-------------------------------------- .DUMMY .OR 0 @@ -340,11 +43,17 @@ hDIRs .BS X.MAX.RECURSE hDIRENTs .BS X.MAX.RECURSE oDIRENTs .BS X.MAX.RECURSE*2 hSrcBasePath .BS 1 +hDstBasePath .BS 1 hFilter .BS 1 -bCANCEL .BS 1 -bSTOP .BS 1 +hSrcFile .BS 1 +hDstFile .BS 1 +bPause .BS 1 +bCopy .BS 1 +hToDelete .BS 1 +CopyRC .BS 1 bContinue .BS 1 bRecurse .BS 1 +bNoConfirm .BS 1 DS.END .ED *-------------------------------------- diff --git a/BIN/X.CPMV.S.txt b/BIN/X.CPMVRM.S.txt similarity index 73% rename from BIN/X.CPMV.S.txt rename to BIN/X.CPMVRM.S.txt index efa4dccd..93f8751d 100644 --- a/BIN/X.CPMV.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -39,7 +39,7 @@ L.STAT .DA STAT CS.INIT >SYSCALL GetArgC sta ArgCount cmp #1 - beq .99 + beq .99 stz ArgIndex @@ -83,13 +83,21 @@ 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 InitSrcDirYA bcc .1 success, scan for any other args rts - +*-------------------------------------- + .DO X.COPY.TO.DEST=1 +*-------------------------------------- .5 ldy #hDstBasePath lda (pData),y bne .99 we already have a second arg....error! @@ -98,11 +106,14 @@ CS.INIT >SYSCALL GetArgC jsr InitDstDirYA 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 bne .8 we also have a Dst folder @@ -112,7 +123,8 @@ CS.INIT >SYSCALL GetArgC >SYSCALL GetMemPtrA jsr InitDstDirYA bcs .99 - + .FIN +*-------------------------------------- .8 lda (pPs) ora #S.PS.F.EVENT Now accept events sta (pPs) @@ -121,28 +133,42 @@ CS.INIT >SYSCALL GetArgC rts *-------------------------------------- CS.RUN >SYSCALL GetC - bcs .1 no char + bcs .11 no char cmp #$03 Ctrl-C - beq .99 Abort.... + bne .10 + sec + rts Abort.... - cmp #$13 Ctrl-S - bne .1 +.10 cmp #$13 Ctrl-S + bne .11 ldy #bPause lda (pData),y eor #$ff sta (pData),y - bne .8 +.11 ldy #bPause + lda (pData),y + bmi .8 +*-------------------------------------- .1 .DO X.COPY.TO.DEST=1 +*-------------------------------------- ldy #bCopy lda (pData),y bpl .2 jmp CS.RUN.Copy .FIN - -.2 jsr GetNextEntry Ptr1=NAME, Ptr2=STAT +*-------------------------------------- +.2 .DO X.DELETE.SOURCE +*-------------------------------------- + ldy #hToDelete + lda (pData),y + beq .3 + jmp CS.RUN.Delete + .FIN +*-------------------------------------- +.3 jsr GetNextEntry Ptr1=NAME, Ptr2=STAT bcs .9 ldy #hFilter @@ -175,14 +201,17 @@ CS.RUN >SYSCALL GetC ldy #bRecurse lda (pData),y - bpl .8 - + bpl .8 +*-------------------------------------- .DO X.DELETE.SOURCE=1 - jsr CS.RUN.DELETE.DIR - jsr CS.RUN.PRINT.RC +*-------------------------------------- + ldy #hSrcBasePath + jsr CS.RUN.GetBasePath + >SYSCALL RemoveYA + jsr CS.RUN.CheckErr bcs .99 .FIN - +*-------------------------------------- jsr BasePath.. .8 clc @@ -206,7 +235,7 @@ CS.RUN.DEV >PUSHW ZPPtr1 lda #0 clc - jsr CS.RUN.PrintErr + jsr CS.RUN.CheckErr >LDYA ZPPtr1 jmp EnterSubDirYA @@ -224,41 +253,48 @@ CS.RUN.DIR ldy #bRecurse beq .8 jsr CS.RUN.PrintDir - bcs .9 - + bcs .9 +*-------------------------------------- .DO X.COPY.TO.DEST=1 +*-------------------------------------- ldy #hDstBasePath jsr CS.RUN.GetFilePath >LDYAI UsrBuf256 >SYSCALL MKDirYA - - jsr CS.RUN.PrintErr - bcc .1 - cmp #MLI.ERR.DUPFILE - beq .1 + jsr CS.RUN.CheckErr .FIN - +*-------------------------------------- .1 >LDYA ZPPtr1 jmp EnterSubDirYA .8 clc - rts - .9 rts *-------------------------------------- CS.RUN.FILE jsr CS.RUN.PrintFile bcs .9 +*-------------------------------------- + .DO X.COPY.TO.DEST=1 +*-------------------------------------- jsr CS.RUN.CopyStart bcs .9 rts - -* .DO X.DELETE.SOURCE=1 -* jsr CS.RUN.DelFile -* bcs .9 -* .FIN + .FIN +*-------------------------------------- + .DO X.DELETE.SOURCE=1 +*-------------------------------------- + ldy #hSrcBasePath + jsr CS.RUN.GetFilePath + >LDYAI UsrBuf256 + >SYSCALL NewPStrYA + bcs .9 + txa + ldy #hToDelete + sta (pData),y -.9 jsr CS.RUN.PrintErr + .FIN +*-------------------------------------- +.9 jsr CS.RUN.CheckErr rts *-------------------------------------- CS.RUN.PrintDir ldy #hDstBasePath @@ -329,7 +365,6 @@ CS.RUN.CopyStart >SYSCALL FOpen bcc .1 - >DEBUG pha ldy #hSrcFile lda (pData),y @@ -390,64 +425,67 @@ CS.RUN.Copy stz .90+1 beq CS.RUN.CopyEnd >SYSCALL FreeMemA *-------------------------------------- -CS.RUN.CopyEnd ldy #hDstFile - lda (pData),y - >SYSCALL FCloseA - - ldy #hSrcFile +CS.RUN.CopyEnd ldy #hSrcFile lda (pData),y >SYSCALL FCloseA + bcc .1 - ldy #bCopy + jsr CS.RUN.CheckErr + +.1 ldy #hDstFile + lda (pData),y + >SYSCALL FCloseA + bcc .2 + + jsr CS.RUN.CheckErr + +.2 ldy #bCopy lda #$0 sta (pData),y clc ldy #CopyRC lda (pData),y - beq CS.RUN.PrintErr + beq CS.RUN.CheckErr sec + jmp CS.RUN.CheckErr *-------------------------------------- .FIN -*-------------------------------------- -CS.RUN.PrintErr pha - php - bcs .1 - >LDYA L.MSG.OK - bra .8 - -.1 >PUSHA - >LDYA L.MSG.ERR - -.8 >SYSCALL CPrintFYA - bcs .9 - plp - bcc .81 - ldy #bContinue - lda (pData),y - eor #$80 - asl -.81 pla - rts - -.9 plx - plx - rts *-------------------------------------- .DO X.DELETE.SOURCE=1 *-------------------------------------- -CS.RUN.DelDir ldy #hSrcBasePath - jsr CS.RUN.GetBasePath +CS.RUN.Delete pha + lda #0 + sta (pData),y + pla + >SYSCALL GetMemPtrA >SYSCALL RemoveYA - rts -*-------------------------------------- -CS.RUN.DelFile ldy #hSrcBasePath - jsr CS.RUN.GetFilePath - >SYSCALL RemoveYA - rts + jmp CS.RUN.CheckErr *-------------------------------------- .FIN *-------------------------------------- +CS.RUN.CheckErr bcs .1 + >LDYA L.MSG.OK + >SYSCALL CPrintFYA + rts + +.1 sta .2+1 + >PUSHA + >LDYA L.MSG.ERR + + >SYSCALL CPrintFYA + bcs .9 + + ldy #bContinue + lda (pData),y + bmi .9 CC + +.2 lda #$ff + sec + rts + +.9 rts +*-------------------------------------- CS.RUN.GetFilePath jsr CS.RUN.GetBasePath @@ -479,6 +517,6 @@ CS.QUIT jsr LeaveSubDir rts *-------------------------------------- MAN -SAVE BIN/X.CPMV.S +SAVE BIN/X.CPMVRM.S LOAD BIN/CP.S ASM diff --git a/README.md b/README.md index 8264780b..d3072ab6 100644 --- a/README.md +++ b/README.md @@ -137,12 +137,12 @@ note : '$VAR' does NOT expand Variable | LS | Working | -A : Do Not Print . & .. | 0.9 | | | | -L : long listing with size/date... | | | | | -R : Recurse subdirectories | | -| RM | Working | -C : Continue On Error | 0.8 | +| RM | Working | -C : Continue On Error | 0.9 | | | | -R : Recurse subdirectories | | -| CP | In Progress | -C : Continue On Error | 0.8 | +| CP | In Progress | -C : Continue On Error | 0.9 | | | | -R : Recurse subdirectories | | | | | -Y : Dont't Prompt For Override | | -| MV | In Progress | -C : Continue On Error | 0.8 | +| MV | In Progress | -C : Continue On Error | 0.9 | | | | -R : Recurse subdirectories | | | | | -Y : Dont't Prompt For Override | | | CAT | Working | -A : Show All non printable caracters | 0.9 | diff --git a/SYS/KERNEL.S.FILE.txt b/SYS/KERNEL.S.FILE.txt index 181d26aa..cac2988a 100644 --- a/SYS/KERNEL.S.FILE.txt +++ b/SYS/KERNEL.S.FILE.txt @@ -46,8 +46,6 @@ K.FOpen jsr PFT.CheckPathSTK lda #S.FILEINFO.STORETYPE.STD sta MLICALL.PARAMS+7 -* jsr DATETIME - ldx #3 .1 lda DATELO,x sta MLICALL.PARAMS+8,x