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