15. Extra compile time definitions

When you supply WLA with the flag x it will maintain few useful definitions 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 what you get when you use flag x:

WLA_FILENAME A string definition holding the file name WLA is currently processing.
WLA_TIME A string definition holding the calendar time (obtained using C’s ctime()).
WLA_VERSION 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 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).