mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-13 13:29:04 +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
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.WriteSrcData
|
CS.RUN.WriteSrcData
|
||||||
|
>DEBUG
|
||||||
lda #CHNK.T.DATA
|
lda #CHNK.T.DATA
|
||||||
jsr CS.RUN.WriteArcByteA
|
jsr CS.RUN.WriteArcByteA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -59,6 +59,7 @@ L.MSG.OK .DA MSG.OK
|
|||||||
L.MSG.ERR .DA MSG.ERR
|
L.MSG.ERR .DA MSG.ERR
|
||||||
L.MSG.E.IARC .DA MSG.E.IARC
|
L.MSG.E.IARC .DA MSG.E.IARC
|
||||||
L.MSG.E.OFS .DA MSG.E.OFS
|
L.MSG.E.OFS .DA MSG.E.OFS
|
||||||
|
L.DBG .DA DBG
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
@ -99,7 +100,7 @@ CS.RUN >LDYAI CHNK.SIZE
|
|||||||
>LDYAI CHNK.SIZE
|
>LDYAI CHNK.SIZE
|
||||||
>SYSCALL getmem
|
>SYSCALL getmem
|
||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPOutBufPtr
|
|
||||||
txa
|
txa
|
||||||
>STA.G hOutBuf
|
>STA.G hOutBuf
|
||||||
|
|
||||||
@ -199,6 +200,10 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
|
|||||||
lda (ZPInBufPtr),y
|
lda (ZPInBufPtr),y
|
||||||
sta ZPOutBufLen+1
|
sta ZPOutBufLen+1
|
||||||
|
|
||||||
|
>LDA.G hOutBuf
|
||||||
|
>SYSCALL getmemptr
|
||||||
|
>STYA ZPOutBufPtr
|
||||||
|
|
||||||
jsr X.Unpak
|
jsr X.Unpak
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -325,7 +330,9 @@ CS.RUN.OpenFile >PUSHW.G FileAuxType
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.WriteFile
|
CS.RUN.WriteFile
|
||||||
>PUSHW ZPOutBufLen
|
>PUSHW ZPOutBufLen
|
||||||
>PUSHW ZPOutBufPtr
|
>LDA.G hOutBuf
|
||||||
|
>SYSCALL getmemptr
|
||||||
|
>PUSHYA
|
||||||
>LDA.G hFile
|
>LDA.G hFile
|
||||||
>SYSCALL fwrite
|
>SYSCALL fwrite
|
||||||
rts
|
rts
|
||||||
@ -368,6 +375,7 @@ MSG.ERR .AZ "[%h]\r\n"
|
|||||||
MSG.E.IARC .AZ "Invalid/corrupt archive"
|
MSG.E.IARC .AZ "Invalid/corrupt archive"
|
||||||
MSG.E.OFS .AZ "UnPak Error at Offset : %L\r\n"
|
MSG.E.OFS .AZ "UnPak Error at Offset : %L\r\n"
|
||||||
MSG.PAK .AS "PAK"
|
MSG.PAK .AS "PAK"
|
||||||
|
DBG .AZ "\r\n\e[7m[L=%h,O=%H]\e[0m"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
@ -9,7 +9,7 @@ NEW
|
|||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/LIBPAK.I
|
.INB INC/LIBPAK.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATS .EQ 0
|
STATS .EQ 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPSrcPtr .EQ ZPLIB
|
ZPSrcPtr .EQ ZPLIB
|
||||||
ZPDstPtr .EQ ZPLIB+2
|
ZPDstPtr .EQ ZPLIB+2
|
||||||
@ -90,6 +90,7 @@ Pak >PULLW Pak.SrcPtr
|
|||||||
dec Pak.bPass2
|
dec Pak.bPass2
|
||||||
|
|
||||||
jsr Pak.Out.Init Initialize properly for first "PutBit" Call
|
jsr Pak.Out.Init Initialize properly for first "PutBit" Call
|
||||||
|
bcs .9
|
||||||
|
|
||||||
jsr Pak.Run
|
jsr Pak.Run
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -258,11 +259,14 @@ Pak.ComputeLenBits
|
|||||||
lda Pak.BL.Longest
|
lda Pak.BL.Longest
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
ldx #8
|
ldx #3
|
||||||
|
|
||||||
dec
|
dec
|
||||||
dec
|
dec
|
||||||
dec
|
dec
|
||||||
|
beq .10
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
.1 asl
|
.1 asl
|
||||||
bcs .10
|
bcs .10
|
||||||
@ -357,7 +361,7 @@ Pak.BuildTOPTable
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 sty Pak.Shnk+S.PAKSHNK.TOPCNT
|
.8 sty Pak.Shnk+S.PAKSHNK.TOPCNT
|
||||||
|
Pak.BuildTOPTable.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Pak.PutBL ldx #S.PAKSTAT.BL
|
Pak.PutBL ldx #S.PAKSTAT.BL
|
||||||
@ -367,23 +371,23 @@ Pak.PutBL ldx #S.PAKSTAT.BL
|
|||||||
|
|
||||||
lda Pak.BestBLLen
|
lda Pak.BestBLLen
|
||||||
cmp Pak.BL.Longest
|
cmp Pak.BL.Longest
|
||||||
bcc .10
|
bcc .1
|
||||||
|
|
||||||
sta Pak.BL.Longest
|
sta Pak.BL.Longest
|
||||||
|
|
||||||
.10 ldy Pak.BestBL
|
.1 ldy Pak.BestBL
|
||||||
cpy Pak.BL.Farest
|
cpy Pak.BL.Farest
|
||||||
|
|
||||||
lda Pak.BestBL+1
|
lda Pak.BestBL+1
|
||||||
pha
|
pha
|
||||||
sbc Pak.BL.Farest+1
|
sbc Pak.BL.Farest+1
|
||||||
pla
|
pla
|
||||||
bcc .11
|
bcc .2
|
||||||
|
|
||||||
>STYA Pak.BL.Farest
|
>STYA Pak.BL.Farest
|
||||||
|
|
||||||
.11 bit Pak.bPass2
|
.2 bit Pak.bPass2
|
||||||
bmi .20
|
bmi .3
|
||||||
|
|
||||||
ldx #S.PAKSTAT.PASS1 Assume 1 BL worse case is 3 bytes
|
ldx #S.PAKSTAT.PASS1 Assume 1 BL worse case is 3 bytes
|
||||||
jsr Pak.UpdateStats
|
jsr Pak.UpdateStats
|
||||||
@ -392,31 +396,29 @@ Pak.PutBL ldx #S.PAKSTAT.BL
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.20 ldy #PAK.B.BL.W
|
.3 ldy #PAK.B.BL.W
|
||||||
lda #PAK.B.BL
|
lda #PAK.B.BL
|
||||||
jsr Pak.Out.PutYBits
|
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
|
ldy Pak.BL.OfsBitsH
|
||||||
beq .2
|
beq .4
|
||||||
|
|
||||||
lda Pak.BestBL+1
|
lda Pak.BestBL+1
|
||||||
jsr Pak.Out.PutYBits
|
jsr Pak.Out.PutYBits
|
||||||
bcs .9
|
bcs Pak.BuildTOPTable.RTS
|
||||||
|
|
||||||
.2 ldy Pak.BL.OfsBitsL
|
.4 ldy Pak.BL.LenBits
|
||||||
lda Pak.BestBL
|
|
||||||
jsr Pak.Out.PutYBits
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy Pak.BL.LenBits
|
|
||||||
lda Pak.BestBLLen
|
lda Pak.BestBLLen
|
||||||
dec
|
dec
|
||||||
dec
|
dec
|
||||||
dec
|
dec
|
||||||
jmp Pak.Out.PutYBits
|
jmp Pak.Out.PutYBits
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Pak.PutByte8 bit Pak.bPass2
|
Pak.PutByte8 bit Pak.bPass2
|
||||||
bmi Pak.PutByte8.2
|
bmi Pak.PutByte8.2
|
||||||
@ -435,7 +437,7 @@ Pak.PutByte8 bit Pak.bPass2
|
|||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT
|
Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT
|
||||||
|
|
||||||
.1 cmp Pak.Shnk+S.PAKSHNK.TOPBYTES-1,y
|
.1 cmp Pak.Shnk+S.PAKSHNK.TOPBYTES-1,y
|
||||||
@ -468,7 +470,8 @@ Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT
|
|||||||
and #7
|
and #7
|
||||||
ora TOP.Bits,x
|
ora TOP.Bits,x
|
||||||
ldy TOP.BitCnt,x
|
ldy TOP.BitCnt,x
|
||||||
pha
|
|
||||||
|
.4 pha
|
||||||
|
|
||||||
lda TOP.Stat,x
|
lda TOP.Stat,x
|
||||||
tax
|
tax
|
||||||
@ -511,7 +514,7 @@ Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.ULEN
|
|||||||
sta Pak.Out.Mask
|
sta Pak.Out.Mask
|
||||||
stz Pak.Out.Byte
|
stz Pak.Out.Byte
|
||||||
|
|
||||||
clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Pak.Out.Close bit Pak.Out.Mask
|
Pak.Out.Close bit Pak.Out.Mask
|
||||||
@ -549,6 +552,7 @@ Pak.Out.PutYBits
|
|||||||
|
|
||||||
lda Pak.Out.Byte
|
lda Pak.Out.Byte
|
||||||
stz Pak.Out.Byte
|
stz Pak.Out.Byte
|
||||||
|
|
||||||
jsr Pak.Out.PutByte
|
jsr Pak.Out.PutByte
|
||||||
|
|
||||||
.5 pla
|
.5 pla
|
||||||
|
@ -62,6 +62,7 @@ X.Unpak.PAK pha A = BLBITS
|
|||||||
sta ZPBLOfsHBits
|
sta ZPBLOfsHBits
|
||||||
|
|
||||||
jsr X.Unpak.NextByte get TOPCNT
|
jsr X.Unpak.NextByte get TOPCNT
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
lda (ZPInBufPtr) CHNK.DATA.PAK.TOPLEN
|
lda (ZPInBufPtr) CHNK.DATA.PAK.TOPLEN
|
||||||
tax
|
tax
|
||||||
@ -76,23 +77,20 @@ X.Unpak.PAK pha A = BLBITS
|
|||||||
clc
|
clc
|
||||||
adc ZPInBufPtr skip TOP table
|
adc ZPInBufPtr skip TOP table
|
||||||
sta ZPInBufPtr
|
sta ZPInBufPtr
|
||||||
|
bcc .11
|
||||||
|
|
||||||
lda ZPInBufPtr+1
|
inc ZPInBufPtr+1
|
||||||
adc #0
|
|
||||||
sta ZPInBufPtr+1
|
|
||||||
|
|
||||||
lda #$80
|
.11 lda #$80
|
||||||
sta ZPInMask
|
sta ZPInMask
|
||||||
|
|
||||||
>DEBUG
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 lda ZPnCnt
|
.1 lda ZPnCnt
|
||||||
ora ZPnCnt+1
|
ora ZPnCnt+1
|
||||||
beq X.Unpak.STORE.8
|
beq X.Unpak.STORE.8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.2 jsr X.Unpak.GetBitInC
|
.2 >DEBUG
|
||||||
bcs .3 ->TOP
|
jsr X.Unpak.GetBitInC
|
||||||
|
bcs .3 ->TOP
|
||||||
* BYTE8
|
* BYTE8
|
||||||
ldx #8
|
ldx #8
|
||||||
jsr X.Unpak.GetXBitInA
|
jsr X.Unpak.GetXBitInA
|
||||||
@ -127,27 +125,34 @@ X.Unpak.PAK pha A = BLBITS
|
|||||||
|
|
||||||
.52 jsr X.Unpak.PutByte
|
.52 jsr X.Unpak.PutByte
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BACKLINK : 1111 OfsLBits OfsHBits LenBits
|
* BACKLINK : 1111 OfsLBits OfsHBits LenBits
|
||||||
|
|
||||||
.6 ldx ZPBLOfsLBits
|
.6 ldx ZPBLOfsLBits
|
||||||
|
|
||||||
jsr X.Unpak.GetXBitInA
|
jsr X.Unpak.GetXBitInA
|
||||||
|
tay
|
||||||
|
eor #$ff
|
||||||
sec
|
sec
|
||||||
sbc ZPOutBufPtr
|
adc ZPOutBufPtr
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
php
|
|
||||||
lda ZPBLOfsHBits
|
lda ZPBLOfsHBits
|
||||||
beq .61
|
beq .61
|
||||||
|
|
||||||
|
php
|
||||||
tax
|
tax
|
||||||
jsr X.Unpak.GetXBitInA
|
jsr X.Unpak.GetXBitInA
|
||||||
|
plp
|
||||||
|
|
||||||
.61 plp
|
.61 pha
|
||||||
|
>PUSHYA
|
||||||
sbc ZPOutBufPtr+1
|
pla
|
||||||
|
eor #$ff
|
||||||
|
adc ZPOutBufPtr+1
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
ldx ZPBLLenBits
|
ldx ZPBLLenBits
|
||||||
@ -156,18 +161,35 @@ X.Unpak.PAK pha A = BLBITS
|
|||||||
inc +1
|
inc +1
|
||||||
inc +1
|
inc +1
|
||||||
inc +1
|
inc +1
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
|
pha
|
||||||
|
|
||||||
tay
|
>PUSHBI 3
|
||||||
|
|
||||||
.62 dey
|
>LDYA L.DBG
|
||||||
lda (ZPPtr2),y
|
>SYSCALL printf
|
||||||
|
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.62 lda (ZPPtr2),y
|
||||||
jsr X.Unpak.PutByte
|
jsr X.Unpak.PutByte
|
||||||
beq .99
|
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
|
.99 sec
|
||||||
rts
|
rts
|
||||||
@ -211,6 +233,24 @@ X.Unpak.NextByte
|
|||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.Unpak.PutByte sta (ZPOutBufPtr)
|
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
|
inc ZPOutBufPtr
|
||||||
bne .1
|
bne .1
|
||||||
inc ZPOutBufPtr+1
|
inc ZPOutBufPtr+1
|
||||||
|
Loading…
Reference in New Issue
Block a user