diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index fbf37151..e68f8383 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index 610ec663..2acc5ed1 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -265,8 +265,8 @@ CS.RUN.CheckArg inc ArgIndex .9 >PUSHBI 0 >LDYA L.MSG.DUP >SYSCALL printf -CS.RUN.CheckArg -.9 lda #E.SYN +CS.RUN.CheckArg.9 + lda #E.SYN sec rts *-------------------------------------- diff --git a/INC/LIBPAK.I.txt b/INC/LIBPAK.I.txt index 0bbecacf..c18ef757 100644 --- a/INC/LIBPAK.I.txt +++ b/INC/LIBPAK.I.txt @@ -34,10 +34,10 @@ S.PAKSHNK .EQ 2+1+1+24 Max *-------------------------------------- S.PAKSTAT.PASS1 .EQ 0 S.PAKSTAT.PASS2 .EQ 2 -S.PAKSTAT.BYTE8 .EQ 4 -S.PAKSTAT.TOP8 .EQ 6 -S.PAKSTAT.TOP16 .EQ 8 -S.PAKSTAT.TOP24 .EQ 10 +S.PAKSTAT.TOP8 .EQ 4 +S.PAKSTAT.TOP16 .EQ 6 +S.PAKSTAT.TOP24 .EQ 8 +S.PAKSTAT.BYTE8 .EQ 10 S.PAKSTAT.REPN .EQ 12 S.PAKSTAT.BL .EQ 14 * diff --git a/LIB/LIBPAK.S.txt b/LIB/LIBPAK.S.txt index a5ca03a1..011bf5fc 100644 --- a/LIB/LIBPAK.S.txt +++ b/LIB/LIBPAK.S.txt @@ -109,6 +109,8 @@ Pak >PULLW Pak.SrcPtr Pak.Run >LDYA Pak.SrcPtr >STYA ZPSrcPtr + stz Pak.Byte8.Longest + stz Pak.Rep.Longest stz Pak.BL.Longest @@ -539,15 +541,18 @@ Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT lsr lsr tax Range 0-2 + tya and #7 ora TOP.Bits,x ldy TOP.BitCnt,x pha + lda TOP.Stat,x tax - pla jsr Pak.UpdateStats + + pla jmp Pak.Out.PutYBits .9 rts @@ -588,7 +593,7 @@ Pak.Out.Close bit Pak.Out.Mask *-------------------------------------- Pak.Out.Flush lda Pak.Out.ByteCnt beq .8 - + dec ora #PAK.B.BYTE8 @@ -608,7 +613,12 @@ Pak.Out.Flush lda Pak.Out.ByteCnt cpx Pak.Out.ByteCnt bne .1 - stz Pak.Out.ByteCnt + cpx Pak.Byte8.Longest + bcc .2 + + stx Pak.Byte8.Longest + +.2 stz Pak.Out.ByteCnt .8 clc .9 rts @@ -625,7 +635,22 @@ Pak.Out.PutYBits .2 ply asl - jsr Pak.Out.PutBitC + +.3 pha + + bcc .4 + lda Pak.Out.Mask + tsb Pak.Out.Byte + +.4 lsr Pak.Out.Mask + bcc .5 + + ror Pak.Out.Mask + + lda Pak.Out.Byte + jsr Pak.Out.PutByte + +.5 pla bcs .9 dey @@ -635,23 +660,6 @@ Pak.Out.PutYBits .9 rts *-------------------------------------- -Pak.Out.PutBitC pha - - bcc .1 - lda Pak.Out.Mask - tsb Pak.Out.Byte - -.1 lsr Pak.Out.Mask - bcc .8 - - ror Pak.Out.Mask - - lda Pak.Out.Byte - jsr Pak.Out.PutByte - -.8 pla - rts -*-------------------------------------- Pak.Out.PutByte inc Pak.DstCnt bne .1 @@ -694,14 +702,17 @@ Pak.PrintStats lda Pak.BL.OfsBitsL >PUSHB Pak.REP.Longest >PUSHW Pak.Stat+S.PAKSTAT.REPN - ldx #10 + >PUSHB Pak.Byte8.Longest + >PUSHW Pak.Stat+S.PAKSTAT.BYTE8 + + ldx #S.PAKSTAT.TOP24 .1 >PUSHW Pak.Stat,x dex dex bpl .1 - >PUSHBI 22 + >PUSHBI 23 >LDYA L.MSG.Stats >SYSCALL printf @@ -751,10 +762,10 @@ CS.END *-------------------------------------- MSG.Stats .AS "\r\nPass 1 : %5D\r\n" .AS "Pass 2 : %5D\r\n" - .AS "Byte 8 : %5D\r\n" .AS "Top 8 : %5D\r\n" .AS "Top 16 : %5D\r\n" .AS "Top 24 : %5D\r\n" + .AS "Byte 8 : %5D, Longest : %d\r\n" .AS "Rep N : %5D, Longest : %d\r\n" .AZ "BLNK : %5D, Longest : %d (%d bits), Farest : %D (%d bits)\r\n" MSG.Top24 .AZ "Top : %5d, %h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h\r\n" @@ -783,6 +794,7 @@ Pak.BestBL .BS 2 Pak.Cnt .BS 2 Pak.bStop .BS 1 +Pak.Byte8.Longest .BS 1 Pak.Rep.Longest .BS 1 Pak.RepCnt .BS 1