[Coco] CCASM procedures
Roger Taylor
rtaylor at bayou.com
Sat Dec 11 04:29:27 EST 2004
I hope this scheme is okay for accessing symbols outside of a namespace or
procedure. By prefixing any identifier with ':', it prevents the
expression evaluator from preprending whatever namespace or procedure name
is in effect.
I defined "outside" in the main code, then accessed it from within the
procedure (which otherwise follows namespace rules).
I want to get to a stopping point because there's so many ideas that can be
put to use to make the assembler behave sort of like a compiler when it
comes to lex levels, scoping, etc. If I can just simulate that to some
small degree, I'll be happy and can start writing some libraries.
org 3584
res rmb 2
outside rmb 2
* pass-by-reference example
shl proc bits:byte,value:word,result:word
count var 1
begin shl procedure entry
ldb bits,u
stb count,u
ldd value,u access pass-by-value parameter
a@ lslb
rola
dec count,u
bne a@
std [result,u] change pass-by-ref parameter
lda :outside access a symbol outside of the procedure
* lda outside <--- generates UNDEFINED SYMBOL error
endproc
start call shl,2,4,res
ldd res
std 1024
rts
end start
--
Roger Taylor
More information about the Coco
mailing list