home *** CD-ROM | disk | FTP | other *** search
-
- 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 Nuutimäki, Eric Augustine, Laura Mahony,
- Marco Nelissen, Jarkko Vatjus-Anttila, Yambo.
-
- 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 Nuutimäki).
- 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.
-