diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index dd360065..80a38580 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 7d3fa331..03bf9a27 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 812c664b..a34ff327 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -35,7 +35,6 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBBLKDEV .DA LIBBLKDEV -L.BlkParams.Ptr .DA BlkParams.Ptr L.MSG.USAGE .DA MSG.USAGE L.MSG.INIT .DA MSG.INIT L.MSG.OK .DA MSG.OK @@ -45,7 +44,7 @@ L.MSG.ERR .DA MSG.ERR CS.INIT ldy #S.PS.ARGC lda (pPs),y beq .99 - + .1 >INC.G ArgIndex >SYSCALL GetArg.A @@ -78,16 +77,14 @@ CS.INIT ldy #S.PS.ARGC sta (pData),y bra .1 -.4 ldy #hDev - lda (pData),y +.4 >LDA.G hDev bne .5 Already have a dev name...go get VolName >LDYA ZPPtr1 >SYSCALL GetDevByName.YA bcs .99 txa - ldy #hDev - sta (pData),y + >STA.G hDev bra .1 .5 ldy #$ff @@ -99,46 +96,63 @@ CS.INIT ldy #S.PS.ARGC lda (ZPPtr1),y sta (pData),y - bne .6 success, scan for any other args - bra .1 + bne .6 + bra .1 success, scan for any other args -.7 lda (pData) +.7 >LDA.G VolName bne .8 Volume name ok + + ldx #$ff + ldy #VolName-1 + +.71 inx + iny + lda BLANK,x + sta (pData),y + bne .71 lda A2osX.TIMER16 jsr A2CharAX - sta DefaultVolName+6 - stx DefaultVolName+7 + sta (pData),y + iny + txa + sta (pData),y + iny lda A2osX.TIMER16+1 jsr A2CharAX - sta DefaultVolName+8 - stx DefaultVolName+9 + sta (pData),y + iny + txa + sta (pData),y + iny lda A2osX.RANDOM16 jsr A2CharAX - sta DefaultVolName+10 - stx DefaultVolName+11 + sta (pData),y + iny + txa + sta (pData),y + iny lda A2osX.RANDOM16+1 jsr A2CharAX - sta DefaultVolName+12 - stx DefaultVolName+13 - - ldy DefaultVolName - -.71 lda DefaultVolName,y sta (pData),y - dey - bpl .71 + iny + txa + sta (pData),y + iny + + lda #0 + sta (pData),y .8 >LDYA L.LIBBLKDEV >SYSCALL LoadLib.YA sta hLIBBLKDEV - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) +* lda (pPs) +* ora #S.PS.F.EVENT Now accept events +* sta (pPs) clc rts @@ -163,20 +177,19 @@ CS.RUN jsr CS.RUN.BuildCat sec rts *-------------------------------------- -CS.RUN.BuildCat ldy #hDev - lda (pData),y +CS.RUN.BuildCat >LDA.G hDev >SYSCALL GetDevStatus.A bcs .99 >STYA ZPPtr1 ldy #S.DEVSTAT.SIZE lda (ZPPtr1),y - sta SizeInBlocks - iny + >STA.G SizeInBlocks + ldy #S.DEVSTAT.SIZE+1 lda (ZPPtr1),y - sta SizeInBlocks+1 + >STA.G SizeInBlocks+1 - ldy #hDev + >LDA.G hDev lda (pData),y >SYSCALL GetDevByID.A bcs .99 @@ -189,59 +202,59 @@ CS.RUN.BuildCat ldy #hDev adc /S.DEV.NAME sta ZPPtr2+1 - >PUSHW pData - >PUSHW SizeInBlocks + >PUSHEA.G VolName + >PUSHW.G SizeInBlocks >PUSHW ZPPtr2 >LDYA L.MSG.INIT >SYSCALL PrintF.YA - bcs .9 +.99 bcs .9 - >PUSHW SizeInBlocks + >PUSHW.G SizeInBlocks >LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize -.99 bcs .9 - stx BlkCnt + bcs .9 + phy + pha + >STA.G BlkCnt + pla + ply >SYSCALL GetMem0.YA BufferSize bcs .9 >STYA BlkParams.Ptr txa - ldy #hBuf - sta (pData),y + >STA.G hBuf - >PUSHW SizeInBlocks - >PUSHW pData + >PUSHW.G SizeInBlocks + >PUSHEA.G VolName >PUSHW BlkParams.Ptr >LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat .9 rts *-------------------------------------- -CS.RUN.WriteCat stz BlkParams.Num - stz BlkParams.Num+1 - - ldy #hDev - lda (pData),y +CS.RUN.WriteCat >LDA.G hDev >SYSCALL GetDevByID.A bcs .9 >STYA pDev -.1 >LDYA L.BlkParams.Ptr +.1 >LEA.G BlkParams.Ptr ldx #DEVMGR.WRITEBLOCK jsr pDevJmp bcs .9 - inc BlkParams.Ptr+1 - inc BlkParams.Ptr+1 - inc BlkParams.Num - dec BlkCnt + >LDA.G BlkParams.Ptr+1 +* clc + adc #2 + sta (pData),y + + >DEC.G BlkCnt bne .1 .9 rts *-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- -CS.QUIT ldy #hBuf - lda (pData),y +CS.QUIT >LDA.G hBuf beq .1 >SYSCALL FreeMem.A @@ -283,21 +296,21 @@ MSG.ERR >CSTR "[%h]\r\n" MSG.INIT >CSTR "Formatting %s (%D Blks),Volname:%s..." *-------------------------------------- LIBBLKDEV >CSTR "libblkdev.o" -DefaultVolName >CSTR "BLANKXXXXXXXX" +BLANK >CSTR "BLANK" hLIBBLKDEV .BS 1 -SizeInBlocks .BS 2 -BlkCnt .BS 1 -BlkParams.Ptr .BS 2 -BlkParams.Num .BS 2 *-------------------------------------- .DUMMY .OR 0 DS.START ArgIndex .BS 1 +bLL .BS 1 VolName .BS 16 hDev .BS 5 +SizeInBlocks .BS 2 +BlkCnt .BS 1 +BlkParams.Ptr .BS 2 +BlkParams.Num .BS 2 hBuf .BS 1 -bLL .BS 1 DS.END .ED *-------------------------------------- diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index d1f70444..e45668bf 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -126,6 +126,13 @@ AUTO 6 >LEA.G ]1 >PUSHYA .EM +*-------------------------------------- + .MA PUSHW.G + >LDA.G ]1+1 + >PUSHA + >LDA.G ]1 + >PUSHA + .EM *-------------------------------------- .MA LDA.G ldy #]1 diff --git a/LIB/LIBBLKDEV.S.txt b/LIB/LIBBLKDEV.S.txt index 8e842314..311e2b15 100644 --- a/LIB/LIBBLKDEV.S.txt +++ b/LIB/LIBBLKDEV.S.txt @@ -161,17 +161,16 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf * Directory Blocks - lda (ZPPtr2) VolName Len +.3 lda (ZPPtr2),y + iny + sta VolDirHdr.Name,y + bne .3 + + tya and #$0f make sure 15 bytes max - tay ora #$F0 Volume Directory Header sta VolDirHdr.Name -.3 lda (ZPPtr2),y - sta VolDirHdr.Name,y - dey - bne .3 - ldy #VolDirHdr.size-1 .4 lda VolDirHdr,y @@ -326,11 +325,11 @@ D2TrkWNIB >PULLB DrvSlt ldy #TrkWriter.Size -.7 lda TrkWriter,y - sta UsrBuf256,y - dey - bne .7 - jmp UsrBuf256 +*.7 lda TrkWriter,y +* sta UsrBuf256,y +* dey +* bne .7 +* jmp UsrBuf256 clc