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
|