From 18f087ddccbfcbc15c33781dc9d11e08a159de8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 4 Oct 2019 17:47:26 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/HTTPGET.S.txt | 2 +- LIB/LIBPAK.S.txt | 290 +++++++++++++++++++++------------------ 3 files changed, 157 insertions(+), 135 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 6f70a28bf4e3f5a8b440cc65854257dca5c0939c..393a82826ac82accecff1464bc58ce2acf27ddb5 100644 GIT binary patch delta 17508 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≫A9{SQ~;I0WS|O|0!#%?0jhy%z^TA=paz%$)B-bsI^Z;57Eli~0JDM9fir+P zz+B)=;4I*5;2hvw;5;A#Gy?O0`M?6830Mf64=e%}0~Y`n0!x6UKr_$+v;r3aZ9qHF z0W1S91}*`X11o?_fy;o)fh&M3fleR_#DJB+Rlq7>HNb(ZfiB=rz#8Bh;96iUa2;?x zunxEZxDmJsxEc5}upSV=2A~_b1-KR12;2s20&WL-fIEQAz+ZqnfxCb$z}>(-z`ekI z!2Q5hU>ooN@F1`qcnEkHcm#M9cno+P*a7SW{t7$+{0(>#*abWVJPpKw-M}-zv%qt} z-+||We*iB4F9I(CF9WXtuL7?DuLHfn9^jwA8^D{uTfp1EJHWqycY*hS_kj<94}p(> zkAXg5FYpQQDexKaIj|4-0@x3H348^74IBWz0S*G+0*8R_fbW5S13v&i0{;Pi0uBTJ V1&#ne14n^hfM4kY>^J(-{{eV)E7AY} delta 16336 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 diff --git a/BIN/HTTPGET.S.txt b/BIN/HTTPGET.S.txt index 48408d60..f810571c 100644 --- a/BIN/HTTPGET.S.txt +++ b/BIN/HTTPGET.S.txt @@ -328,7 +328,7 @@ CS.RUN.REQUEST jsr Init.Timeout jsr .8 bcc .1 - tay + inc bne .99 >SLEEP jsr Wait.TimeOut diff --git a/LIB/LIBPAK.S.txt b/LIB/LIBPAK.S.txt index 0e793ee2..894e0aba 100644 --- a/LIB/LIBPAK.S.txt +++ b/LIB/LIBPAK.S.txt @@ -10,13 +10,14 @@ NEW .INB INC/LIBPAK.I *-------------------------------------- ZPSrcPtr .EQ ZPLIB -ZPCnt .EQ ZPLIB+2 -ZPSrcBLPtr .EQ ZPLIB+4 -ZPBLCnt .EQ ZPLIB+6 -ZPCntTmp .EQ ZPLIB+8 +ZPDstPtr .EQ ZPLIB+2 +ZPStatPtr .EQ ZPLIB+4 + +ZPSrcBLPtr .EQ ZPLIB+8 +ZPCnt .EQ ZPLIB+10 +ZPBLCnt .EQ ZPLIB+12 + -ZPDstPtr .EQ ZPLIB+16 -ZPStatPtr .EQ ZPLIB+18 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -110,8 +111,6 @@ Pak >PULLW Pak.SrcPtr jsr Pak.Out.Init Initialize properly for first "PutBit" Call - stz Pak.StringLen - jsr Pak.Run bcs .9 @@ -129,6 +128,111 @@ Pak >PULLW Pak.SrcPtr .9 rts *-------------------------------------- +Pak.Run >LDYA Pak.SrcPtr + >STYA ZPSrcPtr + + lda Pak.Shnk+S.PAKSHNK.ULEN + eor #$ff + sta Pak.SrcCnt + sta Pak.DstCnt + + lda Pak.Shnk+S.PAKSHNK.ULEN+1 + eor #$ff + sta Pak.SrcCnt+1 + sta Pak.DstCnt+1 + + sec + ror Pak.RepCnt + stz Pak.LastByte + + ldx #S.PAKSTAT.PASS1 + bit Pak.bPass2 + bpl .1 + + inx + inx + +.1 stz Pak.Stat,x Reset Stats + inx + cpx #S.PAKSTAT + bne .1 + + stz Pak.BL.Longest + stz Pak.BL.Farest + stz Pak.BL.Farest+1 + +Pak.Run.1 inc Pak.SrcCnt + bne .1 + + inc Pak.SrcCnt+1 + beq .8 0 byte left... + +.1 jsr Pak.ScanBL + bcs .4 + + ldx #S.PAKSTAT.BL + jsr Pak.UpdateStats + +* jsr PrintBL + + lda Pak.BestBLLen + cmp Pak.BL.Longest + bcc .10 + + sta Pak.BL.Longest + +.10 bit Pak.bPass2 + bmi .11 + + ldx #S.PAKSTAT.PASS1 Assume 1 BL worse case is 3 bytes + jsr Pak.UpdateStats + jsr Pak.UpdateStats + jsr Pak.UpdateStats + bra .3 + +.11 sec + lda Pak.Out.PutBitC + + ldy Pak.BL.BitCntH + beq .2 + + lda Pak.BestBL+1 + jsr Pak.Out.PutYBits + +.2 ldy Pak.BL.BitCntL + lda Pak.BestBL + jsr Pak.Out.PutYBits + + ldy #6 + lda Pak.BestBLLen + jsr Pak.Out.PutYBits + + lda Pak.BestBLLen + clc + adc ZPSrcPtr + sta ZPSrcPtr + bcc .3 + inc ZPSrcPtr+1 + +.3 lda Pak.BestBLLen + clc + adc Pak.SrcCnt + sta Pak.SrcCnt + bcc .1 + inc Pak.SrcCnt+1 + bmi .1 + +.8 clc +.9 rts + +.4 lda (ZPSrcPtr) + jsr Pak.PutA + + inc ZPSrcPtr + bne Pak.Run.1 + inc ZPSrcPtr+1 + bra Pak.Run.1 +*-------------------------------------- Pak.BuildTOPTable ldy #0 @@ -178,110 +282,15 @@ Pak.BuildTOPTable rts *-------------------------------------- -Pak.Run jsr Pak.InitPass - -Pak.Run.1 inc Pak.SrcCnt - bne .1 - - inc Pak.SrcCnt+1 - beq .8 0 byte left... - -.1 jsr Pak.ScanBL - bcs .4 - - bit Pak.bPass2 - bmi .11 - - ldx #S.PAKSTAT.PASS1 - jsr Pak.UpdateStats - jsr Pak.UpdateStats - jsr Pak.UpdateStats - - bra .3 - -.11 sec - lda Pak.Out.PutBitC - - ldy Pak.BL.BitCntH - beq .2 - - lda Pak.BestBL+1 - jsr Pak.Out.PutYBits - -.2 ldy Pak.BL.BitCntL - lda Pak.BestBL - jsr Pak.Out.PutYBits - - ldy #6 - lda Pak.BestBLLen - jsr Pak.Out.PutYBits - - lda Pak.BestBLLen - clc - adc ZPSrcPtr - sta ZPSrcPtr - bcc .3 - inc ZPSrcPtr+1 - -.3 ldx #S.PAKSTAT.BL - jsr Pak.UpdateStats - - lda Pak.BestBLLen - clc - adc Pak.SrcCnt - sta Pak.SrcCnt - bcc .1 - inc Pak.SrcCnt+1 - bmi .1 - -.8 clc -.9 rts - -.4 lda (ZPSrcPtr) - jsr Pak.PutA - - inc ZPSrcPtr - bne Pak.Run.1 - inc ZPSrcPtr+1 - bra Pak.Run.1 -*-------------------------------------- -Pak.InitPass >LDYA Pak.SrcPtr - >STYA ZPSrcPtr - - lda Pak.Shnk+S.PAKSHNK.ULEN - eor #$ff - sta Pak.SrcCnt - - lda Pak.Shnk+S.PAKSHNK.ULEN+1 - eor #$ff - sta Pak.SrcCnt+1 - - sec - ror Pak.RepCnt - stz Pak.LastByte - - ldx #S.PAKSTAT.PASS1 - bit Pak.bPass2 - bpl .1 - - inx - inx - -.1 stz Pak.Stat,x Reset Stats - inx - cpx #S.PAKSTAT - bne .1 - - rts -*-------------------------------------- -Pak.ScanBL >LDYA Pak.SrcPtr +Pak.ScanBL >LDYA Pak.SrcPtr Start at beginning of Src buf >STYA ZPSrcBLPtr - + sec ror Pak.bBLFound + stz Pak.BestBLLen -.1 sec - lda ZPSrcBLPtr +.1 lda ZPSrcBLPtr + sec sbc ZPSrcPtr sta ZPBLCnt @@ -290,8 +299,8 @@ Pak.ScanBL >LDYA Pak.SrcPtr sta ZPBLCnt+1 ZPSrcBLPtr < !BlCnt < ZPSrcPtr bcs .8 ZPSrcBLPtr = ZPSrcPtr, exit - >LDYA ZPCnt - >STYA ZPCntTmp Stop at end of Src Data + >LDYA Pak.SrcCnt make sure not going past End Buffer + >STYA ZPCnt while reading ahead ldy #0 ...or Y = BL.MAX @@ -309,9 +318,9 @@ Pak.ScanBL >LDYA Pak.SrcPtr cpy #BL.MAX beq .4 Max BL len - inc ZPCntTmp + inc ZPCnt bne .2 - inc ZPCntTmp+1 + inc ZPCnt+1 bne .2 Last Src Data .4 dey Adjust BL len Range @@ -319,29 +328,30 @@ Pak.ScanBL >LDYA Pak.SrcPtr dey bmi .5 not long enough - + cpy Pak.BestBLLen bcc .5 not better ... beq .5 same... sty Pak.BestBLLen - >LDYA ZPBLCnt + >LDYA ZPSrcBLPtr >STYA Pak.BestBL stz Pak.bBLFound - jsr PrintBL - .5 inc ZPSrcBLPtr bne .1 inc ZPSrcBLPtr+1 bra .1 - + .8 rol Pak.bBLFound rts *-------------------------------------- -PrintBl lda #'{' +PrintBl >LDYA Pak.BestBL + >STYA ZPSrcBLPtr + + lda #'{' >SYSCALL putchar ldy #0 @@ -370,7 +380,7 @@ PrintBl lda #'{' >SYSCALL putchar lda #C.LF >SYSCALL putchar - >DEBUG + rts *-------------------------------------- Pak.PutA bit Pak.bPass2 @@ -382,9 +392,7 @@ Pak.PutA bit Pak.bPass2 inc Pak.CntH,x -.1 ldx #S.PAKSTAT.PASS1 - jsr Pak.UpdateStats - ldx #S.PAKSTAT.BYTE8 +.1 ldx #S.PAKSTAT.BYTE8 jsr Pak.UpdateStats clc @@ -441,7 +449,7 @@ Pak.PutA.2.Out ldy Pak.Shnk+S.PAKSHNK.TOPCNT .1 cmp Pak.Shnk+S.PAKSHNK.TOPBYTES-1,y beq .3 dey - bpl .1 + bne .1 ldx #S.PAKSTAT.BYTE8 jsr Pak.UpdateStats @@ -449,7 +457,9 @@ Pak.PutA.2.Out ldy Pak.Shnk+S.PAKSHNK.TOPCNT clc jmp Pak.Out.PutCA -.3 tya Range 0-23 +.3 dey Range 0-23 + + tya lsr lsr lsr @@ -462,7 +472,6 @@ Pak.PutA.2.Out ldy Pak.Shnk+S.PAKSHNK.TOPCNT lda TOP.Stat,x tax pla - jsr Pak.UpdateStats jmp Pak.Out.PutYBits *-------------------------------------- @@ -509,6 +518,8 @@ Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.TOPCNT cpy Pak.Shnk+S.PAKSHNK.TOPCNT bne .1 + stz Pak.StringLen + lda #$80 sta Pak.Out.Mask stz Pak.Out.Byte @@ -596,14 +607,22 @@ Pak.UpdateStats inc Pak.Stat,x inc Pak.Stat+1,x .8 rts *-------------------------------------- -Pak.PrintStats ldx #14 +Pak.PrintStats lda Pak.BL.BitCntL + clc + adc Pak.BL.BitCntH + >PUSHA + + lda Pak.BL.Longest + >PUSHA + + ldx #14 .1 >PUSHW Pak.Stat,x dex dex bpl .1 - >PUSHBI 16 + >PUSHBI 18 >LDYA L.MSG.Stats >SYSCALL printf @@ -628,7 +647,7 @@ MSG.Stats .AS "\r\nPass 1 : %5D\r\n" .AS "Top 16 : %5D\r\n" .AS "Top 24 : %5D\r\n" .AS "Rep N : %5D\r\n" - .AZ "BLNK : %5D\r\n" + .AZ "BLNK : %5D, Longest : %d bytes, ptr witdh : %d bits\r\n" MSG.Top24 .AZ "Top (%2d) : %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" TOP.Bits .DA #PAK.B.TOP8,PAK.B.TOP16,PAK.B.TOP24 TOP.BitCnt .DA #5,#6,#7 @@ -639,8 +658,10 @@ Pak.SrcPtr .BS 2 Pak.SrcCnt .BS 2 Pak.DstCnt .BS 2 -Pak.RepCnt .BS 1 -Pak.LastByte .BS 1 +Pak.bPass2 .BS 1 + +Pak.BL.Longest .BS 1 +Pak.BL.Farest .BS 2 Pak.BL.BitCntL .BS 1 Pak.BL.BitCntH .BS 1 @@ -649,13 +670,14 @@ Pak.bBLFound .BS 1 Pak.BestBLLen .BS 1 Pak.BestBL .BS 2 -Pak.StringLen .BS 1 -Pak.StringBuf .BS STRING.MAX - Pak.Cnt .BS 2 Pak.bStop .BS 1 -Pak.bPass2 .BS 1 +Pak.RepCnt .BS 1 +Pak.LastByte .BS 1 + +Pak.StringLen .BS 1 +Pak.StringBuf .BS STRING.MAX Pak.Out.Byte .BS 1 Pak.Out.Mask .BS 1