Builder: The basic idea
A typical SPLat program will contain a number of different sections or segments:
- A header comment at the top that describes what the program is all about.
- A section containing various program constants, such as time limits, maximum allowable temperature, etc.
- A section containing input and output assignments using
iEQU
andoEQU
directives.. - Any
mEQU
type absolute memory allocations (which must be before anydefBYTE
,defFLOAT
etc.). - Program initialization code, for example a string of
LaunchTask
instructions followed by a singleRunTasksForever
. - The main body of the program. If you are a structured programmer this will consist of a number of function blocks, each handling its own well-defined area of the overall functionality (for example
PumpDrive
,Menu
,HeaterControl
). - A final section containing NVEM page 0 tables and/or data after a
NVEM0
directive.
Now, the thing about all these sections (in Builder-speak we call them segments) is that they need to appear more or less in the order listed above. Certainly, mEQU
must come before any defXXX
, and NVEM0
must come at the end, after all executable code. The following diagram summarizes what Builder will do for you:
In brief, Builder allows you to work with several source files in your project. Within each source file you have named segments. Builder will take all your individual files, break them up into segments, sort them in segment order and emit a combined file where like-named segments are grouped together.