ENH #7 : Added -A switch to LS

(revealed many bugs in LS.S & KERNEL.S.CIO.txt that are now corrected)
This commit is contained in:
Rémy GIBERT 2016-10-28 11:37:57 +02:00
parent 2e1283ddd2
commit ce34b41f47
7 changed files with 112 additions and 82 deletions

Binary file not shown.

Binary file not shown.

View File

@ -116,18 +116,10 @@ CS.RUN ldy #bCANCEL
ldy #bSTOP
lda (pData),y
bmi .8
jsr GetNextEntry
bcs .9
lda ZPPtr1 set Ptr2=Ptr1+LEN-> S.STAT
sec
adc (ZPPtr1)
sta ZPPtr2
lda ZPPtr1+1
adc #0
sta ZPPtr2+1
ldy #hFilter
lda (pData),y
beq .4 No filter....
@ -155,12 +147,8 @@ CS.RUN ldy #bCANCEL
lda (pData),y
bmi .91
ldy #ColCount
lda (pData),y
beq .91
lda #13
>SYSCALL COutA
jsr CS.RUN.NewLine
bcs .99
.91 jsr LeaveSubDir
bcs .99
@ -170,7 +158,6 @@ CS.RUN ldy #bCANCEL
.99 lda #0
sec
rts
*--------------------------------------
CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
>PUSHB (ZPPtr2),y
@ -191,7 +178,16 @@ CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1
>SYSCALL PrintFYA
rts
*--------------------------------------
CS.RUN.DIR ldy #bLong
CS.RUN.DIR ldy #bAllmostAll
lda (pData),y
bpl .10
ldy #1
lda (ZPPtr1),y
cmp #'.'
beq .5
.10 ldy #bLong
lda (pData),y
bmi .4
@ -210,20 +206,11 @@ CS.RUN.DIR ldy #bLong
phx
>SYSCALL COutA
plx
bcs .9
dex
bne .1
.2 ldy #ColCount
lda (pData),y
inc
sta (pData),y
cmp #MAX.COL
bne .5
lda #0
sta (pData),y
lda #13
>SYSCALL COutA
.2 jsr CS.RUN.UpdateColCnt
bcc .5
rts
@ -250,6 +237,9 @@ CS.RUN.DIR ldy #bLong
cmp #'.'
beq .8
jsr CS.RUN.NewLine
bcs .9
>LDYA ZPPtr1
jmp EnterSubDirYA
@ -263,23 +253,9 @@ CS.RUN.FILE ldy #bLong
>PUSHW ZPPtr1
>LDYA L.MSG.FILE
>SYSCALL PrintFYA
bcs .9
ldy #ColCount
lda (pData),y
inc
sta (pData),y
cmp #MAX.COL
bne .7
lda #0
sta (pData),y
lda #13
>SYSCALL COutA
rts
.7 lda #' '
>SYSCALL COutA
rts
jmp CS.RUN.UpdateColCnt
.8 jsr CS.RUN.PUSHEXTRA
@ -313,7 +289,7 @@ CS.RUN.FILE ldy #bLong
>PUSHW ZPPtr1
>LDYA L.MSG.FILEEXT
>SYSCALL PrintFYA
rts
.9 rts
*--------------------------------------
CS.RUN.PUSHEXTRA
>PUSHW L.TIME.Mod
@ -342,6 +318,29 @@ CS.RUN.PUSHEXTRA
>PUSHW L.TIME.Create Create Time
rts
*--------------------------------------
CS.RUN.UpdateColCnt
ldy #ColCount
lda (pData),y
inc
sta (pData),y
cmp #MAX.COL
bne CS.RUN.NewLine.8
lda #0
sta (pData),y
bra CS.RUN.NewLine.1
*--------------------------------------
CS.RUN.NewLine ldy #ColCount
lda (pData),y
beq CS.RUN.NewLine.8
CS.RUN.NewLine.1
lda #13
>SYSCALL COutA
rts
CS.RUN.NewLine.8
clc
rts
*--------------------------------------
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
lda (pEvent),y
ldy #S.PS.hINDEV
@ -428,14 +427,14 @@ FileType2PSTR ldy #0
*--------------------------------------
CS.END
*--------------------------------------
OptionList >PSTR "LR"
OptionVars .DA #bLong,bRecurse
OptionList >PSTR "ALR"
OptionVars .DA #bAllmostAll,#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.ENTER >CSTR "Directory:%S\n"
MSG.DIREXT >CSTR "%16S <dir> %a %S %S\n"
MSG.FILE >CSTR "%18S"
MSG.FILE >CSTR "%19S"
MSG.FILEEXT >CSTR "%15S %S $%H %a %10u %S %S\n"
*--------------------------------------
PRODOS.FT.HEX .HS 0406FAFCFDE2FF
@ -465,6 +464,7 @@ hBasePath .BS 1
hFilter .BS 1
bSTOP .BS 1
bCANCEL .BS 1
bAllmostAll .BS 1
bLong .BS 1
bRecurse .BS 1
ColCount .BS 1

View File

@ -85,11 +85,11 @@ InitSrcDirYA >SYSCALL GetFullPathYA
bcs .9
ldy #hDIRs
sta (pData),y set hDIRs[1] = Src Hdir
sta (pData),y set hDIRs[0] = Src Hdir
ldy #index
lda #1
sta (pData),y index=hDIRs[1]
sta (pData),y index=hDIRs[0]
jsr .9 Cleanup
@ -101,6 +101,7 @@ InitSrcDirYA >SYSCALL GetFullPathYA
>SYSCALL FreeMemA
pla
sec
InitSrcDirYA.RTS
rts
*--------------------------------------
GetNextEntry ldy #index
@ -119,7 +120,7 @@ GetNextEntry ldy #index
lda (pData),y
>SYSCALL ReadDirA
bcs .9
bcs InitSrcDirYA.RTS
>STYA ZPPtr1
ldy #index
@ -128,7 +129,7 @@ GetNextEntry ldy #index
clc
adc #hDIRENTs-1
tay
txa
txa get hDIRENT in A
sta (pData),y
pla get back index
@ -148,7 +149,7 @@ GetNextEntry ldy #index
ldy #index
lda (pData),y
asl
adc #oDIRENTs-1
adc #oDIRENTs-1 CC from ASL
tay
lda ZPPtr1
@ -187,18 +188,29 @@ GetNextEntry ldy #index
asl
adc #oDIRENTs-1
tay
lda (pData),y
lda (ZPPtr1) Add file len+1...
sec
adc (ZPPtr1)
adc #S.STAT
adc #S.STAT +S.STAT
* clc from ADC
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
sec
adc (ZPPtr1)
sta ZPPtr2
lda ZPPtr1+1
adc #0
sta ZPPtr2+1
clc
.9 rts
rts
*--------------------------------------
EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
@ -289,9 +301,7 @@ LeaveSubDir ldy #index
tya
sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/
>PUSHW ZPPtr1
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
clc
rts
.9 sec

View File

@ -19,6 +19,11 @@ Now it's time to make all external BINs use new API, then GUI development will r
OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
(OApple+shift+1,OApple+shift+2,OApple+shift+3 on FR keyboard)
### **** Documentation WANTED ****
Is there anybody who could provide "appletalk programmer's guide for the apple ii" ?
(Needed for KM.ATLK and AT commands development)
### **** Developers WANTED ****
!!! Help on writing this code should be greatly appreciated !!!
@ -81,8 +86,9 @@ In Progress : moving TCPIP to socket API
| PS | Working | | 0.8 |
| MD | Working | | 0.8 |
| RM | Working | switches not yet implemented | |
| LS | Working | -L long listing with size/date | 0.8 |
| | | -R Recurse subdirectories | |
| LS | Working | -A : Do Not Print . & .. | 0.8 |
| | | -L : long listing with size/date | 0.8 |
| | | -R : Recurse subdirectories | |
| CP | Working | switches not yet implemented | |
| ARP | Working | dump ARP cache, setup a static ARP entry | 0.8 |
| PING | Working | | |

View File

@ -24,7 +24,6 @@ K.GetArgC jsr ARG.InitArgPtr1
bne .1
.8 txa
clc
rts
*/--------------------------------------
* #GetArgA

View File

@ -122,18 +122,20 @@ K.SScanF.IsDigit cmp #'0'
* %N : pull 1 byte to Print high Nibble HEX
* %s : pull 2 bytes ptr to C-Style String
* %S : pull 2 bytes ptr to P-Style String
* \e Print 'ESC' ($1B,27)
* \n Print CR=13
* \\ Print \
* \% Print %
* \e : Print 'ESC' ($1B,27)
* \n : Print CR=13
* \\ : Print \
* \% : Print %
* Modifiers for len and padding :
* %d '9' '12'
* %2d ' 9' '12'
* %02d '09' '12'
* %11s 'ABCDEFGH '
* %011s 'ABCDEFGH000'
* %2f '3.14'
* %d : '9' '12'
* %2d : ' 9' '12'
* %02d : '09' '12'
* %11s : 'ABCDEFGH '
* %011s : 'ABCDEFGH000'
* %2f : '3.14'
* ##Out:
* CC : success
* CS : I/O error from COut
*\--------------------------------------
K.PrintFYA >STYA ZPQuickPtr1
@ -244,6 +246,7 @@ PrintF.A >PULLW HEXBUF
tax
lda TYPES,x
jsr K.COutA
bcs .9
ldx #0
@ -253,6 +256,7 @@ PrintF.A >PULLW HEXBUF
lda ACCESS,x
.2 jsr K.COutA
bcs .9
inx
cpx #8
@ -263,14 +267,16 @@ PrintF.A >PULLW HEXBUF
bcc .4
lda ACCESS,x
.4 jsr K.COutA
rts
.4 jmp K.COutA
.9 rts
*--------------------------------------
PrintF.BB >PULLA
pha
jsr PrintF.B
pla
bra PrintF.B.1
bcc PrintF.B.1
PrintF.BB.RTS rts
*--------------------------------------
PrintF.B >PULLA
@ -282,6 +288,7 @@ PrintF.B.1 ldx #8
adc #0 add Carry
jsr K.COutA
pla
bcs PrintF.BB.RTS
dex
bne .1
rts
@ -395,6 +402,7 @@ PrintF.S >PULLW ZPQuickPtr2
beq .2
jsr K.COutA
bcs .9
iny
lda PADLEN
@ -408,11 +416,13 @@ PrintF.S >PULLW ZPQuickPtr2
.3 lda PADCHAR
jsr K.COutA
bcs .9
iny
cpy PADLEN
bne .3
.8 rts
.8 clc
.9 rts
*--------------------------------------
* PStr
*--------------------------------------
@ -426,6 +436,7 @@ PrintF.SS >PULLW ZPQuickPtr2
.1 iny
lda (ZPQuickPtr2),y
jsr K.COutA
bcs .9
lda PADLEN
beq .2
@ -440,11 +451,13 @@ PrintF.SS >PULLW ZPQuickPtr2
.3 lda PADCHAR
jsr K.COutA
bcs .9
iny
cpy PADLEN
bne .3
.8 rts
.8 clc
.9 rts
*--------------------------------------
K.COutA phx
phy
@ -534,7 +547,7 @@ PRINTDEC lda PADLEN any Len format ?
beq .4 Print always
ldy PADLEN no pad to fill, do not Print 0
beq .9
beq .6
lda PADCHAR fill with PADCHAR
@ -547,12 +560,14 @@ PRINTDEC lda PADLEN any Len format ?
pla
.5 jsr K.COutA
bcs .9
.9 inx
.6 inx
cpx #10
bne .2
rts
clc
.9 rts
*--------------------------------------
* Convert ASCBUF decimal to HEXBUF
*--------------------------------------