
	History
	~~~~~~~

    First, thank you for your bug reports, comments and suggestions.

    Thanks to the following people (in no particular order):
    (Sorry, if I have forgotten someone and for misspelled names).

    Gunther Nikl, Veli Nuutimki, Eric Augustine, Laura Mahony,
    Marco Nelissen,  Jarkko Vatjus-Anttila, Yambo.
    ...And all the rest who have send bug reports and comments.

    V2.04
	o <symb>(An,Dx) didn't produced right address mode if <symb> started
	  with a 'z' or 'Z' (Yes, zero suppressed stuff again...argh).
	o Forgot to document data range checking. IMMSIZECHECK toggle.
	o Incbin failed to Close() file if there were errors in assembly.
	o btst dn,(d16,pc) didn't set the offset.
	o XDEF definitions went always to first section (hunk).
	o \*DATE() got option v which produces dd.mm.yy formatted date.


    V2.03
	o One bug fixed from the option file loading, which caused random
	  crash.
	o Bitfields can be defined like "<ea>,{o:w}".
	o Some movec problems disappeared (this one is little mysterious,
	  since I didn't touch the whole movec thing).
	o In ARexx mode, snma could flag some addressing modes as invalid,
	  because certain data structures had spurious values left from
	  the previous assembly.
	o ARexx SET command works again.
	o In (BD,An,Xn) register equates, which started with z, were not
	  recognized.
	o QUIET switch disables now all output to Output().
	o If expression ended to operator, snma read one long from the address
	  which was fetched from the string (one indirection too much). This
	  could cause buserr exception in 68000, depending on value it read.
	o @ character is now normal symbol character, by default.
	  @ character in the beginning of symbol meant octal number specifier.
	  Since SAS/C uses it in the beginning of __regargs function names,
	  its behaviour has been changed. Use OCT commandline toggle to
	  allow octal numbers. There was also a bug, which caused no error
	  telling in @symbol case, when it was actually coded as octal number
	  - unsuccessfully.

    V2.02
	o BSS sections didn't honor mem type bits.
	o Sometimes pc-relative addressing modes allowed small data references.
	  (if small data references were allowed).
	o RTM was coded badly.
	o Forcing Base Displacement to word or long didn't always work.
	o  " macro <macroname>" finally works.

    V2.00
	o (An,Xn) is finally allowed in 68000/010 cpu mode.
	o tst lab was optimized to tst lab(pc) when only 68000/010 cpu was
	  allowed.
	o Power ('^^') operator
	o EOR/XOR ('^') operator ended expression
	o Bitfield offset and width can now be defined after they use.
	o Various small bugs fixed
	o xdef and xref caused crash if operands had illegal chars.
	o Floating point numbers with exponent were incorrect.
	o FTENTOX was coded badly.
	o CNUL, DX and MOVE16 caused snma to guru when generating
	  listing file.
	o When running out of mem, requester allows retry.
	o Memory usage for the end message (shell interface).
	o Pre-defined (commandline & optfile) symbols.
	o Macros with MEXIT and ENDC won't miss the ENDC.
	o Immediate data range checking can be turned off and it works
	  for symbols which are declared after use.
	o Pre-assembled include files, which contain symbol and macro
	  definitions of include files (was in V1.99 but I forget to
	  mention it here). See INCLUDE and Arexx/MAKEGB docs.
	o ADDGB ARexx command lost main source file symbols after one
	  INCLUDE operation. ADDGB is now a bit slower when there are many
	  symbols, but it works as intended.
	o Bitfield stuff was broken in  V1.99.

    V1.99
	o Relative-relative (difference between labels) symbol was set as
	  relative (ext_def) instead of correct ext_abs when xdef'ed.
	o Arexx startup now toggles snma on/off.
	o Some bugs from INCBIN removed.
	o "=" operator didn't produce FALSE (0) if the operands were not
	  equal.
	o '040 stuff. MOVE16, CINV, CPUSH, MMU & FPU commands. Special regs.
	o Object file is no longer deleted if snma is trying to produce
	  executable and there are errors and vice-versa.
	o Floating point equate file equates were screwed up as well as
	  packed type conversion (nobody seems to use this :).
	o CASESEN=OFF caused xdefs to fail.
	o local symbols .l and .w were mixed up with long and word suffix,
	  resulting enforcer hit and garbage expression.
	o Dcb directive works now like ds directive if it has only one
	  parameter.
	o Lists with two successive commas are now handled (like x,,y).
	o Searches include files also from the directory where snma was
	  started from (used to search only from where source file is).

    V1.97
	o Case-insensitive symbol names option.
	o ELSE directive works now.
	o Some new directives (types.i stuff mainly).
	o New expression handler (boolean operators).
	o IFs were tested even if assembly was toggled off.
	o Some errenous expressions - like (A)A -  don't crash anymore.
	o Multilevel optimizing.
	o Macro directive allows macro name as parameter.
	o DX directive (BSS to code or data hunk).
	o Absolute+Relative bug fixed (if in different hunks).
	o divu.l works (argh).
	o LINE DEBUG HUNK
	o Octal numbers.

    V1.95
	o ERRCOLOR keyword in template. Highlight error char.
	o AREXX/REMGB without parameters didn't work (+ fixed one mungwall hit
	  from it).
	o QUIET startup switch disables only startup message. (You can redirect
	  output to the nil: if you don't want any output).
	o SNMAOPT M controls now movem optimizing.(It was in Q flag).
	o End message is now little different in shell mode.
	o OPT directice changed to SNMAOPT to avoid any confusion.
	o fmovecr generated also extended immediate data.
	o Output file naming failed with ".s" extension (ooouups).
	o Behaves little better when running out of memory.
	o LABEL INCBIN <file>, LABEL get wrong value. (Veli Nuutimki).
	o NULL byte in source ends it (to avoid to assemble binaries).
	o SELFCHECK arexx command.
	o Fmove.l #imm,fpcr works.
	o FBxx works now (Eric Augustine).
	o shift/rotate to <ea> generated spurious code.
	o INDEX register scale was allowed in 68000/010.
	o CNOP started to act like maniac if PC was more than 2^16.
	o addq/subq with undefined (at 1st pass) value, caused snma to begin
	  'flying high again' actions. (Gunther Nikl).
	o "'" or '"'  works now (Gunther Nikl).
	o HUNK_RELOC32SHORT (implemented as 1015) to executables.
	o Produces also executables. (Laura Mahoney).
	o OPT A (address mode optimizing) was implemented as OPT E.
	o code_f, data_f, bss_f section types were not recognized.
	o FO, CLRFO, SETFO directives.
	o RS, RSRESET. RSSET directives (Marco Nelissen).
	o 'Old syntax' address mode had problems when base displacement had
	   parenthesis around it.
	o Allows 99 macro parameters plus "<something>" parameters.


    V1.91
	o if any of cmpa operands had symbol which was relative or not defined
	  in pass1, snma had serious problems.
	o If macro called another macro, \@ (unique label for one macro call)
	  was different before the another macro call and after it.
	o Symbols which had only one char were not handled correctly.

    V1.90
	o moveq didn't allow xref'd data.
	o mc68xxx directives
	o Command line additions ([-option])
	o Object code naming now also checks ".s" and ".a" suffix.
	o OBJ filename in template was ignored (oh my).
	o tst with pc-relative was allowed on 68000 mode.
	o ext_ref symbols with same name were written many times, causing
	  larger object file size (not actual code size).
	o xdef symbols were written to the all sections.
	o divu.l wasn't allowed.
	o Equates with relative components are handled better now.
	o Minimal WorkBench support
	o \*VALOF() + other macro 'insert functions'.
	o abslong to pc-relative optimizing.
	o DC generated too much data if the 2nd operand of the
	  previous instruction was one which took some space.
	o REPT/ENDR directives
	o Global symbol table.
	o In cases where reloc was needed didn't create it, when
	  symbol referred to equate which type was relative.
	o Equates with relative components are no longer written to
	  the symbol list.
	o CHDIR (AREXX) command called FreeVec with wrong argument,
	  causing memory loss (no crash, at least in my system).

    V1.70
	o BTST/BCHG/BSET/BCLR  Dn,<ea> set always <ea> as d0. (uups)
	o MOVEP didn't allow zero displacement.
	o ENDC switched assembly on sometimes when it shouldn't.

    V1.68
	o Some minor bug fixes and changes (okay, I forgot them).

    V1.65
	o Address components which started with 'Z' or 'z' were
	  parsed to the totally wrong thing. (Bad one).
	o IFGT did unsigned test, instead of signed.
	o Didn't notice all cases when macro was already defined.
	o Include <devicename:filepath> didn't work.
	o Expression handler didn't catch all undefined symbols.
	o AREXX, SET command.
	o 'TST An' in 020+ mode wasn't allowed.
	o Destination address mode optimizing in move instruction
	      generated spurious opcodes in some cases.
	o Movem->move optimizing.

    V1.60
	o AREXX PORT finally added
	o Several bugs fixed
	o LONGBRA flag to the template
	o ZAn no longer required if An omitted in addressing mode.


    ========================================================================

	Probaply I don't remember all the changes and fixed bugs, but I
	hope all the major ones are here.

	First released version of SNMA is 1.39.
