mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-16 07:37:22 +00:00
Kernel 0.93+
This commit is contained in:
parent
5b653c3e4b
commit
203010d907
Binary file not shown.
@ -287,8 +287,14 @@ CS.RUN.FILE jsr FilterMatch
|
||||
bra .9
|
||||
|
||||
.2 jsr CS.RUN.Pak
|
||||
* >DEBUG
|
||||
jsr CS.RUN.WriteArcData
|
||||
bcs .3
|
||||
|
||||
jsr CS.RUN.WritePakData
|
||||
bcc .1
|
||||
|
||||
bra .4
|
||||
|
||||
.3 jsr CS.RUN.WriteSrcData
|
||||
bcc .1
|
||||
|
||||
.4 pha
|
||||
@ -367,8 +373,6 @@ CS.RUN.Pak >PUSHEA.G PAKSTAT
|
||||
>PUSHW ZPSrcBufPtr
|
||||
>LIBCALL hLIB,LIBPAK.Pak
|
||||
>STYA.G Shunk.DstSize
|
||||
txa
|
||||
>STA.G Shunk.Alg
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OpenArc >PUSHWZ Aux type
|
||||
@ -475,11 +479,34 @@ CS.RUN.WriteArcHdr
|
||||
CS.RUN.WriteArcHdr.9
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.WriteArcData
|
||||
CS.RUN.WriteSrcData
|
||||
lda #CHNK.T.DATA
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
>LDA.G Shunk.SrcSize
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
>LDA.G Shunk.SrcSize+1
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
lda #0 NO COMPRESSION
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
>PUSHW.G Shunk.SrcSize
|
||||
>PUSHW ZPSrcBufPtr
|
||||
>LDA.G hArcFile
|
||||
>SYSCALL fwrite
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.WritePakData
|
||||
lda #CHNK.T.DATA
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
>LDA.G Shunk.DstSize
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
@ -487,11 +514,7 @@ CS.RUN.WriteArcData
|
||||
>LDA.G Shunk.DstSize+1
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
lda Shunk.Alg
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
|
||||
>PUSHW.G Shunk.DstSize
|
||||
>PUSHW ZPDstBufPtr
|
||||
>LDA.G hArcFile
|
||||
@ -595,7 +618,6 @@ hDstBuf .BS 1
|
||||
|
||||
Shunk.SrcSize .BS 2
|
||||
Shunk.DstSize .BS 2
|
||||
Shunk.Alg .BS 1
|
||||
|
||||
PAKSTAT .BS S.PAKSTAT
|
||||
|
||||
|
@ -16,17 +16,21 @@ ZS.START
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
|
||||
ZPFullPathPtr .BS 2
|
||||
ZPRelPathPtr .BS 2
|
||||
|
||||
ZPInBufPtr .BS 2
|
||||
ZPOutBufPtr .BS 2
|
||||
ZPULen .BS 2
|
||||
|
||||
ZPnCnt .BS 2
|
||||
ZPInMask .BS 1
|
||||
ZPBLOfsLBits .BS 1
|
||||
ZPBLOfsHBits .BS 1
|
||||
ZPBLLenBits .BS 1
|
||||
|
||||
ZPInBufLen .BS 2
|
||||
ZPOutBufLen .BS 2
|
||||
|
||||
ZPFullPathPtr .BS 2
|
||||
ZPRelPathPtr .BS 2
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -69,18 +73,23 @@ CS.RUN >LDYAI CHNK.SIZE
|
||||
|
||||
lda #1
|
||||
>SYSCALL Argv
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
jsr CS.RUN.OpenArc
|
||||
bcs .9
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL getmem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPFullPathPtr
|
||||
txa
|
||||
>STA.G hFullPath
|
||||
|
||||
lda #2
|
||||
>SYSCALL Argv
|
||||
bcc .1
|
||||
|
||||
ldy #S.PS.hCWD
|
||||
lda (pPS),y
|
||||
>SYSCALL getmemptr
|
||||
@ -151,6 +160,7 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
|
||||
.99 rts
|
||||
|
||||
.9 jmp CS.RUN.E.IARC
|
||||
|
||||
.1 cmp #CHNK.T.FILE
|
||||
bne .9
|
||||
|
||||
@ -170,32 +180,38 @@ CS.RUN.LOOP jsr CS.RUN.GetByte
|
||||
.2 cmp #CHNK.T.DATA
|
||||
bne .3 Could be a 0 byte file
|
||||
|
||||
.20 jsr CS.RUN.GetByte ULEN LO
|
||||
.20 jsr CS.RUN.GetByte DataLen LO
|
||||
bcs .9
|
||||
sta ZPULen
|
||||
sta ZPInBufLen
|
||||
|
||||
jsr CS.RUN.GetByte ULEN HI
|
||||
jsr CS.RUN.GetByte DataLen HI
|
||||
bcs .9
|
||||
sta ZPULen+1
|
||||
sta ZPInBufLen+1
|
||||
|
||||
jsr CS.RUN.GetByte ALG
|
||||
bcs .9
|
||||
>DEBUG
|
||||
cmp #0 STORE
|
||||
bne .9
|
||||
|
||||
jsr CS.RUN.ReadData
|
||||
bcs .9
|
||||
|
||||
lda (ZPInBufPtr)
|
||||
sta ZPOutBufLen
|
||||
|
||||
ldy #1
|
||||
lda (ZPInBufPtr),y
|
||||
sta ZPOutBufLen+1
|
||||
>DEBUG
|
||||
jsr X.Unpak
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.WriteFile
|
||||
bcs .9
|
||||
jsr CS.RUN.GetByte
|
||||
bcs .8
|
||||
cmp #CHNK.T.DATA
|
||||
beq .20
|
||||
|
||||
.3 pha
|
||||
jsr .8
|
||||
pla
|
||||
jmp .10
|
||||
jmp .10
|
||||
|
||||
.8 >LDA.G hFile
|
||||
>SYSCALL fclose
|
||||
@ -266,7 +282,7 @@ CS.RUN.GetFileName
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.ReadData >PUSHW ZPULen
|
||||
CS.RUN.ReadData >PUSHW ZPInBufLen
|
||||
>PUSHW ZPInBufPtr
|
||||
>LDA.G hArcFile
|
||||
>SYSCALL fread
|
||||
@ -307,8 +323,8 @@ CS.RUN.OpenFile >PUSHW.G FileAuxType
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.WriteFile
|
||||
>PUSHW ZPULen
|
||||
>PUSHW ZPInBufPtr
|
||||
>PUSHW ZPOutBufLen
|
||||
>PUSHW ZPOutBufPtr
|
||||
>LDA.G hFile
|
||||
>SYSCALL fwrite
|
||||
rts
|
||||
|
@ -15,9 +15,7 @@ CHNK.FILE.FNLEN .EQ 4
|
||||
*
|
||||
CHNK.DIR.FNLEN .EQ 1
|
||||
*
|
||||
CHNK.DATA.ULEN .EQ 1
|
||||
CHNK.DATA.PAK.BLBITS .EQ 3
|
||||
CHNK.DATA.PAK.TOPLEN .EQ 1
|
||||
CHNK.DATA.LEN .EQ 1
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/PAK.I
|
||||
|
@ -479,7 +479,15 @@ Pak.PutByte8.2 ldy Pak.Shnk+S.PAKSHNK.TOPCNT
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.BLBITS
|
||||
Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.ULEN
|
||||
jsr Pak.Out.PutByte
|
||||
bcs .9
|
||||
|
||||
lda Pak.Shnk+S.PAKSHNK.ULEN+1
|
||||
jsr Pak.Out.PutByte
|
||||
bcs .9
|
||||
|
||||
lda Pak.Shnk+S.PAKSHNK.BLBITS
|
||||
jsr Pak.Out.PutByte
|
||||
bcs .9
|
||||
|
||||
@ -487,14 +495,16 @@ Pak.Out.Init lda Pak.Shnk+S.PAKSHNK.BLBITS
|
||||
jsr Pak.Out.PutByte
|
||||
bcs .9
|
||||
|
||||
tax
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda Pak.Shnk+S.PAKSHNK.TOPBYTES
|
||||
.1 lda Pak.Shnk+S.PAKSHNK.TOPBYTES,y
|
||||
jsr Pak.Out.PutByte
|
||||
bcs .9
|
||||
|
||||
iny
|
||||
cpy Pak.Shnk+S.PAKSHNK.TOPCNT
|
||||
dex
|
||||
bne .1
|
||||
|
||||
lda #$80
|
||||
@ -522,11 +532,13 @@ Pak.Out.PutYBits
|
||||
bra .1
|
||||
|
||||
.2 ply
|
||||
asl
|
||||
|
||||
.3 pha
|
||||
.3 asl
|
||||
|
||||
pha
|
||||
|
||||
bcc .4
|
||||
|
||||
lda Pak.Out.Mask
|
||||
tsb Pak.Out.Byte
|
||||
|
||||
@ -536,13 +548,14 @@ Pak.Out.PutYBits
|
||||
ror Pak.Out.Mask
|
||||
|
||||
lda Pak.Out.Byte
|
||||
stz Pak.Out.Byte
|
||||
jsr Pak.Out.PutByte
|
||||
|
||||
.5 pla
|
||||
bcs .9
|
||||
|
||||
dey
|
||||
bne Pak.Out.PutYBits
|
||||
bne .3
|
||||
|
||||
* clc
|
||||
|
||||
|
@ -61,15 +61,24 @@ X.Unpak.PAK pha A = BLBITS
|
||||
sta ZPBLOfsHBits
|
||||
|
||||
jsr X.Unpak.NextByte get TOPCNT
|
||||
|
||||
|
||||
lda (ZPInBufPtr) CHNK.DATA.PAK.TOPLEN
|
||||
tax
|
||||
jsr X.Unpak.NextByte get TOPCNT
|
||||
|
||||
lda ZPInBufPtr
|
||||
sta ZPPtr1
|
||||
lda ZPInBufPtr+1
|
||||
sta ZPPtr1+1
|
||||
|
||||
txa
|
||||
clc
|
||||
adc ZPInBufPtr skip TOP table
|
||||
sta ZPPtr1
|
||||
sta ZPInBufPtr
|
||||
|
||||
lda ZPInBufPtr+1 ZPInBufPtr = TOPs
|
||||
lda ZPInBufPtr+1
|
||||
adc #0
|
||||
sta ZPPtr1+1 ZPPtr1 = DATA
|
||||
sta ZPInBufPtr+1
|
||||
|
||||
lda #$80
|
||||
sta ZPInMask
|
||||
@ -112,7 +121,7 @@ X.Unpak.PAK pha A = BLBITS
|
||||
ora #32
|
||||
|
||||
.51 tay
|
||||
lda (ZPInBufPtr),y
|
||||
lda (ZPPtr1),y
|
||||
|
||||
.52 jsr X.Unpak.PutByte
|
||||
bne .2
|
||||
@ -174,7 +183,7 @@ X.Unpak.GetXBitInA
|
||||
X.Unpak.GetBitInC
|
||||
pha
|
||||
clc
|
||||
lda (ZPPtr1)
|
||||
lda (ZPInBufPtr)
|
||||
and ZPInMask
|
||||
beq .1
|
||||
sec
|
||||
@ -193,9 +202,9 @@ X.Unpak.GetBitInC
|
||||
rts
|
||||
*--------------------------------------
|
||||
X.Unpak.NextByte
|
||||
inc ZPPtr1
|
||||
inc ZPInBufPtr
|
||||
bne .8
|
||||
inc ZPPtr1+1
|
||||
inc ZPInBufPtr+1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user