Shamus Hammons [Fri, 14 Apr 2017 20:52:31 +0000 (15:52 -0500)]
ELF support for RMAC.
ggn deserves most of the credit for this, as my job was going through
and tossing out the stuff that wasn't needed. ;-) There might be some
ELFish things that still need fixing; time, as usual, will tell.
Graeme Hinchliffe [Tue, 21 Jun 2016 08:01:12 +0000 (09:01 +0100)]
Improved indexed reg error
- Added more helpful Indexing error message
- Added error condition for EQUR Indexing errors
- Updated patch # and copyright year
Shamus Hammons [Tue, 27 Sep 2016 15:46:14 +0000 (10:46 -0500)]
Version bump. :-)
ggn [Tue, 13 Sep 2016 16:48:44 +0000 (19:48 +0300)]
.incbin now uses the same directory sets as .include. Also some small cosmetic fixes.
Shamus Hammons [Thu, 22 Sep 2016 15:53:23 +0000 (10:53 -0500)]
Version bump for last patch. :-)
ggn [Tue, 13 Sep 2016 08:59:38 +0000 (11:59 +0300)]
Fixed bug when expanding macros with comments that have @, \, etc.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
Shamus Hammons [Thu, 22 Sep 2016 15:44:16 +0000 (10:44 -0500)]
Fix for bug #81. Thanks to ggn for the patch!
Shamus Hammons [Tue, 13 Sep 2016 03:27:30 +0000 (22:27 -0500)]
Version bump. :-)
ggn [Wed, 7 Sep 2016 11:18:24 +0000 (14:18 +0300)]
Added .opt directive with similar syntax to command line. Example syntax: '.opt "~all" "+o1"' etc.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
Shamus Hammons [Tue, 13 Sep 2016 02:34:19 +0000 (21:34 -0500)]
Version bump for last commit. ;-)
ggn [Wed, 7 Sep 2016 10:00:55 +0000 (13:00 +0300)]
Removed -w flag, added +o[n], ~o[n] switches to control individual optimisations on/off, as well as +oall, ~oall for all optimisations.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
Shamus Hammons [Tue, 13 Sep 2016 01:58:37 +0000 (20:58 -0500)]
Fix for bug #77. Thanks for ggn for reporting. :-)
Shamus Hammons [Tue, 13 Sep 2016 01:37:51 +0000 (20:37 -0500)]
Fix for bug #78: Thanks to ggn for reporting and supplying the patch.
Bug fix for .w access for alcyon target, added new optimisation that
converts 0(ax) to (ax).
Shamus Hammons [Tue, 13 Sep 2016 00:16:03 +0000 (19:16 -0500)]
Small fix to make compilation C99 compliant.
This probably won't help on Visual Studio, unless you can tell the build
system there to use a C99 compliant compiler (MS's track record in this
area is abysmal).
Shamus Hammons [Sun, 15 May 2016 23:25:37 +0000 (18:25 -0500)]
Fix for bug #67 (thanks to ggn for reporting!).
Turns out the tokenizer would not properly tokenize DOTx constructs
unless they were hanging off the end of a symbol. This should fix that
once and for all.
Shamus Hammons [Mon, 9 May 2016 18:13:41 +0000 (13:13 -0500)]
Possible fix for bug #72 (no warning on unclosed .ifs).
Shamus Hammons [Sun, 8 May 2016 13:56:55 +0000 (08:56 -0500)]
Version bump. Thanks to ggn for the report & patch (bug #73)!
ggn [Wed, 27 Apr 2016 19:58:42 +0000 (22:58 +0300)]
When selecting ST .o output (-fa), don't write a .prg but an object file instead.
Shamus Hammons [Fri, 15 Apr 2016 14:56:45 +0000 (09:56 -0500)]
Fix for bug #71 (thanks to ggn for reporting! :-)
Shamus Hammons [Thu, 7 Jan 2016 13:35:17 +0000 (07:35 -0600)]
Hopefully final fix for bug #68 (crash on ARM).
Shamus Hammons [Thu, 24 Dec 2015 20:36:53 +0000 (14:36 -0600)]
Possible fix for bug #68 (crash when running on ARM).
Shamus Hammons [Mon, 7 Dec 2015 03:29:06 +0000 (21:29 -0600)]
Removed naked 'abs' (sans leading dot) from mntab.
The problem with having .abs *and* abs (as an alternate) is that the
naked abs conflicts with the RISC asm instruction ABS R#. There's no
good way to detect this ahead time, and it's a bad idea to do so anyway.
So don't do it!
Shamus Hammons [Tue, 17 Nov 2015 20:01:56 +0000 (14:01 -0600)]
Bump version #.
ggn [Tue, 17 Nov 2015 16:59:56 +0000 (18:59 +0200)]
.error and .warn directives implemented.
ggn [Tue, 17 Nov 2015 17:05:00 +0000 (19:05 +0200)]
Moved some messages from -v to -x
ggn [Tue, 17 Nov 2015 17:19:39 +0000 (19:19 +0200)]
The rest of the .PRGFLAGS patch. Sorry!
Shamus Hammons [Tue, 17 Nov 2015 13:42:32 +0000 (07:42 -0600)]
Bump version #.
ggn [Mon, 16 Nov 2015 11:53:02 +0000 (13:53 +0200)]
Extended switch -s to also warn about automatically applied 68000 optimisations. Added switch -w to turn off all automatic optimisations.
ggn [Mon, 16 Nov 2015 11:54:03 +0000 (13:54 +0200)]
TEXT/DATA/BSS sizes printed at the end of assembly only when -v is invoked.
ggn [Mon, 16 Nov 2015 11:49:53 +0000 (13:49 +0200)]
ASCII art logo, because why not.
ggn [Mon, 16 Nov 2015 11:39:50 +0000 (13:39 +0200)]
Fix for assembly getting stuck in an infinite loop when a INCLUDEd file inside an if/endif statement contains unbalanced if/endifs.
Shamus Hammons [Sat, 14 Nov 2015 21:24:43 +0000 (15:24 -0600)]
Bump version #, also create "docs" subdir for documentation. :-)
ggn [Sat, 14 Nov 2015 17:57:21 +0000 (19:57 +0200)]
New directive: PRGFLAGS sets GEMDOS PRG flags (such as Fastload, etc)
Shamus Hammons [Sat, 14 Nov 2015 16:42:53 +0000 (10:42 -0600)]
Bump version #.
ggn [Fri, 13 Nov 2015 08:27:46 +0000 (10:27 +0200)]
Fix for initial plus in expression throwing a "bad expression error"
ggn [Wed, 11 Nov 2015 13:43:34 +0000 (15:43 +0200)]
Fix segfaulting when building .prg target on linux and cygwin.
Shamus Hammons [Wed, 11 Nov 2015 03:44:44 +0000 (21:44 -0600)]
Tentative fix for bug #55. Thanks to ggn for reporting!
Shamus Hammons [Wed, 11 Nov 2015 02:42:11 +0000 (20:42 -0600)]
Bump version #.
ggn [Tue, 10 Nov 2015 20:46:53 +0000 (22:46 +0200)]
New keyword ^^ABSCOUNT counts bytes defined in current .abs section.
ggn [Tue, 10 Nov 2015 09:06:38 +0000 (11:06 +0200)]
Re-introduced .abs mnemonic (it was renamed to .offset for some reason) like madmac.
Shamus Hammons [Tue, 10 Nov 2015 19:38:30 +0000 (13:38 -0600)]
Fix for bug where ^^FOO mnemonics were parsed incorrectly.
Shamus Hammons [Tue, 10 Nov 2015 00:35:20 +0000 (18:35 -0600)]
Complete MADMAC manuals. Thanks to ggn for contributing this!
ggn [Mon, 9 Nov 2015 21:02:48 +0000 (23:02 +0200)]
Change extension to .prg when invoked with -p.
Shamus Hammons [Tue, 10 Nov 2015 00:30:16 +0000 (18:30 -0600)]
Bumping the patch level for the last commit. :-P
ggn [Mon, 9 Nov 2015 21:03:47 +0000 (23:03 +0200)]
Fix for bug #51. Apparently 10 tokens weren't enough for modern programming!
Shamus Hammons [Sun, 1 Nov 2015 15:30:22 +0000 (09:30 -0600)]
Removed generated file from project.
Shamus Hammons [Sun, 1 Nov 2015 15:14:52 +0000 (09:14 -0600)]
Fix for bug #46 (thanks to ggn for reporting!).
Shamus Hammons [Sun, 1 Nov 2015 14:53:46 +0000 (08:53 -0600)]
Bump version # again. :-)
ggn [Sat, 31 Oct 2015 13:36:34 +0000 (15:36 +0200)]
Force -fa when user passes -p.
Shamus Hammons [Sun, 1 Nov 2015 14:44:51 +0000 (08:44 -0600)]
Bump version number.
ggn [Sat, 31 Oct 2015 11:02:40 +0000 (13:02 +0200)]
A few compiler warnings pacified.
ggn [Fri, 30 Oct 2015 17:30:21 +0000 (19:30 +0200)]
Fix for bug that happened when a called macro inside an if/endif block would have a syntax error: the assembler would get stuck in an infinite loop (Error: mismatched .endif)
ggn [Thu, 22 Oct 2015 16:41:58 +0000 (19:41 +0300)]
Fixed compilation on MinGW.
Shamus Hammons [Wed, 7 Oct 2015 16:53:50 +0000 (11:53 -0500)]
Fix NULL pointer dereference bug.
Shamus Hammons [Wed, 7 Oct 2015 15:44:48 +0000 (10:44 -0500)]
Fix for bug #34 (equated reg in 1st operand of MOVEI).
Thanks to Linkovitch for reporting!
Shamus Hammons [Wed, 7 Oct 2015 15:21:55 +0000 (10:21 -0500)]
Fix for bug #33. Thanks to Linkovitch for reporting!
Shamus Hammons [Wed, 7 Oct 2015 03:23:59 +0000 (22:23 -0500)]
Fixed WARNING macro to be system agnostic, added doco for -p switch.
ggn [Sun, 30 Aug 2015 18:12:34 +0000 (21:12 +0300)]
Visual Studio 2015 project files. A few warnings about unused variables fixed.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
Shamus Hammons [Wed, 7 Oct 2015 02:09:15 +0000 (21:09 -0500)]
Applied patches from ggn for bugs #38, 40, & 41. Thanks!
Shamus Hammons [Wed, 4 Mar 2015 03:12:13 +0000 (21:12 -0600)]
Fix for incorrect PACK/UNPACK generation. Thanks to A. Seed for reporting.
Shamus Hammons [Thu, 19 Feb 2015 16:04:29 +0000 (10:04 -0600)]
Fix for bad division in expressions. Thanks to A. Seed for reporting!
Shamus Hammons [Thu, 19 Feb 2015 14:56:14 +0000 (08:56 -0600)]
Fix for "*" getting bad section attributes, reported by A. Seed.
Shamus Hammons [Sun, 1 Feb 2015 03:16:15 +0000 (21:16 -0600)]
Removed spurious printf.
Shamus Hammons [Sun, 1 Feb 2015 02:49:38 +0000 (20:49 -0600)]
Fixed a nasty bug that dropped symbols that shouldn't have been.
This stemmed from the fact that EQUR symbols somehow made it on to the
symbol declaration list. If such symbol was later .equrundef'd, it would
find it's way back onto the the sdecl list *twice*, with the result
that any symbols that came after it would be summarily discarded into
the ether. Really, really bad mojo.
Shamus Hammons [Fri, 16 Jan 2015 17:16:33 +0000 (11:16 -0600)]
Misc. whitespace cleanups, removal of unneeded code.
Shamus Hammons [Fri, 16 Jan 2015 14:24:24 +0000 (08:24 -0600)]
Fix for spurious 'undefined register equate' error.
Shamus Hammons [Tue, 13 Jan 2015 17:06:11 +0000 (11:06 -0600)]
Fixed bug with -l switch.
Turns out that the tokenClass buffer was too small, leading the eval()
function to dip into random memory. *facepalm*
Shamus Hammons [Fri, 14 Nov 2014 04:26:00 +0000 (22:26 -0600)]
Fix for bug #29.
Whoever put this stuff together made a HUGE mistake in its alignment
pseudo-ops. Basically, before this fix, alignment directives in a RISC
section had absolutely NO guarantees of efficacy. This is what happens
when you bodge things together without extensive testing! Note that if
you had some RISC code that you had to wave a dead chicken at to get it
to work, it will probably not work any longer as the assembler will now
do what you tell it to. ;-)
This is a big enough change that it merits a minor version bump; we're
now at 1.3.0. :-)
Shamus Hammons [Sat, 17 May 2014 20:56:15 +0000 (15:56 -0500)]
Fixed word reversed fixup problem.
For some reason, there was code in several places that marked fixups/symbols
as belonging to a RISC section when it was clearly not the case. As a result,
it caused serious problems by reversing words in 68K sections just because a
symbol had been seen in a MOVEI # statement in a RISC section. Probably not
the last nasty surprise in this pile of spaghetti. :-/
Shamus Hammons [Fri, 14 Mar 2014 15:48:53 +0000 (10:48 -0500)]
Fixed ignored label on rept line (bug #18)
Shamus Hammons [Fri, 14 Mar 2014 14:05:35 +0000 (09:05 -0500)]
Fixed ignored last line with no EOL bug. (bug #19)
Shamus Hammons [Wed, 26 Feb 2014 14:30:26 +0000 (08:30 -0600)]
FOR GREAT JUSTICE
Shamus Hammons [Sun, 23 Feb 2014 03:46:01 +0000 (21:46 -0600)]
Fix for extraneous newlines in .print directive.
Shamus Hammons [Mon, 13 Jan 2014 03:44:04 +0000 (21:44 -0600)]
Added "legacy mode" to assembler, which is on by default.
Apparently MAC did fixups for programmers who forgot that they couldn't
put a MOVEI immediately after a JUMP or JR, so we do the same to keep
legacy code assembling (though we may flip the default to OFF at some
time in the future :-P). If you don't like the assembler doing stuff like
that behind your back, you can tell it not to by adding the -n switch to
your command line.
There are lots of other cases that the user should be warned about with
RISC code; these will be added in future commits. :-)
Shamus Hammons [Sat, 9 Nov 2013 15:01:57 +0000 (09:01 -0600)]
Fixed subtle bug in expr().
Basically, expr() was looking at the token following the one it was
looking at and bypassing the longer parse path if it found an EOL token
there. Problem is, some tokens have follow on values and so can be
considered compound tokens. In this case, the EOL token codes to 101,
having a constant with a value of 101 will not evaluate correctly in
this case as the CONST token is a compound token.
The short of this is that making assumptions is BAD! Don't do it! It
WILL come around to bite you in the ass eventually, in the form of
subtle bugs that are difficult to chase down. Assume nothing!
Shamus Hammons [Fri, 13 Sep 2013 02:59:10 +0000 (21:59 -0500)]
Fixed assembler not complaining when using RISC regs in 68K mode.
Shamus Hammons [Thu, 12 Sep 2013 15:00:35 +0000 (10:00 -0500)]
Forgot minor release number bump. :-P
Shamus Hammons [Thu, 12 Sep 2013 14:44:40 +0000 (09:44 -0500)]
Fixed segfault on encountering unexpected register in RISC section.
Shamus Hammons [Sat, 30 Mar 2013 22:42:41 +0000 (17:42 -0500)]
Added deprecated keywords JPAD/NOJPAD for legacy code. :-)
Shamus Hammons [Tue, 5 Mar 2013 17:59:07 +0000 (11:59 -0600)]
Fix for last broken commit. Sorry about that!
Shamus Hammons [Tue, 5 Mar 2013 17:47:22 +0000 (11:47 -0600)]
More fixups to remove warnings, removal of more cruft.
Shamus Hammons [Mon, 4 Mar 2013 13:36:09 +0000 (07:36 -0600)]
Various code cleanups, mainly to do with RISC assembly.
Shamus Hammons [Sat, 2 Mar 2013 20:22:33 +0000 (14:22 -0600)]
Fix silly mask bugs, added check for use of undefined register equates.
Shamus Hammons [Wed, 27 Feb 2013 14:44:33 +0000 (08:44 -0600)]
Fix for slow .incbin performance.
Shamus Hammons [Sat, 16 Feb 2013 03:27:29 +0000 (21:27 -0600)]
Fixed subtle bug in section marking code.
Thanks to Linkvitch for helping find this one! Also, found and removed
some more 'GPU in Main' cruft hiding out in sect.c. Gone!
Shamus Hammons [Thu, 14 Feb 2013 19:23:45 +0000 (13:23 -0600)]
Removing cruft...
Shamus Hammons [Thu, 14 Feb 2013 19:22:54 +0000 (13:22 -0600)]
Added optimization flags to makefile (how long was THAT missing?)
Shamus Hammons [Thu, 14 Feb 2013 00:49:17 +0000 (18:49 -0600)]
Added win32 cross-compilation script.
Shamus Hammons [Wed, 13 Feb 2013 18:52:49 +0000 (12:52 -0600)]
Forgot to bump patch level :-P
Shamus Hammons [Wed, 13 Feb 2013 18:51:43 +0000 (12:51 -0600)]
Added new .cstruct construct. Thanks to GroovyBee for the suggestion!
Shamus Hammons [Wed, 13 Feb 2013 03:01:34 +0000 (21:01 -0600)]
Fixed regression in RISC JR cc, <label> handling.
Shamus Hammons [Wed, 13 Feb 2013 02:14:47 +0000 (20:14 -0600)]
Fixed .cargs problem, more code cleanup/fixup
Thanks to GroovyBee for reporting the .cargs problem! Also, pretty much
all of the remaining cruft coming from the misguided "GPU in Main" cult
has been removed. Never do in an assembler what you can do with either
macros or a good preprocessor!
Shamus Hammons [Tue, 12 Feb 2013 18:32:56 +0000 (12:32 -0600)]
First stab at removing cruft.
Removing all automatic code munging in the background by the RISC
compiler, including GPU in main idiocy. This means there are no more
built-in macros either. If you really needed this functionality, you can
put macros in your source code to do it. It doesn't belong in the guts
of the assembler.
Shamus Hammons [Tue, 12 Feb 2013 14:30:29 +0000 (08:30 -0600)]
Bumped object size from 4MB to 6MB (ggn).
Shamus Hammons [Sun, 3 Feb 2013 22:44:40 +0000 (16:44 -0600)]
Forgot to bump patch level on version.h :-P
Shamus Hammons [Sun, 3 Feb 2013 17:59:21 +0000 (11:59 -0600)]
Fixed missing error reporting on fixup stage.
Shamus Hammons [Sun, 3 Feb 2013 16:39:51 +0000 (10:39 -0600)]
Fixed error reporting wrong file, off-by-one error in file record system.
Shamus Hammons [Sat, 2 Feb 2013 21:04:59 +0000 (15:04 -0600)]
Fixed compiler not checking for INCBIN in BSS sections.
Apparently the compiler did not care if an INCBIN happened in a BSS
section or not. Now the compiler cares and gives an error if you try to
do this terrible, terrible thing. :-D
Shamus Hammons [Mon, 26 Nov 2012 04:49:46 +0000 (22:49 -0600)]
Fixed problem with nested MACROs.
While the assembler is in better shape vis-a-vis 64-bitness, there's
still a long way to go towards refactoring the thing to remove all
the problems it has with crufty data structures, and I'm sure there's
still bugs left in things like the .rept directive.
Shamus Hammons [Sat, 24 Nov 2012 20:00:29 +0000 (14:00 -0600)]
Small fix for FU_JR fixups.