diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index e1c45401..8ab1534c 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index 92feb5ed..785df07c 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -486,10 +486,18 @@ CS.RUN.WriteSrcData bcs .9 >LDA.G Shunk.SrcSize + clc + adc #3 + pha + >LDA.G Shunk.SrcSize+1 + adc #0 + sta ZPPtr1+1 + + pla jsr CS.RUN.WriteArcByteA bcs .9 - >LDA.G Shunk.SrcSize+1 + lda ZPPtr1+1 jsr CS.RUN.WriteArcByteA bcs .9 @@ -497,6 +505,14 @@ CS.RUN.WriteSrcData jsr CS.RUN.WriteArcByteA bcs .9 + >LDA.G Shunk.SrcSize + jsr CS.RUN.WriteArcByteA + bcs .9 + + >LDA.G Shunk.SrcSize+1 + jsr CS.RUN.WriteArcByteA + bcs .9 + >PUSHW.G Shunk.SrcSize >PUSHW ZPSrcBufPtr >LDA.G hArcFile diff --git a/BIN/UNPAK.S.txt b/BIN/UNPAK.S.txt index 31679ac6..288d8188 100644 --- a/BIN/UNPAK.S.txt +++ b/BIN/UNPAK.S.txt @@ -146,7 +146,7 @@ CS.RUN.LOOP jsr CS.RUN.GetByte bne .1 jsr CS.RUN.GetFileName - bcs .9 + bcs .99 ldx #0 jsr CS.RUN.PrintFN @@ -164,15 +164,15 @@ CS.RUN.LOOP jsr CS.RUN.GetByte bne .9 jsr CS.RUN.GetFileType - bcs .9 + bcs .99 jsr CS.RUN.GetFileName - bcs .9 + bcs .99 ldx #2 jsr CS.RUN.PrintFN jsr CS.RUN.OpenFile - bcs .9 + bcs .99 *-------------------------------------- jsr CS.RUN.GetByte DATA bcs .8 eof @@ -183,15 +183,15 @@ CS.RUN.LOOP jsr CS.RUN.GetByte >SYSCALL putchar jsr CS.RUN.GetByte DataLen LO - bcs .9 + bcs .99 sta ZPInBufLen jsr CS.RUN.GetByte DataLen HI - bcs .9 + bcs .99 sta ZPInBufLen+1 jsr CS.RUN.ReadData - bcs .9 + bcs .99 ldy #1 lda (ZPInBufPtr),y @@ -209,7 +209,7 @@ CS.RUN.LOOP jsr CS.RUN.GetByte bcs .9 jsr CS.RUN.WriteFile - bcs .9 + bcs .99 jsr CS.RUN.GetByte bcs .8 diff --git a/LIB/LIBPAK.S.txt b/LIB/LIBPAK.S.txt index 98f8f13b..301c7487 100644 --- a/LIB/LIBPAK.S.txt +++ b/LIB/LIBPAK.S.txt @@ -520,8 +520,10 @@ Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.BLBITS *-------------------------------------- Pak.Out.Close bit Pak.Out.Mask bmi .8 + lda Pak.Out.Byte - jmp Pak.Out.PutByte + bra Pak.Out.PutByte + .8 clc rts *-------------------------------------- diff --git a/SHARED/X.UNPAK.S.txt b/SHARED/X.UNPAK.S.txt index 5d8439b6..2e8a8253 100644 --- a/SHARED/X.UNPAK.S.txt +++ b/SHARED/X.UNPAK.S.txt @@ -10,19 +10,22 @@ NEW * ZPPtr2 * ZPInMask,ZPBLOfsLBits,ZPBLOfsHBits,ZPBLLenBits *-------------------------------------- -X.Unpak jsr X.Unpak.GetNextByte CHNK.DATA.T +X.Unpak jsr X.Unpak.GetByte CHNK.DATA.T tax bne X.Unpak.PAK *-------------------------------------- -X.Unpak.STORE ldy #0 +X.Unpak.STORE jsr X.Unpak.GetULEN -.1 iny + ldy #0 + +.1 lda (ZPInBufPtr),y + + iny bne .2 inc ZPInBufPtr+1 -.2 lda (ZPInBufPtr),y - jsr X.Unpak.PutByte +.2 jsr X.Unpak.PutByte bne .1 clc @@ -51,15 +54,9 @@ X.Unpak.PAK pha A = BLBITS .10 sta ZPBLOfsLBits stx ZPBLOfsHBits - jsr X.Unpak.GetNextByte ULEN LO - eor #$ff - sta ZPnCnt - - jsr X.Unpak.GetNextByte ULEN HI - eor #$ff - sta ZPnCnt+1 + jsr X.Unpak.GetULEN - jsr X.Unpak.GetNextByte get TOPCNT + jsr X.Unpak.GetByte get TOPCNT ldx ZPInBufPtr ZPPtr1 = TOP table stx ZPPtr1 @@ -169,6 +166,15 @@ X.Unpak.PAK pha A = BLBITS clc rts *-------------------------------------- +X.Unpak.GetULEN jsr X.Unpak.GetByte ULEN LO + eor #$ff + sta ZPnCnt + + jsr X.Unpak.GetByte ULEN HI + eor #$ff + sta ZPnCnt+1 + rts +*-------------------------------------- X.Unpak.GetXBitInA lda #0 @@ -201,8 +207,7 @@ X.Unpak.GetBitInC .8 plp rts *-------------------------------------- -X.Unpak.GetNextByte - lda (ZPInBufPtr) +X.Unpak.GetByte lda (ZPInBufPtr) X.Unpak.NextByte inc ZPInBufPtr bne .8