A2osX/BIN/ASM.S.MAC.txt

138 lines
2.3 KiB
Plaintext
Raw Normal View History

2018-01-29 07:41:05 +00:00
NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
*---------------------------------------
MAC.Init >SYSCALL SListNew
bcs .9
2018-01-29 07:41:05 +00:00
>STA.G MAC.hMacroList
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPMacroBuf
txa
>STA.G MAC.hMacroBuf
>SYSCALL SListNew
bcs .9
>STA.G MAC.hCtxList
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPCtxBuf
txa
>STA.G MAC.hCtxBuf
.9 rts
2018-01-29 07:41:05 +00:00
*---------------------------------------
MAC.Reset >STZ.G MAC.CtxID
iny
sta (pData),y
rts
*---------------------------------------
MAC.Quit >LDA.G MAC.hCtxBuf
beq .1
2018-01-29 16:48:07 +00:00
>SYSCALL FreeMem.A
.1 >LDA.G MAC.hCtxList
beq .2
>SYSCALL SListFree.A
.2 >LDA.G MAC.hMacroBuf
beq .3
>SYSCALL FreeMem.A
.3 >LDA.G MAC.hMacroList
beq .8
>SYSCALL SListFree.A
2018-01-29 07:41:05 +00:00
.8 clc
rts
2018-01-29 07:41:05 +00:00
*---------------------------------------
MAC.New lda #0
tay
.1 sta (ZPMacroBuf),y
iny
bne .1
rts
2018-01-29 16:48:07 +00:00
*---------------------------------------
MAC.AddChar >LDA.G ASM.PASS If Pass#2, ignore
bne .8
tax
lda (ZPMacroBuf)
cmp #254
beq .9 CS if EQ
inc
sta (ZPMacroBuf)
tay
txa
sta (ZPMacroBuf),y
tax
beq .1
* >SYSCALL PutChar.A
.8 clc
rts
.1
* lda #13
* >SYSCALL PutChar.A
* lda #10
* >SYSCALL PutChar.A
clc
.9 rts
2018-01-29 16:48:07 +00:00
*---------------------------------------
MAC.Store >LDA.G ASM.PASS If Pass#2, ignore
bne .8
lda (ZPMacroBuf)
beq .8
>PUSHB.G MAC.hMacroList
>PUSHW ZPNameBuf
>PUSHW ZPMacroBuf
>SYSCALL SListAdd
rts
.8 clc
rts
2018-01-29 16:48:07 +00:00
*---------------------------------------
MAC.Lookup >PUSHB.G MAC.hMacroList
>PUSHW ZPLinePtr
>PUSHW ZPMacroBuf
>SYSCALL SListLookup
bcs .9
adc ZPLinePtr
sta ZPLinePtr
bcc .8
inc ZPLinePtr+1
clc
.8
.9 rts
*---------------------------------------
MAC.NewOrGetCtx
*---------------------------------------
*---------------------------------------
2018-01-29 07:41:05 +00:00
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.MAC
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S
ASM