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``:

+------------------+--------------------------------------------------------+
| ``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 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.
