You are here: Home DOCUMENTATION information SBASIC Manual - Page 21

Technological Arts Inc.

Your Shopping Cart

Your Cart is currently empty.

SBASIC Manual - Page 21

Article Index
SBASIC Manual
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
Page 37
Page 38
Page 39
Page 40
Page 41
Page 42
Page 43
Page 44
Page 45
Page 46
Page 47
Page 48
Page 49
Page 50
Page 51
Page 52
Page 53
Page 54
Page 55
Page 56
Page 57
Page 58
Page 59
Page 60
Table of Contents
Index
All Pages

     SBasic User's Manual     SBasic Version 2.7             Page 21
     Printed:  December 5, 1999
     Data tables


     SBasic allows you to store tables of data in ROM, for access by your
     program at run-time.  This technique is used often for storing pre-
     defined information, such as lookup tables for motor speeds or
     mathematical functions.

     To store 16-bit values in a data table, use the DATA statement.
     Follow the DATA statement with a list of values to be written into
     ROM.  For example:

          data      0, 1, 2, 3          ' store 4 16-bit values in table

     SBasic will generate suitable assembly language source to store the
     values into code memory at the current location.  For the 68hc11, this
     example would generate assembly language source similar to:

          fdb  0,1,2,3

     To store 8-bit values in a data table, use the DATAB statement.
     Follow the DATAB statement with a list of values to be written into
     ROM.  For example:

          datab     $ff, 123, 256, 'z'       ' store 4 8-bit values

     SBasic will generate suitable assembly language source to store the
     values into code memory at the current location.  For the 68hc11, this
     example would generate assembly language source similar to:

          fcb  255,123,0,122

     Note that the third value appears in the SBasic source as 256, but is
     converted to 0 in the output source file.  This happens because SBasic
     only writes the low eight bits of a DATAB list item to the output
     file.

     In order to access items within a DATA (or DATAB) table, you must
     provide a label at the start of the list.  Your program can then use
     this label to find the first item in the list.  For example:

          declare   n
          declare   sum
          
          foo:
          data      1,2,3,4
          data      5,6,7,8

          main:
          sum = 0
          for  n = 0 to 7
               sum = sum + peek(addr(foo) + n * 2)
          next