mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 07:54:37 +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
140
BIN/LS.S.txt
140
BIN/LS.S.txt
@ -37,6 +37,7 @@ CS.START cld
|
|||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.DEV .DA MSG.DEV
|
L.MSG.DEV .DA MSG.DEV
|
||||||
L.MSG.DIR .DA MSG.DIR
|
L.MSG.DIR .DA MSG.DIR
|
||||||
|
L.MSG.ENTER .DA MSG.ENTER
|
||||||
L.MSG.DIREXT .DA MSG.DIREXT
|
L.MSG.DIREXT .DA MSG.DIREXT
|
||||||
L.MSG.FILE .DA MSG.FILE
|
L.MSG.FILE .DA MSG.FILE
|
||||||
L.MSG.FILEEXT .DA MSG.FILEEXT
|
L.MSG.FILEEXT .DA MSG.FILEEXT
|
||||||
@ -91,7 +92,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
|
|
||||||
bra .1 scan for any other args
|
bra .1 scan for any other args
|
||||||
|
|
||||||
.5 ldy #hDIRs
|
.5 ldy #index
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -110,45 +111,14 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN ldy #bCANCEL
|
CS.RUN ldy #bCANCEL
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .1
|
bmi .99
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 ldy #bSTOP
|
ldy #bSTOP
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .2
|
bmi .8
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.2 ldy #hDIRs
|
jsr GetNextEntry
|
||||||
lda (pData),y
|
bcs .9
|
||||||
tay
|
|
||||||
lda (pData),y
|
|
||||||
|
|
||||||
>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
|
lda ZPPtr1 set Ptr2=Ptr1+LEN-> S.STAT
|
||||||
sec
|
sec
|
||||||
@ -166,39 +136,41 @@ CS.RUN ldy #bCANCEL
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>SYSCALL PStrMatch
|
>SYSCALL PStrMatch
|
||||||
bcs .7 no match, skip....
|
bcs .8 no match, skip....
|
||||||
|
|
||||||
.4 ldy #S.STAT.PRODOS.DRIVE
|
.4 ldy #S.STAT.PRODOS.DRIVE
|
||||||
lda (ZPPtr2),y ProDOS Device ?
|
lda (ZPPtr2),y ProDOS Device ?
|
||||||
beq .5
|
bne .5
|
||||||
|
|
||||||
jsr CS.RUN.DEV
|
ldy #S.STAT.PRODOS.TYPE
|
||||||
bra .7
|
|
||||||
|
|
||||||
.5 ldy #S.STAT.PRODOS.TYPE
|
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
cmp #$0F Directory ?
|
cmp #$0F Directory ?
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
jsr CS.RUN.DIR
|
jmp CS.RUN.DIR
|
||||||
bra .7
|
.5 jmp CS.RUN.DEV
|
||||||
|
.6 jmp CS.RUN.FILE
|
||||||
|
|
||||||
.6 jsr CS.RUN.FILE
|
.9 ldy #bLong
|
||||||
|
lda (pData),y
|
||||||
|
bmi .91
|
||||||
|
|
||||||
.7 lda ZPPtr2
|
ldy #ColCount
|
||||||
clc
|
lda (pData),y
|
||||||
adc #S.STAT
|
beq .91
|
||||||
sta ZPPtr1
|
|
||||||
lda ZPPtr2+1
|
|
||||||
adc #0
|
|
||||||
sta ZPPtr1+1
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.8 pla Discard hDIRENT
|
lda #13
|
||||||
>SYSCALL FreeMemA
|
>SYSCALL COutA
|
||||||
|
|
||||||
clc
|
.91 jsr LeaveSubDir
|
||||||
|
bcs .99
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.99 lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
|
CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
|
||||||
>PUSHB (ZPPtr2),y
|
>PUSHB (ZPPtr2),y
|
||||||
@ -221,11 +193,12 @@ CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DIR ldy #bLong
|
CS.RUN.DIR ldy #bLong
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bmi .8
|
bmi .4
|
||||||
|
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA L.MSG.DIR
|
>LDYA L.MSG.DIR
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
lda #80/MAX.COL-2
|
lda #80/MAX.COL-2
|
||||||
sec
|
sec
|
||||||
@ -245,15 +218,16 @@ CS.RUN.DIR ldy #bLong
|
|||||||
inc
|
inc
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
cmp #MAX.COL
|
cmp #MAX.COL
|
||||||
bne .7
|
bne .5
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
lda #13
|
lda #13
|
||||||
>SYSCALL COutA
|
>SYSCALL COutA
|
||||||
.7 rts
|
bcc .5
|
||||||
|
rts
|
||||||
|
|
||||||
.8 jsr CS.RUN.PUSHEXTRA
|
.4 jsr CS.RUN.PUSHEXTRA
|
||||||
|
|
||||||
ldy #S.STAT.MODE+1
|
ldy #S.STAT.MODE+1
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
@ -265,18 +239,27 @@ CS.RUN.DIR ldy #bLong
|
|||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA L.MSG.DIREXT
|
>LDYA L.MSG.DIREXT
|
||||||
>SYSCALL PrintFYA
|
>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
|
CS.RUN.FILE ldy #bLong
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
ldy #S.STAT.PRODOS.TYPE
|
|
||||||
lda (ZPPtr2),y
|
|
||||||
jsr FileType2PSTR
|
|
||||||
>PUSHYA Type
|
|
||||||
|
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA L.MSG.FILE
|
>LDYA L.MSG.FILE
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
@ -294,20 +277,9 @@ CS.RUN.FILE ldy #bLong
|
|||||||
>SYSCALL COutA
|
>SYSCALL COutA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.7 lda #80/MAX.COL-5
|
.7 lda #' '
|
||||||
sec
|
|
||||||
sbc (ZPPtr1)
|
|
||||||
beq .71
|
|
||||||
tax
|
|
||||||
|
|
||||||
.70 lda #' '
|
|
||||||
phx
|
|
||||||
>SYSCALL COutA
|
>SYSCALL COutA
|
||||||
plx
|
rts
|
||||||
dex
|
|
||||||
bne .70
|
|
||||||
|
|
||||||
.71 rts
|
|
||||||
|
|
||||||
.8 jsr CS.RUN.PUSHEXTRA
|
.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.DEV >CSTR "%15S S%d,D%d Blocks Used:%5D,Total:%5D\n"
|
||||||
MSG.DIR >CSTR "%S/"
|
MSG.DIR >CSTR "%S/"
|
||||||
|
MSG.ENTER >CSTR "\nDirectory:%S...\n"
|
||||||
MSG.DIREXT >CSTR "%16S <dir> %a %S %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"
|
MSG.FILEEXT >CSTR "%15S %S $%H %a %10u %S %S\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRODOS.FT.HEX .HS 0406FAFCFDE2FF
|
PRODOS.FT.HEX .HS 0406FAFCFDE2FF
|
||||||
@ -484,7 +457,10 @@ ArgCount .BS 1
|
|||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
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
|
hBasePath .BS 1
|
||||||
hFilter .BS 1
|
hFilter .BS 1
|
||||||
bSTOP .BS 1
|
bSTOP .BS 1
|
||||||
|
Loading…
Reference in New Issue
Block a user