mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-19 22:31:42 +00:00
Kernel 0.93+
This commit is contained in:
parent
16bc27fa1c
commit
5e9259f250
Binary file not shown.
@ -63,6 +63,7 @@ L.MSG.OK .DA MSG.OK
|
||||
L.MSG.ERR .DA MSG.ERR
|
||||
L.MSG.E.IARC .DA MSG.E.IARC
|
||||
L.ARC.Header .DA ARC.Header
|
||||
L.MSG.DBG .DA MSG.DBG
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >LDYA L.LIBPAK
|
||||
@ -372,8 +373,9 @@ CS.RUN.Pak >PUSHEA.G PAKSTAT
|
||||
>PUSHW.G Shunk.SrcSize
|
||||
>PUSHW ZPSrcBufPtr
|
||||
>LIBCALL hLIB,LIBPAK.Pak
|
||||
bcs .9
|
||||
>STYA.G Shunk.DstSize
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OpenArc >PUSHWZ Aux type
|
||||
>PUSHBI $CF PAK
|
||||
@ -484,6 +486,11 @@ CS.RUN.WriteSrcData
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
>PUSHW.G Shunk.SrcSize
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.DBG
|
||||
>SYSCALL printf
|
||||
|
||||
>LDA.G Shunk.SrcSize
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
@ -506,6 +513,11 @@ CS.RUN.WritePakData
|
||||
lda #CHNK.T.DATA
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
bcs .9
|
||||
|
||||
* >PUSHW.G Shunk.DstSize
|
||||
* >PUSHBI 2
|
||||
* >LDYA L.MSG.DBG
|
||||
* >SYSCALL printf
|
||||
|
||||
>LDA.G Shunk.DstSize
|
||||
jsr CS.RUN.WriteArcByteA
|
||||
@ -598,6 +610,7 @@ MSG.ERR .AZ "[%h]\r\n"
|
||||
MSG.E.IARC .AZ "Invalid/corrupt archive"
|
||||
MSG.DIR .AZ "Reading Dir:%s..."
|
||||
MSG.FILE .AZ "Adding File:%s..."
|
||||
MSG.DBG .AZ "%H"
|
||||
ARC.Header .AZ "PAK"
|
||||
*--------------------------------------
|
||||
LIBPAK .AZ "libpak"
|
||||
|
@ -59,7 +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
|
||||
L.MSG.DBG .DA MSG.DBG
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@ -182,35 +182,46 @@ 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 DataLen LO
|
||||
.20 lda #'.'
|
||||
>SYSCALL putchar
|
||||
|
||||
jsr CS.RUN.GetByte DataLen LO
|
||||
bcs .9
|
||||
sta ZPInBufLen
|
||||
|
||||
jsr CS.RUN.GetByte DataLen HI
|
||||
bcs .9
|
||||
sta ZPInBufLen+1
|
||||
|
||||
|
||||
jsr CS.RUN.ReadData
|
||||
bcs .9
|
||||
|
||||
lda (ZPInBufPtr)
|
||||
sta ZPOutBufLen
|
||||
|
||||
ldy #1
|
||||
lda (ZPInBufPtr),y
|
||||
sta ZPOutBufLen
|
||||
|
||||
iny
|
||||
lda (ZPInBufPtr),y
|
||||
sta ZPOutBufLen+1
|
||||
|
||||
* >PUSHW ZPOutBufLen
|
||||
* >PUSHBI 2
|
||||
* >LDYA L.MSG.DBG
|
||||
* >SYSCALL printf
|
||||
|
||||
>LDA.G hOutBuf
|
||||
>SYSCALL getmemptr
|
||||
>STYA ZPOutBufPtr
|
||||
|
||||
jsr X.Unpak
|
||||
bcs .9
|
||||
.90 bcs .9
|
||||
|
||||
jsr CS.RUN.WriteFile
|
||||
bcs .9
|
||||
bcs .90
|
||||
|
||||
jsr CS.RUN.GetByte
|
||||
bcs .8
|
||||
|
||||
cmp #CHNK.T.DATA
|
||||
beq .20
|
||||
|
||||
@ -289,7 +300,10 @@ CS.RUN.GetFileName
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.ReadData >PUSHW ZPInBufLen
|
||||
>PUSHW ZPInBufPtr
|
||||
>LDA.G hInBuf
|
||||
>SYSCALL getmemptr
|
||||
>STYA ZPInBufPtr
|
||||
>PUSHYA
|
||||
>LDA.G hArcFile
|
||||
>SYSCALL fread
|
||||
rts
|
||||
@ -375,7 +389,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"
|
||||
MSG.DBG .AZ "%H"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -9,7 +9,7 @@ NEW
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/LIBPAK.I
|
||||
*--------------------------------------
|
||||
STATS .EQ 1
|
||||
STATS .EQ 0
|
||||
*--------------------------------------
|
||||
ZPSrcPtr .EQ ZPLIB
|
||||
ZPDstPtr .EQ ZPLIB+2
|
||||
@ -70,6 +70,12 @@ Pak >PULLW Pak.SrcPtr
|
||||
stz Pak.CntH,x
|
||||
inx
|
||||
bne .1
|
||||
|
||||
ldx #S.PAKSTAT.PASS2+1
|
||||
|
||||
.2 stz Pak.Stat,x Reset Stats
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
* PASS #1 : no store, update byte counters
|
||||
|
||||
@ -100,7 +106,6 @@ Pak >PULLW Pak.SrcPtr
|
||||
|
||||
.DO STATS=1
|
||||
jsr Pak.PrintStats
|
||||
>DEBUG
|
||||
.FIN
|
||||
|
||||
ldy #S.PAKSTAT-1
|
||||
@ -132,12 +137,7 @@ Pak.Run >LDYA Pak.SrcPtr
|
||||
sta Pak.SrcCnt+1
|
||||
sta Pak.DstCnt+1
|
||||
|
||||
ldx #S.PAKSTAT.PASS1
|
||||
bit Pak.bPass2
|
||||
bpl .1
|
||||
|
||||
inx
|
||||
inx
|
||||
ldx #S.PAKSTAT.TOP8
|
||||
|
||||
.1 stz Pak.Stat,x Reset Stats
|
||||
inx
|
||||
|
@ -10,8 +10,8 @@ NEW
|
||||
* ZPPtr2
|
||||
* ZPInMask,ZPBLOfsLBits,ZPBLOfsHBits,ZPBLLenBits
|
||||
*--------------------------------------
|
||||
X.Unpak >DEBUG
|
||||
lda (ZPInBufPtr) CHNK.DATA.T
|
||||
X.Unpak jsr X.Unpak.GetNextByte CHNK.DATA.T
|
||||
tax
|
||||
bne X.Unpak.PAK
|
||||
*--------------------------------------
|
||||
X.Unpak.STORE ldy #0
|
||||
@ -25,7 +25,6 @@ X.Unpak.STORE ldy #0
|
||||
jsr X.Unpak.PutByte
|
||||
bne .1
|
||||
|
||||
X.Unpak.STORE.8
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -38,42 +37,38 @@ X.Unpak.PAK pha A = BLBITS
|
||||
sta ZPBLLenBits
|
||||
|
||||
pla
|
||||
ldx #8
|
||||
and #$0f
|
||||
tax
|
||||
|
||||
ldx #0
|
||||
|
||||
cmp #8
|
||||
bcc .10
|
||||
|
||||
ldx #8
|
||||
|
||||
and #7
|
||||
tax
|
||||
lda #8
|
||||
|
||||
.10 stx ZPBLOfsLBits
|
||||
sta ZPBLOfsHBits
|
||||
|
||||
jsr X.Unpak.NextByte get TOPCNT
|
||||
.10 sta ZPBLOfsLBits
|
||||
stx ZPBLOfsHBits
|
||||
|
||||
lda (ZPInBufPtr) ULEN LO
|
||||
jsr X.Unpak.GetNextByte ULEN LO
|
||||
sec
|
||||
adc #0
|
||||
eor #$ff
|
||||
sta ZPnCnt
|
||||
|
||||
jsr X.Unpak.NextByte
|
||||
|
||||
lda (ZPInBufPtr) ULEN HI
|
||||
jsr X.Unpak.GetNextByte ULEN HI
|
||||
adc #0
|
||||
eor #$ff
|
||||
sta ZPnCnt+1
|
||||
|
||||
jsr X.Unpak.NextByte
|
||||
jsr X.Unpak.GetNextByte get TOPCNT
|
||||
|
||||
lda (ZPInBufPtr) CHNK.DATA.PAK.TOPLEN
|
||||
tax
|
||||
jsr X.Unpak.NextByte get TOPCNT
|
||||
ldx ZPInBufPtr ZPPtr1 = TOP table
|
||||
stx ZPPtr1
|
||||
ldx ZPInBufPtr+1
|
||||
stx ZPPtr1+1
|
||||
|
||||
lda ZPInBufPtr
|
||||
sta ZPPtr1
|
||||
lda ZPInBufPtr+1
|
||||
sta ZPPtr1+1
|
||||
|
||||
txa
|
||||
clc
|
||||
adc ZPInBufPtr skip TOP table
|
||||
sta ZPInBufPtr
|
||||
@ -84,10 +79,6 @@ X.Unpak.PAK pha A = BLBITS
|
||||
.11 lda #$80
|
||||
sta ZPInMask
|
||||
*--------------------------------------
|
||||
.1 lda ZPnCnt
|
||||
ora ZPnCnt+1
|
||||
beq X.Unpak.STORE.8
|
||||
*--------------------------------------
|
||||
.2 jsr X.Unpak.GetBitInC
|
||||
bcs .3 ->TOP
|
||||
* BYTE8
|
||||
@ -131,9 +122,9 @@ X.Unpak.PAK pha A = BLBITS
|
||||
* BACKLINK : 1111 OfsLBits OfsHBits LenBits
|
||||
|
||||
.6 ldx ZPBLOfsLBits
|
||||
|
||||
|
||||
jsr X.Unpak.GetXBitInA
|
||||
tay
|
||||
|
||||
eor #$ff
|
||||
sec
|
||||
adc ZPOutBufPtr
|
||||
@ -147,10 +138,7 @@ X.Unpak.PAK pha A = BLBITS
|
||||
jsr X.Unpak.GetXBitInA
|
||||
plp
|
||||
|
||||
.61 pha
|
||||
>PUSHYA
|
||||
pla
|
||||
eor #$ff
|
||||
.61 eor #$ff
|
||||
adc ZPOutBufPtr+1
|
||||
sta ZPPtr2+1
|
||||
|
||||
@ -160,16 +148,7 @@ X.Unpak.PAK pha A = BLBITS
|
||||
inc +1
|
||||
inc +1
|
||||
inc +1
|
||||
>PUSHA
|
||||
|
||||
pha
|
||||
|
||||
>PUSHBI 3
|
||||
|
||||
>LDYA L.DBG
|
||||
>SYSCALL printf
|
||||
|
||||
pla
|
||||
tax
|
||||
ldy #0
|
||||
|
||||
@ -181,14 +160,12 @@ X.Unpak.PAK pha A = BLBITS
|
||||
dex
|
||||
bne .62
|
||||
|
||||
lda #'\'
|
||||
>SYSCALL putchar
|
||||
lda #C.CR
|
||||
>SYSCALL putchar
|
||||
lda #C.LF
|
||||
>SYSCALL putchar
|
||||
lda ZPnCnt
|
||||
ora ZPnCnt+1
|
||||
bne .2
|
||||
|
||||
jmp .1
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 sec
|
||||
rts
|
||||
@ -224,6 +201,8 @@ X.Unpak.GetBitInC
|
||||
pla
|
||||
rts
|
||||
*--------------------------------------
|
||||
X.Unpak.GetNextByte
|
||||
lda (ZPInBufPtr)
|
||||
X.Unpak.NextByte
|
||||
inc ZPInBufPtr
|
||||
bne .8
|
||||
@ -232,32 +211,15 @@ 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
|
||||
|
||||
|
||||
.1 inc ZPnCnt
|
||||
bne .2
|
||||
bne .8
|
||||
inc ZPnCnt+1
|
||||
.2 rts
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
X.Unpak.Size .EQ *-X.Unpak
|
||||
|
Loading…
x
Reference in New Issue
Block a user