Commit Graph

87 Commits

Author SHA1 Message Date
Shamus Hammons bdae4ca0d4 Fix bug in d_incbin() (found by ggn). :-) 2023-03-20 13:22:25 -05:00
ggn 41a8ca9921 Fix for #210 - 6502 mode with -fr working 2022-12-21 16:57:02 -06:00
Shamus Hammons c6808e75ed Files missed in the last commit. :-P 2022-12-21 16:37:53 -06:00
ggn 78d0bcae46 Rewrote .incbin's parsing and checks for position and size to increase robustness 2022-12-21 16:12:22 -06:00
ggn 253a4352d6 Introducing .align directive, thanks to Bastian Schick for most of the implementation. Also, updated documentation and Windows script 2022-08-16 12:21:22 -05:00
ggn 7d748dc6e2 Fix for #159: Split register sets according to architecture into different tables so they don't clash with label/symbol names. Modified tokeniser to use different tables when scanning for registers 2022-05-30 14:56:38 -05:00
ggn d21544da60 Removed some dead code, as well as all gpu/dsp regbank check code (not only it was complicated, it also was very incomplete - for example: no bank checks were performed during fixups) 2022-05-30 14:17:59 -05:00
ggn 0d82e7a797 Proposed fix for bug #182 (ds.X doesn't work with relative expressions) 2022-05-30 12:38:30 -05:00
ggn 7170b3e33a Fix for incbin not including the exact requested bytes if offset is non zero 2021-10-30 10:23:26 -05:00
ggn c10417f62b Fix for bug #187 - add more strict checks for .incbin sizes 2021-08-20 10:11:50 -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
ggn 9ecc6f5e49 Fix for bug #167 2020-08-03 12:24:36 -05:00
Shamus Hammons ace0b549a9 Fix a small buglet in the last patch. :-) 2020-07-04 11:35:44 -05:00
Shamus Hammons 1cd9ca4c09 Version bump for last commit. Now at v2.0.16. 2020-07-04 11:30:11 -05:00
ggn 07781922ae Extend incbin to incbin "filename" [,][size][,][offset] 2020-07-04 11:18:53 -05:00
ggn 8f287ee722 Introducing new switch -fr which outputs binaries assembled at a given address. 2020-01-10 09:04:35 -06:00
Shamus Hammons 4205233c83 EOY minor update. 2020-01-03 09:25:26 -06:00
ggn 13baf8e167 Yet another fix for bug #77 - eval is now uint64_t so the check wasn't correct 2020-01-03 09:13:12 -06:00
ggn 2037569179 Added DSM directive for 56001 mode (and not only). Updated doc. Condensed usage message. 2020-01-02 11:57:50 -06:00
Shamus Hammons 412fe3614e Minor code cleanups. 2019-08-09 09:48:31 -05:00
Shamus Hammons 7d364a21bf Added missing d_ds handling, add kludge for 56K fixups.
Also added code to prevent dumping a 6502 section that had nothing in
it, as this is very annoying.
2019-08-08 15:01:34 -05:00
Shamus Hammons 1df40a4f5b One more minor fix: add back FP values for 56001 in d_dc. 2019-08-07 21:15:19 -05: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 30a2086548 Cleanup of codebase and initial commit of 56K assembler by ggn.
There's still a ways to go before this will work properly as we need to
add proper fixup handling and origin (".org") bookkeeping. As it is now,
the addition of all the miscellaneous bits and bobs to support the main
56K assembler are in place but they don't cause any regressions to the
existing assemblers already present in RMAC. Stay tuned for Round 2!
2018-06-23 11:57:21 -05:00
Shamus Hammons 790cd95291 Minor fixups.
Basically give a more meaningful error message in incbin if the filename
is missing, and use the macros already defined in opkw.h instead of
cooking up our own and (possibly) getting out of sync later on down the
road.
2018-06-03 10:01:45 -05:00
Shamus Hammons 261f8d9198 Added Jaguar Object Processor assembler.
Rationale for this and how it works can be found in
docs/note-on-the-op-assembler.txt. Version now at 1.13.0.
2018-02-25 21:39:59 -06: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 0951a3e289 Various small fixes including:
- Corner case in ([bd,An/PC],Xn,od) addressing mode where bd is suppressed
- 68060 specific instructions (68ktab, mach.c)
- PMMU instruction fixes (68ktab, mach.c)
- FMOVEM fixes (amode.c)
- Switching CPU state fixes (direct.c)
- Bitfield instruction fixes (mach.c)
- pflush fixes (68ktab, mach.c)
- Various warnings silenced (mark.c, riscasm.c)
- Formatting ;)
2018-01-23 20:32:40 -06:00
Shamus Hammons 29b32d134b Lots of fixes for floating point handling; version now at 1.11.0.
Some of the following changes are ggn's, and some are mine:

 - When tokenizing floats we need to store them using a double pointer
 - PTR union needed a (double *)
 - Major changes to float depositing in eagen0.c
 - Reverted the changes in expr.c so at least floats are processed by
   expr() and friends
 - SYM svalue needs to be 64 bits
 - When EQUing a float symbol don't chop off the upper 32 bits from eval
 - Added fltpoint.{c,h} in order to properly create IEEE-754 floating
   point and Motorola extended numbers
 - Fixed float evaluations in evexpr()
 - Fixed floating point depositions in direct.c (in d_dc())
 - Upped the BSD image limit in object.c to 8MB for crazy people making
   6MB Jaguar ROMs (will need a real fix at some point)
2018-01-21 08:25:06 -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 c9541a9d4f Fixed IREPT blocks to not corrupt memory on 64-bit hosts. 2017-07-19 15:27:06 -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 5f23454f71 Code cleanup from last patch, also, version bump for same. :-) 2017-05-06 21:07:36 -05:00
ggn 5cd8a4814b Initial commit for 68020/30/40/60/68881/68882/68851 support. 2017-05-06 13:06:57 -05:00
Shamus Hammons a29cbeceea 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.
2017-05-02 13:02:47 -05:00
Shamus Hammons 751aa148a9 Minor tweaking from last round of patching, version bump. :-) 2017-04-21 16:36:06 -05:00
ggn a3feec3b2d Much better implementation for A8 strings - introduced a new token called STRINGA8. Also, all this time we forgot to update mntab :). 2017-04-21 16:26:28 -05:00
Shamus Hammons 968958cccf Version bump for last commit. ;-) 2017-04-21 13:59:50 -05:00
ggn 2161b198b7 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). 2017-04-21 13:42:40 -05:00
Shamus Hammons ff2052bcaa Code cleanup, version bump for last commit. :-) 2017-04-20 14:29:31 -05:00
ggn 052be802ba 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.
2017-04-20 09:26:42 -05:00
Shamus Hammons 0d4ab16ff1 Fix for bug #88 (allow DS in all sections). 2017-04-16 12:53:35 -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
Shamus Hammons 603c75134d Version bump. :-) 2016-09-27 10:46:14 -05:00