A2osX/BIN/ASM.S.MAC.txt
2019-03-29 16:21:30 +00:00

131 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
PREFIX
AUTO 4,1
*---------------------------------------
MAC.Init >SYSCALL SListNew
bcs .9
>STA.G MAC.hList
>LDYAI 256
>SYSCALL getmem
bcs .9
>STYA ZPMacroBuf
txa
>STA.G MAC.hBuf
>LDYAI 256
>SYSCALL getmem
bcs .9
>STYA ZPMacroStk
txa
>STA.G MAC.hStk
.9 rts
*---------------------------------------
MAC.Reset >STZ.G MAC.StkPtr
rts
*---------------------------------------
MAC.Quit >LDA.G MAC.hStk
beq .1
>SYSCALL FreeMem
.1 >LDA.G MAC.hBuf
beq .3
>SYSCALL FreeMem
.3 >LDA.G MAC.hList
beq .8
>SYSCALL SListFree
.8 clc
rts
*---------------------------------------
MAC.AddChar tax
>LDA.G ASM.PASS If Pass#2, ignore
bne .8
>LDA.G MAC.BufPtr
tay
txa
sta (ZPMacroBuf),y
>INC.G MAC.BufPtr
txa
bne .8
>LDA.G MAC.BufPtr
tay
lda #0
>PUSHYA
>PUSHW ZPMacroBuf
>PUSHW.G MAC.ID
>LDA.G MAC.hList
>SYSCALL SListAddData
rts
.8 clc
rts
*---------------------------------------
MAC.Lookup >PUSHW ZPLinePtr
>LDA.G MAC.hList
>SYSCALL SListLookup
bcs .9
pha
txa
adc ZPLinePtr
sta ZPLinePtr
bcc .8
inc ZPLinePtr+1
clc
.8 pla Y,A = MAC.ID
.9 rts
*---------------------------------------
MAC.ReadLine >LDA.G MAC.StkPtr
tay
dey
dey
dey
lda (ZPMacroStk),y
>PUSHA offset
dey
lda (ZPMacroStk),y
>PUSHA
lda #0
>PUSHA len = 0 (string mode)
>PUSHA
>PUSHW ZPLineBuf
>LDA.G MAC.StkPtr
tay
dey
lda (ZPMacroStk),y
>PUSHA
dey
lda (ZPMacroStk),y
>PUSHA
>LDA.G MAC.hList
>SYSCALL SListGetData
rts
*---------------------------------------
MAN
SAVE USR/SRC/BIN/ASM.S.MAC
LOAD USR/SRC/BIN/ASM.S
ASM