Structures¶
Structures are used to keep complex data in one place. Classical use cases are records.
To use structures, load the file lib/forth200x/structure.frt
into the controller. It has no further dependencies.
\ simple test example for forth200x structures
\ define a new data structure named list.
begin-structure list
field: l.p \ previous
field: l.n \ next
field: l.d \ data
end-structure
\ create an instance of the datastructure list
\ named listroot
list buffer: listroot
\ access an element from the instance
$55aa listroot l.d !
\ place a structure at a special place
begin-structure atmega-port
cfield: PIN
cfield: DDR
cfield: PORT
end-structure
\ Atmegas have 3 addresses per port, use
\ the lowest one here
$39 constant PORT-A
\ set all pins to output
$ff PORT-A DDR c!
The example shows a few aspects that should be known:
- field names are global entries in the dictionary, one should
choose good names for them. Names like
a
are a no-go. One possibility is the schema structure-name->fieldname - structures keep definitions in flash, the data goes to RAM.
The package works with amforth version 4.0 and newer.
See also