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

View File

@ -85,11 +85,11 @@ InitSrcDirYA >SYSCALL GetFullPathYA
bcs .9 bcs .9
ldy #hDIRs ldy #hDIRs
sta (pData),y set hDIRs[1] = Src Hdir sta (pData),y set hDIRs[0] = Src Hdir
ldy #index ldy #index
lda #1 lda #1
sta (pData),y index=hDIRs[1] sta (pData),y index=hDIRs[0]
jsr .9 Cleanup jsr .9 Cleanup
@ -101,6 +101,7 @@ InitSrcDirYA >SYSCALL GetFullPathYA
>SYSCALL FreeMemA >SYSCALL FreeMemA
pla pla
sec sec
InitSrcDirYA.RTS
rts rts
*-------------------------------------- *--------------------------------------
GetNextEntry ldy #index GetNextEntry ldy #index
@ -119,7 +120,7 @@ GetNextEntry ldy #index
lda (pData),y lda (pData),y
>SYSCALL ReadDirA >SYSCALL ReadDirA
bcs .9 bcs InitSrcDirYA.RTS
>STYA ZPPtr1 >STYA ZPPtr1
ldy #index ldy #index
@ -128,7 +129,7 @@ GetNextEntry ldy #index
clc clc
adc #hDIRENTs-1 adc #hDIRENTs-1
tay tay
txa txa get hDIRENT in A
sta (pData),y sta (pData),y
pla get back index pla get back index
@ -148,7 +149,7 @@ GetNextEntry ldy #index
ldy #index ldy #index
lda (pData),y lda (pData),y
asl asl
adc #oDIRENTs-1 adc #oDIRENTs-1 CC from ASL
tay tay
lda ZPPtr1 lda ZPPtr1
@ -187,18 +188,29 @@ GetNextEntry ldy #index
asl asl
adc #oDIRENTs-1 adc #oDIRENTs-1
tay tay
lda (pData),y
lda (ZPPtr1) Add file len+1...
sec sec
adc (ZPPtr1) adc #S.STAT +S.STAT
adc #S.STAT
* clc from ADC
adc (pData),y Make oDIRENTs[i] point to next DIRENT
sta (pData),y sta (pData),y
iny iny
lda (pData),y lda (pData),y
adc #0 adc #0
sta (pData),y 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 clc
.9 rts rts
*-------------------------------------- *--------------------------------------
EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
@ -289,9 +301,7 @@ LeaveSubDir ldy #index
tya tya
sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/ sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/
>PUSHW ZPPtr1 clc
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
rts rts
.9 sec .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+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) (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 **** ### **** Developers WANTED ****
!!! Help on writing this code should be greatly appreciated !!! !!! Help on writing this code should be greatly appreciated !!!
@ -81,8 +86,9 @@ In Progress : moving TCPIP to socket API
| PS | Working | | 0.8 | | PS | Working | | 0.8 |
| MD | Working | | 0.8 | | MD | Working | | 0.8 |
| RM | Working | switches not yet implemented | | | RM | Working | switches not yet implemented | |
| LS | Working | -L long listing with size/date | 0.8 | | LS | Working | -A : Do Not Print . & .. | 0.8 |
| | | -R Recurse subdirectories | | | | | -L : long listing with size/date | 0.8 |
| | | -R : Recurse subdirectories | |
| CP | Working | switches not yet implemented | | | CP | Working | switches not yet implemented | |
| ARP | Working | dump ARP cache, setup a static ARP entry | 0.8 | | ARP | Working | dump ARP cache, setup a static ARP entry | 0.8 |
| PING | Working | | | | PING | Working | | |

View File

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

View File

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