17. 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.