mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-08 11:30:41 +00:00
Kernel version 0.8 : RM command
This commit is contained in:
parent
da799f3f98
commit
88d139c664
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.DEV.po
BIN
A2OSX.DEV.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -13,6 +13,7 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAX.COL .EQ 4
|
MAX.COL .EQ 4
|
||||||
MAX.RECURSE .EQ 8
|
MAX.RECURSE .EQ 8
|
||||||
|
X.MSG.ENTER .EQ 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
ZPPtr2 .EQ ZPBIN+2
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
@ -152,6 +153,9 @@ CS.RUN ldy #bCANCEL
|
|||||||
|
|
||||||
.91 jsr LeaveSubDir
|
.91 jsr LeaveSubDir
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
jsr BasePath..
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
317
BIN/RM.S.txt
317
BIN/RM.S.txt
@ -11,6 +11,9 @@ AUTO 6
|
|||||||
.INB /A2OSX.DEV/INC/MACROS.I
|
.INB /A2OSX.DEV/INC/MACROS.I
|
||||||
.INB /A2OSX.DEV/INC/A2OSX.I
|
.INB /A2OSX.DEV/INC/A2OSX.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
MAX.RECURSE .EQ 8
|
||||||
|
X.MSG.ENTER .EQ 0
|
||||||
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
ZPPtr2 .EQ ZPBIN+2
|
ZPPtr2 .EQ ZPBIN+2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -27,133 +30,241 @@ CS.START cld
|
|||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
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.OK .DA MSG.OK
|
||||||
L.MSG.ERR .DA MSG.ERR
|
L.MSG.ERR .DA MSG.ERR
|
||||||
L.FullPath .DA FullPath
|
L.STAT .DA STAT
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >SYSCALL GetArgC
|
CS.INIT >SYSCALL GetArgC
|
||||||
|
sta ArgCount
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .99
|
beq .99
|
||||||
|
|
||||||
lda #1
|
.1 dec ArgCount
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
lda ArgCount
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArgA
|
||||||
>SYSCALL GetFullPathYA
|
>STYA ZPPtr1
|
||||||
stx hFullPath
|
|
||||||
|
|
||||||
>SYSCALL ListDirInitYA
|
lda (ZPPtr1)
|
||||||
bcs .98
|
cmp #2
|
||||||
ldy #hS.LISTDIR
|
bne .4
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
jsr .98
|
ldy #1
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
cmp #'-'
|
||||||
|
bne .4
|
||||||
|
|
||||||
lda (pPs)
|
iny
|
||||||
ora #S.PS.F.EVENT Now accept events
|
lda (ZPPtr1),y
|
||||||
sta (pPs)
|
|
||||||
clc
|
ldx OptionList
|
||||||
rts
|
|
||||||
|
|
||||||
.98 pha
|
.2 cmp OptionList,x
|
||||||
lda hFullPath
|
beq .3
|
||||||
>SYSCALL FreeMemA
|
dex
|
||||||
pla
|
bne .2
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.99 >LDYA L.MSG.USAGE
|
|
||||||
>SYSCALL PStrOutYA
|
|
||||||
lda #SYSMGR.ERRSYN
|
lda #SYSMGR.ERRSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.3 ldy OptionVars-1,x
|
||||||
|
lda #$80
|
||||||
|
sta (pData),y
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.4 >LDYA ZPPtr1
|
||||||
|
jsr InitSrcDirYA
|
||||||
|
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 PrintFYA
|
||||||
|
lda #SYSMGR.ERRSYN
|
||||||
|
sec
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN ldy #bCANCEL
|
CS.RUN ldy #bCANCEL
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .10
|
bmi .99
|
||||||
|
|
||||||
|
ldy #bSTOP
|
||||||
|
lda (pData),y
|
||||||
|
bmi .8
|
||||||
|
|
||||||
sec
|
jsr GetNextEntry
|
||||||
rts
|
bcs .9
|
||||||
|
|
||||||
.10 ldy #bSTOP
|
ldy #hFilter
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .1
|
beq .4 No filter....
|
||||||
clc
|
|
||||||
.99 rts
|
|
||||||
|
|
||||||
.1 ldy #hS.LISTDIR
|
>SYSCALL GetMemPtrA
|
||||||
lda (pData),y
|
>PUSHYA
|
||||||
>SYSCALL ListDirNextA
|
>PUSHW ZPPtr1
|
||||||
|
>SYSCALL PStrMatch
|
||||||
|
bcs .8 no match, skip....
|
||||||
|
|
||||||
|
.4 ldy #S.STAT.PRODOS.DRIVE
|
||||||
|
lda (ZPPtr2),y ProDOS Device ?
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
ldy #S.STAT.PRODOS.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
|
bcs .99
|
||||||
|
|
||||||
pha
|
ldy #bRecurse
|
||||||
>SYSCALL GetMemPtrA
|
lda (pData),y
|
||||||
>STYA ZPPtr1
|
bpl .8
|
||||||
lda (ZPPtr1)
|
|
||||||
pha
|
|
||||||
|
|
||||||
and #$0F
|
|
||||||
sta (ZPPtr1) Adjust Filename len
|
|
||||||
|
|
||||||
pla
|
ldy #hBasePath
|
||||||
and #$F0
|
|
||||||
cmp #$F0 Volume ($F) HEADER ?
|
|
||||||
beq .8
|
|
||||||
cmp #$E0 Dir ($E) HEADER ?
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
ldy #hS.LISTDIR
|
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL GetMemPtrA
|
>SYSCALL GetMemPtrA
|
||||||
>STYA ZPPtr2
|
>PUSHYA
|
||||||
|
>LDYA L.MSG.DIR
|
||||||
|
>SYSCALL PrintFYA
|
||||||
|
|
||||||
ldy #S.LISTDIR.hPATH
|
jsr CS.RUN.DELETE.DIR
|
||||||
lda (ZPPtr2),y
|
jsr CS.RUN.PRINT.RC
|
||||||
>SYSCALL GetMemPtrA
|
|
||||||
>STYA ZPPtr2
|
|
||||||
|
|
||||||
lda (ZPPtr2)
|
jsr BasePath..
|
||||||
tax
|
|
||||||
tay
|
|
||||||
|
|
||||||
.2 lda (ZPPtr2),y
|
.8 clc
|
||||||
sta FullPath,y
|
rts
|
||||||
dey
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldy #0
|
.99 lda #0
|
||||||
.3 inx
|
sec
|
||||||
iny
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.DEV >PUSHW ZPPtr1
|
||||||
|
>LDYA L.MSG.FILE
|
||||||
|
>SYSCALL PrintFYA
|
||||||
|
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 #bRecurse
|
||||||
|
lda (pData),y
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
ldy #1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta FullPath,x
|
cmp #'.'
|
||||||
tya
|
beq .8
|
||||||
cmp (ZPPtr1)
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
stx FullPath
|
>LDYA ZPPtr1
|
||||||
|
jmp EnterSubDirYA
|
||||||
|
|
||||||
>LDYA L.FullPath
|
.8 clc
|
||||||
>SYSCALL PStrOutYA
|
.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 #hBasePath
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
>LDYA L.FullPath
|
>LDYA L.MSG.FILE
|
||||||
>SYSCALL MLIDestroyYA
|
>SYSCALL PrintFYA
|
||||||
bcs .5
|
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 #hBasePath
|
||||||
|
lda (pData),y
|
||||||
|
>SYSCALL GetMemPtrA
|
||||||
|
>PUSHYA
|
||||||
|
>PUSHWI UsrBuf256
|
||||||
|
>SYSCALL PStrCpy
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.PRINT.RC pha
|
||||||
|
php
|
||||||
|
bcs .1
|
||||||
>LDYA L.MSG.OK
|
>LDYA L.MSG.OK
|
||||||
>SYSCALL PStrOutYA
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.5 >PUSHA
|
.1 >PUSHA
|
||||||
>LDYA L.MSG.ERR
|
>LDYA L.MSG.ERR
|
||||||
>SYSCALL PStrOutYA
|
|
||||||
|
|
||||||
.8 pla
|
.8 >SYSCALL PrintFYA
|
||||||
>SYSCALL FreeMemA
|
bcs .9
|
||||||
clc
|
plp
|
||||||
|
ldy #bContinue
|
||||||
|
lda (pData),y
|
||||||
|
eor #$80
|
||||||
|
asl
|
||||||
|
pla
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 plx
|
||||||
|
plx
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||||
@ -194,34 +305,46 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT ldy #hS.LISTDIR
|
CS.QUIT jsr LeaveSubDir
|
||||||
lda (pData),y
|
bcc CS.QUIT
|
||||||
beq .1
|
|
||||||
|
|
||||||
>SYSCALL ListDirCloseA
|
ldy #hFilter
|
||||||
|
|
||||||
.1 ldy #hDirPath
|
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .2
|
beq .3
|
||||||
>SYSCALL FreeMemA
|
>SYSCALL FreeMemA
|
||||||
|
|
||||||
.2 clc
|
.3 clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
.INB BIN/X.CPLSMVRM.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.USAGE >PSTR "Usage : RM [file/Dir, *,? wildcards allowed]\n"
|
*--------------------------------------
|
||||||
MSG.OK >PSTR " [Ok]\n"
|
OptionList >PSTR "CR"
|
||||||
MSG.ERR >PSTR " [%h]\n"
|
OptionVars .DA #bContinue,#bRecurse
|
||||||
hFullPath .BS 1
|
*--------------------------------------
|
||||||
FullPath .BS 64
|
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..."
|
||||||
|
MSG.FILE >CSTR "RM File:%S%S..."
|
||||||
|
MSG.OK >CSTR "[OK]\n"
|
||||||
|
MSG.ERR >CSTR "[%h]\n"
|
||||||
|
*--------------------------------------
|
||||||
|
STAT .BS S.STAT
|
||||||
|
ArgCount .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
hDirPath .BS 1
|
Index .BS 1
|
||||||
hS.LISTDIR .BS 1
|
hDIRs .BS MAX.RECURSE
|
||||||
bSTOP .BS 1
|
hDIRENTs .BS MAX.RECURSE
|
||||||
|
oDIRENTs .BS MAX.RECURSE*2
|
||||||
|
hBasePath .BS 1
|
||||||
|
hFilter .BS 1
|
||||||
bCANCEL .BS 1
|
bCANCEL .BS 1
|
||||||
|
bSTOP .BS 1
|
||||||
|
bContinue .BS 1
|
||||||
|
bRecurse .BS 1
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -236,9 +236,11 @@ EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
|
|||||||
lda #'/'
|
lda #'/'
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
.DO X.MSG.ENTER=1
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA L.MSG.ENTER
|
>LDYA L.MSG.ENTER
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
|
.FIN
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
>SYSCALL OpenDirYA
|
>SYSCALL OpenDirYA
|
||||||
@ -283,11 +285,16 @@ LeaveSubDir ldy #index
|
|||||||
dec
|
dec
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
beq .9
|
beq .9
|
||||||
|
clc
|
||||||
ldy #hBasePath
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
BasePath.. ldy #hBasePath
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL GetMemPtrA
|
>SYSCALL GetMemPtrA
|
||||||
|
|
||||||
>STYA ZPPtr1 save full path
|
>STYA ZPPtr1 save full path
|
||||||
|
|
||||||
lda (ZPPtr1) get len
|
lda (ZPPtr1) get len
|
||||||
@ -303,9 +310,6 @@ LeaveSubDir ldy #index
|
|||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE BIN/X.CPLSMVRM.S
|
SAVE BIN/X.CPLSMVRM.S
|
||||||
|
@ -101,7 +101,7 @@ note : '$VAR' does NOT expand Variable
|
|||||||
| LS | Working | -A : Do Not Print . & .. | 0.8 |
|
| LS | Working | -A : Do Not Print . & .. | 0.8 |
|
||||||
| | | -L : long listing with size/date... | 0.8 |
|
| | | -L : long listing with size/date... | 0.8 |
|
||||||
| | | -R : Recurse subdirectories | |
|
| | | -R : Recurse subdirectories | |
|
||||||
| RM | In Progress | -C : Continue On Error | |
|
| RM | Working | -C : Continue On Error | |
|
||||||
| | | -R : Recurse subdirectories | |
|
| | | -R : Recurse subdirectories | |
|
||||||
| CP | In Progress | -C : Continue On Error | |
|
| CP | In Progress | -C : Continue On Error | |
|
||||||
| | | -R : Recurse subdirectories | |
|
| | | -R : Recurse subdirectories | |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user