Commit Graph

32 Commits

Author SHA1 Message Date
ggn 721ff28e66 Expand \~ in .REPTs to unique label names as in macros. (issue #75) 2021-08-20 09:59:09 -05:00
Shamus Hammons cbc8347d4f Update to the name (don't ask), and copyright dates. Now at v2.1.0. 2021-03-07 16:43:25 -06:00
Shamus Hammons ba8121d864 Fix for bug #51. Now at v2.0.22.
We bumped the # of tokens in the TOKENSTREAM structure from 32 to 64,
but also added some logic to the macro invocation code to check if we
break the limits and thus don't crash.  Will 64 be enough?  My crystal
ball is cloudy ATM...  :-P
2020-09-28 21:41:40 -05:00
Shamus Hammons 4205233c83 EOY minor update. 2020-01-03 09:25:26 -06:00
Shamus Hammons 29fa5dcf50 The deed has been accomplished.
As far as I can tell, there should be no more regressions, but that's
no guarantee of anything.  Assuming no more are found, this should go
out as version 2.0.0.  :-D
2019-08-07 18:24:52 -05:00
Shamus Hammons bdbf34766f Added in DSP fixups to sect.c, misc. fixes for 6502 assembler. 2019-08-06 10:16:20 -05:00
Shamus Hammons 9153334781 Partial fix for bug #108 (Fixup cleanups).
RMAC has needed a struct for fixups for some time, and now it has one.
All of the credit for pushing (and patching!) in that direction goes to
ggn; blame for the way it's implemented goes to me. There's still room
for improvement; but for now, this should leave us in much better shape.
Now at v1.12.0.
2018-02-09 23:08:47 -06:00
ggn c2caacfdc8 Modified IMACRO and IREPT to store line numbers during definition - error now correctly prints source line number 2017-11-29 13:58:33 -06:00
Shamus Hammons eace4e1b29 Roll back TOKENPTR changes and most of the .u32 changes weren't needed.
The last commit had gone a bit overboard with the 32 vs 64 bit token
changes; this has been rectified. There's still a ways to go with the
floating point code, but this should be stable for now. Version now at
1.10.1.
2017-11-29 07:57:58 -06:00
Shamus Hammons f3c7d186a1 Fixes for last commit; version is now 1.10.0.
The float changes will need some going over to ensure that we don't end
up with what we had when pointers were shoved into the token stream
willy-nilly.
2017-11-21 07:54:55 -06:00
ggn 582df8950c Added floating point support to expression evaluator, introduced FLOAT token, fixup FU_ equates, fixed a load of casting warnings that (some) led to codegen bugs. 2017-11-18 09:54:04 -06:00
Shamus Hammons ff8188b7e2 Add support for 64-bit evaluations.
Version bump to 1.9.0. Right now the only thing that supports it is
dc.d; now that the infrastructure supports it, anything else that needs
64-bit support (such as FPUs and the like) can be done very easily now.
2017-10-08 08:40:02 -05:00
Shamus Hammons cfd001aea6 Fix for section alignment values in ELF objects.
Thanks to SainT for the patch. :-)
2017-08-29 12:20:17 -05:00
Shamus Hammons f7f625cf6c Fix for bug #101 (bad macro handling).
Just when you thought it was safe to write macros with constants, up
pops a condition you thought was dead and buried yet lurches inexorably
towards your code and causes it to segfault. As it turns out, it was
bad token stream parsing that caused this, with a constant masquerading
as a STRING token being the particular mischief maker. The code that
was in place was an awful mess of horrible garbage code that wasn't
even being used anymore--so that crap is gone, and replaced with
something more (I hope) sane and maintainable. I think that the code
that was there survived purging for so long because nobody really
understood it; now that I understand it, I can't believe that it was
written in the first place (to be fair, some of it was patching done by
me, though the bulk of awfulness didn't come from that code). Onward
and upward...
2017-07-19 23:22:01 -05:00
Shamus Hammons c9541a9d4f Fixed IREPT blocks to not corrupt memory on 64-bit hosts. 2017-07-19 15:27:06 -05:00
Shamus Hammons c3bb316d42 Minor code cleanups. 2017-06-23 19:58:41 -05:00
Shamus Hammons 96a5cd6957 Fixed bad char reporting, revamp of the error/warning system.
Somehow I put a unicode character in my assembly source and RMAC then
barfed up an internal error #2. Chasing this down, I finally determined
that the debug traces weren't lying to me and the input file had a
problem. However, RMAC wasn't reporting the illegal character correctly
either, so that was fixed (who knew that gcc was silently killing bit 7
of chars now?). I also realized that having five separate functions for
reporting errors (and the cruft of using those crippled things) was just
a wee bit insane, so now we have proper variable argument error and
warning functions (they can be used just like a printf). Enjoy!
2017-06-23 19:03:24 -05:00
ggn 03dd34951a (c) message in header files and doc mini adjustments. 2017-05-08 09:15:22 -05:00
Shamus Hammons 60f204cb9e 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.
2017-04-14 15:52:31 -05:00
ggn 689d9bc6a5 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) 2015-11-01 08:24:05 -06:00
Shamus Hammons f4e9bcd703 Fixed WARNING macro to be system agnostic, added doco for -p switch. 2015-10-06 22:23:59 -05:00
ggn c74d8ef6f1 Visual Studio 2015 project files. A few warnings about unused variables fixed.
Signed-off-by: Shamus Hammons <jlhamm@acm.org>
2015-10-06 21:10:42 -05:00
Shamus Hammons d0c28c349d Fix for "*" getting bad section attributes, reported by A. Seed. 2015-02-19 08:56:14 -06:00
Shamus Hammons 3f2bccb78a Misc. whitespace cleanups, removal of unneeded code. 2015-01-16 11:16:33 -06:00
Shamus Hammons b10167d557 More fixups to remove warnings, removal of more cruft. 2013-03-05 11:47:22 -06:00
Shamus Hammons 11a78647f7 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!
2013-02-12 20:14:47 -06:00
Shamus Hammons 295836a173 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.
2013-02-12 12:32:56 -06:00
Shamus Hammons daf2f61a36 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.
2012-11-25 22:49:46 -06:00
Shamus Hammons d16b8ea0ee First working 64-bit version of RMAC
There's still lots to do, like refactoring a bunch of stuff that's
still basically wrong, but that's par for the course. There may be
more things that need fixing (like the .rept function, for example).
2012-11-24 13:48:52 -06:00
Shamus Hammons 49cce96fba Code cleanup and prepartion for 64-bit host fixes
I removed a few functions that are better off being handled by the
native system libraries (malloc for amem, strdup for nstring). Also,
cleaned up files in preparation for removing pointers from the token
stream--which is preventing RMAC from working on 64-bit systems.
2012-11-23 10:39:09 -06:00
James Hammons 75cce0d9eb Various cleanups to fix compiler warnings. 2011-12-26 23:54:45 +00:00
James Hammons d28f432296 Initial commit. 2011-12-26 22:50:27 +00:00