home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / SNMA / History < prev    next >
Encoding:
Text File  |  2001-09-08  |  11.0 KB  |  262 lines

  1.  
  2.     History
  3.     ~~~~~~~
  4.  
  5.     First, thank you for your bug reports, comments and suggestions.
  6.  
  7.     Thanks to the following people (in no particular order):
  8.     (Sorry, if I have forgotten someone and for misspelled names).
  9.  
  10.     Gunther Nikl, Veli Nuutimäki, Eric Augustine, Laura Mahony,
  11.     Marco Nelissen,  Jarkko Vatjus-Anttila, Yambo.
  12.     ...And all the rest who have send bug reports and comments.
  13.  
  14. MM's thanks: to Sensei for SNMAOptsMUI and to Noxis for testing and ideas.
  15.  
  16.  
  17.     VNEXT
  18. MM's changes:
  19.     o added get and opts directives
  20.     o added SNMA.ced script to distribution
  21.     o rewrote AREXX SET command to make it work ;)
  22.     o added FOPT/T (SNMAOPT F) and JOPT/T (SNMAOPT J) to template,
  23.       SNMAOPTIONS file and AREXX SET command
  24.     o fixed quote parsing routine so things like "dc.b 'blah ''%s''',0"
  25.       now work ok.
  26.     o added long year extension to DATE macro
  27.     o fixed tons of bugs in more complex modes (see FixList.txt)
  28.     o added support for 68060
  29.     o DX directive is supported only when building an exe file
  30.  
  31. $2.109:
  32.     o SNMAOPT caused spurious hunks if certain type of instruction
  33.       were ahead of it.
  34.     o XDEFs went to the hunk where the XDEF directive was, not to the
  35.       hunk where symbol was defined.
  36.     o In RS and FO directives, omitting label is now allowed, which will
  37.       cause RS or FO to set, but no symbol to be defined.
  38.     o In "move Label,<ea>" PC-relative optimizing caused spurious code
  39.       in the certain <ea>'s - for example if <ea> was offset(An).
  40.     o Tst address and cmpi #x,address reloc32 info was missing if
  41.       68000 targetted code and multiple passes in optimization.
  42.     o Lea to addq/subq if possible. Snmaopt F flag controls.
  43.     o Adda/suba to lea if possible. Snmaopt Q flag controls.
  44.     o Adda/suba to addq/subq and new snmaopt flag  F which controls
  45.       optimizations which will change the condition code register result.
  46.       It defaults off.
  47.     o Nested REPTs (not allowed) don't produce nested error messages.
  48.     o Bcc.L is not anymore allowed if 020> cpu is not target.
  49.     o When using case-insensitive symbols, XREF/XDEF symbols were not
  50.       recognized.
  51.     o GETERR ARexx command can return RESULT strings. (UNTESTED !)
  52.     o INFO2 ARexx command which returns RESULT strings (one at time) instead
  53.       of STEM variables like INFO ARexx command.
  54.     o UNDEF directive to undefine symbols.
  55.  
  56.     V2.04
  57.     o <symb>(An,Dx) didn't produced right address mode if <symb> started
  58.       with a 'z' or 'Z' (Yes, zero suppressed stuff again...argh).
  59.     o Forgot to document data range checking. IMMSIZECHECK toggle.
  60.     o Incbin failed to Close() file if there were errors in assembly.
  61.     o btst dn,(d16,pc) didn't set the offset.
  62.     o XDEF definitions went always to first section (hunk).
  63.     o \*DATE() got option v which produces dd.mm.yy formatted date.
  64.  
  65.  
  66.     V2.03
  67.     o One bug fixed from the option file loading, which caused random
  68.       crash.
  69.     o Bitfields can be defined like "<ea>,{o:w}".
  70.     o Some movec problems disappeared (this one is little mysterious,
  71.       since I didn't touch the whole movec thing).
  72.     o In ARexx mode, snma could flag some addressing modes as invalid,
  73.       because certain data structures had spurious values left from
  74.       the previous assembly.
  75.     o ARexx SET command works again.
  76.     o In (BD,An,Xn) register equates, which started with z, were not
  77.       recognized.
  78.     o QUIET switch disables now all output to Output().
  79.     o If expression ended to operator, snma read one long from the address
  80.       which was fetched from the string (one indirection too much). This
  81.       could cause buserr exception in 68000, depending on value it read.
  82.     o @ character is now normal symbol character, by default.
  83.       @ character in the beginning of symbol meant octal number specifier.
  84.       Since SAS/C uses it in the beginning of __regargs function names,
  85.       its behaviour has been changed. Use OCT commandline toggle to
  86.       allow octal numbers. There was also a bug, which caused no error
  87.       telling in @symbol case, when it was actually coded as octal number
  88.       - unsuccessfully.
  89.  
  90.     V2.02
  91.     o BSS sections didn't honor mem type bits.
  92.     o Sometimes pc-relative addressing modes allowed small data references.
  93.       (if small data references were allowed).
  94.     o RTM was coded badly.
  95.     o Forcing Base Displacement to word or long didn't always work.
  96.     o  " macro <macroname>" finally works.
  97.  
  98.     V2.00
  99.     o (An,Xn) is finally allowed in 68000/010 cpu mode.
  100.     o tst lab was optimized to tst lab(pc) when only 68000/010 cpu was
  101.       allowed.
  102.     o Power ('^^') operator
  103.     o EOR/XOR ('^') operator ended expression
  104.     o Bitfield offset and width can now be defined after they use.
  105.     o Various small bugs fixed
  106.     o xdef and xref caused crash if operands had illegal chars.
  107.     o Floating point numbers with exponent were incorrect.
  108.     o FTENTOX was coded badly.
  109.     o CNUL, DX and MOVE16 caused snma to guru when generating
  110.       listing file.
  111.     o When running out of mem, requester allows retry.
  112.     o Memory usage for the end message (shell interface).
  113.     o Pre-defined (commandline & optfile) symbols.
  114.     o Macros with MEXIT and ENDC won't miss the ENDC.
  115.     o Immediate data range checking can be turned off and it works
  116.       for symbols which are declared after use.
  117.     o Pre-assembled include files, which contain symbol and macro
  118.       definitions of include files (was in V1.99 but I forget to
  119.       mention it here). See INCLUDE and Arexx/MAKEGB docs.
  120.     o ADDGB ARexx command lost main source file symbols after one
  121.       INCLUDE operation. ADDGB is now a bit slower when there are many
  122.       symbols, but it works as intended.
  123.     o Bitfield stuff was broken in  V1.99.
  124.  
  125.     V1.99
  126.     o Relative-relative (difference between labels) symbol was set as
  127.       relative (ext_def) instead of correct ext_abs when xdef'ed.
  128.     o Arexx startup now toggles snma on/off.
  129.     o Some bugs from INCBIN removed.
  130.     o "=" operator didn't produce FALSE (0) if the operands were not
  131.       equal.
  132.     o '040 stuff. MOVE16, CINV, CPUSH, MMU & FPU commands. Special regs.
  133.     o Object file is no longer deleted if snma is trying to produce
  134.       executable and there are errors and vice-versa.
  135.     o Floating point equate file equates were screwed up as well as
  136.       packed type conversion (nobody seems to use this :).
  137.     o CASESEN=OFF caused xdefs to fail.
  138.     o local symbols .l and .w were mixed up with long and word suffix,
  139.       resulting enforcer hit and garbage expression.
  140.     o Dcb directive works now like ds directive if it has only one
  141.       parameter.
  142.     o Lists with two successive commas are now handled (like x,,y).
  143.     o Searches include files also from the directory where snma was
  144.       started from (used to search only from where source file is).
  145.  
  146.     V1.97
  147.     o Case-insensitive symbol names option.
  148.     o ELSE directive works now.
  149.     o Some new directives (types.i stuff mainly).
  150.     o New expression handler (boolean operators).
  151.     o IFs were tested even if assembly was toggled off.
  152.     o Some errenous expressions - like (A)A -  don't crash anymore.
  153.     o Multilevel optimizing.
  154.     o Macro directive allows macro name as parameter.
  155.     o DX directive (BSS to code or data hunk).
  156.     o Absolute+Relative bug fixed (if in different hunks).
  157.     o divu.l works (argh).
  158.     o LINE DEBUG HUNK
  159.     o Octal numbers.
  160.  
  161.     V1.95
  162.     o ERRCOLOR keyword in template. Highlight error char.
  163.     o AREXX/REMGB without parameters didn't work (+ fixed one mungwall hit
  164.       from it).
  165.     o QUIET startup switch disables only startup message. (You can redirect
  166.       output to the nil: if you don't want any output).
  167.     o SNMAOPT M controls now movem optimizing.(It was in Q flag).
  168.     o End message is now little different in shell mode.
  169.     o OPT directice changed to SNMAOPT to avoid any confusion.
  170.     o fmovecr generated also extended immediate data.
  171.     o Output file naming failed with ".s" extension (ooouups).
  172.     o Behaves little better when running out of memory.
  173.     o LABEL INCBIN <file>, LABEL get wrong value. (Veli Nuutimäki).
  174.     o NULL byte in source ends it (to avoid to assemble binaries).
  175.     o SELFCHECK arexx command.
  176.     o Fmove.l #imm,fpcr works.
  177.     o FBxx works now (Eric Augustine).
  178.     o shift/rotate to <ea> generated spurious code.
  179.     o INDEX register scale was allowed in 68000/010.
  180.     o CNOP started to act like maniac if PC was more than 2^16.
  181.     o addq/subq with undefined (at 1st pass) value, caused snma to begin
  182.       'flying high again' actions. (Gunther Nikl).
  183.     o "'" or '"'  works now (Gunther Nikl).
  184.     o HUNK_RELOC32SHORT (implemented as 1015) to executables.
  185.     o Produces also executables. (Laura Mahoney).
  186.     o OPT A (address mode optimizing) was implemented as OPT E.
  187.     o code_f, data_f, bss_f section types were not recognized.
  188.     o FO, CLRFO, SETFO directives.
  189.     o RS, RSRESET. RSSET directives (Marco Nelissen).
  190.     o 'Old syntax' address mode had problems when base displacement had
  191.        parenthesis around it.
  192.     o Allows 99 macro parameters plus "<something>" parameters.
  193.  
  194.  
  195.     V1.91
  196.     o if any of cmpa operands had symbol which was relative or not defined
  197.       in pass1, snma had serious problems.
  198.     o If macro called another macro, \@ (unique label for one macro call)
  199.       was different before the another macro call and after it.
  200.     o Symbols which had only one char were not handled correctly.
  201.  
  202.     V1.90
  203.     o moveq didn't allow xref'd data.
  204.     o mc68xxx directives
  205.     o Command line additions ([-option])
  206.     o Object code naming now also checks ".s" and ".a" suffix.
  207.     o OBJ filename in template was ignored (oh my).
  208.     o tst with pc-relative was allowed on 68000 mode.
  209.     o ext_ref symbols with same name were written many times, causing
  210.       larger object file size (not actual code size).
  211.     o xdef symbols were written to the all sections.
  212.     o divu.l wasn't allowed.
  213.     o Equates with relative components are handled better now.
  214.     o Minimal WorkBench support
  215.     o \*VALOF() + other macro 'insert functions'.
  216.     o abslong to pc-relative optimizing.
  217.     o DC generated too much data if the 2nd operand of the
  218.       previous instruction was one which took some space.
  219.     o REPT/ENDR directives
  220.     o Global symbol table.
  221.     o In cases where reloc was needed didn't create it, when
  222.       symbol referred to equate which type was relative.
  223.     o Equates with relative components are no longer written to
  224.       the symbol list.
  225.     o CHDIR (AREXX) command called FreeVec with wrong argument,
  226.       causing memory loss (no crash, at least in my system).
  227.  
  228.     V1.70
  229.     o BTST/BCHG/BSET/BCLR  Dn,<ea> set always <ea> as d0. (uups)
  230.     o MOVEP didn't allow zero displacement.
  231.     o ENDC switched assembly on sometimes when it shouldn't.
  232.  
  233.     V1.68
  234.     o Some minor bug fixes and changes (okay, I forgot them).
  235.  
  236.     V1.65
  237.     o Address components which started with 'Z' or 'z' were
  238.       parsed to the totally wrong thing. (Bad one).
  239.     o IFGT did unsigned test, instead of signed.
  240.     o Didn't notice all cases when macro was already defined.
  241.     o Include <devicename:filepath> didn't work.
  242.     o Expression handler didn't catch all undefined symbols.
  243.     o AREXX, SET command.
  244.     o 'TST An' in 020+ mode wasn't allowed.
  245.     o Destination address mode optimizing in move instruction
  246.           generated spurious opcodes in some cases.
  247.     o Movem->move optimizing.
  248.  
  249.     V1.60
  250.     o AREXX PORT finally added
  251.     o Several bugs fixed
  252.     o LONGBRA flag to the template
  253.     o ZAn no longer required if An omitted in addressing mode.
  254.  
  255.  
  256.     ========================================================================
  257.  
  258.     Probaply I don't remember all the changes and fixed bugs, but I
  259.     hope all the major ones are here.
  260.  
  261.     First released version of SNMA is 1.39.
  262.