From d4868fe1523d0fb7ef017115c741cbf52e02f2d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 23 Sep 2016 17:19:22 +0200 Subject: [PATCH] Kernel version 0.8 : More API cleanup/reorg, fixed bug in READDIRYA crashing reading / --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LS.S.txt | 27 ++- SYS/KERNEL.S.DIR.txt | 465 +++++++++++++++++++++++-------------------- 4 files changed, 266 insertions(+), 226 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index b7054312c16d5e14ba182a504ea986fd21cc4b35..27f335d934962488cbf1040b824584a6509bde44 100644 GIT binary patch delta 2559 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 delta 9172 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 diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 7f5e5736..9d5bddb5 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -14,7 +14,6 @@ AUTO 6 *-------------------------------------- ZPPtr1 .EQ ZPBIN ZPPtr2 .EQ ZPBIN+2 -ZPPtr3 .EQ ZPBIN+4 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -35,13 +34,9 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBSTR .DA LIBSTR -L.MSG.VOL.HEADER .DA MSG.VOL.HEADER -L.MSG.DIR.HEADER .DA MSG.DIR.HEADER L.MSG.VOL .DA MSG.VOL L.MSG.DIR .DA MSG.DIR L.MSG.FILE .DA MSG.FILE -L.MSG.VOL.END .DA MSG.VOL.END -L.MSG.DIR.END .DA MSG.DIR.END L.PRODOS.FT.TXT .DA PRODOS.FT.TXT .DA 0 *-------------------------------------- @@ -111,7 +106,23 @@ CS.RUN ldy #bCANCEL beq .8 - >LDYA ZPPtr1 + lda ZPPtr1 + sec + adc (ZPPtr1) + sta ZPPtr2 + lda ZPPtr1+1 + adc #0 + sta ZPPtr2+1 + + ldy #S.STAT.TYPE + lda (ZPPtr2),y + cmp #$0F Directory ? + bne .31 + + lda #'/' + >SYSCALL SYS.COutA + +.31 >LDYA ZPPtr1 >SYSCALL SYS.PStrOutYA lda ZPPtr1 @@ -193,13 +204,9 @@ CS.QUIT ldy #hDIR *-------------------------------------- CS.END LIBSTR >PSTRING "libstr.o" -MSG.VOL.HEADER >CSTRING "Volume Listing Of %S\n" -MSG.DIR.HEADER >CSTRING "Directory Listing Of %S\n" MSG.VOL >CSTRING "/%S\n" MSG.DIR >CSTRING "/%15S %a %T %t %T %t\n" MSG.FILE >CSTRING "%15S %S $%H %a %8L %T %t %T %t\n" -MSG.VOL.END >CSTRING "%D Files In Volume.\n" -MSG.DIR.END >CSTRING "%D Files In Directory.\n" *-------------------------------------- PRODOS.FT.COUNT .HS 07 PRODOS.FT.ID .HS 0406FAFCFDE2FF diff --git a/SYS/KERNEL.S.DIR.txt b/SYS/KERNEL.S.DIR.txt index 63434141..22c882f2 100644 --- a/SYS/KERNEL.S.DIR.txt +++ b/SYS/KERNEL.S.DIR.txt @@ -22,7 +22,7 @@ K.OPENDIRYA jsr K.PFTCheckPathYA bcs .9 >STYA ZPQuickPtr1 - stx hDIR + stx K.OPENDIRYA.hDIR lda (ZPQuickPtr2) cmp #1 One char ? @@ -53,7 +53,7 @@ K.OPENDIRYA jsr K.PFTCheckPathYA ldy #S.DIR.PRODOS.REF sta (ZPQuickPtr1),y -.8 lda hDIR +.8 lda K.OPENDIRYA.hDIR clc rts @@ -63,7 +63,7 @@ K.OPENDIRYA jsr K.PFTCheckPathYA sec .99 rts *-------------------------------------- -hDIR .BS 1 +K.OPENDIRYA.hDIR .BS 1 *-------------------------------------- * In : * A = hDIR @@ -71,6 +71,15 @@ hDIR .BS 1 * CC : X = hDIREND, Y,A = PTR to S.DIRENT * CS : A = EC, A = 0 : no more entry *-------------------------------------- +K.READDIRA.hMem .BS 1 +K.READDIRA.hDIRENT .BS 1 +K.READDIRA.BufSize .BS 2 +K.READDIRA.EL .BS 1 +K.READDIRA.EBP .BS 1 +K.READDIRA.EC .BS 2 +K.READDIRA.ECIB .BS 1 +K.READDIRA.EC2Return .BS 1 +*-------------------------------------- K.READDIRA jsr K.PFTCheckDirA jsr K.GetMemPtrA >STYA ZPQuickPtr1 @@ -87,38 +96,45 @@ K.READDIRA jsr K.PFTCheckDirA .9 lda #0 sec CS,A=0 no more entry -K.READDIRA.RTS rts - + rts +*-------------------------------------- K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes - >LDYAI KrnBuffer256 - >STYA MLICALL.PARAMS+2 - >STYA ZPQuickPtr2 For PASS #2 - >MLICALL MLIONLINE - bcs K.READDIRA.RTS - lda #1 +1 for Ending 0 - sta BufSize - stz BufSize+1 + >PUSHWI 256 Get a 256 bytes buffer for ONLINE call... + >PUSHBI 0 + jsr K.GetMem + bcs .99 + stx K.READDIRA.hMem + + >STYA MLICALL.PARAMS+2 + >STYA ZPQuickPtr2 For PASS #1 & #2 + >MLICALL MLIONLINE + bcc .10 + +.98 jsr K.READDIRA.CLN + sec +.99 rts +* pass #1 compute BufSize..... +.10 lda #1 +1 for Ending 0 + sta K.READDIRA.BufSize + stz K.READDIRA.BufSize+1 + + stz K.READDIRA.EC ldy #0 -.1 lda KrnBuffer256,y +.1 lda (ZPQuickPtr2),y and #$0F beq .2 + inc K.READDIRA.EC increase entry count + sec Add Filelen +1 - adc BufSize - sta BufSize - bcc .11 - inc BufSize+1 - -.11 lda #S.STAT - adc BufSize - sta BufSize - bcc .12 - inc BufSize+1 - -.12 inx + adc #S.STAT will ends with CC + adc K.READDIRA.BufSize + sta K.READDIRA.BufSize + bcc .2 + inc K.READDIRA.BufSize+1 .2 tya clc @@ -126,78 +142,39 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes tay bcc .1 loop until 256 bytes scanned - txa - beq K.READDIRA.RTS A=0, CS no more DIRENT - - sta EntryCount - - >PUSHW BufSize - >PUSHBI S.MEM.F.INIT0 - jsr K.GetMem - bcs K.READDIRA.RTS - stx hDIRENT - >STYA ZPQuickPtr3 - >STYA ZPQuickPtr4 +* pass #2 Fill Buffer... + jsr K.READDIRA.GetBuf + bcs .98 .3 lda (ZPQuickPtr2) and #$0F beq .88 - tay + tax - sta (ZPQuickPtr3) - inc - sta VolName Build a string with leading / for GetFileInfo -.4 lda (ZPQuickPtr2),y - sta (ZPQuickPtr3),y - sta VolName+1,y - dey - bne .4 - lda #'/' - sta VolName+1 + >LDYAI ZPQuickPtr4 Store actual PTR for MLIGETFILEINFO + >STYA MLICALL.PARAMS+1 txa - sec - adc ZPQuickPtr3 - sta ZPQuickPtr3 - bcc .41 - inc ZPQuickPtr3+1 + inc + jsr K.READDIRA.AddToBuf + lda #'/' + jsr K.READDIRA.AddToBuf + + ldy #1 + +.4 lda (ZPQuickPtr2),y + jsr K.READDIRA.AddToBuf + iny + dex + bne .4 -.41 >LDYAI VolName - >STYA MLICALL.PARAMS+1 >MLICALL MLIGETFILEINFO bcs .80 - lda MLICALL.PARAMS+S.FILEINFO.ACCESS - cmp #S.FILEINFO.ACCESS.FULL - bne .5 - - lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO - bra .6 - -.5 and #S.FILEINFO.ACCESS.R - beq .6 - lda #S.STAT.MODE.XO+S.STAT.MODE.RO - -.6 ldy #S.STAT.MODE - sta (ZPQuickPtr3),y - ldy #S.STAT.BLOCKS - lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE - sta (ZPQuickPtr3),y - iny - lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE - sta (ZPQuickPtr3),y - ldy #S.STAT.BLKSIZE+1 - lda #2 Block size is $200 for ProDOS - sta (ZPQuickPtr3),y -.80 lda ZPQuickPtr3 - clc - adc #S.STAT - sta ZPQuickPtr3 - bcc .88 - inc ZPQuickPtr3+1 +.80 jsr K.READDIRA.ADDSTAT .88 lda ZPQuickPtr2 clc @@ -205,20 +182,21 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes sta ZPQuickPtr2 bcc .89 inc ZPQuickPtr2+1 -.89 dec EntryCount +.89 dec K.READDIRA.EC bne .3 - lda #0 - sta (ZPQuickPtr3) Ending 0 +* lda #0 done by S.MEM.F.INIT0 +* sta (ZPQuickPtr4) Ending 0 ldy #S.DIR.F lda #S.DIR.F.NOMORE sta (ZPQuickPtr1),y - ldx hDIRENT - >LDYA ZPQuickPtr4 - clc - rts + jsr K.READDIRA.CLN Discard ONLINE BUFFER + + lda K.READDIRA.hDIRENT + tax + jmp K.GetMemPtrA *-------------------------------------- K.READDIRA.DIR ldy #S.DIR.PRODOS.REF lda (ZPQuickPtr1),y @@ -236,12 +214,13 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF tya * clc CC from K.GetMem adc #4 Skip 4 bytes linked list - tay + sta ZPQuickPtr2 PTR to Buffer for PASS #1 + sta ZPQuickPtr3 PTR to Buffer for PASS #2 + pla adc #0 - - >STYA ZPQuickPtr2 PTR to Buffer for PASS #1 - >STYA ZPQuickPtr3 PTR to Buffer for PASS #2 + sta ZPQuickPtr2+1 PTR to Buffer for PASS #1 + sta ZPQuickPtr3+1 PTR to Buffer for PASS #2 >LDYAI 512 >STYA MLICALL.PARAMS+4 @@ -255,17 +234,14 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF ldy #$1f+3 ldx #3 -.1 lda (ZPQuickPtr2),y Get EntryLength.... From Block - sta EntryLength,x +.1 lda (ZPQuickPtr2),y Get K.READDIRA.EL.... From Block + sta K.READDIRA.EL,x dey dex bpl .1 bra .4 -.98 pha - lda K.READDIRA.hMem - jsr K.FreeMemA - pla +.98 jsr K.READDIRA.CLN sec .99 rts @@ -273,67 +249,120 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF ldx #3 .3 lda (ZPQuickPtr1),y get this session parameters from S.DIR - sta EntryLength,x + sta K.READDIRA.EL,x dey dex bpl .3 -.4 ldx EntryCount - cpx EntryPerBlock +.4 ldx K.READDIRA.EC + cpx K.READDIRA.EBP - lda EntryCount+1 + lda K.READDIRA.EC+1 sbc #0 bcc .5 We have less than EPB to read - ldx EntryPerBlock + ldx K.READDIRA.EBP -.5 stx EntryCountIB - stz EntryCount2Return +.5 stx K.READDIRA.ECIB + stz K.READDIRA.EC2Return lda #1 For Ending 0 - sta BufSize - stz BufSize+1 + sta K.READDIRA.BufSize + stz K.READDIRA.BufSize+1 * pass #1 compute BufSize..... - -.51 lda (ZPQuickPtr2) X = EntryCount In This Block +K.READDIRA.DIR1 lda (ZPQuickPtr2) X = EntryCount In This Block beq .7 Free slot....goto next - jsr S.READDIR.CHK + tay save LEN + + and #$F0 get storage_type + cmp #$F0 Volume header ? + beq .1 + + cmp #$E0 directory header ? + beq .2 + + inc K.READDIRA.EC2Return regular DIR or File.... + + tya + and #$F get filename len + sec add "#" + S.STAT + + adc #S.STAT + .HS 2C bit abs + +.1 lda #2+S.STAT add "1." string + S.STAT + .HS 2C bit abs + +.2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT... + clc + adc K.READDIRA.BufSize + sta K.READDIRA.BufSize + bcc .7 + inc K.READDIRA.BufSize+1 + .7 lda ZPQuickPtr2 clc - adc EntryLength + adc K.READDIRA.EL sta ZPQuickPtr2 - bcc .71 + bcc .8 inc ZPQuickPtr2+1 -.71 dex - bne .51 +.8 dex + bne K.READDIRA.DIR1 * pass #2 Fill Buffer... - >PUSHW BufSize Get a BufSize bytes buffer for storing results - >PUSHBI S.MEM.F.INIT0 make sure 0 fiiled - jsr K.GetMem +K.READDIRA.DIR2 jsr K.READDIRA.GetBuf bcs .98 - stx K.READDIRA.hDIR - >STYA ZPQuickPtr4 -.72 jsr DecEntryCount - bcc .80 no more file to list... + ldy #S.DIR.PRODOS.EL Check if first run.... + lda (ZPQuickPtr1),y + bne .73 lda (ZPQuickPtr3) + and #$F0 + cmp #$F0 Vol Header ? + bne .72 + jsr K.READDIRA.ADD. + bra .78 + +.72 cmp #$E0 Dir Header ? + bne .73 + jsr K.READDIRA.ADD. + jsr K.READDIRA.ADD.. + bra .78 + +.73 lda K.READDIRA.EC + sec + sbc #1 + sta K.READDIRA.EC + bcs .74 + + lda K.READDIRA.EC+1 + sbc #0 + sta K.READDIRA.EC+1 CC, we reached $ffff + bcc .80 no more file to list... + +.74 lda (ZPQuickPtr3) beq .78 - jsr K.READDIRA.ADD + and #$F0 + cmp #$D0 Directory ? + bne .75 + jsr K.READDIRA.ADDD + bra .78 + +.75 jsr K.READDIRA.ADDF .78 lda ZPQuickPtr3 clc - adc EntryLength + adc K.READDIRA.EL sta ZPQuickPtr3 bcc .79 inc ZPQuickPtr3+1 -.79 dec EntryCountIB +.79 dec K.READDIRA.ECIB bne .72 .80 @@ -343,91 +372,95 @@ K.READDIRA.DIR ldy #S.DIR.PRODOS.REF ldx #3 ldy #S.DIR.PRODOS.EL+3 -.8 lda EntryLength,x Store back this session prameters to S.DIR +.8 lda K.READDIRA.EL,x Store back this session prameters to S.DIR sta (ZPQuickPtr1),y dey dex bpl .8 - jsr .98 Discard READBUFFER + jsr K.READDIRA.CLN Discard READBUFFER - lda K.READDIRA.hDIR + lda K.READDIRA.hDIRENT tax - jsr K.GetMemPtrA - clc + jmp K.GetMemPtrA + +.98 jsr K.READDIRA.CLN + sec rts *-------------------------------------- -S.READDIR.CHK tay save LEN - - and #$F0 get storage_type - cmp #$E0 directory header ? - bne .1 - - inc EntryCount2Return yes, return 2 ".." - lda #S.STAT+3 add "#.." string + S.STAT - jsr K.READDIRA.AddBufSize - bra .2 go add "." Entry - - -.1 cmp #$F0 Volume header ? - bne .3 - -.2 lda #S.STAT+2 add "#." string + S.STAT - bra .4 - -.3 tya - and #$F get filename len - sec Add 1 for LEN - adc #S.STAT - -.4 jsr K.READDIRA.AddBufSize - inc EntryCount2Return - rts +K.READDIRA.CLN pha + lda K.READDIRA.hMem + jsr K.FreeMemA + pla + rts *-------------------------------------- -K.READDIRA.ADD and #$F0 - cmp #$F0 Volume header ? - bne .10 - - lda #1 +K.READDIRA.GetBuf + >PUSHW K.READDIRA.BufSize Get a BufSize bytes buffer for storing results + >PUSHBI S.MEM.F.INIT0 make sure 0 filled + jsr K.GetMem + bcs .9 + stx K.READDIRA.hDIRENT + >STYA ZPQuickPtr4 +.9 rts +*-------------------------------------- +K.READDIRA.ADD. lda #1 jsr K.READDIRA.AddToBuf lda #'.' filename="1." jsr K.READDIRA.AddToBuf + jsr K.READDIRA.ClrStat + ldy #$25 total_blocks lda (ZPQuickPtr3),y - tax + sta KrnBuffer256+S.STAT.BLOCKS iny lda (ZPQuickPtr3),y + sta KrnBuffer256+S.STAT.BLOCKS+1 - ldy #S.STAT.BLOCKS+1 - sta (ZPQuickPtr4),y - dey - txa - sta (ZPQuickPtr4),y - - bra .80 - -.10 cmp #$E0 directory header ? - bne .20 - + bra K.READDIRA.ADDSTAT +*-------------------------------------- +K.READDIRA.ADD.. lda #2 jsr K.READDIRA.AddToBuf lda #'.' filename="2.." jsr K.READDIRA.AddToBuf jsr K.READDIRA.AddToBuf - - bra .80 - - -.20 cmp #$D0 directory ? - bne .30 - jsr K.READDIRA.AddFNToBuf - bra .80 - -.30 jsr K.READDIRA.AddFNToBuf + jsr K.READDIRA.ClrStat -.80 lda ZPQuickPtr4 + bra K.READDIRA.ADDSTAT +*-------------------------------------- +K.READDIRA.ADDD jsr K.READDIRA.AddFNToBuf + + jsr K.READDIRA.ClrStat + + bra K.READDIRA.ADDSTAT +*-------------------------------------- +K.READDIRA.ADDF jsr K.READDIRA.AddFNToBuf + + jsr K.READDIRA.ClrStat + + ldy #$10 type + lda (ZPQuickPtr3),y + sta KrnBuffer256+S.STAT.TYPE + + ldy #$1F auxtype + lda (ZPQuickPtr3),y + sta KrnBuffer256+S.STAT.AUXTYPE + iny + lda (ZPQuickPtr3),y + sta KrnBuffer256+S.STAT.AUXTYPE+1 + +*-------------------------------------- +K.READDIRA.AddStat + ldy #S.STAT-1 + +.1 lda KrnBuffer256,y + sta (ZPQuickPtr4),y + dey + bpl .1 + + lda ZPQuickPtr4 clc adc #S.STAT sta ZPQuickPtr4 @@ -435,13 +468,13 @@ K.READDIRA.ADD and #$F0 inc ZPQuickPtr4+1 .8 rts *-------------------------------------- -K.READDIRA.AddBufSize - clc - adc BufSize - sta BufSize - bcc .9 - inc BufSize+1 -.9 rts +K.READDIRA.ClrStat + ldx #S.STAT-1 + +.1 stz KrnBuffer256,x + dey + bpl .1 + rts *-------------------------------------- K.READDIRA.AddFNToBuf lda (ZPQuickPtr3) @@ -465,18 +498,29 @@ K.READDIRA.AddToBuf inc ZPQuickPtr4+1 .8 rts *-------------------------------------- -DecEntryCount lda EntryCount - sec - sbc #1 - sta EntryCount - bcs .9 CS, 0 or more - lda EntryCount+1 - sbc #0 - sta EntryCount+1 CC, we reached $ffff -.9 rts -*-------------------------------------- -K.READDIRA.hMem .BS 1 -K.READDIRA.hDIR .BS 1 + lda MLICALL.PARAMS+S.FILEINFO.ACCESS + cmp #S.FILEINFO.ACCESS.FULL + bne .5 + + lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO + bra .6 + +.5 and #S.FILEINFO.ACCESS.R + beq .6 + lda #S.STAT.MODE.XO+S.STAT.MODE.RO + +.6 ldy #S.STAT.MODE + sta (ZPQuickPtr3),y + + ldy #S.STAT.BLOCKS + lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE + sta (ZPQuickPtr3),y + iny + lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE + sta (ZPQuickPtr3),y + ldy #S.STAT.BLKSIZE+1 + lda #2 Block size is $200 for ProDOS + sta (ZPQuickPtr3),y *-------------------------------------- * In : * A = hDIR @@ -513,17 +557,6 @@ K.MKDIRYA jsr K.PFTCheckPathYA >MLICALL MLICREATE rts *-------------------------------------- -hONLINE .BS 1 -hDIRENT .BS 1 -BufSize .BS 2 -EntryLength .BS 1 -EntryPerBlock .BS 1 -EntryCount .BS 2 -EntryCountIB .BS 1 -EntryCount2Return .BS 1 - -VolName .BS 17 -*-------------------------------------- MAN SAVE SYS/KERNEL.S.DIR LOAD SYS/KERNEL.S