Page 48 of 62
SBasic User's Manual SBasic Version 2.7 Page 48
Printed: December 5, 1999
The ORG statement
Normally, SB generates all code so it occupies sequential addresses on
the target machine, starting at the address named CODEBEG. You can
think of this range of addresses as SB's original code section.
If necessary, you can force SB to compile code at other addresses, by
using the ORG statement. The ORG statement takes one of three forms:
org or
org code or
org code
where is the address where you want subsequent SB code to
compile. You can think of these other address ranges as alternate
code sections. For example:
org $200
causes subsequent SB code to compile in an alternate section, starting
at address $200. SB will continue to compile all code into sequential
addresses, until you end the program or change the compile origin with
another ORG statement.
If you use the keyword CODE as the argument to an ORG statement, SB
resumes compiling at the last address in the original code section.
Perhaps a larger example will clarify this. Assume that the following
program was compiled with a CODEBEG address of $8000:
main:
n = 14 ' this code compiles at $8000
org $400 ' change the origin
table1: ' use a label at new origin
datab 0,1,2,3 ' this code compiles at $400
org $500 ' change the origin
interrupt $fff0 ' RTI ISR compiles at $500
end ' bogus ISR, just for example
org code ' return to original code section
j = addr(table1) ' sets j to $400
end
You may use as many ORG statements, and change between alternate code
sections and the original code section, as often as you want.
In rare cases, you might need to change the address of SBasic's code
section inside your program. Early versions of the 68hc912b32
contained an on-chip bootloader that took over the vector area. To