Page 22 of 62
SBasic User's Manual SBasic Version 2.7 Page 22
Printed: December 5, 1999
end
This code uses the ADDR() function to locate the start of the data
table at label FOO. The list item of interest is found by adding an
offset value (N * 2) to the address of FOO. The PEEK() function then
reads the 16-bit value stored at that address in the table.
To use the above technique with a DATAB table, you must change PEEK()
to PEEKB() and remove the multiplication by 2 in the offset
calculation.
Note that SBasic writes a DATA table in place. That is, the table
appears in exactly the same position in the output file as it appears
in your SBasic source file.
This means you cannot place a DATA table inside a block of executable
code. If you do, the target MCU will eventually try to execute the
DATA table as if it were machine code, and your program will crash.
For that reason, put your DATA statements outside of executable
blocks. A good place to write DATA statements is immediately before
the MAIN: label in your program.