2018-03-16 16:33:11 +00:00
|
|
|
|
NEW
|
2018-11-17 17:17:13 +00:00
|
|
|
|
PREFIX
|
2018-03-16 16:33:11 +00:00
|
|
|
|
AUTO 4,1
|
|
|
|
|
.LIST OFF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.Init >LDYA Pak.SrcPtr
|
|
|
|
|
>STYA ZPSrcPtr
|
|
|
|
|
|
|
|
|
|
lda Pak.Hdr+S.PAKHDR.LEN
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Pak.SrcCnt
|
|
|
|
|
|
|
|
|
|
lda Pak.Hdr+S.PAKHDR.LEN+1
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta Pak.SrcCnt+1
|
|
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.GetRH lda #$ff
|
|
|
|
|
cmp Pak.SrcCnt+1 return 255 if not $ffxx
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
lda Pak.SrcCnt
|
|
|
|
|
eor #$ff return !xx if $ffxx
|
|
|
|
|
|
|
|
|
|
.1 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.MoveFWA clc
|
|
|
|
|
adc ZPSrcPtr
|
|
|
|
|
sta ZPSrcPtr
|
|
|
|
|
bcc .8
|
|
|
|
|
inc ZPSrcPtr+1
|
|
|
|
|
|
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.Get8Bits ldy #8
|
|
|
|
|
.HS 2C bit abs
|
|
|
|
|
Pak.In.Get4Bits ldy #4
|
|
|
|
|
lda #0 make sure to reset A before reading less than 8 bits only
|
|
|
|
|
.1 jsr Pak.In.GetBit and to exit with CC if even if 8 bits read
|
|
|
|
|
rol
|
|
|
|
|
dey
|
|
|
|
|
bne .1
|
|
|
|
|
rts always CC
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.GetBit ldx Pak.In.Mask
|
|
|
|
|
bne .1
|
|
|
|
|
jsr Pak.In.NxtByte
|
|
|
|
|
|
|
|
|
|
ldx #8
|
|
|
|
|
|
|
|
|
|
.1 dex
|
|
|
|
|
stx Pak.In.GetBit+1
|
|
|
|
|
|
|
|
|
|
pha Don't trash A
|
|
|
|
|
lda (UnZPSrcPtr)
|
|
|
|
|
and Pak.In.BitMask,x
|
|
|
|
|
cmp #1 if 0:CC, i>0 CS
|
|
|
|
|
|
|
|
|
|
pla
|
|
|
|
|
rts Bit is in C
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Pak.In.GetByte lda (UnZPSrcPtr)
|
|
|
|
|
Pak.In.NxtByte inc UnZPSrcPtr
|
|
|
|
|
bne .8
|
|
|
|
|
inc UnZPSrcPtr+1
|
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
2018-11-17 17:17:13 +00:00
|
|
|
|
SAVE USR/SRC/LIB/LIBPAK.S.IN
|
2018-03-16 16:33:11 +00:00
|
|
|
|
ASM
|