
---------------------------------------------------------------------------------------------------------------
1... WLA GB-Z80/Z80/Z80N/6502/65C02/65CE02/65816/68000/6800/6801/6809/8008/8080/HUC6280/SPC-700/SuperFX History
---------------------------------------------------------------------------------------------------------------

v10.7 (28-Dec-2025) [ALL] Prefixed by a hashtag didn't propagate though nested .MACRO
                      calls.
                    [ALL] Listfile creation for library files should now work.
                    [ALL] If an object file contained only .SECTIONs in ROM
                      bank X then ROM bank X's allocation info wasn't printed with
                      -v switch.
                    [ALL] .FOPEN uses now directories given with -I flag.
                    [ALL] BANKS for .SECTION can now be a string definition.
                    [ALL] Quoted string arguments can be used in .MACROs to replace
                      e.g., registers on lines with instructions.
                    [ALL] A label outside .SECTIONs or inside FORCE or OVERWRITE
                      .SECTION given to a .MACRO can now be used in calculations as
                      long it has been defined earlier lexically.
                    [ALL] Added parameterless versions of bankbyte(), base(), slot()
                      and bank(). bankbyte(label) and bank(label) can be used in .IFs.
                    [ALL] Added built-in functions is(), get(), org(), orga() and
                      substring().
                    [ALL] Added LATESTDIR and RELATIVEDIR to .INCLUDE and .INCBIN.
                    [ALL] Jump in .ENDR added offset of 1 for line numbers in errors.
                    [ALL] Added START and STEP to .REPEAT/.REPT.
                    [ALL] Added DEFAULTSECTIONSLOT and DEFAULTRAMSECTIONSLOT to
                      .MEMORYMAP.
                    [ALL] .FAIL can process multiple strings.
                    [ALL] When using -h operand hints like .b for labels work now.
                    [ALL] .STRINGMAPTABLE uses now directories specified with -I.
                    [ALL] .BASE can once again given inside a .SECTION. NOTE: The
                      old .BASE before the .SECTION is returned after .ENDS.
                    [ALL] Implemented missing base(label).
                    [658] Fixed BRL and PER to work properly.
                    [68k] Added alias SP for register a7.
                    [68k] BCLR, BSET and BTST used wrong range [1, 8] / [1, 32] for
                      bits, fixed to [0, 7] / [0, 31].

v10.6 (19-Nov-2023) [ALL] Conditions (e.g., "(A > 1 || B < 3)") can now be used
                      everywhere, outside .IFs.
                    [ALL] It's not any more possible to create labels and
                      definitions called "_b" and "_f" as they are reserved names.
                    [ALL] A definition and a label cannot any more share the same
                      name inside a source file for the sake of clarity.
                    [ALL] Added -MP for generating phony targets with -M.
                    [ALL] Added -MF for specifying a file to write the
                      dependencies to with -M.
                    [ALL] Added -c for continuing parsing after encountering an
                      unknown symbol or a mistyped instruction.
                    [ALL] Added -w for disallowing labels without a colon terminator.
                    [ALL] Added FILTERSIZE and FREADSIZE to .INCBIN.
                    [ALL] Namespace was added in some instances to a local label.
                    [ALL] Removed namespace propagation to unnamespaced .MACROs.
                    [ALL] Labels generated by a .MACRO inside an .INCLUDEd and
                       namespaced file have now namespace added to them.
                    [ALL] Added .WHILE.
                    [ALL] Added .CONTINUE and .BREAK that work with
                      .REPEAT/.REPT/.WHILE.
                    [ALL] Changed tmpfile creation on WIN32.
                    [ALL] It's now possible to put multiple instructions on the
                      the same line by separating them with " \ " (whitespace here
                      is important).
                    [ALL] WLA would crash calculating A-B if A was function(L)
                      where L is a label.
                    [ALL] .STRINGMAPTABLE uses now .INCDIR.
                    [ALL] .STRINGMAP and .STRINGMAPTABLE handle now special
                      characters like "\n" properly.
                    [ALL] WLA assembles now "WLAl" object files.
                    [ALL] The assembler has now a limited ability to find the
                      address of a label if the label is outside .SECTIONs or
                      inside FORCE and OVERWRITE .SECTIONs and the label is
                      defined lexically before it is referenced.
                    [ALL] Added -p (and -SX and -SY) for pausing the assembler
                      after a screen full of text has been printed to output.
                    [Z80] Added BASEADDRESS to .SMSHEADER.
                    [Z8N] Added support for Z80N.

v10.5 (23-Jun-2023) [ALL] .DSB, .DSW, .DSL and .DSD produced only one pending
                      calculation struct when encountered a pending calculation
                      thus the result was wrong.
                    [ALL] Added .ALIGN.
                    [ALL] Added .ASSERT.
                    [ALL] Added BANK, SLOT, BASE, ORG and ORGA to .SECTION.
                    [ALL] Added BASE to .RAMSECTION.
                    [ALL] Added a new .SECTION type: SEMISUPERFREE.
                    [ALL] Added AUTOPRIORITY to .SECTION.
                    [ALL] Added ISOLATED to .INCLUDE.
                    [ALL] References inside a .MACRO inside a namespaced file
                      have now the namespace added to them.
                    [ALL] .MACRO's named ARGS now only replace existing
                      definitions while the .MACRO is running.
                    [68K] Added support for MC68000.
                    [68K] Added .COMPUTESMDCHECKSUM and .SMDHEADER.
                    [658] Added support for "MVN $xxyy" and "MVP $xxyy".

v10.4 (24-Nov-2022) [ALL] If a value is .DEFINEd later in the same source file
                      than used in a pending calculation, WLA can now solve
                      the pending calculation before exporting it to WLALINK.
                    [ALL] Added .SEEDRANDOM (seeds random number generator
                      with current time -> random).
                    [ALL] Added built-in functions min(a,b), max(a,b),
                      random(min,max), sqrt(a), abs(a), cos(a), sin(a), tan(a),
                      acos(a), asin(a), atan(a), atan2(a,b), cosh(a), sinh(a),
                      tanh(a), log(a), log10(a), pow(a,b), sign(a) and
                      clamp(value,min,max).
                    [ALL] When a built-in function was called with a negative
                      sign the sign was ignored sometimes.
                    [ALL] Floating point values can be given to a .MACRO as
                      arguments and accessed via \1 etc., they are not rounded to
                      integers any more. Previously only named args would work
                      without rounding.
                    [ALL] When using a .FUNCTION the result was rounded to
                      an integer - not any more.
                    [ALL] .FUNCTION body can now be a single argument.
                    [ALL] Built-in (and .FUNCTION) arguments can now be put on
                      multiple lines.
                    [ALL] We now use ANSI C's tmpfile() to create tmp files.
                      This should allow multiple concurrent instances of WLA to
                      run in the same directory at the same time.
                    [ALL] When using -M, if you specify -o or -l later on the
                      command line you can output an object or a library file
                      at the same time. Disable file generation with -t.
                    [ALL] A calculation can be split into multiple lines if the
                      last symbol on the line is a '+', '-', '*'. etc.
                    [ALL] Unnamed .STRUCTs inside other .STRUCTs don't generate
                      _paddingof_* definitions any more.
                    [ALL] Pending calculations work now as macro arguments.
                    [ALL] Fixed INSTANCEOF in .ENUM when .STRUCT used SIZE
                      (WLA doesn't generate bytes in that case any more).
                    [ALL] Negating pending calculations inside parentheses inside
                      pending calculations ignored the sign.
                    [ALL] Negating calculations inside parentheses should now
                      work in every case.
                    [ALL] Dotted .INSTANCEOF works now in .ENUMs.

v10.3 (02-Oct-2022) [ALL] Improved parser for .HEX, and added BLOCK to .HEX.
                    [ALL] "\\" should now work inside strings.
                    [ALL] .MACRO calling another .MACRO, inside a namespaced
                      file, should now work.
                    [ALL] .MACRO arguments can now be put inside parentheses
                      when calling a .MACRO (e.g., "MyMacro(1, 2)").
                    [ALL] defined() can now process strings with substitution.
                    [ALL] Added an alternative way of defining a .MACRO
                      (e.g., ".macro SUM(value1,value2) isolated").
                    [ALL] Added .FUNCTION (for things like ".DB SUM(1, 2)").
                    [ALL] Multibyte .DEFINEs (e.g., "MB = $01 $00 $02") were
                      broken in v10.2.
                    [ALL] Multibyte .DEFINEs work now better inside other
                      multibyte .DEFINEs.
                    [ALL] Calculations like ">-VAR" and "2--1" work now,
                      only ">(-VAR)" and "2-(-1)" used to work before.
                    [ALL] Added -v1 and -v2 (shorter verbose levels).
                    [ALL] Changed the license to GPL-2.0-or-later.
                    [ALL] Parameters (SKIP, READ, SWAP, FSIZE and FILTER)
                      to .INCBIN can now be given in any order.
                    [ALL] Parameters (ONCE and NAMESPACE) to .INCLUDE can
                      now be given in any order.
                    [ALL] Parameters (NAME and SIZE) to .ARRAYDEFINE can
                      now be given in any order.
                    [ALL] Negative READ parameter to .INCBIN means that
                      many bytes are not read from the end of the file.
                    [ALL] WLA's ability to calculate A-B would break the
                      execution of the app if A was a definition.
                    [ALL] Added optional keywords COUNT, MIN and MAX to
                      .DBRND and .DWRND.
                    [GB ] Sometimes WLA-GB would generate unused pending
                      calculations when parsing the code, and namespaces would
                      not work in them thus breaking the linking phase.
                    [SPC] Structs should work now better with SPC-700's
                      instructions.
                    [GB ] Added flag aliases (C -> LSS and LST, NC -> GTE
                      and GEQ, NZ -> NEQ, Z -> EQU) to CALL, JP, JR and RET.
                    [Z80] Added flag aliases (C -> LSS and LST, M -> NEG,
                      NC -> GTE and GEQ, NZ -> NEQ, P -> POS, Z -> EQU) to
                      CALL, JP, JR and RET.

v10.2 (24-Jun-2022) [ALL] Added SIZE to .RAMSECTION.
                    [ALL] Added -d to disable WLA's ability to calculate A-B
                      where A and B are labels.
                    [ALL] If SIZE is used with a .SECTION or .RAMSECTION and
                      the section doesn't fit into it, we now issue an error
                      instead of a warning.
                    [ALL] .FOPEN should now work with makefile generation.
                    [ALL] WLA's summary is now printed to stdout instead of
                      stderr.
                    [ALL] Added support for UTF-8 source files (meaning labels,
                      macro names, definitions, etc. can all be UTF-8).
                    [ALL] When .ROMBANKMAP had ROM banks of different sizes,
                      the verbose summary's ROM information was not fully working.
                    [ALL] Memory overwrite messages should now have working
                      line numbers in all cases.
                    [ALL] WLA assembles now "WLAI" library files and "WLAk"
                      object files.
                    [ALL] Labels without ':' can now be used right on the next
                      line after a .MACRO call.
                    [ALL] Added keywords ISOLATED, ISOLATELOCAL and ISOLATEUNNAMED
                      to .MACRO. These make the local and unnamed labels
                      inside a .MACRO to stay inside and not affect the
                      outside world. The same goes for child label stack.
                    [ALL] We now don't do substitution in code that is skipped
                      using .IFs.
                    [ALL] Added SIZE to .DSTRUCT and .STRUCT and to INSTANCEOF
                      in .RAMSECTION and .ENUM.
                    [ALL] If padding is put to a .DSTRUCT or INSTANCEOF in
                      .RAMSECTION or .ENUM, _paddingof_* definition is created
                      unless -s is given.
                    [ALL] Added optional COUNT to INSTANCEOF in .RAMSECTION and
                      .ENUM.
                    [ALL] Added NOLABELS to .DSTRUCT.
                    [ALL] Added round(), floor() and ceil().
                    [Z80] Added "EX HL,DE" (an alias for "EX DE,HL").
                    [Z80] Added "EX HL,(SP)" (an alias for "EX (SP),HL").
                    [Z80] Added "EX IX,(SP)" (an alias for "EX (SP),IX").
                    [Z80] Added "EX IY,(SP)" (an alias for "EX (SP),IY").
                    [658] WDM takes now a byte (i.e., "WDM $12").
                    [651] Removed wla-6510 as wla-6502 can be used for 6510.
                    [650] Added undocumented opcodes to wla-6502.
                    [GB ] It's now possible to set the number of ROM banks to
                      any value larger than 0.
                    [GB ] WARNING: .ROMBANKS / .ROMBANKMAP don't write the ROM
                      size to $0148 any more, use .ROMSIZE for that.
                    [GB ] Added ROMSIZE to .GBHEADER.

v10.1 (19-Feb-2022) [ALL] Arguments to .SECTION and .RAMSECTION can be now
                      given in any order, only the first argument must be the
                      section's name.
                    [ALL] A definition can be substituted with its value in
                      labels (e.g., label_{COUNTER}) and in quoted strings
                      (e.g., {"ID={COUNTER}"}). Note that also label_{COUNTER+1}
                      works.
                    [ALL] Strings can be split to multiple lines using '\'.
                    [ALL] Added WINDOW and BITWINDOW to .SECTION and .RAMSECTION.
                      These can be used to limit where .SECTIONs and
                      .RAMSECTIONs are placed.
                    [ALL] The assembler is now able to calculate A-B where
                      A and B are labels in the same section. Only the linker
                      used to be able to do this.
                    [ALL] WLA assembles now "WLAG" library files and "WLAi"
                      object files.
                    [ALL] Fixed multiple memory leaks. Should now work better
                      on an Amiga.
                    [ALL] .STRINGMAPTABLE works now with makefile generation.
                    [ALL] We don't try to process special characters in
                      filenames in .INCDIR, .INCLUDE, .INCBIN, .FOPEN,
                      .BACKGROUND and .STRINGMAPTABLE.
                    [ALL] .IFs like ".if MINUS_ONE == -1" (negative value on
                      the right side) didn't use to work.
                    [ALL] "JR -" (similar direct jumps to local labels) should
                      work again.
                    [ALL] Sharing a namespace between sections should not make
                      WLA to crash at exit.
                    [ALL] MAX_NAME_LENGTH is now 2047 instead of 255. This
                      change allows longer strings/labels (NOTE: On Amiga
                      and MSDOS the limit is 511, due to limited stack).
                    [ALL] Turned some huge stack allocations into heap
                      allocations.
                    [ALL] \@ should now work in .IFs.
                    [ALL] __label__ should now work better in calculations.
                    [658] The maximum SRAMSIZE in SNES ROM header is now 7
                      instead of 3.
                    [SFX] Fixed "MOVE (xx),Rn" macro instruction parsing. And
                      even currently WLA cannot create a SMS instruction if
                      WLA postpones the argument's handling to WLALINK...
                    [Z80] Added CHECKSUMSIZE and FORCECHECKSUM to .SMSHEADER.

v10.0 (21-Jun-2021) [ALL] WARNING: Precedence of operators in calculations
                      that WLA calculates is now more fine grained and C like.
                    [ALL] WARNING: .ASC didn't map \0 and \x inside a string,
                      but now all bytes given to .ASC are mapped. Consider
                      using .ASCSTR if you don't want to map special
                      characters.
                    [ALL] All strings (inside "") now support \n, \r, \t, \0,
                      \x, \< and \>.
                    [ALL] '\n', '\r', '\t' and '\0' are now supported.
                    [ALL] ASC() has now wider input support: e.g., ASC('\n')
                      and ASC($D) work.
                    [ALL] It's possible to feed a definition's name to a
                      .MACRO by prefixing it with '&', e.g. &definition.
                    [ALL] Use ?1 inside a .MACRO to get the value of the
                      definition given as argument 1 (and prefixed with '&').
                    [ALL] Added support for nameless INSTANCEOFs in
                      .ENUMs, .STRUCTs and .RAMSECTIONs.
                    [ALL] Computations with 32-bit binary values with all 32
                      bits defined work now.
                    [ALL] It's possible to use binary values in command line
                      definitions (e.g., -D VALUE1=%10101010).
                    [ALL] Hexadecimal values can now also be given as 0xABCD,
                      binary values as 0b11110000.
                    [ALL] .FAIL defaults now to exit code 1, and takes an
                      optional exit code (e.g., ".FAIL 2").
                    [ALL] It's now possible to create, read and write into own
                      arrays using .ARRAYDEFINE/.ARRAYDEF/.ARRAYIN/.ARRAYOUT.
                    [ALL] Added .ARRAYDB, .ARRAYDW, .ARRAYDL and .ARRAYDD.
                    [ALL] Added .BITS (like .DB but for bits) and .ENDBITS.
                    [ALL] WLA assembles now "WLAF" library files and "WLAg"
                      object files.
                    [ALL] Added .FILTER (same as .DBM, but doesn't define
                      any bytes).
                    [ALL] Pending calculations inside bankheader sections
                      should work again.
                    [ALL] If an empty .SECTION/.RAMSECTION uses keyword KEEP
                      it is no longer discarded.
                    [ALL] The source section of APPENDTO operation is now
                      linked with its ID, not name, so multiple sources
                      with the same name work now.
                    [ALL] defined(DEF_A) can be used in conditions to ask
                      if DEF_A is defined.
                    [ALL] exists("file.bin") can be used in conditions to
                      ask if "file.bin" exists.
                    [ALL] .IF takes now complex conditions, e.g.,
                      ".IF !defined(ZERO) && defined(ONE) && (ONE > 0)" works.
                    [ALL] Added .ELIF.
                    [ALL] Added ARG_IMMEDIATE to the types of an argument
                      of a .MACRO (asked using e.g., '\?1').
                    [ALL] Added a flag "-k" that forces WLA to keep all
                      empty sections.
                    [ALL] Added AFTER keyword to .SECTION and .RAMSECTION,
                      which makes sections to be placed OFFSET bytes apart.
                    [ALL] Added .FTELL (get the file position).
                    [ALL] Added .FSEEK (set the file position).
                    [ALL] -v prints now more information about the RAM/ROM
                      usage.
                    [ALL] Data generated by .MACROs and .REPEATs is now
                      visible in listfiles.
                    [ALL] Added support for LOBYTE() (get the low byte, bits
                      0-7), HIBYTE() (get the high byte, bits 8-15), LOWORD()
                      (get the low word, bits 0-15), HIWORD() (get the high
                      word, bits 16-31), BANKBYTE() (get the bank byte,
                      bits 16-23) and BANK() (get the bank).
                    [ALL] Unix file paths in assembly files (.INCDIR...)
                      should now work Amiga.
                    [SFX] Added Super FX support.
                    [GB ] Added alias "CPL A" (of "CPL").
                    [GB ] Added support for "STOP $01" - "STOP" with extra
                      byte.
                    [Z80] Added SL1 (alias for SLL).
                    [Z80] Added "RES 0,(IX+d),A", "RES 0,(IY+d),A",
                      "RL (IX+d),A", "RL (IY+d),A", "RLC (IX+d),A",
                      "RLC (IY+d),A", "RR (IX+d),A", "RR (IY+d),A",
                      "RRC (IX+d),A", "RRC (IY+d),A", "SET 0,(IX+d),A",
                      "SET 0,(IY+d),A", "SLA (IX+d),A", "SLA (IY+d)",A",
                      "SLL (IX+d),A", "SLL (IY+d),A", "SRA (IX+d),A",
                      "SRA (IY+d),A", "SRL (IX+d),A", "SRL (IY+d),A" and
                      variants.

v9.12 (20-Mar-2021) [ALL] Added support for ADDR and FARADDR to .TABLE.
                    [ALL] Added .STRINGMAP and .STRINGMAPTABLE.
                    [ALL] Multiple include directories (via multiple -I)
                      are now supported.
                    [ALL] Use LABEL_{\@+1} instead of LABEL_\@+1
                      inside a macro, if you want to reference the next
                      label instead of the label's address + 1.
                    [ALL] Missing .INCBIN/.INCLUDE files don't break makefile
                      rules generation (-M) any more.
                    [ALL] Fixed .DBM, .DWM and .DLM, and \2 in .DWM and .DWL.
                    [ALL] .MACRO string expansion (e.g., "\1") now uses parsed
                      arguments instead of just copying the plain text of
                      the argument.
                    [ALL] Object and library files support more than 256
                      source file IDs.
                    [ALL] WLA assembles now "WLAA" library files and "WLAb"
                      object files.
                    [ALL] Fixed listfile writer, now opcode data stays better
                      on the lines without spillovers. Affects 65816, Z80,
                      SPC-700, 65C02, 65CE02 and HuC6280.
                    [ALL] Added support for ASC('?') (.ASC for individual
                      characters), e.g., "LD A, ASC('A')".
                    [ALL] Source code line can be split to multiple lines
                      using '\' between elements, in many places.
                    [ALL] .FAIL takes now an optional string.
                    [ALL] .DL, .DSL, .DLM etc. work also on other targets
                      than 65816.
                    [ALL] Added support for .DD, .DSD, .DDM, the same as
                      .DB etc., but double word (32-bit).
                    [ALL] Added a flag "-h" to make all label references 16-bit
                      by default (size hints still work).
                    [ALL] Added support for .HEX (yet another way of
                      defining bytes).
                    [ALL] Added support for __label__ (last defined parent
                      label).
                    [ALL] Added .ASCSTR that maps (like .ASC) only supplied
                      strings, not loose bytes.
                    [658] SECTIONEND labels that overflowed from a bank
                      had wrong address in symbol files.
                    [Z80] Fixed the broken (broke in v9.11) regioncode
                      in .SMSHEADER.
                    [SPC] It's now possible to use e.g., defines with
                      mnemonics like BBC and SET1, not just raw numbers.
                    [SPC] In many mnemonics where a dot was required you can
                      now also use commas instead (e.g., BBC and SET1).

v9.11 (17-Jul-2020) [ALL] Stack calculator's string checker handled only
                      63 characters long strings.
                    [ALL] A directive with the first argument being
                      negative wasn't parsed properly.
                    [ALL] Added an alias for .INCLUDE (.INC).
                    [ALL] Added RETURNORG to .RAMSECTION.
                    [ALL] Using a .RAMSECTION without RETURNORG doesn't mess
                      up the .ORG any more.
                    [ALL] Macro names can now start with a '.'.
                    [ALL] Getting the ROM bank number using ':' can now be
                      used also with ROM addresses and their calculations.
                    [ALL] When using .MACROs, use '\.' to get the macro's name.
                    [ALL] SLOTs can now be given names.
                    [ALL] SLOTs can now be referenced by their name, ID
                      or address.
                    [ALL] .PRINT & .PRINTT can now print address labels.
                    [ALL] Simple additions and subtractions can be used with
                      "\@" in macros when creating/referencing a label.
                    [ALL] Plain "OFFSET = 10" is now also accepted as
                      a define. No .DEFINE/.DEF is required.
                    [ALL] .INCDIR, .INCBIN, .FOPEN, .INCLUDE, .OUTNAME,
                      .IFEXISTS and .BACKGROUND now also take strings
                      without quotation marks.
                    [ALL] Integrated https://github.com/mpaland/printf's
                      snprintf(), changed all sprintf() calls to snprintf().
                    [ALL] It's possible to skip bytes in .RAMSECTIONs using
                      "." as the label.
                    [ALL] Added support for FORCE, SEMIFREE and SEMISUBFREE
                      to .RAMSECTION.
                    [ALL] Added OFFSET to .SECTION and .RAMSECTION.
                    [ALL] The type of the argument for a .MACRO can now be
                      asked in an .IF using e.g., '\?1'.
                    [ALL] Added a flag "-s" to disable _sizeof_* definition
                      creation.
                    [ALL] .DSTRUCT can now create child labels (e.g.,
                      ".DSTRUCT @Instance INSTANCEOF MyStruct VALUES").
                    [ALL] WLA assembles now "WLA9" library files and "WLAa"
                      object files.
                    [ALL] .ENDST should be case insensitive in all cases.
                    [ALL] .INCLUDE/.INC can now be used inside .MACROs.
                    [ALL] .INCLUDE/.INC can now be given the filename in
                      pieces, e.g. ".INC ROOTDIR, SUBDIR, "filename.s"".
                    [ALL] Added ONCE to .INCLUDE/.INC.
                    [ALL] Macro calls can now be made from the very beginning
                      of a new line (where labels are).
                    [ALL] Added NAMESPACE to .INCLUDE/.INC.
                    [ALL] Improved WLA's string.length parsing capabilities.
                    [ALL] Sections can avoid WLALINK's discard mechanism
                      with a keyword "KEEP" ('!' at the beginning of a
                      .SECTION's name works still also).
                    [ALL] Un-named labels (like "-", "+" and "__") don't need
                      to be defined at the very beginning of the line either.
                    [ALL] Removed some redundant definitions from .RAMSECTION
                      (.STRUCT) INSTANCEOF when the number of instances > 1.
                    [ALL] Added support for optional STARTFROM to .RAMSECTION
                      (.STRUCT) INSTANCEOF (starting index other than 1).
                    [Z80] Removed warnings for "JP (HL)", "JP (IX)" and
                      "JP (IY)".
                    [Z80] Added ROMSIZE to .SMSHEADER. Fixed automatic
                      ROMSIZE calculation.
                    [6CE] Added support for CSG65CE02.
                    [65C] Added support for W65C02S's "WAI" and "STP".
                    [658] Added support for WDC standard mnemonics via .WDC
                      and .NOWDC.
                    [658] Added support for .DLM (24-bit version of .DBM).

v9.10 (22-Dec-2019) [808] Added support for I8080.
                    [658] Fixed SNES ROM checksum calculation.
                    [658] Fixed 24-bit non-label symbols in NO$SNES symbol
                      file generator.
                    [Z80] Added aliases for ADC, ADD, AND, CP, OR, SBC,
                      SUB and XOR.
                    [Z80] Added aliases "LD PC,HL", "LD PC,IX",
                      "LD PC,IY", "JP HL", "JP IX" and "JP IY".
                    [Z80] WLA will now issue a warning if "JP (HL)",
                      "JP (IX)" or "JP (IY)" are used as they are
                      semantically wrong.
                    [Z80] Added register aliases HX (IXH), LX (IXL),
                      HY (IYH) and LY (IYL).
                    [GB ] Added aliases for ADC, ADD, AND, CP, OR, SBC,
                      SUB and XOR.
                    [GB ] Added alias "JP (HL)", but WLA will also issue a
                      warning if it's used as it's semantically wrong.
                    [ALL] Unary XOR (e.g., "~$FF") is now calculated as NOT.
                    [ALL] Added support for 24-bit and 32-bit XORs in
                      calculations.
                    [ALL] RST can now be used with a label/pending calculation.
                    [ALL] ".DEFINE INDEX \@" inside a macro works now.
                    [ALL] Added a fflush() to print_error() - now all error
                      messages should be printed on screen no matter what.
                    [ALL] .BLOCK name can now contain spaces.
                    [ALL] WLA assembles now "WLA6" library files and "WLAW"
                      object files.

v9.9 (15-Aug-2019) [ALL] Added unions: .UNION (and .NEXTU and .ENDU).
                   [ALL] Added a new syntax to .DSTRUCT (old works, too).
                   [ALL] Changed the way ".ENUM xyz DESC" works.
                   [ALL] .ROW and .DATA should now work better with 16-bit
                     and 24-bit values.
                   [ALL] Defines with negative values are now parsed better.
                   [ALL] .BLOCK (and .ENDB) prints the block size once again.
                   [ALL] Added support for C++ style comments (//).
                   [ALL] WLA assembles now "WLA4" library files and "WLAV"
                     object files.
                   [ALL] References to a pending computation from inside a
                     define from inside a pending computation should work now.
                   [ALL] WLA can now be given string definitions from the
                     command line.
                   [680] Added support for MC6800.
                   [680] Added support for MC6801.
                   [680] Added support for MC6809.
                   [800] Added support for I8008.
                   [658] 24-bit addresses of .RAMSECTION labels should work
                     now when using .LOROM / .HIROM. / .EXHIROM.
                   [GB ] Fixed Pocket Camera cartridge type, added support
                     for 64Mbit ROM and 512kbit RAM types.

v9.8 (21-Jun-2019) [ALL] Deprecated and removed section's size giving inside
                     section's name string.
                   [ALL] Getting bank number with :CADDR works again.
                   [ALL] WLA assembles now "WLA3" library files and "WLAU"
                     object files.
                   [ALL] .REPEATs, .DBs, .DWs, .DLs and macro calls don't
                     mess up listfiles any more.
                   [ALL] Added support for prioritizing sections when
                     placing them to the output ROM/PRG.
                   [ALL] The _sizeof_[label]s for labels that are followed by
                     a dotted .DSB etc. are now calculated correctly.
                   [ALL] The maximum allowed number of digits for floats is
                     now 24 instead of the old 8.
                   [ALL] _sizeof_[label]s are now calculated correctly
                     for .STRUCTs in .RAMSECTIONs.
                   [ALL] WLA's -x flag now creates SECTIONSTART_[section name]
                     and SECTIONEND_[section name] labels for each section.
                   [ALL] The assembler and the linker now display examples
                     about how to run them when run with incorrect parameters.
                   [ALL] .RAMSECTIONs can now be used inside libraries
                     but BANK and SLOT must be defined for the RAMSECTIONs
                     under [ramsections] in WLALINK's linkfile.
                   [ALL] WLA (WLALINK did this already) assumes that there
                     are 256 RAM banks for each SLOT. The number of ROM
                     banks doesn't affect the number of RAM banks any more.
                   [ALL] Added APPENDTO to .RAMSECTIONs.
                   [ALL] Added .TABLE, .ROW and .DATA - an alternative
                     to .DB, .DW and .DL.
                   [ALL] When allocating a new unknown reference, we'll set
                     its base to 0 instead of not initializing base at all.
                   [ALL] When inserting padding to a section (for example
                     for an unsolved 8-bit reference) we now set the padding
                     to be $CD instead of letting it be uninitialized.
                   [ALL] References from bank header sections are now found
                     when we discard unreferenced sections.
                   [ALL] Fix buffer overflow for \xXX strings.
                   [ALL] Fixed a possible crash bug when printing opcodes
                     in DEBUG executable.
                   [ALL] Allow .BACKGROUND file to be smaller than the
                     output ROM.
                   [ALL] Fixed a couple possible buffer overflows.
                   [ALL] Fixed CRC calculating on some 64-bit platforms.
                   [ALL] Macros rounded all floating point arguments to
                     integers - not any more.
                   [ALL] Added support for "string".length.
                   [ALL] The documentation is now ReadTheDocs.org compatible.
                   [ALL] Running the assembler/linker without arguments shows
                     now also the version's date.
                   [ALL] Added -A to WLALINK - Add address-to-line mapping
                     data to WLA symbol file.
                   [ALL] WLA and WLALINK give now more information about the
                     cause when a memory overwrite/overflow occurs.
                   [ALL] Added .ADDR (alias of .DW).
                   [ALL] Updated the dotted to-be-skipped directives list
                     in .ENUM and .RAMSECTION to contain missing items.
                   [ALL] .DEFINE now supports keyword EXPORT (auto export).
                   [ALL] Added .PRINT - a combination and more usable version
                     of .PRINTT and .PRINTV.
                   [ALL] .PRINTV's HEX/DEC are optional. Default is DEC.
                   [ALL] Added .ENUMID - creates definitions with an auto-
                     incrementing value. Can autoexport as well.
                   [GB ] Added support for .VERSION (Mask ROM version number).
                   [GB ] Fixed the handling of RAMSIZE inside of .GBHEADER.
                   [GB ] New licensee code is set to $0000 if old licensee
                     code is used.
                   [GB ] Added VERSION ($014C) to .GBHEADER.
                   [GB ] Added the following mnemonic aliases:
                     - LDH A,(C) --> LD A,($FF00+C)
                     - LDH (C),A --> LD ($FF00+C),A
                   [658] Added .DSL.
                   [658] Added .FARADDR (alias of .DL).
                   [658] Added support for DL/LONG/DSL to .STRUCT and
                     .RAMSECTION.
                   [658] Added support for .EXHIROM.
                   [658] MVN and MVP had source and destination in wrong
                     order in the output binary.
                   [SPC] Fixed a typo, RET1 is now RETI.
                   [SPC] Fixed a typo, "AND1 mem.bit, C" ($CA) is now
                     "MOV1 mem.bit, C"
                   [SPC] Fixed AND1, EOR1, MOV1, NOT1 and OR1 (used to take
                     two 8-bit arguments, now 13-bit address and 3-bit value.
                   [SPC] Fixed many 8-bit PC relative label references to be
                     direct references.
                   [Z80] Added shadow register aliases of opcodes that use
                     registers A, F, BC, DE and HL. For example, "AND A'"
                     assembles to the same (0xA7) as "AND A". The aliases
                     are meant for programmers who want to explicitly show
                     when they are using the shadow registers.

v9.7 (17-Apr-2018) [ALL] We now use CMake instead of plain Makefiles.
                   [ALL] Added INSTANCEOF support to .STRUCT.
                   [ALL] Removed DEBUG opcode from GB-Z80.
                   [ALL] WLALINK now reserves the bytes the checksummer uses
                     if WLA is used to calculate a checksum.
                   [ALL] Added ALIGN to .RAMSECTIONs.
                   [ALL] .RAMSECTIONs now use the BANK when placing sections.
                   [ALL] .BLOCK needs to be now terminated with .ENDB.
                   [ALL] Fixed some typos in error messages.
                   [ALL] Added a directory called "bug_exhibition" for
                     bug reports.
                   [ALL] When parsing "\1.w" the parser now associates the
                     ".w" part with the "\1" part.
                   [ALL] Recursive macro calls with recursive argument
                     references should work now.
                   [ALL] .ASC can now map also byte data.
                   [ALL] Rewrote the macro argument expander.
                   [ALL] Fixed .INCDIR/.INCBIN cache bug.
                   [ALL] Added support for -I [include directory].
                   [ALL] Added ASCII commands to strings.
                   [ALL] Renamed .SECTION IDENTIFIER to NAMESPACE.
                   [ALL] Added support for local labels with @ prefix.
                   [ALL] "historical" contains now old. depcerated files.
                   [ALL] Updated WLA/WLALINK argument parser.
                   [ALL] Sphnix is now used to generate the documents.
                   [ALL] Various bug, crash and error message fixes.
                   [ALL] Labels can now be 255 characters long instead of 63.
                   [ALL] Various fixes to negative range for 8-bit two's
                     complement.
                   [ALL] Power operator supports fractional values.
                   [ALL] Expressions are allowed to be outside 16bit range.
                   [ALL] Added support for _sizeof_[label] automatic
                     definitions to WLALINK, these measure the distance
                     between two consecutive labels in bytes.
                   [ALL] Unreferenced section discarding now handles also
                     RAM sections.
                   [ALL] It's possible to append to a section using APPENDTO.
                   [ALL] .IFDEFs can be used in .ENUMs and .RAMSECTIONs.
                   [ALL] .BASE is now universal, not just 65816 specific.
                   [ALL] Speeded up label handling in WLALINK.
                   [Z80] Added .SMSHEADER.
                   [Z80] Added support for "SUB IXH" and "SUB IXL", and
                     kept the old aliases "SUB A, IXH" and "SUB A, IXL".
                   [Z80] Fixed .SDSCTAG parsing.
                   [658] Added support for .DL.
                   [GB ] Added support for .COUNTRYCODE.
                   [GB ] Added support for .GBHEADER.
                   [GB ] NO$GMB symbol files are now BGB (emulator)
                     compatible.
                   [GB ] Added support for .NINTENDOLOGO.
                   [GB ] Added DESTINATIONCODE as an alias for
                     COUNTRYCODE.
                   [GB ] Added support for .ROMGBCONLY.

v9.6 (27-Jan-2015) [ALL] Fixed usage info (was missing -i).
                   [ALL] Moved the project to GitHub:
                     https://github.com/vhelin/wla-dx
                   [ALL] Renamed local variables in a lot of functions to
                     make the code easier to understand.
                   [ALL] Moved LDFLAGS to end of GCC invocation to fix builds.
                   [ALL] Changed "-pedantic" to "-pedantic-errors -Wextras"
                     in WLA's and WLALINK's makefiles.
                   [ALL] Add ability to compile using Microsoft CL, LINK,
                     and NMAKE / Added makefile generator m4 scripts.
                   [ALL] Fixed .ROMBANKMAP and .BANKS allocation to prevent
                     heap corruption when .BANKS allocated exceeds .BANKSTOTAL
                   [ALL] Added support for more than 255 sections per file.
                   [ALL] WLA assembles now "WLAW" library files and "WLAL"
                     object files.
                   [ALL] Added optional running index definition to
                     .REPEAT / .REPT.
                   [ALL] The calculation parser in WLA DX is now smarter -
                     it knows more places when to stop parsing.
                   [ALL] Feeding address labels via named ARGS to a .MACRO
                     failed before, because they were interpreted as
                     strings, not address labels.
                   [ALL] Changed all references to bash to sh in scripts.
                   [ALL] Added support for SEMISUBFREE sections.
                   [Z80] .SDSCTAG & .SMSTAG & .COMPUTESMSCHECKSUM now work
                     with 8KB & 16KB ROMs.
                   [Z80] .SDSCTAG's minor version number is now parsed
                     correctly.

v9.5 (14-Aug-2008) [ALL] The unix.sh now takes the number of jobs make
                     commands should create, speeding up the compiling
                     on CPUs with more than one core.
                   [ALL] .DSTRUCTs can now be issued without passing values
                     to all struct members (will be init to $00 or
                     .EMPTYFILL).

v9.4 (02-Mar-2008) [ALL] Enhanced the documentation.
                   [ALL] .DEFINE without a definition value, and a .DEFINE
                     that would have an address label as the definition value
                     would make WLA count the linenumbers afterwards wrong.
                   [ALL] Issuing a loose .ENDM will give an error.
                   [ALL] All macros must have at least a name.
                   [ALL] Added .DBM (define bytes through a filter macro) and
                     .DWM (define words through a filter macro).
                   [ALL] Added FILTER to .INCBIN (circulate all the data
                     through a filter macro).
                   [ALL] Fixed overflow checks in .INCBIN's SKIP and READ.
                   [ALL] Integrated Mersenne Twister by Takuji Nishimura and
                     Makoto Matsumoto (.SEED, .DBRND and .DWRND use that now
                     instead of the stdlib's srand() and rand()).
                   [ALL] It's possible to use '\!' to get the name of the
                     currently parsed source file (works like '\@').
                   [Z80] If a pending computation follows "JR" or "DJNZ",
                     all the label references inside are relative.
                   [GB ] If a pending computation follows "JR",
                     all the label references inside are relative.
                   [65?] If a pending computation follows "BCC", "BCS", "BEQ",
                     "BMI", "BNE", "BPL", "BVC", "BVS", all the label
                     references inside are relative.
                   [65C] If a pending computation follows "BCC", "BCS", "BEQ",
                     "BMI", "BNE", "BPL", "BVC", "BVS", "BRA", "BBR*", "BBS*",
                     all the label references inside are relative.
                   [658] If a pending computation follows "BCC", "BCS", "BEQ",
                     "BMI", "BNE", "BPL", "BVC", "BVS", "BRA", "BRL", "PER",
                     all the label references inside are relative.
                   [HuC] If a pending computation follows "BCC", "BCS", "BEQ",
                     "BMI", "BNE", "BPL", "BVC", "BVS", "BSR", "BBR*", "BBS*",
                     "BRA", all the label references inside are relative.
                   [SPC] If a pending computation follows "BCC", "BCS", "BEQ",
                     "BMI", "BNE", "BPL", "BVC", "BVS", "BRA", "BBS", "BBC",
                     "CBNE *", "DBNZ *", all the label references inside
                     are relative.

v9.3 (09-Sep-2006) [ALL] Updated makefiles (by Tobias Pflug).
                   [ALL] Added 'memorymaps' directory, where you can find
                     default .MEMORYMAPs for various target machines.
                   [ALL] Enhanced .MEMORYMAP defining.
                   [ALL] Added .ASCIITABLE (.ASCTABLE) and .ASC.
                   [ALL] .DEFINE works also without a definition value
                     (defaults to 0).
                   [ALL] Added .BLOCK and .ENDB.
                   [ALL] Added .SYM (and alias .SYMBOL).
                   [ALL] Added .BR (and alias .BREAKPOINT).
                   [ALL] Added .SHIFT.
                   [ALL] Relaxed the MACRO argument counting. Any MACRO can now
                     be called with varying number of arguments.
                   [ALL] .DEFINE can now handle definitions where lone address
                     labels appear (e.g., only "MAIN+0" used to work).
                   [ALL] Added AmigaOS4 makefiles (by Ventzislav Tzvetkov).
                   [ALL] Some code cleanups.
                   [ALL] Fixed the WIN32 makefiles (by Danil Hrchner).
                   [650] Fixed class 4 opcodes to work again.

v9.2 (22-Aug-2004) [ALL] WLA can generate makefile rules (flag 'M')
                     describing the dependencies of the main source file.
                   [ALL] Added flag 'q' to suppress .PRINT* -directives.
                   [ALL] Hexadecimal values can now be given using
                     the suffix 'h' (e.g., 10h and 0abh).
                   [ALL] Fixed the preprocessor to handle cases like "-: jr -".
                   [ALL] Sections did affect the .ORG outside of them,
                     in some special cases.
                   [ALL] Added "RETURNORG" to .SECTION to (hopefully) fix
                     this thing once and for all.

v9.1 (26-Jun-2004) [ALL] Sections do not affect the .ORG outside of them.
                   [ALL] Code cleanups.
                   [ALL] .IFs can compare string definitions.
                   [ALL] WLA assembles now "WLAV" library files and "WLAK"
                     object files.
                   [ALL] Added preliminary support for list files.
                   [ALL] Added aliases .DEF (.DEFINE), .REDEF (.REDEFINE),
                     .UNDEF (.UNDEFINE), .WORD (.DW), .BYT (.DB), .BYTE (.DB),
                     .ASC (.DB), .EQU (.DEFINE) and .REPEAT (.REPT).
                   [ALL] Added .FOPEN, .FCLOSE, .FREAD and .FSIZE.
                   [ALL] Increased the case insensitivity in many directives.
                   [ALL] It's possible to use "=" in .DEFINE and .REDEFINE.
                   [ALL] The initial size of a section can now be given with
                     the keyword "SIZE" (take a look at the README).
                   [ALL] .FAIL exits nicer.
                   [ALL] .ENUM can do descending enumeration.
                   [ALL] Added operators '>' (get the high byte) and '<'
                     (get the low byte).
                   [ALL] FREE, SEMIFREE and SUPERFREE sections can be aligned.
                   [ALL] Added "FSIZE" to .INCBIN.
                   [ALL] .STRUCT creates more definitions.
                   [ALL] Structure members can now be used in computations.
                   [ALL] Relaxed the handling of '.' in stack calculator. Now
                     for example "AND1 C,1+2+3.3-2-1" works (SPC-700).
                   [Z80] Fixed opcodes in group 7 to work again. A new feature
                     in 9.0 broke these.
                   [658] .SNESHEADER, .SNESNATIVEVECTOR and .SNESEMUVECTOR
                     don't work with libraries any more.
                   [658] .SNESNATIVEVECTOR and .SNESEMUVECTOR don't change
                     .ORG anymore.
                   [658] All the vectors of .SNESNATIVEVECTOR and
                     .SNESEMUVECTOR are optional and default to $0000.
                   [658] Added .SMC, .INDEX and .ACCU.
                   [658] Operand hinting overrides SEP/REP/.INDEX/.ACCU when
                     dealing with immediate value opcodes (now when did this
                     break?), and .8BIT/.16BIT/.24BIT affect only the rest of
                     the opcodes. WARNING! Check your code as this fix may
                     break it.
                   [658] "LDY.W #?" works now.
                   [658] Added 24bit operand hint .l.
                   [65x] Added more operand size checks to opcode parsers.

v9.0 (23-Nov-2003) [ALL] The number of arguments macros take is not limited
                     anymore.
                   [ALL] It is possible to give names to the macro arguments.
                   [ALL] A loose .ENDR gives now a proper error message.
                   [ALL] Trying to define reserved definition labels
                     (like "NARGS") will give an error.
                   [ALL] Stack calculator can now return floating point
                     values (.D*(SIN/COS) do not round the arguments
                     any more).
                   [ALL] WLA defaults to BANK 0 SLOT 0 ORG 0 at startup.
                   [ALL] Added .SLOT.
                   [ALL] .INCDIR, .INCLUDE and .INCBIN try to convert the
                     directory paths to the host operating system's syntax.
                   [ALL] WLA assembles now "WLAT" library files and "WLAH"
                     object files.
                   [ALL] It is possible to use floating point numbers in
                     all computations.
                   [ALL] It is possible to export floating point definitions.
                   [ALL] All computation values passed to WLALINK are now
                     in double format.
                   [ALL] Fixed a possible error when dealing with multivalue
                     definitions.
                   [ALL] .REDEFINE handles all the same definition types as
                     .DEFINE.
                   [ALL] Many opcodes, which take signed arguments, do not
                     let the user to specify too large values (e.g., -1 cannot
                     be given as $FF any more).
                   [658] Fixed opcodes "MVN" and "MVP".
                   [GB ] It is possible to give "LD HL,(SP-n)" instead of
                     only "LD HL,(SP+n)".
                   [Z80] The minor version number in SDSCTAG should now work
                     properly.
                   [Z80] It is possible to give e.g., "LD A,(IX-1)" (only
                     "LD A,(IX+-1)" used to work).

v8.9 (12-Jun-2003) [ALL] Added .SEED, .DBRND and .DWRND.
                   [ALL] Added lowercase versions of run-time definitions
                     WLA_TIME, WLA_FILENAME, WLA_VERSION and NARGS.
                   [ALL] Added support for lowercase versions of the
                     following symbols and directives: DEFAULTSLOT,
                     SLOTSIZE, SLOT, .ENDME, .ENDRO, BANKSTOTAL, BANKS,
                     BANKSIZE, .ASM and .ENDASM.
                   [ALL] WLA assembles now "WLAS" library files and "WLAG"
                     object files.
                   [ALL] Used Valgrind to locate memory allocated from the
                     heap that WLA didn't free at exit (good for Amiga users).
                   [ALL] Fixed few error messages to show the address in
                     hexadecimal format instead of decimal.
                   [ALL] Added support for computation definitions.
                   [ALL] Added .DS (an alias for .DSB).
                   [ALL] Added .DSTRUCT.
                   [ALL] Added .UNBACKGROUND.
                   [ALL] Added SUPERFREE sections.
                   [ALL] Macros can now pass their arguments directly to
                     other macros, and passing a computation to a macro
                     doesn't mess up things any more.
                   [ALL] The macros can now take only at max. 16 arguments.
                   [ALL] WLA doesn't crash when it tries to find the correct
                     mnemonic and has to free the very first computation stack.
                   [658] Added .COMPUTESNESCHECKSUM.
                   [658] Renamed "TBR" instructions to "TRB".
                   [658] $94 was defined as "STY x,Y". Fixed to "STY x,X".
                   [658] Added (by Zachary Keene) .SNESHEADER, .ENDSNES,
                     .SNESNATIVEVECTOR, .ENDNATIVEVECTOR, .SNESEMUVECTOR and
                     .ENDEMUVECTOR.
                   [658] .BASE can now be given before the first .ORG.
                   [658] WLA now automatically sets the 65816 bit in
                     object files. Previously only SNES directives would
                     enable the WLA to do this.
                   [658] .HIROM and .LOROM now override the user's ROM
                     bank map when computing the 24bit addresses and bank
                     references.
                   [GB ] Renamed .COMPUTECHECKSUM to .COMPUTEGBCHECKSUM
                     (.COMPUTECHECKSUM is still recognized, though).
                   [GB ] Renamed .COMPUTECOMPLEMENTCHECK to
                     .COMPUTEGBCOMPLEMENTCHECK (.COMPUTECOMPLEMENTCHECK is
                     still recognized, though).
                   [HuC] Fixed the "TST" instruction (swapped $93 and $A3).

v8.8 (25-Feb-2003) [65c] "DEA" assembled to $3a, $00. Removed the extra $00.
                   [65c] Added "PHP" ($08) and "PLP" ($28).
                   [65c] Badly placed "RTS" and "RTI" broke the opcode table
                     so sorted the opcodes better this time.
                   [HuC] "DEA" assembled to $3a, $00. Removed the extra $00.
                   [HuC] Added "PHP" ($08) and "PLP" ($28).
                   [HuC] Badly placed "RTS" and "RTI" broke the opcode table
                     so sorted the opcodes better this time.
                   [SPC] Fixed the byte ordering (to test first, branch label
                     next) in "CBNE" ($2E and $DE) and "DBNZ" ($6E).
                   [SPC] "ASL !?" was defined as $CC, fixed to $0C.
                   [ALL] Decimal number parser didn't work with all cases
                     when a dot was encountered.
                   [ALL] Added support for longer filenames (> 63 characters).
                   [ALL] A correctly, but partially written mnemonic would
                     cause WLA to break the assembling, but without giving
                     an error message.
                   [ALL] Fixed a rare bug which caused WLA and WLALINK to
                     disagree on section id numbers.
                   [ALL] WLA assembles now "WLAR" library files and "WLAE"
                     object files.

v8.7 (28-Nov-2002) [ALL] Added DSB and DSW, and EXPORT to .ENUM.
                   [ALL] Added DSB and DSW to .RAMSECTION.
                   [ALL] "dec" and "hex" work now in .PRINTV (only the
                     uppercase "DEC" and "HEX" used to work).
                   [ALL] Value parsers accept now big (32bit) values.
                     Previously only 16bit (and 24bit for 65816) values
                     were accepted.
                   [ALL] ".ende" works now also (only ".ENDE" used to work).
                   [ALL] Added .STRUCT.
                   [ALL] Macro and repeat stacks are now dynamic.
                   [Z80] The linenumber in memory references generated by
                     .SDSCTAG was incorrect.
                   [65x] Fixed a case where operand hinting was ignored.

v8.6 (02-May-2002) [65x] Forgot to add .b/.w operand hint support to
                     pure hexadecimal and binary operands.
                   [65x] Fixed a lot of 8bit relative operands to be absolute.
                   [65x] Added support for 65C02 systems (wla-65c02).
                   [HuC] Added support for HuC6280 systems (wla-huc6280).
                   [Z80] WLALINK would discard (with flag d) all SDSCTAG-
                     sections generated with .SDSCTAG.
                   [Z80] Added few missing Z80 opcodes (eg. "JP (IY)").
                   [Z80] Fixed a silly bug in .SDSCTAG.
                   [SPC] Renamed "wla-spc" to "wla-spc700".

v8.5 (19-Apr-2002) [ALL] All unidentified free strings were treated as labels.
                     Fixed so that labels can only start at the beginning of
                     a new line.
                   [ALL] Added support for yet another un-named label (__).
                   [ALL] ".endm" works now also (only ".ENDM" used to work).
                   [ALL] Fixed the preprocessor to work better.
                   [ALL] Fixed .DxSIN & .DxCOS to finally work properly.
                   [ALL] 'x' switch generates now also WLA_VERSION.
                   [ALL] Fixed the preprocessor to handle few special cases
                      related to the use of '+'.
                   [65x] WLA can now be also hinted about the operand size
                     with .b and .w in the operand (eg. "and 10.w").

v8.4 (24-Dec-2001) [ALL] Token parser could fail while skipping comma
                     separated tokens inside .IF.
                   [ALL] Updated the documentation (few crucial things were
                     missing).
                   [ALL] Fixed .RAMSECTION to work (was missing since its
                     introduction).
                   [ALL] Internal pass 1 failed to see duplicate labels.
                   [ALL] Address labels don't need to end to ':' any more.
                   [ALL] Added support for un-named labels
                     (-, --, +, ++, ...).
                   [ALL] Stack calculator can now return strings (and will
                     if the result consists of only one string).

v8.3 (21-Oct-2001) [ALL] Added .INPUT.
                   [ALL] It's now possible to set the bank/slot size to
                     full 65536 bytes.
                   [ALL] Removed switch u.
                   [ALL] Redefining a value definition to be a string
                     definition would crash WLA.
                   [SPC] Added support for SPC-700 systems (wla-spc).
                   [658] Class 4 mnemonic ("ADC #x", "LDA #x", etc) decoder
                     handles now labels correctly in 8bit operand mode.
                   [Z80] "SUB (IX+n)" was mistyped as "SUB A, (IX+n)".
                   [Z80] Updated .SDSCTAG to support the version 1.01
                     of SDSC ROM Tag Specification.

v8.2 (19-Jul-2001) [ALL] Added .OUTNAME.
                   [ALL] Added .ORGA.
                   [ALL] Added .RAMSECTION for variables.
                   [ALL] It's now possible to create string and value
                     definitions on the command line (-Ddefinition[=value]).
                   [ALL] Code cleanups.
                   [ALL] Optimized internal data format.
                   [ALL] Optimized stack calculator routines.
                   [ALL] Definition labels inside .ENUM can now end to ':'.
                   [ALL] Fixed parser holes in .ENUM.
                   [ALL] Added XOR-operator (~) support to computations.
                   [658] Fixed "BRL" to work (the fix was partially missing in
                     v8.1 due to a uncareful source tree merge).
                   [658] Fixed "PER" to work.

v8.1 (03-Jul-2001) [ALL] EXPORT'ing more than once the same definition
                     gives an warning instead of an error.
                   [ALL] It's now possible to export more than one
                     definition with .EXPORT.
                   [ALL] It's now possible to undefine more than one
                     definition with .UNDEF.
                   [ALL] Some directive arguments could only be accepted
                     if they were in uppercase (eg. FORCE, FREE, SWAP, ...).
                   [ALL] Unix users can now define the WLA DX compiling
                     flags by defining CFLAGS before executing make.
                   [ALL] Parse code cleanups.
                   [ALL] Macro argument place holders (eg. \1 and \@) can
                     now be used inside labels and strings.
                   [ALL] WLA doesn't even try to solve any of the label
                     references (even trivial), all that is now left
                     for WLALINK.
                   [65x] Now there are .B, .W and .L versions of all
                     the mnemonics that take immediate values.
                   [65x] BRK & COP -mnemonics now have a default signature
                     byte $00.
                   [65x] Added "BRK x" (and "COP x" to WLA-65816).
                   [658] Fixed BRL to work.
                   [658] Fixed .NAME to write the name data to $FFC0-> in
                     HiROM- and to $7FC0-> in LoROM-mode.
                   [658] All the SNES ROM information bytes WLA supports
                     obey now .HIROM and .LOROM.
                   [658] Fixed SNES directives.
                   [650] Fixed "STY x,Y" to "STY x,X".
                   [Z80] Fixed few cases where IX&IY were interpreted
                     as labels.

v8.0 (19-May-2001) [ALL] Simplified WLA engine a lot by leaving away ROM and
                     program file assembling, and the old, crippled error
                     reporting engine.
                   [ALL] Removed .FOOTER and .HEADER (no longer required).
                   [ALL] WLA assembles now "WLAQ" library files and "WLAD"
                     object files (merged old object file formats).
                   [ALL] Removed few redundant error messages.
                   [ALL] Removed label name compactor.
                   [ALL] Optimized internal pass 1.
                   [ALL] Optimized object and library file writing.
                   [ALL] Optimized Z80, 6502, 6510 and 65816 opcode tables
                     (smaller WLA executables).
                   [ALL] Empty sections get discarded (and labels inside
                     them as well).
                   [ALL] ".IF A==B" works now as well (only ".IF A == B"
                     used to work).
                   [ALL] WLA doesn't strip the size from the section name
                     if the size is explicitly defined.

v7.8 (13-May-2001) [ALL] Optimized preprocessor a little, output is now
                     even more compact than before.
                   [Z80] Reordered LD-mnemonics in the mnemonics table a
                     little so all common mnemonics get decoded faster.
                   [Z80] Added "RST $00" (plain "RST" is still there, too).

v7.7 (12-May-2001) [Z80] Fixed "LD ?,IX" and "LD ?,IY" to "LD (?),IX" and
                     "LD (?),IY".

v7.6 (10-May-2001) [ALL] Not all mnemonics were case insensitive, a bug
                     introduced in the previous release.

v7.5 (07-May-2001) [ALL] Optimized mnemonic decoders a little.
                   [651] Fixed all NOP -mnemonics to work.

v7.4 (02-May-2001) [ALL] Added many new error messages.
                   [ALL] Result placing in stack calculator could fail if the
                     result's position wasn't inside a section.
                   [ALL] Modulo/division by zero doesn't crash WLA anymore.
                   [ALL] Now also in ROM assembling mode it's possible to refer
                     to future value definitions with .DB and .DW.
                   [ALL] Win32 port uses now PID in the temp file name.
                   [ALL] Fixed few places which could generate incorrect
                     destination memory overwrite warnings.
                   [ALL] Program file assembler dislayed a wrong binary size
                     in verbose mode.
                   [ALL] Enhanced .INCBIN.
                   [Z80] Loose strings given to .SDSCTAG don't cause
                     overwrite warnings anymore.
                   [658] Fixed "STZ ?, X" to work (misclassified earlier).
                   [65x] Added new fixed value size mnemonics to the mnemonics
                     tables to speed up the coding and parsing (eg.
                     "CMP.W ?"). Only those mnemonics with multiple argument
                     size choices are affected.
                   [650] Fixed "DEC ?,X" and "DEC ?" to work (misclassified
                     earlier).
                   [658] Added .LOROM, .HIROM and .BASE to help generating
                     SNES 24bit addresses.
                   [658] Added .SLOWROM and .FASTROM for ROM memory speed
                     identification.
                   [658] .NAME works also in WLA-65816 (SNES ROM name string
                     starting at $FFC0).

v7.3 (12-Apr-2001) [ALL] Fixed possible problems with bank overflows
                     (bank size wasn't always up to date).
                   [ALL] Preprocessor modifications introduced a bug
                     which trashed included source files.
                   [ALL] Optimized preprocessor even more.
                   [ALL] .DEFINE and .REDEFINE missed linecounter
                     checks due to the new multibyte definitions.
                   [Z80] Added .SDSCTAG (SDSC ROM tag).
                   [Z80] Added .SMSTAG (SMS/GG ROM tag).

v7.2 (08-Apr-2001) [ALL] Rewrote the preprocessor code, now it produces
                     much more compact output and is generally faster.
                   [ALL] Files can now begin with "/*".
                   [ALL] Now there can be comments after one word
                     mnemonics (broken before).
                   [ALL] .REPT takes now also zero as argument.
                   [ALL] Multibyte definitions are now possible.
                   [ALL] WLA_TIME ended to a linefeed, thanks to
                     ctime(), but not anymore.
                   [Z80] Fixed "LD BC,(?)" and "LD BC,?" recognition to
                     work better.

v7.1 (13-Mar-2001) [ALL] Added 'x' switch to generate extra assembly time
                     definitions (WLA_TIME, WLA_FILENAME).
                   [ALL] Characters can now be used in computations (eg.
                     LD A, 'F'-10).
                   [ALL] WLA could not get the correct section size
                     from a section name if more than one underline
                     was used.
                   [ALL] .INCLUDE and .INCBIN used wrong name in error
                     messages if the file was found on the current working
                     directory and not in the .INCDIR directory.
                   [ALL] Unix makefiles default now to gcc (if no CC/LD is
                     defined).
                   [ALL] .REPT can now be used inside macros.
                   [ALL] .REPTs can be used inside .REPTs.
                   [ALL] Macro arguments in computations work now better.
                   [ALL] Error engine's line counting works now inside
                     macros.
                   [ALL] File doesn't need to end to a line feed anymore.
                   [ALL] Added '>=' and '<=' to .IF.
                   [ALL] Added .IFGREQ and .IFLEEQ.
                   [ALL] .IF -directives should now work with computations.
                   [Z80] WLA gives only a warning if .COMPUTESMSCHECKSUM
                     is used on a ROM file smaller than 32KB.
                   [650] Fixed "INC ?" to work (wrong type previously).

v7.0 (03-Mar-2001) [ALL] WLA couldn't handle files starting with ";".
                   [ALL] Enhanced error messages.
                   [ALL] Compiling WLA DX under Unix is now done with egcs
                     (if no CC is defined).
                   [ALL] Added error messages to .ENUM and made it to accept
                     lowercase symbols. Also added fake symbols.
                   [ALL] Fixed a serious bug with 8bit pending calculations.
                   [ALL] Enhanced makefiles (behave now better under Unix).
                   [ALL] The code works now regardless of the endian type.
                   [ALL] .INCLUDE and .INCBIN try to find the file in the
                     current working directory if it's not in the .INCDIR
                     directory.
                   [ALL] Definitions take also strings as values.
                   [ALL] Code cleanups.
                   [ALL] Exporting an undefined definition doesn't break
                     the assembling loop (only a warning is issued).
                   [ALL] Quotation marks are accepted inside strings.
                   [ALL] Temporary files are placed into the current working
                     directory and under Unix the names incorporate PID.
                   [ALL] .DBSIN and the rest were broken due to a typo.
                   [ALL] Optimized string parsers.
                   [ALL] Added .IFEXISTS.
                   [ALL] Macro argument place holders (eg. "\1") and \@ can
                     now be used in computations (eg. "LD A, \1+\2+\@").
                   [ALL] Macros can be used inside macros (but macro arguments
                     cannot be directly forwarded to the next level).
                   [ALL] "/*/" isn't interpreted as an empty comment anymore.
                   [ALL] Section size can be defined insize the section name
                     string.
                   [Z80] Added TI-86 system include file to the archive.
                   [Z80] Added .COMPUTESMSCHECKSUM for computing the
                     Sega Master System ROM checksum.
                   [Z80] Fixed "LD (IX+x), x" to work.
                   [!GB] Few mnemonics caused stack calculator to create
                     garbage.
                   [GB ] Complement check computing could fail with some
                     really bad luck.

v6.9 (23-Oct-2000) [ALL] Enhanced .MACRO error messages.
                   [ALL] Enhanced .DW error recognition.
                   [ALL] .SECTION handling might broke with some bad luck.
                   [ALL] \@ can now be used inside strings inside a .MACRO.
                   [65x] Added support for "ASL", "LSR", "ROL" and "ROR".
                   [650] Fixed "STA ?" to $8D (was $80).
                   [650] Fixed "EOR ?" to $4D (was $40).
                   [650] Fixed "RTI" to $40 (was $4D).
                   [650] Fixed "STA ?,X" to $9D (was $90).
                   [650] Fixed "ORA ?,X" to $1D (was $10).
                   [650] Fixed "EOR ?,X" to $5D (was $50).
                   [650] Fixed "ADC ?" to $6D (was $60).
                   [650] Fixed "ADC ?,X" to $7D (was $70).

v6.8 (09-Oct-2000) [Z80] Fixed "LD C, RL*" -mnemonics.
                   [651] Added support for 6510 systems (wla-6510).
                   [ALL] Enhanced documentation.
                   [ALL] Library file assembling was broken in the previous
                     release.

v6.7 (07-Oct-2000) [ALL] Added NARGS to .MACRO.
                   [ALL] Enhanced documentation.
                   [ALL] Enhanced error messages.
                   [ALL] Optimized the first internal pass.
                   [ALL] Macros couldn't have .PRINTT directives with
                     linefeeds.
                   [65x] Added .8BIT and .16BIT.
                   [658] Added support for 65816 systems (wla-65816).
                   [658] Added .24BIT.
                   [Z80] Fixed RST-mnemonics.
                   [GB ] Moved lib to examples/gb.

v6.6 (25-Sep-2000) [ALL] .EMPTYFILL didn't function properly when .ROMBANKMAP
                     was used instead of .ROMBANKS.
                   [ALL] Fixed few byte size checks.
                   [650] Added support for 6502 systems (wla-6502).
                   [!GB] Header and footer sizes are now shown in the
                     verbose mode's result information.

v6.5 (20-Sep-2000) [ALL] Optimized number decoding.
                   [ALL] Enhanced documentation.
                   [ALL] Binary file assembling is now called program file
                     assembling (still doesn't suit it 100%).
                   [ALL] Macros couldn't be used before setting an ORG.
                   [Z80] Program file assembling accepts now BANKHEADER
                     section for bank 0.
                   [Z80] The default program file suffix is now '.prg'.
                   [Z80] NO$GMB symbol files can also be written.

v6.4 (12-Sep-2000) [ALL] Returned '*' commenting (from the beginning of a
                     line).
                   [ALL] 'LABEL:XYZ' is now correctly decoded.
                   [ALL] BIT/RES/RST/SET opcodes understand now defines
                     and calculations.
                   [ALL] References to local labels outside sections were
                     possible.
                   [ALL] Added a much faster and enhanced MACRO language.
                   [ALL] IF directives can now be nested.
                   [ALL] .INCBIN works in library files.
                   [ALL] Added .REDEFINE.
                   [ALL] Added .PRINTT and .PRINTV.
                   [ALL] Added .DBSIN, .DBCOS, .DWSIN and .DWCOS.
                   [ALL] Added .IFEQ, .IFNEQ, .IFGR and .IFLE.
                   [ALL] Added .IF with the following operators: '>', '<',
                     '!=' and '=='.
                   [ALL] Added .IFNDEFM and .IFDEFM.
                   [ALL] Added .UNDEF.
                   [ALL] Added .FAIL.
                   [ALL] Added SEMIFREE sections.
                   [ALL] Fixed a bug in opcode case sensitivity checks.
                   [ALL] Opcode case sensitivity mode can be changed so
                     WLA understands only uppercase letters (flag u).
                   [ALL] Added support for modulo ('#') in calculations.
                   [ALL] Enhanced error messages.
                   [ALL] ROM banks can be inserted into different sized
                     slots as long as the bank fits fully inside the slot.
                   [ALL] Computations are now computed internally with higher
                     precision when possible and the result is converted to
                     an integer.

v6.3 (04-Sep-2000) [ALL] Enhanced error messages.
                   [ALL] Optimized section handling.
                   [ALL] Optimized label handling.
                   [ALL] Removed support for '*' commenting.
                   [ALL] Added support for special ROM bank header sections.
                   [ALL] Added support for powers ('^') and shifts ('<<'
                     and '>>') in calculations.
                   [ALL] Fixed calculator engine to work better.
                   [ALL] Enhanced calculation detection.
                   [ALL] .DB and .DW take now comma separated data. Make
                     sure to use commas when placing arithmetic calculations
                     inside .DB and .DW data fields.
                   [ALL] .DSW, .DSB, .DW and .DB take labels and pending
                     computations as data.
                   [ALL] The following directives can be redefined as long
                     as the values equal: .ROMBANKS, .EMPTYFILL and
                     .ROMBANKSIZE.
                   [ALL] .ROMBANKMAPs and .ROMBANKS can be redefined as long
                     as they match (as much as possible). WLA will then use
                     the biggest defined ROM bank map.
                   [GB ] The following directives can be redefined as long
                     as the values equal: .NAME, .RAMSIZE,
                     .CARTRIDGETYPE, .LICENSEECODENEW, .LICENSEECODEOLD,
                     .COMPUTECHECKSUM, .COMPUTECOMPLEMENTCHECK, .ROMDMG,
                     .ROMGBC and .ROMSGB.

v6.2 (31-Aug-2000) [ALL] Enhanced error messages.
                   [ALL] Enhanced number size checks in the opcode decoding
                     loop.
                   [ALL] Braces are not needed anymore in arithmetics.
                   [ALL] Added a fully functional stack calculator engine.
                   [ALL] Unused local labels don't get smoked anymore.
                   [ALL] WLA could crash when including a file while
                     using the old error message engine.
                   [ALL] Negative values in the 16bit range are now
                     handled with better care.
                   [ALL] When assembling a ROM image and using a section
                     inside direct mapped code WLA would screw up the data.

v6.1 (26-Aug-2000) [ALL] Directives accept now definitions as arguments.
                   [ALL] Added more security checks to .MEMORYMAP.
                   [ALL] Optimized .MEMORYMAP building.
                   [ALL] Optimized SLOT usage.
                   [ALL] Added .ROMBANKMAP and .ENDRO.
                   [ALL] .BANKSIZE is now .ROMBANKSIZE.
                   [ALL] 4G worth of ROM banks are supported.
                   [ALL] SLOT numbers start from 0.

v6.0 (23-Aug-2000) [ALL] Rewrote and optimized opcode decoding.
                   [ALL] Preprocessing subroutine removed comments from inside
                     data strings.
                   [ALL] Support for old syntax directives is dropped.
                   [ALL] Enhanced the documentation.
                   [ALL] Enhanced the error messages.
                   [ALL] .INCBIN could break the line numbering in the
                     error messaging engine.
                   [ALL] Fixed a bug in .FORCE section handling.
                   [ALL] Added .BANKSIZE.
                   [ALL] Added .MEMORYMAP and .ENDME.
                   [ALL] Added .ENDASM and .ASM.
                   [ALL] '*' can also be used to comment away lines.
                   [ALL] WLA can now test assemble (flag t).
                   [ALL] .ROMSIZE is replaced with .ROMBANKS.
                   [ALL] Changed FREE section positioning a little.
                   [Z80] Binary files can be assembled with the flag 'b'.
                   [Z80] Added .HEADER.
                   [Z80] Added .FOOTER.

v5.0 (09-Jul-2000) Enhanced brackets detection.
                   Enhanced the documentation.
                   Enhanced error messages.
                   WLA outputs now a NO$GMB symbolic information file along
                     with a ROM image (s flag).
                   .SECTION without a specifier is treated as a FREE section.
                   Optimized directive decoding.
                   Optimized parser loop.
                   If .RAMSIZE is not defined a warning is issued instead
                     of an error.
                   Added SWAP to .INCBIN.
                   Verbose mode shows data usage percentages (per bank
                     as well).
                   WLAD (WLA Disassembler) is now included with the WLA
                     archive.

v4.6 (21-Jun-2000) Enhanced the documentation.
                   Optimized directive decoding.
                   "JP (HL)" is now known as "JP HL".
                   GB-Z80 syntax parser supports now brackets as well.
                   WLA doesn't crash if the project's main file is missing.

v4.5 (15-Jun-2000) Enhanced the documentation.
                   Fixed the reintroduced '.INCDIR ""'-bug.
                   Target file name can now be left away as WLA has now
                     built in default suffices (.gb, .o and .lib).
                   Added lib-directory to the archive.
                   Trying to assemble a compact ROM file will give a warning.

v4.4 (09-Jun-2000) Enhanced the documentation.
                   Fixed "RR A"->"RRCA" and "RL A"->"RLCA" transformations.
                   "EI" and "RST $x" were followed by a "NOP"!
                   Hexadecimal and binary values are supported in
                     arithmetics.
                   Optimized number decoding.

v4.3 (03-Jun-2000) Enhanced error messages.
                   Number decoding routines are now compatible with the
                     new error messaging system.
                   Optimized define and macro handling.
                   Optimized GB-Z80 opcode decoding.
                   Optimized source file parsing.
                   Very long (typos?) tokens don't crash WLA anymore.
                   .INCDIR accepts directory paths which are not terminated
                     with '/' (or '\' under MSDOS).
                   Added support for very simple arithmetics.
                   Fixed "LD HL, SP+x".
                   Removed "EX HL, (SP)".
                   Added OVERWRITE to .SECTION (patch tool function).
                   Added .BACKGROUND (patch tool function).
                   WLA would crash if the whole project was inside one
                     file, and if the file was not found.
                   "=" can be optionally left away from many directives.
                   Added "JP (HL)".

v4.2 (11-Apr-2000) Enhanced documentation.
                   Enhanced error messages.
                   WLA could crash if .REPT wasn't ended with .ENDR.
                   .MACRO and .REPT are now compatible with the new
                     error messaging system.
                   .REPT size is now 2k.

v4.1 (29-Mar-2000) Enhanced documentation.
                   Enhanced error messages.
                   Optimized number conversion.
                   Added ANSI-C -like commenting ("/* ... */").

v4.0 (19-Mar-2000) Optimized data parsing.
                   Added a much better error messaging system as default.
                   Added "-f" -option for fast assembling (uses old error
                     messaging system with few enhancements).
                   "LDH (x), A" and "LDH A, (x)" support was broken due to a
                     typo.
                   WLA accepts now negative values as well.
                   WLA's flags and usage changed totally! Read about the
                     changes in the documentation.
                   Input and output files cannot be the same.
                   Enhanced the documentation.

v3.0 (20-Feb-2000) Added support for "LDH (x), A", "LDH A, (x)",
                     "LD (HLI), A", "LD (HL+), A", "LD A, (HLI)",
                     "LD A, (HL+)", "LD (HLD), A", LD (HL-), A",
                     "LD A, (HLD)" and "LD A, (HL-)".
                   WLA filters away unreferenced local lables in
                     object/library output mode.
                   MSDOS temporary file directory is now the current
                     working directory.
                   Added "-co" -option for compact object file producing.
                   Added "-cl" -option for compact library file producing.
                   Enhanced .SECTION logic (syntax changed!).
                   Added new error messages.
                   Optimized temporary file usage.
                   Optimized directive decoding.
                   Optimized internal pass 2.
                   Optimized .SECTION handling.
                   Optimized .DSB and .DSW.
                   Optimized pass 1.
                   Optimized .INCLUDE.

v2.9 (16-Feb-2000) Section names with spaces crashed WLA.
                   Fixed address bound checking in .BANK.
                   Added more error messages.

v2.8 (15-Feb-2000) Added .EXPORT.
                   All strings starting with "." are treated as directives.
                   Directives are not case sensitive any more.
                   Fixed a broken 0x0D filter (in MSDOS text files).
                   Source file ending into a comment could crash WLA.
                   Optimized .INCLUDE.
                   Libraries can now have references outside.
                   Amiga object/library files were not compatible with
                     PC files.
                   Fixed a bug in object file generator that could crash WLA.

v2.7 (07-Feb-2000) WLA returns 0 when help information is displayed.
                   WLA returns 1 when execution ended in error. -1 produced
                     ugly error messages on Amiga computers.
                   WLA gives now an error when the user tries to produce
                     a library file which has references to outside.
                   Amiga version has version string.
                   Enhanced some error messages.
                   Enhanced documents.

v2.6 (03-Feb-2000) PC relative reference distances inside sections could be
                     more than 127 bytes.

v2.5 (29-Jan-2000) Enhanced documents.
                   Fixed GBC indicator from $C0 to $80.

v2.4 (26-Jan-2000) Fixed a typo "NET NC" to "RET NC".
                   Enhanced some error messages.
                   Added .ROMGBC, .ROMDMG and .ROMSGB.
                   Rewriting memory with equal data doesn't give an error.

v2.3 (23-Jan-2000) Added .SECTION, .ENDS.
                   Added "-l" -option for library file producing.
                   Fixed address calculations a little more.
                   WLA returns -1 when execution ended in error.
                   Local labels are now local to sections or object file.
                   Enhanced the documents.

v2.2 (16-Jan-2000) Added .DSW, .DW, .ENUM and .ENDE.

v2.1 (14-Jan-2000) Added $BE (Pocket Voice) to supported cartridge types.
                   Added "-v" -option for verbose information displaying.
                   Optimized pass 1.
                   Fixed possible errors in address calculations.

v2.0 (12-Jan-2000) Enhanced the documents.
                   Optimized internal pass 2 and directive including.
                   Fixed overflow check (in .ORG).
                   Added "-o" -option for object file producing.
                   Added linker executable "wlalink".
                   Added .INCDIR.

v1.9 (06-Jan-2000) Optimized .INCBIN, .INCLUDE and internal passes
                    1 and 2.

v1.8 (23-Dec-1999) Enhanced the documents.
                   Fixed overflow checker once again. Every bank gained one
                    byte more (total 16384).

v1.7 (04-Dec-1999) Enhanced the documents.
                   Added gb_hardware.i.
                   .INCBIN didn't free buffer memory.
                   Optimized .INCBIN.
                   .INCBIN now caches all the files.
                   Optimized internal passes 1 and 2.
                   Linux version is optimized for 486.

v1.6 (14-Nov-1999) Enhanced the documents.
                   Fixed nintendo_logo.i so it works on a real Game Boy.
                   Fixed complement check calculation to work.
                   Overflow checker thought GB ROM banks were 8KB each!
                    Fixed to 16KB. Ville no baka!
                   Added .REPT.
                   Added .ENDR.

v1.5 (10-Jun-1999) Enhanced the documents.
                   WLA does now one pass to the input data and
                    two passes to the internal data.

v1.4 (25-May-1999) Renamed nintendo_logo.s to nintendo_logo.i.
                   Fixed nintendo_logo.i Wzonka-Lad-compatible.
                   Fixed pass-texts, as WLA does actually one pass,
                    three of the old ones were made to the WLA's internal data.
                   Added one funky new optcode, "DEBUG", which will
                    translate to $ED (unused in GB-Z80). This one will
                    flash the power light when executed on Wzonka-Lad,
                    my Game Boy emulator. Use it only for debugging!

v1.3 (01-Jan-1999) Enhanced the documents.
                   WLA now shows the unused areas of the ROM file after
                    a successful assembly in hexadecimal format.
                   Many WLA directives accepted non-pure values, not anymore.
                   Added .DSB.
                   .DB handles now strings as well.

v1.2 (21-Dec-1998) Enhanced the documents.
                   Added a list ("gb-z80.txt") of the supported GB-Z80 commands
                    to the archive.
                   Free strings don't break the assembler loop anymore.
                   Added .INCBIN.

v1.1 (13-Dec-1998) Enhanced the documents.
                   Removed an unused function.
                   Number input now detects and discards numbers from
                    outside the word boundaries.
                   WLA now shows the unused areas of the ROM file after
                    a successful assembly.
                   Added .IFNDEF.
                   Added .IFDEF.
                   Added .ELSE.
                   Added .ENDIF.
                   Added @@@ to .MACRO.
                   .DB accepted values from outside the byte boundaries.

v1.0 (12-Dec-1998) The first public release.


------------------------------------------------------------------------------
2... WLAB History
------------------------------------------------------------------------------

v1.2 (31-Mar-2003) Made address printing more useful.

v1.1 (04-Sep-2000) Uses now WLA v6.3+ syntax (introduced commas).
                   Accepts now files bigger than 64KB.

v1.0 (23-Aug-2000) The first public release.


------------------------------------------------------------------------------
3... WLAD History
------------------------------------------------------------------------------

v1.3 (21-Oct-2000) String detection works better.

v1.2 (01-Sep-2000) SLOT numbers are handled correctly.
                   Uses ROMBANKS instead of ROMSIZE.
                   String detection works better.

v1.1 (23-Aug-2000) Added flag 'a' to disable address output.

v1.0 (10-Jul-2000) The first public release.


------------------------------------------------------------------------------
4... WLALINK History
------------------------------------------------------------------------------

v5.22 (15-Dec-2025) When calculating _sizeof_* for lables we now take unused
                      output bytes into account.
                    Appended .RAMSECTIONs were still affecting the original
                      RAM bank in -v listing.
                    Use -sE to write EQU symbol file (e.g., for openMSX).
                    Fixed the calculation of Sega Mega Drive ROM checksum.
                    Added -C which doesn't generate errors for duplicate
                      labels or definitions, but only when their values
                      are the same.

v5.21 (19-Nov-2023) WLALINK writes now version 3 WLA symbol files.
                    Symbol files created with -S contain now [sections] and
                      [ramsections] and "wlasymbol true" under [information].
                    If -d is used we don't give a .SECTION discarded message
                      for .SECTIONs that were APPENDTO other .SECTIONs.
                    Added -p (and -SX and -SY) for pausing the linker after
                      a screen full of text has been printed to output.

v5.20 (23-Jun-2023) Added [sectionwriteorder] and [ramsectionwriteorder]
                      to linkfile.
                    Added -pS and -pR that make WLALINK to ignore .SECTION
                      types when writing the .SECTIONs to output, only
                      .SECTION's PRIORITY (and size) will affect the order.
                    Negative definitions have now 8 characters in a symbol
                      file written with -S.
                    By default WLALINK doesn't allow duplicate labels or
                      or .DEFINEs. Use now -c to allow them.

v5.19 (24-Nov-2022) WLALINK turned doubles into ints too early in computing
                      pending calculations on some cases thus losing
                      precision.

v5.18 (02-Oct-2022) Added -v1 and -v2 (shorter verbose levels).
                    Pending calculations that were marked negative inside
                      pending calculations should now work.
                    Pending calculations that contain pending calculations
                      that are defined in other files should work now.
                    Big optimizations that should help linking projects with
                      lots of sections, pending calculations and/or files.

v5.17 (24-Jun-2022) Added SIZE to [sections] and [ramsections].
                    Added -R (file paths inside link file are relative to
                      linkfile's location).
                    WLALINK's summary is now printed to stdout instead of
                      stderr.
                    WLALINK didn't print verbose mode's summary at the end if
                      listfile writing was enabled, but there was no listfile
                      data.
                    Bankheader sections now have listfile data.
                    Sections that were appended to other sections have now
                      listfile data.
                    Included file in the middle of a source file doesn't
                      kill the listfile data before it in the source file
                      any more.
                    Code outside .SECTIONs has now listfile data.
                    Listfiles contain now line number, base (65816 only),
                      bank, slot, PC and offset in addition to hexadecimal
                      bytes.
                    If .SECTION "A" is using "AFTER "B"", .SECTION "A" will
                      now inherit .SECTION "B"'s .BASE as well.
                    We now skip the generated RAM_USAGE_SLOT_* labels when
                      trying to automatically find load address for a CBMPRG.

v5.16 (19-Feb-2022) Added support for WINDOW and BITWINDOW in .SECTION and
                      .RAMSECTION.
                    Fixed multiple memory leaks. Should now work better
                      on an Amiga.
                    On Windows it was possible that -s actually wrote a WLA
                      symbol file instead of a NOCA$H symbol file.
                    Removed warnings that begin with "COMPUTE_STACK: The
                      passed on SLOT/BANK/BASE changed..." as they were kind
                      of pointless.

v5.15 (21-Jun-2021) Fixed listfile writing when there is no listfile data
                      in object files.
                    It's possible to give binary values in [definitions].
                    Pending 32-bit calculations work now in bankheader
                      sections.
                    Errors should print now properly if it happened in a
                      source file with file ID > 255.
                    If a .SECTION/.RAMSECTION "B" is merged with section "A"
                      using APPENDTO keyword, "SECTIONEND_A" label is moved
                      to the end of the new, bigger section "A" and labels
                      "SECTIONEND_B" and "SECTIONSTART_B" are deleted.
                    Duplicate SECTIONEND_* and SECTIONSTART_* labels (for
                      sections with same names) are no longer renamed.
                    Chaining APPENDTO sections works now, rewrote the
                      APPENDTO/AFTER section sorter.
                    WLALINK now creates symbols RAM_USAGE_SLOT_x_BANK_y_START
                      and RAM_USAGE_SLOT_x_BANK_y_END that contain the
                      addresses of the first and last used bytes in RAM
                      slots/banks. Information is calculated using
                      .RAMSECTIONs.
                    -v prints now more information about the RAM/ROM usage.
                    WLALINK writes now version 2 WLA symbol files.
                    Symbol files created with -S (and -A) contain now object
                      file IDs for entries in [source files v2] and
                      [addr-to-line mapping v2].
                    Listfiles contain now information about .MACROs and
                      .REPEATs.

v5.14 (20-Mar-2021) Fixed buggy symbol file name generation.
                    Fixed SMS checksum calculation if .SMSHEADER is not used.
                    Fixed a couple of bugs in listfile generation.
                    Added -D (don't create _sizeof_* definitions).
                    Defines are no longer written into NO$CASH symbol files.

v5.13 (17-Jun-2020) Added CBM PRG header writing (with flags -t and -a).
                    Added support for ORG/ORGA to [ramsections].
                    Added support for [sections] in linkfile.
                    Added support for section type and priority changing
                      to [ramsections] and [sections].
                    Added -bS and -bE (start and end addresses of the
                      program).
                    Added -nS (don't sort the sections).

v5.12 (22-Dec-2019) Relaxed the checks regarding misc bits (e.g., SNES ROM
                      mode, GB checksum...) when loading the object files.
                    Fixed pending, relative 16-bit and 24-bit calculations.

v5.11 (15-Aug-2019) Defines that contain computations that are issued inside
                      libraries are now handled correctly.

v5.10 (21-Jun-2019) Added support for NO$SNES symbol files.
                    -d discards now also SUPERFREE sections.
                    Added support for prioritizing sections.
                    Fixed the absolute 24bit addresses of .RAMSECTION labels.

   ... version history of v5.7 (02-Mar-2008) - v5.10 (28-Apr-2019)
       is missing...

v5.7 (02-Mar-2008) A reference to a non existing anonymous label inside a
                     pending calculation would crash WLALINK.
                   Taking the bank number of an anonymous label inside a
                     pending calculation would return the label's address.
                   128 was the maximum legal distance to an 8bit reference,
                     fixed this to 127. The same range bug was in bank header
                     section calculations as well.
                   All the output when linking goes to stderr (some info went
                     to stdout, making the lines to mix in UltraEdit(?)).

v5.6 (01-Jan-2006) Anonymous labels don't fool the unused section discarder
                     to think that a section is referenced.
                   WLALINK could find anonymous labels that had been
                     inside discarded sections.
                   WLALINK can output WLA symbol files as well (option 'S').
                   Added more safety checks to anonymous label calculations.
                   Symbol file writers handle .BASE correctly.
                   Fixed SMC header writing (by Tobias Pflug).

v5.5 (30-Jul-2004) Added support for hexadecimal input values using the
                     suffix 'h'.

v5.4 (10-May-2004) SUPERFREE sections are now inserted into the output after
                     all FREE and SEMIFREE sections.
                   All sections are sorted by size and placed in the output
                     by starting from the largest section.
                   Added preliminary support for list files.
                   Added support for operators '>' (get the high byte) and
                     '<' (get the low byte).
                   Supported object file format is now "WLAK" and library
                     file format "WLAV".
                   FREE, SEMIFREE and SUPERFREE sections can be aligned.

v5.3 (23-Nov-2003) When finding the match the distances between anonymous
                     labels are now measured using their positions in the
                     output file, not using line numbers in the source files
                     (fixes anonymous labels inside .REPT).
                   Added "CADDR", label for referencing the current address.
                   SMS checksum should now be computed correctly, regardless
                     of the ROM size.
                   Fixed a rare segfault with computation definitions.
                   WLALINK displays better error messages when there is no
                     room for a section.
                   When positioning SUPERFREE sections the only suitable
                     bank candidates are those, which have the same size
                     than the slot of the section.
                   Supported object file format is now "WLAH" and library
                     file format is "WLAT".

v5.2 (06-Jun-2003) Supported object file format is now "WLAG" and library
                     file format is "WLAS".
                   Added support for SNES checksum computing.
                   Added support for SUPERFREE sections.
                   Fixed WLALINK to work with the new SNES/65816 banking
                     selection scheme.
                   Enhanced error messages.

v5.1 (22-Jan-2003) A bug introduced in v5.0 made local labels to fail
                     in some occasions.
                   Added support for longer filenames (> 63 characters).
                   Supported object file format is now "WLAE" and library
                     file format is "WLAR".
                   Object & library file structures weren't initialized
                     completely - could cause a crash if one of the files to
                     be linked was missing.

v5.0 (28-Nov-2002) When discarding unreferenced sections WLALINK will
                     process only FREE and SEMIFREE sections.

v4.9 (28-Apr-2002) When computing SMS ROM checksum WLALINK now writes
                     $4C to $7FFF (32KB checksum, and SMS export).
                   8bit label references are now allowed (zero page labels).

v4.8 (22-Jan-2002) Added support for yet another un-named label (__).

v4.7 (22-Dec-2001) Added support for un-named labels (-, --, +, ++, ...).

v4.6 (31-Aug-2001) It's possible to make value definitions inside the
                     linkfile.

v4.5 (16-Jul-2001) WLALINK wrote SNES ROM info byte into $FFD5 regardless
                     of the ROM mode.
                   Added XOR-operator (~) support to computations.
                   Added support for RAM sections.

v4.4 (30-Jun-2001) For example a reference to ":label_01" will give the
                     label_01's bank number instead of its address.
                   Linkfile's library loader supports now BASE (works
                     like WLA's .BASE).
                   Linkfile parser supports now hexadecimal values.
                   Added support for 16bit relative references.

v4.3 (19-May-2001) Optimized FREE and SEMIFREE section placing.
                   Optimized section data inserting.
                   Supported object file format is now "WLAD" and library
                     file format is "WLAQ".
                   Thanks to WLA simplifications, WLALINK code also
                     experienced small simplifications.
                   OVERWRITE and FORCE sections which overflow from the ROM
                     file don't crash WLALINK any more.
                   Added flag 'd' for unreferenced section discarding.

v4.2 (10-May-2001) Memory overwrite error messages could crash WLALINK
                     (supplied a bad object pointer to message routine).

v4.1 (05-May-2001) A bug was introduced in memory overwrite check
                     optimizations, FREE sections could be written on top
                     of each other.

v4.0 (22-Apr-2001) WLALINK doesn't crash anymore when a modulo/division
                     by zero happens in the stack calculator routines.
                   Added support for 24bit references.
                   Enhanced error messages.

v3.9 (12-Apr-2001) Updated few structures to satisfy the internal changes in
                     the latest WLA.
                   If a FORCE section matches the underlying, written data
                     (other FORCE sections) completely, no error is issued.
                   Added support for unique SECTIONs.

v3.8 (02-Feb-2001) Supported object file format is now "WLAB" for non
                     GB-Z80 systems (adds checksum computing).
                   Due to a typo the bank number of a pending calculation
                     could get corrupted during object file parsing.

v3.7 (08-Oct-2000) Added support for 6510.

v3.6 (07-Oct-2000) Added support for 65816 (24bit values).

v3.5 (24-Sep-2000) Added support for program file output (!GB, flag b).
                   NO$GMB symbol files can also be written (!GB).
                   Fixed few byte size checks.
                   Header and footer sizes are now shown in the verbose
                     mode's result information.

v3.4 (09-Sep-2000) Label duplicate checker didn't handle local labels
                     correctly.
                   Added support for modulo in calculations.
                   Added support for SEMIFREE sections.
                   Computations are now computed internally with higher
                     precision when possible and the result is converted to
                     an integer.

v3.3 (04-Sep-2000) Enhanced error messages.
                   Added support for powers and shifts in calculations.
                   Added support for special ROM bank header sections.
                   Labels' slot and bank numbers inside library files could
                     get corrupted.
                   Optimized label handling.

v3.2 (31-Aug-2000) The supported file formats are only "WLAP", "WLA9" (GB-Z80)
                     and "WLAA" (Z80).
                   Added a fully functional stack calculator engine.
                   Objects with different ROM sizes can be combined, and the
                     result will use the biggest ROM size found as long as
                     the sizes of the ROM banks match.
                   Optimized file parsers.
                   Enhanced error messages.

v3.1 (26-Aug-2000) The supported file formats are only "WLAO", "WLA7" (GB-Z80)
                     and "WLA8" (Z80).
                   Exported definitions were handled incorrectly.
                   Memory overwrite warnings were displayed when fixing
                     relative addresses.

v3.0 (23-Aug-2000) The supported file formats are only "WLAO", "WLA5" (GB-Z80)
                     and "WLA6" (Z80).
                   Rewrote 30% of the code.
                   WLALINK arguments changed!
                   WLALINK needs now a linkfile.

v2.0 (09-Jul-2000) WLALINK outputs now NO$GMB symbolic information
                     files along with a ROM image (flag s).
                   Verbose mode shows data usage percentages (per bank
                     as well).

v1.9 (25-May-2000) Added support for WLA v4.3's .SECTION OVERWRITE.

v1.8 (20-Feb-2000) The supported file formats are only "WLAN" and "WLA4".
                   WLALINK uses now less memory.
                   Enhanced some error messages.

v1.7 (15-Feb-2000) Added support for WLA's .EXPORT.
                   Enhanced some error messages.
                   Optimized ROM file generation.
                   The supported file formats are only "WLAM" and "WLA3".
                   Amiga object/library files were not compatible with
                     PC files.

v1.6 (07-Feb-2000) WLALINK returns 0 when help information is displayed.
                   Amiga version has version string.

v1.5 (03-Feb-2000) PC relative reference distances inside sections could be
                     more than 127 bytes.
                   Enhanced some error messages.

v1.4 (31-Jan-2000) Duplicate labels positioned in different places in Game
                     Boy memory map break the linking loop.
                   Fixed object identifier, verbose mode screwed up the names.
                   Enhanced some error messages.
                   Referencing to a label inside a section more than once
                     screwed up the label's address.

v1.3 (26-Jan-2000) Rewriting memory with equal data doesn't give an error.
                   Enhanced some error messages.

v1.2 (23-Jan-2000) Added support for library files.

v1.1 (14-Jan-2000) Added support for Pocket Voice.
                   Added "-v" -option for verbose information displaying.
                   WLALINK now checks the object file formats.

v1.0 (12-Jan-2000) The first public release.
