mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-06 12:29:02 +00:00
111 lines
2.1 KiB
Plaintext
111 lines
2.1 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
ZPBLISTXIBlkPtr .EQ ZPMEMMGR+12
|
||
ZPBLISTXDBlkPtr .EQ ZPMEMMGR+14
|
||
*--------------------------------------
|
||
BLISTX.BytePtr .BS 1
|
||
BLISTX.BlockPtr .BS 1
|
||
*--------------------------------------
|
||
BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
||
ldx #S.MEM.F.INIT0+8 index
|
||
jsr MEM.GetMem.YAX
|
||
bcs .9
|
||
|
||
>STYA ZPBLISTXIBlkPtr
|
||
stx .8+1
|
||
|
||
>LDYAI 256
|
||
ldx #4 data
|
||
jsr MEM.GetMem.YAX
|
||
bcs .9
|
||
|
||
>STYA ZPBLISTXDBlkPtr
|
||
|
||
lda #0
|
||
sta (ZPBLISTXDBlkPtr)
|
||
txa
|
||
sta (ZPBLISTXIBlkPtr)
|
||
|
||
.8 lda #$ff SELF MODIFIED
|
||
.9 rts
|
||
*--------------------------------------
|
||
BLISTX.Free pha
|
||
|
||
jsr K.GetMemPtr
|
||
>STYA .1+1
|
||
|
||
ldx #0
|
||
|
||
.1 lda $ffff,x SELF MODIFIED
|
||
beq .8
|
||
|
||
jsr K.FreeMem
|
||
inx
|
||
bra .1
|
||
|
||
.8 pla
|
||
jmp K.FreeMem
|
||
*--------------------------------------
|
||
BLISTX.GetNextByte
|
||
ldy BLISTX.BytePtr
|
||
lda (ZPBLISTXDBlkPtr),y
|
||
BLISTX.ToNextByte
|
||
inc BLISTX.BytePtr
|
||
bne .8
|
||
|
||
pha
|
||
jsr BLISTX.ToNextBlock
|
||
pla
|
||
.8 rts
|
||
*--------------------------------------
|
||
BLISTX.AddDataByte
|
||
phy
|
||
ldy BLISTX.BytePtr
|
||
sta (ZPBLISTXDBlkPtr),y
|
||
inc BLISTX.BytePtr
|
||
bne .8
|
||
|
||
phx
|
||
>LDYAI 256
|
||
ldx #4
|
||
jsr MEM.GetMem.YAX
|
||
bcs .9
|
||
|
||
>STYA ZPBLISTXDBlkPtr
|
||
txa
|
||
inc BLISTX.BlockPtr
|
||
ldy BLISTX.BlockPtr
|
||
sta (ZPBLISTXIBlkPtr),y
|
||
|
||
* stz BLISTX.BytePtr
|
||
plx
|
||
|
||
.8 ply
|
||
clc
|
||
rts
|
||
|
||
.9 plx
|
||
ply
|
||
rts
|
||
*--------------------------------------
|
||
BLISTX.SetBlockByte
|
||
ldy BLISTX.BytePtr
|
||
sta (ZPBLISTXDBlkPtr),y
|
||
inc BLISTX.BytePtr
|
||
bne BLISTX.ToNextBlock.RTS
|
||
*--------------------------------------
|
||
BLISTX.ToNextBlock
|
||
inc BLISTX.BlockPtr
|
||
ldy BLISTX.BlockPtr
|
||
lda (ZPBLISTXIBlkPtr),y
|
||
jsr K.GetMemPtr
|
||
>STYA ZPBLISTXDBlkPtr
|
||
BLISTX.ToNextBlock.RTS
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/sys/kernel.s.blistx
|
||
LOAD usr/src/sys/kernel.s
|
||
ASM
|