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