A2osX/BIN/ASM.S.SYM.txt
2015-10-30 17:34:59 +01:00

104 lines
2.1 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.

PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*---------------------------------------
* Global Symbol Record: (7 bytes)
* 0 : SYM.Block.ID
* 1 : Index in SYM.Block
* 2 : Flags:
* b7=R/W (.SE)
* b6=Forward ref
* 3-6 : Value
*---------------------------------------
* Local Symbol Record: (4 bytes)
* 0,1 : Pointer to Global Symbol in main table
* 2 : 2 digits name (.99)
* 3 : offset from Global Symbol
*---------------------------------------
* Private Symbol Record: (7 bytes)
* 0,1 : MacroID
* 2 : 2 digits name (:99)
* 3-6 : Value
*---------------------------------------
SYM.Init >PUSHWI SYM.MAXCOUNT*8
>PUSHBI S.MEM.F.INIT0
>SYSCALL SYS.GetMem
bcs .9
ldy #SYM.hMem
txa
sta (pData),y
clc
.9 rts
*---------------------------------------
SYM.Quit ldy #SYM.hMem
lda (pData),y
beq .8
>SYSCALL SYS.FreeMemA
.8 clc
rts
*---------------------------------------
SYM.Add
clc
rts
*---------------------------------------
SYM.AddGlobal
clc
rts
*---------------------------------------
SYM.LookupGlobal
clc
rts
*---------------------------------------
SYM.ClearPrivate
clc
rts
*---------------------------------------
SYM.ClearLocal
clc
rts
*---------------------------------------
SYM.AddLocal
clc
rts
*---------------------------------------
SYM.LookupLocal
clc
rts
*---------------------------------------
SYM.AddPrivate
clc
rts
*---------------------------------------
SYM.LookupPrivate
clc
rts
*---------------------------------------
SYM.AddBlock ldx #0
.1 lda SYM.BLOCKS,x
beq .2
inx
cpx #SYM.BLOCK.MAX
bne .1
lda #ERR.SYM.TOO.LONG
sec Out of block error
rts
.2 phx Save next free block
>LDYA SYM.BLOCK.SIZE
>SYSCALL SYS.GetMem
bcs .9
txa
plx
sta SYM.BLOCKS,x
clc
.9 rts
*---------------------------------------
MAN
SAVE BIN/ASM.S.SYM
LOAD BIN/ASM.S
ASM