Structures are used to keep complex data in one place. Classical use cases are records.
To use structures, load the file
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
aare 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.