Versions for 6502asm
====================

0.01  2004/07/18

      This is the first version that assembled code. Written in about
      four days; it supports the NMOS 6502 instruction set, labels,
      and various compiler directives.



0.01  2005/03/13  ** GET WELL SOON CHOMP! **

      Added traps for incorrect specification of indirect indexed
      addressing modes, i.e.:
        <op> (<addr>, y)
      & <op> (<addr>), x
      both of which are illegal (the 'x' and 'y' are transposed).

      Provided better 'help' with incorrect relative offsets, it will
      now inform you as to how far off you are.

      Added support for "EQU" alternatives to DCx.

      Begin support for '#' commands.


0.01  2005/07/09

      Calculations in instructions now work, i.e.
        TXA
        STA buffer
        TYA
        STA [buffer + 1]
      Now we can really assemble stuff! :-)

      Now automatically limits byte and word values to the correct
      'size'; no longer says "Assigning value too big for a byte".

      Now doesn't save the entire 64K address map when BASE/TOP are
      not specified.



0.01  2005/10/31 (Happy Halloween; Happy Birthday Sara)

      Fixed bugette with forward references in JMPs being decoded
      as "Zero Page Absolute" addressing!

      Forward references are NOT advised where there is a possibility
      of ambiguity between whether or not Zero Page addressing is
      being used. JMP is okay, things like LDA <label>,X are to be
      treated with care.
      In a case where it cannot be determined (i.e. in the first
      pass), the assembler will ASSUME that Zero Page is NOT being
      used. The potential result(s) if this assumption is incorrect
      should be obvious!
      You'll see a warning...



0.02  2006/05/17

      No code changes.
      Fully rebuilt for pre-release on Amlie's website.



0.03  2007/12/02

      Expanded labels to 47 characters (48 inc. null term.) which
      will remove those bizarre "out of range" errors when forward
      jumping within Amlie's BIOS (it was picking up on another
      label with same first 16 characters someplace else "out of
      range").



0.04  2008/06/11

      Coded in support to the CMOS 65C02 instructions based upon
      the Western Design Center W65C02S datasheet.
      [IMPORTANT: THIS HAS *NOT* BEEN TESTED, I do not have a 65C02
                  disassembler handy; please let me know how you
                  get on!]
      The later indirect zero-page addressing mode has been added,
      plus the newer instructions and also the ones with additional
      addressing modes.

      There are currently no plans to support the MOS 65CE02 core,
      which contains things such as INC/DEC on words, a 'Z' register,
      16 bit stack pointer, base pointers, and other such things.

      Added a pseudo instruction "CPU". The options are:
        Not specified   All instructions are permitted.
        CPU NMOS        Warning given for all CMOS instructions.
        CPU CMOS        All instructions are permitted.

      IMPORTANT: A great amount of 6502asm is designed around the
      principle of three-character opcodes (with special fiddling
      for the EQUx ones). I had planned to support the 65C02
      instructions such as RMB0, RMB1, RMB2... but it turned out
      that doing this broke more than providing these would have
      fixed.
      I will look into this again if the four-character instructions
      are required, however it is possible to use a three-character
      version:
        BBRx -> BRx  (where 'x' is a number from 0 to 7)
        BBSx -> BSx
        RMBx -> RBx
        SMBx -> SBx
      In other words, just omit the middle letter.

      Note: You cannot use an earlier version of the "OPCODES.DAT"
            file ("opcodedata" under RISC OS) because the format has
            been extended. If you customised yours, you will need to
            amend the new version accordingly.

      All of those warnings about not being able to resolve addresses
      in pass one have been disabled. This should make the output a
      lot cleaner.

      Minor tweaks to some of the prompts and messages.

      Note: 6502asm outputs to both the 'stdout' and 'stderr' file
            streams. General output and messages go to 'stdout' while
            warnings and error messages go to 'stderr'.
            This is of specific importance to you if you are wanting
            to call 6502asm and redirect the output to a file, such
            as:
               6502asm test.s65 test.dat > test.txt
            The "test.txt" file won't contain your error messages!
            
            Redirection is simpler under RISC OS (if you can't be
            bothered to look up how many angle brackets mean 'stderr'
            then you can always cheat and *Spool it!). Sorry, I do
            not know at this time how to fully redirect under MS-DOS.
