diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ccb94c09..9807a001 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index c9a0b0c4..996c4bcf 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -608,7 +608,7 @@ online1 jsr fnddvcb see if it has already been logged in. lda #$02 ldx #$00 read in root (volume) directory - jsr XDOS.ReadGBufAX read it into general purpose buffer. + jsr XDOS.ReadGBufAX read ROOT VOL into general purpose buffer. ldx vcbptr index to the vcb entry. bcc volfound branch if read was ok. @@ -889,6 +889,8 @@ cmvauxid iny move auxillary identification bytes and #$E0 is it a directory? beq cralcblk branch if seed file. +* Create Dir First Block + ldx #$1E move header to data block cmvheadr lda d_stor,x @@ -925,7 +927,7 @@ cmvpass lda pass,x header info. .FIN ldx #$02 and include info about parent directory - stx d_eof+1 + stx d_eof+1 set file size = 512 cmvparnt lda d_entblk,x sta gbuf+39,x @@ -935,6 +937,10 @@ cmvparnt lda d_entblk,x lda h_entln lastly, the length of parent's sta gbuf+42 directory entries. + .DO LOWERCASE=1 + jsr XDOS.PackGBuf + .FIN + cralcblk jsr alc1blk get address of file's data block bcs crerr3 @@ -992,6 +998,7 @@ drevise1 lda bkbitflg (bit 5 = backup needed) lda d_entblk and address of directory block. ldx d_entblk+1 + .DO LOWERCASE=1 jsr XDOS.ReadGBufAXDir .ELSE @@ -1050,7 +1057,7 @@ H36F2 lda h_fcnt,y jsr XDOS.WriteGBuf go write updated header .FIN bcs H375A - +*-------------------------------------- ripple lda gbuf+4 test for 'root' directory because and #$F0 if it is, then directory revision eor #$F0 is complete (leaves carry clear). @@ -1065,7 +1072,7 @@ ripple lda gbuf+4 test for 'root' directory because ldx gbuf+40 .DO LOWERCASE=1 - jsr XDOS.ReadGBufAXDir + jsr XDOS.ReadGBufAX Dir .ELSE jsr XDOS.ReadGBufAX read it .FIN @@ -1086,7 +1093,7 @@ H3732 lda p8date,x bpl H3732 H373B .DO LOWERCASE=1 - jsr XDOS.WriteGBufDir + jsr XDOS.WriteGBuf Dir .ELSE jsr XDOS.WriteGBuf write updated entry back to disk. .FIN @@ -1104,7 +1111,7 @@ H373B .DO LOWERCASE=1 beq ripple they are the same, continue to root dir. H3751 .DO LOWERCASE=1 - jsr XDOS.ReadGBufAXDir + jsr XDOS.ReadGBufAX Dir .ELSE jsr XDOS.ReadGBufAX .FIN diff --git a/ProDOS.FX/ProDOS.S.XDOS.C.txt b/ProDOS.FX/ProDOS.S.XDOS.C.txt index bd4abf22..77951063 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.C.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.C.txt @@ -1,7 +1,7 @@ NEW AUTO 3,1 *-------------------------------------- -dealloc stx bmcnt high address of block. +XDOS.DeallocAX stx bmcnt high address of block. pha save low address. ldx vcbptr check that bitmap block address is lda VCBs+VCB.TBLK+1,x valid given the total # of blocks @@ -335,6 +335,7 @@ XDOS.UnpackGBuf jsr XDOS.Pack.Init dex bne .1 + clc make sure CC rts *-------------------------------------- XDOS.PackGBuf jsr XDOS.Pack.Init diff --git a/ProDOS.FX/ProDOS.S.XDOS.F.txt b/ProDOS.FX/ProDOS.S.XDOS.F.txt index 9c12a559..0e8a85a3 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.F.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.F.txt @@ -17,8 +17,9 @@ XDOS.Destroy jsr XDOS.FindFile look for file to be destroyed. bne L4B66 no, report error. L4B39 lda d_attr make sure ok to destroy file. - and #$80 - bne L4B45 branch if ok to destroy. +* and #$80 +* bne L4B45 branch if ok to destroy. + bmi L4B45 branch if ok to destroy. lda #MLI.E.LOCKED access error jsr GP.P8errv @@ -60,7 +61,7 @@ L4B6F stz stortyp,x in order: deblock, dtree, dsap, dseed. L4B85 ldx firstbh lda firstbl now deallocate seed. - jsr dealloc + jsr XDOS.DeallocAX bcs L4B93 jsr upbmap @@ -127,12 +128,12 @@ L4BFE lda gbuf+2 get forward link. bne L4C0A branch if not null. bcc L4BCD was the low part null as well ? -L4C0A jsr dealloc free this block. +L4C0A jsr XDOS.DeallocAX free this block. bcs L4C1A lda gbuf+2 ldx gbuf+3 - jsr XDOS.ReadGBufAX + jsr XDOS.ReadGBufAX read next DIR block (no need to unpack) bcc L4BFE loop until all freed L4C1A rts @@ -369,7 +370,7 @@ shrink ldx firstbh first deallocate top index block pha lda firstbl pha save block address of this index block. - jsr dealloc free it from the bitmap + jsr XDOS.DeallocAX free it from the bitmap pla sta bloknml set master of sapling pla index block address. @@ -402,7 +403,7 @@ L4D96 sty saptr save current index. bcc L4DB0 was the low part null too ? -L4DA5 jsr dealloc free it up on volume bitmap. +L4DA5 jsr XDOS.DeallocAX free it up on volume bitmap. bcs L4DB4 return any error. ldy saptr get index to sapling level index block.