2018-01-10 16:34:57 +00:00
|
|
|
|
NEW
|
2017-03-29 15:48:15 +00:00
|
|
|
|
PREFIX /A2OSX.BUILD
|
2018-01-10 16:34:57 +00:00
|
|
|
|
AUTO 4,1
|
2015-10-04 20:55:51 +00:00
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
* Global Symbol Record: (6+ bytes)
|
|
|
|
|
* 0 : Len
|
2018-01-19 16:21:31 +00:00
|
|
|
|
* 1 : Flags:
|
|
|
|
|
* b7=0=pending,1=resolved
|
|
|
|
|
* b6=R/W (.SE)
|
2018-03-22 16:45:23 +00:00
|
|
|
|
* b2,b1,b0 : Size (in bytes)
|
2018-01-19 16:21:31 +00:00
|
|
|
|
* 2-5 : 32 bits Value
|
2018-03-23 15:57:35 +00:00
|
|
|
|
* 6+ : Local Symbols.....
|
2015-11-13 16:25:31 +00:00
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
* Local Symbol Record: (6 bytes)
|
|
|
|
|
* 0 : Local ID (1->255)
|
2018-03-22 16:45:23 +00:00
|
|
|
|
* 1 : Flags:
|
|
|
|
|
* b7=0=pending,1=resolved
|
|
|
|
|
* 2-5 : 32 bits Value (PC)
|
2015-10-30 16:34:59 +00:00
|
|
|
|
*---------------------------------------
|
2018-03-22 16:45:23 +00:00
|
|
|
|
* Private Symbol Record: (9 bytes)
|
|
|
|
|
* 0 : Len (8)
|
|
|
|
|
* 1 : Flags:
|
|
|
|
|
* b7=0=pending,1=resolved
|
|
|
|
|
* 2-5 : 32 bits Value (PC)
|
|
|
|
|
* 6,7 : MCID (Macro Context ID)
|
|
|
|
|
* 8 : Private ID (0->255)
|
2015-11-13 16:25:31 +00:00
|
|
|
|
*---------------------------------------
|
2018-01-19 16:21:31 +00:00
|
|
|
|
SYM.Init >SYSCALL SListNew
|
|
|
|
|
bcs .9
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
2018-01-19 16:21:31 +00:00
|
|
|
|
>STA.G SYM.hGlobals
|
2018-01-26 16:19:17 +00:00
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
>LDYAI 256
|
|
|
|
|
>SYSCALL GetMem.YA
|
2018-03-22 16:45:23 +00:00
|
|
|
|
bcs .9
|
2018-03-23 15:57:35 +00:00
|
|
|
|
|
|
|
|
|
>STYA ZPGlobalBuf
|
|
|
|
|
txa
|
|
|
|
|
>STA.G SYM.hGlobalBuf
|
2018-03-22 16:45:23 +00:00
|
|
|
|
|
2018-01-26 16:19:17 +00:00
|
|
|
|
>LDYAI 256
|
|
|
|
|
>SYSCALL GetMem.YA
|
|
|
|
|
bcs .9
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
>STYA ZPLookupBuf
|
2018-01-26 16:19:17 +00:00
|
|
|
|
txa
|
2018-03-23 15:57:35 +00:00
|
|
|
|
>STA.G SYM.hLookupBuf
|
2018-01-26 16:19:17 +00:00
|
|
|
|
|
2018-01-19 16:21:31 +00:00
|
|
|
|
.9 rts
|
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
SYM.Reset lda #0
|
|
|
|
|
sta (ZPGlobalBuf)
|
2018-03-22 16:45:23 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
SYM.Quit >LDA.G SYM.hLookpBuf
|
|
|
|
|
beq .1
|
|
|
|
|
|
|
|
|
|
>SYSCALL FreeMem.A
|
|
|
|
|
|
|
|
|
|
.1 >LDA.G SYM.hGlobalBuf
|
2018-01-26 16:19:17 +00:00
|
|
|
|
beq .2
|
|
|
|
|
|
|
|
|
|
>SYSCALL FreeMem.A
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
.2 >LDA.G SYM.hGlobals
|
2018-03-22 16:45:23 +00:00
|
|
|
|
beq .8
|
|
|
|
|
>SYSCALL SListFree.A
|
|
|
|
|
|
2018-01-26 16:19:17 +00:00
|
|
|
|
.8 clc
|
|
|
|
|
rts
|
2015-10-30 16:34:59 +00:00
|
|
|
|
*---------------------------------------
|
2018-01-29 16:48:07 +00:00
|
|
|
|
SYM.Dump stz ZPLinePtr
|
2018-01-22 16:52:04 +00:00
|
|
|
|
stz ZPLinePtr+1
|
2018-01-26 07:04:29 +00:00
|
|
|
|
|
2018-01-29 16:48:07 +00:00
|
|
|
|
>LDA.G ASM.LI.ON
|
|
|
|
|
bpl .1
|
|
|
|
|
|
|
|
|
|
>LDYA L.MSG.SYMBOLS
|
|
|
|
|
>SYSCALL PrintF.YA
|
|
|
|
|
|
2018-01-22 16:52:04 +00:00
|
|
|
|
.1 >PUSHB.G SYM.hGlobals
|
|
|
|
|
>PUSHW ZPLinePtr
|
|
|
|
|
>PUSHW ZPTmpBuf
|
|
|
|
|
>SYSCALL SListGetByID
|
|
|
|
|
bcs .8
|
2018-03-16 16:33:11 +00:00
|
|
|
|
stx ZPLinePtr Save Next ID
|
|
|
|
|
sty ZPLinePtr+1
|
2018-01-29 16:48:07 +00:00
|
|
|
|
|
|
|
|
|
>LDA.G ASM.LI.ON
|
|
|
|
|
bpl .1
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
|
|
|
|
lda (ZPTmpBuf)
|
|
|
|
|
sec
|
|
|
|
|
adc ZPTmpBuf
|
|
|
|
|
sta ZPPtr1
|
|
|
|
|
lda ZPTmpBuf+1
|
|
|
|
|
adc #0
|
|
|
|
|
sta ZPPtr1+1
|
|
|
|
|
|
2018-03-22 16:45:23 +00:00
|
|
|
|
ldy #SYMG.F Get Symbol Size
|
2018-03-16 16:33:11 +00:00
|
|
|
|
lda (ZPPtr1),y
|
2018-03-22 16:45:23 +00:00
|
|
|
|
and #SYMG.F.SIZE
|
2018-03-16 16:33:11 +00:00
|
|
|
|
beq .3
|
|
|
|
|
|
|
|
|
|
pha
|
|
|
|
|
tax
|
|
|
|
|
|
2018-03-22 16:45:23 +00:00
|
|
|
|
iny SYMG.V
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
|
|
|
|
.2 lda (ZPPtr1),y
|
|
|
|
|
>PUSHA
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .2
|
|
|
|
|
|
2018-03-16 16:33:11 +00:00
|
|
|
|
pla
|
|
|
|
|
asl
|
|
|
|
|
|
|
|
|
|
.3 tax
|
|
|
|
|
ldy L.MSG.EQU0,x
|
|
|
|
|
lda L.MSG.EQU0+1,x
|
2018-01-22 16:52:04 +00:00
|
|
|
|
>SYSCALL PrintF.YA
|
2018-01-25 16:13:28 +00:00
|
|
|
|
|
2018-03-16 16:33:11 +00:00
|
|
|
|
>PUSHW ZPTmpBuf Label (PString)
|
|
|
|
|
|
|
|
|
|
>LDYA L.MSG.PSTRCRLF
|
|
|
|
|
>SYSCALL PrintF.YA
|
2018-01-22 16:52:04 +00:00
|
|
|
|
bcc .1
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.8 clc
|
2015-10-04 20:55:51 +00:00
|
|
|
|
rts
|
2018-01-19 16:21:31 +00:00
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
SYM.NewGlobal >LDYA ZPLinePtr
|
|
|
|
|
>STYA SYM.GlobalPtr
|
|
|
|
|
|
|
|
|
|
jsr SYM.PC2Global A=PC Size
|
2018-03-22 16:45:23 +00:00
|
|
|
|
ora #SYMG.F.RESOLVED PC is always known
|
2018-03-23 15:57:35 +00:00
|
|
|
|
ldy #SYMG.F
|
|
|
|
|
sta (ZPGlobalBuf),y
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
lda #SYMG.SIZE-1
|
|
|
|
|
* ldy #SYMG.LEN
|
|
|
|
|
sta (ZPGlobalBuf)
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
|
|
|
|
SYM.GetGlobal >PUSHB.G SYM.hGlobals
|
|
|
|
|
>PUSHW ZPLinePtr
|
|
|
|
|
>PUSHW ZPGlobalBuf
|
|
|
|
|
>SYSCALL SListLookup
|
|
|
|
|
bcs .9
|
2018-01-22 07:34:59 +00:00
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
adc ZPLinePtr
|
|
|
|
|
sta ZPLinePtr
|
|
|
|
|
bcc .1
|
|
|
|
|
|
|
|
|
|
inc ZPLinePtr+1
|
|
|
|
|
clc
|
|
|
|
|
|
|
|
|
|
.1 tya
|
|
|
|
|
>STA.G SYM.GlobalID+1
|
|
|
|
|
txa
|
|
|
|
|
>STA.G SYM.GlobalID
|
|
|
|
|
|
|
|
|
|
.9 rts
|
|
|
|
|
*---------------------------------------
|
|
|
|
|
SYM.AddGlobal >PUSHB.G SYM.hGlobals
|
2018-01-22 07:34:59 +00:00
|
|
|
|
>PUSHW ZPLinePtr
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
>PUSHW ZPGlobalBuf
|
2018-01-22 07:34:59 +00:00
|
|
|
|
|
|
|
|
|
>SYSCALL SListAdd
|
|
|
|
|
bcs .9
|
2018-01-22 16:52:04 +00:00
|
|
|
|
|
2018-01-22 07:34:59 +00:00
|
|
|
|
adc ZPLinePtr
|
|
|
|
|
sta ZPLinePtr
|
|
|
|
|
bcc .1
|
|
|
|
|
|
|
|
|
|
inc ZPLinePtr+1
|
2018-01-29 16:48:07 +00:00
|
|
|
|
|
|
|
|
|
.1 clc
|
|
|
|
|
.HS B0 BCS
|
|
|
|
|
.9 sec
|
|
|
|
|
tya
|
2018-03-22 16:45:23 +00:00
|
|
|
|
>STA.G SYM.GlobalID+1
|
2018-01-22 07:34:59 +00:00
|
|
|
|
dey
|
|
|
|
|
txa
|
|
|
|
|
sta (pData),y
|
2018-01-29 16:48:07 +00:00
|
|
|
|
rts
|
2018-01-22 07:34:59 +00:00
|
|
|
|
*---------------------------------------
|
2018-01-24 16:24:06 +00:00
|
|
|
|
SYM.LookupGlobal >PUSHB.G SYM.hGlobals
|
|
|
|
|
>PUSHW ZPLinePtr
|
2018-03-23 15:57:35 +00:00
|
|
|
|
>PUSHW ZPLookupBuf
|
2018-01-24 16:24:06 +00:00
|
|
|
|
>SYSCALL SListLookup
|
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
adc ZPLinePtr
|
|
|
|
|
sta ZPLinePtr
|
2018-03-23 15:57:35 +00:00
|
|
|
|
bcc .8
|
2018-01-24 16:24:06 +00:00
|
|
|
|
|
|
|
|
|
inc ZPLinePtr+1
|
|
|
|
|
clc
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
.8
|
2018-01-24 16:24:06 +00:00
|
|
|
|
.9 rts
|
|
|
|
|
*---------------------------------------
|
|
|
|
|
SYM.UpdateGlobalAcc ldx #3
|
|
|
|
|
|
2018-03-22 16:45:23 +00:00
|
|
|
|
ldy #SYM.Global+SYMG.V+3
|
2018-01-24 16:24:06 +00:00
|
|
|
|
|
|
|
|
|
.1 lda SRC.ACC,x
|
|
|
|
|
sta (pData),y
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bpl .1
|
2018-03-16 16:33:11 +00:00
|
|
|
|
|
2018-03-19 16:48:41 +00:00
|
|
|
|
lda SRC.ACC.SIZE
|
2018-01-24 16:24:06 +00:00
|
|
|
|
*---------------------------------------
|
2018-03-22 16:45:23 +00:00
|
|
|
|
SYM.UpdateGlobal ora #SYMG.F.RESOLVED
|
|
|
|
|
>STA.G SYM.Global+SYMG.F
|
2018-01-24 16:24:06 +00:00
|
|
|
|
|
2018-03-22 16:45:23 +00:00
|
|
|
|
lda #SYMG.SIZE-1 F+V+LSID
|
|
|
|
|
>STA.G SYM.Global+SYMG.LEN
|
2018-01-24 16:24:06 +00:00
|
|
|
|
|
|
|
|
|
>PUSHB.G SYM.hGlobals
|
2018-03-22 16:45:23 +00:00
|
|
|
|
>PUSHW.G SYM.GlobalID
|
2018-01-22 07:34:59 +00:00
|
|
|
|
>PUSHEA.G SYM.Global
|
|
|
|
|
|
|
|
|
|
>SYSCALL SListUpdateByID
|
2015-10-04 20:55:51 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
SYMG.FlushGlobal clc
|
2018-03-22 16:45:23 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-01-29 16:48:07 +00:00
|
|
|
|
SYM.PC2Global ldx #4
|
|
|
|
|
|
|
|
|
|
ldy #ASM.PC
|
|
|
|
|
|
|
|
|
|
.1 lda (pData),y
|
|
|
|
|
pha
|
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
ldx #4
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
ldy #SYMG.V+3
|
2018-01-29 16:48:07 +00:00
|
|
|
|
|
|
|
|
|
.2 pla
|
2018-03-23 15:57:35 +00:00
|
|
|
|
sta (ZPGlobalBuf),y
|
2018-01-29 16:48:07 +00:00
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bne .2
|
2018-03-16 16:33:11 +00:00
|
|
|
|
|
|
|
|
|
ldx #4
|
|
|
|
|
ldy #ASM.PC+3
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
.3 lda (ZPGlobalBuf),y
|
2018-03-16 16:33:11 +00:00
|
|
|
|
bne .4
|
|
|
|
|
dex
|
|
|
|
|
dey
|
|
|
|
|
bne .3
|
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
.4 txa
|
|
|
|
|
|
|
|
|
|
ora #SYMG.F.RESOLVED
|
|
|
|
|
ldy #SYMG.F
|
|
|
|
|
sta (ZPGlobalBuf),y
|
|
|
|
|
|
|
|
|
|
txa A=PC Size
|
2018-03-16 16:33:11 +00:00
|
|
|
|
|
2018-01-29 16:48:07 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-03-23 15:57:35 +00:00
|
|
|
|
SYM.AddLocal tax Save ID
|
2018-01-26 16:19:17 +00:00
|
|
|
|
|
2018-03-23 15:57:35 +00:00
|
|
|
|
lda (ZPGlobalBuf)
|
2018-01-26 16:19:17 +00:00
|
|
|
|
tay
|
2015-10-04 20:55:51 +00:00
|
|
|
|
clc
|
2018-03-23 15:57:35 +00:00
|
|
|
|
adc #SYML.SIZE
|
2018-01-26 16:19:17 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
txa Get Back ID
|
2018-03-23 15:57:35 +00:00
|
|
|
|
sta (ZPGlobalBuf),y
|
2018-01-26 16:19:17 +00:00
|
|
|
|
|
|
|
|
|
iny
|
|
|
|
|
phy
|
|
|
|
|
|
|
|
|
|
ldx #4
|
|
|
|
|
|
|
|
|
|
ldy #ASM.PC+3
|
|
|
|
|
|
|
|
|
|
.1 lda (pData),y
|
|
|
|
|
pha
|
|
|
|
|
dey
|
|
|
|
|
dex
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
ldx #4
|
|
|
|
|
|
|
|
|
|
ply
|
|
|
|
|
|
|
|
|
|
.2 pla
|
2018-03-23 15:57:35 +00:00
|
|
|
|
sta (ZPGlobalBuf),y
|
2018-01-26 16:19:17 +00:00
|
|
|
|
iny
|
|
|
|
|
dex
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
lda #0
|
2018-03-23 15:57:35 +00:00
|
|
|
|
sta (ZPGlobalBuf),y
|
2018-01-26 16:19:17 +00:00
|
|
|
|
tya
|
2018-03-23 15:57:35 +00:00
|
|
|
|
sta (ZPGlobalBuf)
|
2018-01-26 16:19:17 +00:00
|
|
|
|
|
|
|
|
|
* clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.9 lda #ERR.TOO.MANY.LOCAL
|
|
|
|
|
* sec
|
2015-10-04 20:55:51 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-03-22 16:45:23 +00:00
|
|
|
|
SYM.LookupLocal lda #2
|
|
|
|
|
sta SRC.ACC.SIZE
|
|
|
|
|
lda #$FF
|
|
|
|
|
sta SRC.ACC
|
|
|
|
|
sta SRC.ACC+1
|
2015-10-04 20:55:51 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-01-22 07:34:59 +00:00
|
|
|
|
SYM.AddPrivate
|
2015-10-04 20:55:51 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-01-22 07:34:59 +00:00
|
|
|
|
SYM.LookupPrivate
|
2015-11-27 16:26:11 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-01-22 07:34:59 +00:00
|
|
|
|
SYM.AddMacro
|
2015-11-27 16:26:11 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
2015-11-20 16:31:14 +00:00
|
|
|
|
*---------------------------------------
|
2018-01-22 07:34:59 +00:00
|
|
|
|
SYM.LookupMacro
|
|
|
|
|
clc
|
2015-11-20 16:31:14 +00:00
|
|
|
|
rts
|
2018-01-22 07:34:59 +00:00
|
|
|
|
*---------------------------------------
|
2015-10-04 20:55:51 +00:00
|
|
|
|
MAN
|
2018-01-10 16:34:57 +00:00
|
|
|
|
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
|
|
|
|
|
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S
|
2015-10-04 20:55:51 +00:00
|
|
|
|
ASM
|