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.