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