From 250b83a3b126ff72f61c6e0ea2f9dec4106c5a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 15 Oct 2019 17:32:50 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/PAK.S.txt | 1 + BIN/UNPAK.S.txt | 12 +++++- LIB/LIBPAK.S.txt | 50 ++++++++++++----------- SHARED/X.UNPAK.S.txt | 84 +++++++++++++++++++++++++++++---------- 5 files changed, 100 insertions(+), 47 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7daf19fa4a5a542d25ba9f387196b7be7df438d6..28d3e3c5373245a95d15dd05720f93c1baed0fcb 100644 GIT binary patch delta 23118 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 delta 17469 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 diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index f53b52c6..5323a38e 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -480,6 +480,7 @@ CS.RUN.WriteArcHdr.9 rts *-------------------------------------- CS.RUN.WriteSrcData + >DEBUG lda #CHNK.T.DATA jsr CS.RUN.WriteArcByteA bcs .9 diff --git a/BIN/UNPAK.S.txt b/BIN/UNPAK.S.txt index 1312ef53..2d2378ab 100644 --- a/BIN/UNPAK.S.txt +++ b/BIN/UNPAK.S.txt @@ -59,6 +59,7 @@ L.MSG.OK .DA MSG.OK L.MSG.ERR .DA MSG.ERR L.MSG.E.IARC .DA MSG.E.IARC L.MSG.E.OFS .DA MSG.E.OFS +L.DBG .DA DBG .DA 0 *-------------------------------------- CS.INIT clc @@ -99,7 +100,7 @@ CS.RUN >LDYAI CHNK.SIZE >LDYAI CHNK.SIZE >SYSCALL getmem bcs .9 - >STYA ZPOutBufPtr + txa >STA.G hOutBuf @@ -199,6 +200,10 @@ CS.RUN.LOOP jsr CS.RUN.GetByte lda (ZPInBufPtr),y sta ZPOutBufLen+1 + >LDA.G hOutBuf + >SYSCALL getmemptr + >STYA ZPOutBufPtr + jsr X.Unpak bcs .9 @@ -325,7 +330,9 @@ CS.RUN.OpenFile >PUSHW.G FileAuxType *-------------------------------------- CS.RUN.WriteFile >PUSHW ZPOutBufLen - >PUSHW ZPOutBufPtr + >LDA.G hOutBuf + >SYSCALL getmemptr + >PUSHYA >LDA.G hFile >SYSCALL fwrite rts @@ -368,6 +375,7 @@ MSG.ERR .AZ "[%h]\r\n" MSG.E.IARC .AZ "Invalid/corrupt archive" MSG.E.OFS .AZ "UnPak Error at Offset : %L\r\n" MSG.PAK .AS "PAK" +DBG .AZ "\r\n\e[7m[L=%h,O=%H]\e[0m" *-------------------------------------- .DUMMY .OR 0 diff --git a/LIB/LIBPAK.S.txt b/LIB/LIBPAK.S.txt index 38c80909..293b6241 100644 --- a/LIB/LIBPAK.S.txt +++ b/LIB/LIBPAK.S.txt @@ -9,7 +9,7 @@ NEW .INB INC/A2OSX.I .INB INC/LIBPAK.I *-------------------------------------- -STATS .EQ 0 +STATS .EQ 1 *-------------------------------------- ZPSrcPtr .EQ ZPLIB ZPDstPtr .EQ ZPLIB+2 @@ -90,6 +90,7 @@ Pak >PULLW Pak.SrcPtr dec Pak.bPass2 jsr Pak.Out.Init Initialize properly for first "PutBit" Call + bcs .9 jsr Pak.Run bcs .9 @@ -258,11 +259,14 @@ Pak.ComputeLenBits lda Pak.BL.Longest beq .10 - ldx #8 + ldx #3 dec dec dec + beq .10 + + ldx #8 .1 asl bcs .10 @@ -357,7 +361,7 @@ Pak.BuildTOPTable bne .1 .8 sty Pak.Shnk+S.PAKSHNK.TOPCNT - +Pak.BuildTOPTable.RTS rts *-------------------------------------- Pak.PutBL ldx #S.PAKSTAT.BL @@ -367,23 +371,23 @@ Pak.PutBL ldx #S.PAKSTAT.BL lda Pak.BestBLLen cmp Pak.BL.Longest - bcc .10 + bcc .1 sta Pak.BL.Longest -.10 ldy Pak.BestBL +.1 ldy Pak.BestBL cpy Pak.BL.Farest lda Pak.BestBL+1 pha sbc Pak.BL.Farest+1 pla - bcc .11 + bcc .2 >STYA Pak.BL.Farest -.11 bit Pak.bPass2 - bmi .20 +.2 bit Pak.bPass2 + bmi .3 ldx #S.PAKSTAT.PASS1 Assume 1 BL worse case is 3 bytes jsr Pak.UpdateStats @@ -392,31 +396,29 @@ Pak.PutBL ldx #S.PAKSTAT.BL clc rts -.20 ldy #PAK.B.BL.W +.3 ldy #PAK.B.BL.W lda #PAK.B.BL jsr Pak.Out.PutYBits - bcs .9 + bcs Pak.BuildTOPTable.RTS + + ldy Pak.BL.OfsBitsL + lda Pak.BestBL + jsr Pak.Out.PutYBits + bcs Pak.BuildTOPTable.RTS ldy Pak.BL.OfsBitsH - beq .2 + beq .4 lda Pak.BestBL+1 jsr Pak.Out.PutYBits - bcs .9 + bcs Pak.BuildTOPTable.RTS -.2 ldy Pak.BL.OfsBitsL - lda Pak.BestBL - jsr Pak.Out.PutYBits - bcs .9 - - ldy Pak.BL.LenBits +.4 ldy Pak.BL.LenBits lda Pak.BestBLLen dec dec dec jmp Pak.Out.PutYBits - -.9 rts *-------------------------------------- Pak.PutByte8 bit Pak.bPass2 bmi Pak.PutByte8.2 @@ -435,7 +437,7 @@ Pak.PutByte8 bit Pak.bPass2 clc rts - + Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT .1 cmp Pak.Shnk+S.PAKSHNK.TOPBYTES-1,y @@ -468,7 +470,8 @@ Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT and #7 ora TOP.Bits,x ldy TOP.BitCnt,x - pha + +.4 pha lda TOP.Stat,x tax @@ -511,7 +514,7 @@ Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.ULEN sta Pak.Out.Mask stz Pak.Out.Byte - clc +* clc .9 rts *-------------------------------------- Pak.Out.Close bit Pak.Out.Mask @@ -549,6 +552,7 @@ Pak.Out.PutYBits lda Pak.Out.Byte stz Pak.Out.Byte + jsr Pak.Out.PutByte .5 pla diff --git a/SHARED/X.UNPAK.S.txt b/SHARED/X.UNPAK.S.txt index f3703a1e..045c8969 100644 --- a/SHARED/X.UNPAK.S.txt +++ b/SHARED/X.UNPAK.S.txt @@ -62,6 +62,7 @@ X.Unpak.PAK pha A = BLBITS sta ZPBLOfsHBits jsr X.Unpak.NextByte get TOPCNT + >DEBUG lda (ZPInBufPtr) CHNK.DATA.PAK.TOPLEN tax @@ -76,23 +77,20 @@ X.Unpak.PAK pha A = BLBITS clc adc ZPInBufPtr skip TOP table sta ZPInBufPtr + bcc .11 - lda ZPInBufPtr+1 - adc #0 - sta ZPInBufPtr+1 + inc ZPInBufPtr+1 - lda #$80 +.11 lda #$80 sta ZPInMask - - >DEBUG - *-------------------------------------- .1 lda ZPnCnt ora ZPnCnt+1 beq X.Unpak.STORE.8 *-------------------------------------- -.2 jsr X.Unpak.GetBitInC - bcs .3 ->TOP +.2 >DEBUG + jsr X.Unpak.GetBitInC + bcs .3 ->TOP * BYTE8 ldx #8 jsr X.Unpak.GetXBitInA @@ -127,27 +125,34 @@ X.Unpak.PAK pha A = BLBITS .52 jsr X.Unpak.PutByte bne .2 + clc rts *-------------------------------------- * BACKLINK : 1111 OfsLBits OfsHBits LenBits .6 ldx ZPBLOfsLBits - + jsr X.Unpak.GetXBitInA + tay + eor #$ff sec - sbc ZPOutBufPtr + adc ZPOutBufPtr sta ZPPtr2 - php + lda ZPBLOfsHBits beq .61 + php tax jsr X.Unpak.GetXBitInA + plp -.61 plp - - sbc ZPOutBufPtr+1 +.61 pha + >PUSHYA + pla + eor #$ff + adc ZPOutBufPtr+1 sta ZPPtr2+1 ldx ZPBLLenBits @@ -156,18 +161,35 @@ X.Unpak.PAK pha A = BLBITS inc +1 inc +1 inc +1 + >PUSHA + + pha - tay + >PUSHBI 3 -.62 dey - lda (ZPPtr2),y + >LDYA L.DBG + >SYSCALL printf + + pla + tax + ldy #0 + +.62 lda (ZPPtr2),y jsr X.Unpak.PutByte beq .99 - - tya - bne .62 - bra .1 + iny + dex + bne .62 + + lda #'\' + >SYSCALL putchar + lda #C.CR + >SYSCALL putchar + lda #C.LF + >SYSCALL putchar + + jmp .1 .99 sec rts @@ -211,6 +233,24 @@ X.Unpak.NextByte .8 rts *-------------------------------------- X.Unpak.PutByte sta (ZPOutBufPtr) + + pha + phx + phy + + lda (ZPOutBufPtr) + >SYSCALL putchar + + lda (ZPOutBufPtr) + cmp #C.CR + bne .6 + lda #C.LF + >SYSCALL putchar +.6 + ply + plx + pla + inc ZPOutBufPtr bne .1 inc ZPOutBufPtr+1