21. Extra compile time definitions¶
When you supply WLA with the flag x it will maintain few useful definitions
and labels while compiling your source codes. Please use the enhanced error
reporting engine (so don’t use flag f) in conjunction with flag x as
some of the definitions require extra information about the flow of the data
which isn’t available when using the old, crippled error reporting engine.
Here’s a list of definitions you get when you use flag x:
|
A string definition holding the file name WLA is currently processing. |
|
A string definition holding the calendar time
(obtained using C’s |
|
A string definition holding the version number of WLA. |
So you can do for example something like
.DB WLA_TIME
to store the time when the build process started into the ROM file you are compiling.
Definition CADDR, which is present without supplying the flag x,
contains the current 16-bit memory address. So
LD HL, CADDR
will load the address of the operand data into registers H and L.
CAVEAT:
Remember when using defines that contain CADDR gets the address of the place
where the definition is used, not the address of the definition, which contains
the CADDR.
Note that you’ll also get all these definitions in lower case
(e.g., wla_filename).
But that is not all. You will also get SECTIONSTART_[section name] labels that are inserted into the start of every section, and SECTIONEND_[section name] labels that are inserted into the end of every section.