mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-24 09:33:48 +00:00
Kernel 0.93+
This commit is contained in:
parent
72a3544d20
commit
250b83a3b1
Binary file not shown.
@ -480,6 +480,7 @@ CS.RUN.WriteArcHdr.9
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.WriteSrcData
|
||||
>DEBUG
|
||||
lda #CHNK.T.DATA
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user