ggn [Fri, 5 May 2017 14:51:11 +0000 (17:51 +0300)]
Initial commit for 68020/30/40/60/68881/68882/68851 support.
Shamus Hammons [Fri, 5 May 2017 13:33:31 +0000 (08:33 -0500)]
Version bump for last commit. :-)
ggn [Thu, 4 May 2017 16:53:48 +0000 (19:53 +0300)]
Fix for bug where in alcyon mode the tokenizer would read past the end of the line.
Shamus Hammons [Tue, 2 May 2017 18:02:47 +0000 (13:02 -0500)]
Fix for bug #77 (ds with negative numbers).
Last time it didn't work because our target number was an unsigned int
(as opposed to a signed int). So now that we know, we have a proper
check for it now.
Shamus Hammons [Thu, 27 Apr 2017 13:14:08 +0000 (08:14 -0500)]
Version bump for last commits. :-)
ggn [Thu, 27 Apr 2017 07:51:48 +0000 (10:51 +0300)]
Doc fixes/updates.
ggn [Thu, 27 Apr 2017 07:24:37 +0000 (10:24 +0300)]
Added -l* to enable listing without pagination. Fix bug where a wrong malloc would lead to explosions with listing enabled.
Shamus Hammons [Tue, 25 Apr 2017 03:30:42 +0000 (22:30 -0500)]
Fixed code to remove warnings. Inching closer towards zero. :-)
Shamus Hammons [Fri, 21 Apr 2017 21:36:06 +0000 (16:36 -0500)]
Minor tweaking from last round of patching, version bump. :-)
ggn [Fri, 21 Apr 2017 19:58:11 +0000 (22:58 +0300)]
Much better implementation for A8 strings - introduced a new token called STRINGA8. Also, all this time we forgot to update mntab :).
Shamus Hammons [Fri, 21 Apr 2017 19:31:10 +0000 (14:31 -0500)]
Possible fix for bug #92.
Shamus Hammons [Fri, 21 Apr 2017 18:59:50 +0000 (13:59 -0500)]
Version bump for last commit. ;-)
ggn [Fri, 21 Apr 2017 11:49:33 +0000 (14:49 +0300)]
6502 mode: fix clearing of its RAM space with each .6502 invocation. Also fixed chptr resetting with each .6502 invocation. Also in this mode: dc.b strings with single quotes will get encoded to Atari 800 internal encoding (hardcoded mode for now, can be extended).
Shamus Hammons [Thu, 20 Apr 2017 21:09:14 +0000 (16:09 -0500)]
Tweaks to new 6502 assembler (ggn), added dependency info for makefile.
Shamus Hammons [Thu, 20 Apr 2017 20:41:10 +0000 (15:41 -0500)]
Add missing files. I hate when that happens! >:-U
Shamus Hammons [Thu, 20 Apr 2017 19:29:31 +0000 (14:29 -0500)]
Code cleanup, version bump for last commit. :-)
ggn [Wed, 19 Apr 2017 16:42:26 +0000 (19:42 +0300)]
6502 support added back from original Madmac sources!
- Source fixed to work with current rmac implementation
- Removed ultra kludgy output mode and replaced it with .com/.exe./.xex output module (activated using -fx)
- Added #< and #> to give low and high bytes off an immediate word
- Included tester in "tests" folder.
- Updated docs.
Shamus Hammons [Wed, 19 Apr 2017 02:01:00 +0000 (21:01 -0500)]
Version bump for last patch. :-)
ggn [Tue, 18 Apr 2017 14:22:48 +0000 (17:22 +0300)]
Fix movep size optimising when +o3 is enabled. Show available optimisations in the usage message.
Shamus Hammons [Tue, 18 Apr 2017 14:18:04 +0000 (09:18 -0500)]
Update makefile to fix bug #89.
Shamus Hammons [Sun, 16 Apr 2017 17:53:35 +0000 (12:53 -0500)]
Fix for bug #88 (allow DS in all sections).
Shamus Hammons [Sat, 15 Apr 2017 01:05:08 +0000 (20:05 -0500)]
Version bump for last commit. :-)
ggn [Fri, 14 Apr 2017 21:47:23 +0000 (00:47 +0300)]
Make .incbin and object writing work ok under MinGW.
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