mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-05 16:30:45 +00:00
Kernel version 0.8 : ISSUE#2, removed .EXT in LS, added L.CMD in BIN/ as an alias for LS -L, Added -R switch for recursive DIR listing
This commit is contained in:
parent
5181e60818
commit
2fd44770d2
144
BIN/LS.S.txt
144
BIN/LS.S.txt
@ -37,6 +37,7 @@ CS.START cld
|
||||
.DA CS.QUIT
|
||||
L.MSG.DEV .DA MSG.DEV
|
||||
L.MSG.DIR .DA MSG.DIR
|
||||
L.MSG.ENTER .DA MSG.ENTER
|
||||
L.MSG.DIREXT .DA MSG.DIREXT
|
||||
L.MSG.FILE .DA MSG.FILE
|
||||
L.MSG.FILEEXT .DA MSG.FILEEXT
|
||||
@ -91,7 +92,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
|
||||
bra .1 scan for any other args
|
||||
|
||||
.5 ldy #hDIRs
|
||||
.5 ldy #index
|
||||
lda (pData),y
|
||||
bne .8
|
||||
|
||||
@ -110,46 +111,15 @@ CS.INIT >SYSCALL GetArgC
|
||||
*--------------------------------------
|
||||
CS.RUN ldy #bCANCEL
|
||||
lda (pData),y
|
||||
beq .1
|
||||
sec
|
||||
rts
|
||||
bmi .99
|
||||
|
||||
.1 ldy #bSTOP
|
||||
ldy #bSTOP
|
||||
lda (pData),y
|
||||
beq .2
|
||||
clc
|
||||
rts
|
||||
bmi .8
|
||||
|
||||
.2 ldy #hDIRs
|
||||
lda (pData),y
|
||||
tay
|
||||
lda (pData),y
|
||||
jsr GetNextEntry
|
||||
bcs .9
|
||||
|
||||
>SYSCALL READDIRA
|
||||
bcc .20
|
||||
|
||||
ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .89
|
||||
|
||||
ldy #ColCount
|
||||
lda (pData),y
|
||||
beq .89
|
||||
|
||||
lda #13
|
||||
>SYSCALL COutA
|
||||
|
||||
.89 lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
.20 phx Save hDIRENT
|
||||
>STYA ZPPtr1
|
||||
|
||||
.3 lda (ZPPtr1)
|
||||
|
||||
beq .8 No more entry..exit
|
||||
|
||||
lda ZPPtr1 set Ptr2=Ptr1+LEN-> S.STAT
|
||||
sec
|
||||
adc (ZPPtr1)
|
||||
@ -166,39 +136,41 @@ CS.RUN ldy #bCANCEL
|
||||
>PUSHYA
|
||||
>PUSHW ZPPtr1
|
||||
>SYSCALL PStrMatch
|
||||
bcs .7 no match, skip....
|
||||
bcs .8 no match, skip....
|
||||
|
||||
.4 ldy #S.STAT.PRODOS.DRIVE
|
||||
lda (ZPPtr2),y ProDOS Device ?
|
||||
beq .5
|
||||
bne .5
|
||||
|
||||
jsr CS.RUN.DEV
|
||||
bra .7
|
||||
|
||||
.5 ldy #S.STAT.PRODOS.TYPE
|
||||
ldy #S.STAT.PRODOS.TYPE
|
||||
lda (ZPPtr2),y
|
||||
cmp #$0F Directory ?
|
||||
bne .6
|
||||
|
||||
jsr CS.RUN.DIR
|
||||
bra .7
|
||||
jmp CS.RUN.DIR
|
||||
.5 jmp CS.RUN.DEV
|
||||
.6 jmp CS.RUN.FILE
|
||||
|
||||
.6 jsr CS.RUN.FILE
|
||||
.9 ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .91
|
||||
|
||||
ldy #ColCount
|
||||
lda (pData),y
|
||||
beq .91
|
||||
|
||||
.7 lda ZPPtr2
|
||||
clc
|
||||
adc #S.STAT
|
||||
sta ZPPtr1
|
||||
lda ZPPtr2+1
|
||||
adc #0
|
||||
sta ZPPtr1+1
|
||||
bra .3
|
||||
|
||||
.8 pla Discard hDIRENT
|
||||
>SYSCALL FreeMemA
|
||||
|
||||
clc
|
||||
lda #13
|
||||
>SYSCALL COutA
|
||||
|
||||
.91 jsr LeaveSubDir
|
||||
bcs .99
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.99 lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
|
||||
>PUSHB (ZPPtr2),y
|
||||
@ -221,11 +193,12 @@ CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
|
||||
*--------------------------------------
|
||||
CS.RUN.DIR ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .8
|
||||
bmi .4
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>LDYA L.MSG.DIR
|
||||
>SYSCALL PrintFYA
|
||||
bcs .9
|
||||
|
||||
lda #80/MAX.COL-2
|
||||
sec
|
||||
@ -245,15 +218,16 @@ CS.RUN.DIR ldy #bLong
|
||||
inc
|
||||
sta (pData),y
|
||||
cmp #MAX.COL
|
||||
bne .7
|
||||
bne .5
|
||||
|
||||
lda #0
|
||||
sta (pData),y
|
||||
lda #13
|
||||
>SYSCALL COutA
|
||||
.7 rts
|
||||
bcc .5
|
||||
rts
|
||||
|
||||
.8 jsr CS.RUN.PUSHEXTRA
|
||||
.4 jsr CS.RUN.PUSHEXTRA
|
||||
|
||||
ldy #S.STAT.MODE+1
|
||||
lda (ZPPtr2),y
|
||||
@ -265,18 +239,27 @@ CS.RUN.DIR ldy #bLong
|
||||
>PUSHW ZPPtr1
|
||||
>LDYA L.MSG.DIREXT
|
||||
>SYSCALL PrintFYA
|
||||
bcs .9
|
||||
|
||||
rts
|
||||
.5 ldy #bRecurse
|
||||
lda (pData),y
|
||||
bpl .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
>LDYA ZPPtr1
|
||||
jmp EnterSubDirYA
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.FILE ldy #bLong
|
||||
lda (pData),y
|
||||
bmi .8
|
||||
|
||||
ldy #S.STAT.PRODOS.TYPE
|
||||
lda (ZPPtr2),y
|
||||
jsr FileType2PSTR
|
||||
>PUSHYA Type
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>LDYA L.MSG.FILE
|
||||
>SYSCALL PrintFYA
|
||||
@ -294,20 +277,9 @@ CS.RUN.FILE ldy #bLong
|
||||
>SYSCALL COutA
|
||||
rts
|
||||
|
||||
.7 lda #80/MAX.COL-5
|
||||
sec
|
||||
sbc (ZPPtr1)
|
||||
beq .71
|
||||
tax
|
||||
|
||||
.70 lda #' '
|
||||
phx
|
||||
.7 lda #' '
|
||||
>SYSCALL COutA
|
||||
plx
|
||||
dex
|
||||
bne .70
|
||||
|
||||
.71 rts
|
||||
rts
|
||||
|
||||
.8 jsr CS.RUN.PUSHEXTRA
|
||||
|
||||
@ -461,8 +433,9 @@ OptionVars .DA #bLong,bRecurse
|
||||
*--------------------------------------
|
||||
MSG.DEV >CSTR "%15S S%d,D%d Blocks Used:%5D,Total:%5D\n"
|
||||
MSG.DIR >CSTR "%S/"
|
||||
MSG.ENTER >CSTR "\nDirectory:%S...\n"
|
||||
MSG.DIREXT >CSTR "%16S <dir> %a %S %S\n"
|
||||
MSG.FILE >CSTR "%S.%S"
|
||||
MSG.FILE >CSTR "%18S"
|
||||
MSG.FILEEXT >CSTR "%15S %S $%H %a %10u %S %S\n"
|
||||
*--------------------------------------
|
||||
PRODOS.FT.HEX .HS 0406FAFCFDE2FF
|
||||
@ -484,7 +457,10 @@ ArgCount .BS 1
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
hDIRs .BS MAX.RECURSE+1
|
||||
Index .BS 1
|
||||
hDIRs .BS MAX.RECURSE
|
||||
hDIRENTs .BS MAX.RECURSE
|
||||
oDIRENTs .BS MAX.RECURSE*2
|
||||
hBasePath .BS 1
|
||||
hFilter .BS 1
|
||||
bSTOP .BS 1
|
||||
|
Loading…
Reference in New Issue
Block a user