Commit Graph
100 Commits
Author SHA1 Message Date
ISSOtm c25b0be085 Document that -t and -w convert section types
This is also a fairly overdue doc update
2020-07-21 20:05:26 +02:00
ISSOtm 1f2f797cb9 Add section fragments
Fixes #517, and hopefully enables RGBDS as a SDCC back-end
2020-07-21 19:56:46 +02:00
ISSOtm aca00e4fce Document MP etc. in rgbasm(1)
This is actually kind of overdue...
2020-07-21 15:55:56 +02:00
Eldred Habert cf80293d9b Merge pull request #540 from daid/patch-1
Make the local variables of getopt static.
2020-07-21 13:11:30 +02:00
Eldred Habert 79f293c3d7 Merge pull request #529 from JL2210/cmake
Add CMake build system
2020-07-20 16:02:47 +02:00
Eldred Habert 8c765883fb Merge pull request #536 from braydenm303/patch-1
Fix error in documentation about unary not
2020-07-20 15:11:29 +02:00
Eldred Habert 8b60efa149 Merge pull request #530 from JL2210/fix-clang
Fix Clang warning in linkdefs
2020-06-27 22:07:19 +02:00
Eldred Habert f996186fae Merge pull request #526 from JL2210/fix-bank-index
Fix indexing of banks array, fixes #525
2020-06-21 12:44:17 +02:00
Eldred Habert b958820bce Merge pull request #523 from RandomBananazz/patch-1
Fixed error in POP AF instruction reference
2020-05-27 12:45:44 +02:00
Eldred Habert 663f0ca3b0 Merge pull request #522 from JL2210/djgpp
Fix DJGPP build
2020-05-21 22:37:24 +02:00
ISSOtm 71fa62c9d1 Fix incorrectly spaced unary ! in RPN documentation 2020-05-13 01:20:34 +02:00
ISSOtm 5c6069dbe9 Add NULL and overflow checks to macro args 2020-05-13 01:17:58 +02:00
ISSOtm d517d2d6b4 Change macro arg allocation to geometric growth array 2020-05-13 00:22:56 +02:00
ISSOtm 80218fa109 Fix array overflow on invalid macro arg evaluation
`macro_GetArg` had not been changed after the previous commit; however,
the old code relied on the `macroArgs->args` array being at least
`MAXMACROARGS` entries large (which was the case until the last commit).
The boundary against which it checked would have better been written as
`sizeof(macroArgs->args)/sizeof(macroArgs->args[0])`, I guess, but what's
done is done.
2020-05-12 16:44:23 +02:00
Eldred Habert fee8a58b77 Merge pull request #521 from aaaaaa123456789/master
Support over 256 macro arguments
2020-05-12 15:46:42 +02:00
Eldred Habert 4d0d6664d7 Merge pull request #520 from JL2210/inttypes-stdint
Use inttypes for stdint types
2020-05-07 17:31:06 +02:00
ISSOtm 363458c3bc Fix semi-unused variable in lexer.c 2020-05-06 19:55:37 +02:00
ISSOtm b299f6fb3b Fix uninitialized memory use with -MT and -MQ
This didn't break unless the first uninitialized byte was non-zero,
which happened to be the case on someone's Windows machine.

Would it be worth it setting up Valgrind in CI?
2020-05-06 19:19:10 +02:00
Eldred Habert 645473e336 Merge pull request #518 from JL2210/warn-parameterless-dx
Add empty data directive warning
2020-05-06 16:25:03 +02:00
ISSOtm 781a65ee49 Fix hashmap collisions sometimes hanging deletion 2020-05-03 19:13:12 +02:00
ISSOtm c135e2c6a0 Fix local sym names not being expanded by PURGE
And an additional bug that broke the attached test
2020-05-03 19:06:48 +02:00
ISSOtm 12693081c9 Use colons for hour symbols 2020-04-28 13:05:06 +02:00
Eldred Habert 7c22954fd5 Merge pull request #513 from JL2210/disable-padding-option
Add option to disable padding in rgblink
2020-04-27 11:05:55 +02:00
ISSOtm 8958e352df Update documentation for new -x option 2020-04-27 11:04:29 +02:00
ISSOtm 573003113b Fix 0-byte sections incorrectly printed in map files
Fixes #515
2020-04-17 11:38:28 +02:00
Eldred Habert 106ef895ee Merge pull request #514 from JL2210/fix-gfx-gb-leak
Add error checking and fix memory leak in gfx/gb.c
2020-04-14 21:31:12 +02:00
ISSOtm 5fe3a0adb6 Remove non-OPT options from Options struct 2020-04-13 17:15:00 +02:00
Eldred Habert cdb4c5f553 Merge pull request #509 from JL2210/zero-alloc-use-fix-3
Fix use of zero-allocated memory
2020-04-13 02:50:58 +02:00
ISSOtm 57639f3765 Change comment style and use errx instead of err 2020-04-13 02:50:11 +02:00
Eldred Habert 9bec983923 Merge pull request #511 from JL2210/memory-errors
Fix memory errors in makepng
2020-04-13 02:39:17 +02:00
ISSOtm 2220f19fa7 Fix use-after-free with include in linker scripts
Fixes #510, and further proves that you *really* should not entrust memory
ownership management to humans :P
2020-04-13 02:36:19 +02:00
ISSOtm 023a3c037f Properly handle missing symbols
Fixes #512
2020-04-12 22:52:32 +02:00
ISSOtm 828edb7403 Remove spurious error from div by zero test 2020-04-12 01:05:06 +02:00
ISSOtm a034ce0478 Deprecate '*' for comments 2020-04-09 17:57:15 +02:00
Eldred Habert d6cd5823e3 Merge pull request #508 from JL2210/mod-by-zero-fix-2
Fix modulo by zero
2020-04-09 14:52:12 +02:00
ISSOtm f9f27d6f5a Clean up symbol system
Get rid of Hungarian notation
Improve encapsulation (the rest of the world should not touch PC directly)
2020-04-09 10:42:37 +02:00
Eldred Habert 5ea8490e2b Merge pull request #507 from JL2210/null-pointer-fix-1
Fix possible null pointer dereference
2020-04-08 23:35:21 +02:00
ISSOtm 40f8e33e6c Fix periods not being accepted as second char of label names 2020-04-08 15:14:07 +02:00
ISSOtm 0157ba63d3 Document whitespace before local labels 2020-04-08 15:08:29 +02:00
ISSOtm 9e3d8b22cb Document new intra-section align
Also sneak in two code style fixes forgotten in last commit
2020-04-08 15:01:36 +02:00
ISSOtm 665412c073 Implement mid-section alignment directive
Fixes #254.
2020-04-08 12:29:00 +02:00
ISSOtm 2b0c34ecb5 Fix a few code style errors 2020-04-08 00:44:41 +02:00
ISSOtm b0ec8468e6 Allow specifying offset in addition to alignment 2020-04-08 00:40:41 +02:00
ISSOtm e82ad21704 Use a single byte for alignment 2020-04-07 21:19:09 +02:00
ISSOtm e098bf47ba Allow references to be overridden by constant symbols
RGBLINK is capable of handling it now.
Though it'd be ideal for RGBASM to directly catch it.

Fixes #496.
2020-04-07 20:57:20 +02:00
ISSOtm 190678107b Prevent RGBLINK from crashing when getting the bank of a constant 2020-04-07 20:41:29 +02:00
ISSOtm 9f82fa4cf7 Fix BANK(@) outside sections causing crashes 2020-04-07 15:51:17 +02:00
Eldred Habert 562835308b Merge pull request #504 from runlevel5/gcc10-fix
Fix multiple definitions for GCC10
2020-04-07 15:18:23 +02:00
ISSOtm 927c65e863 Fix incorrect PC in LOAD blocks at link time 2020-04-07 14:44:51 +02:00
ISSOtm 5b6c1569a4 Make failure to open file a fatal error 2020-04-07 11:36:44 +02:00
ISSOtm 82e0e4ffaf Make some RGBLINK errors non-fatal 2020-04-06 00:48:10 +02:00
ISSOtm ffb199a26a Avoid Useless Use of backticks in rgblink testing 2020-04-06 00:44:59 +02:00
ISSOtm 175933d2b1 Remove old scripts for updating references for tests
I much rather prefer correcting everything by hand, and gauging
whether the change is good on a case by case basis
2020-04-06 00:41:37 +02:00
Eldred Habert c86e6fef0a Merge pull request #502 from JL2210/more-conventional-permissions
Use more conventional permissions and man-page directory
2020-04-06 00:25:33 +02:00
ISSOtm 153915dc2f Improve portability of new make dist 2020-04-04 14:48:15 +02:00
ISSOtm ced38bc6ee Add new Makefile target for release tarballs 2020-04-04 14:23:28 +02:00
ISSOtm 4e96cf9875 Release 0.4.0 2020-04-03 12:11:50 +02:00
ISSOtm 80170eb6eb Regenerate man page HTML renders 2020-04-03 12:03:59 +02:00
ISSOtm bdad1499fe Merge branch 'release' 2020-04-03 11:58:53 +02:00
Eldred Habert 1f5ca39559 Merge pull request #494 from ISSOtm/docs
Overhaul man pages
2020-04-03 11:56:41 +02:00
ISSOtm 5013b64f55 Update disassemblies to latest commits 2020-04-02 21:26:38 +02:00
ISSOtm 7eb73d766e Make compilation optimized unless debugging
Note: I wanted to enable `-Og` on `develop`, but this generated warnings
(thus, errors) that aren't in `-O0`. Needs further investigation, but
annoyingly some of those are within `extern/` code, thus requiring
different flags, which AFAIK is only possible (sanely) with GNU Make.
2020-04-02 16:56:04 +02:00
ISSOtm bcfeb49d6b Allow labels to be passed to DEF 2020-04-02 16:54:41 +02:00
ISSOtm 702d9e0542 Fix wrong error function used in RGBGFX 2020-03-31 17:28:31 +02:00
ISSOtm c0aff678e9 Improve arg-shift test 2020-03-29 12:34:13 +02:00
ISSOtm a3d8836671 Prevent assertions outside sections from crashing 2020-03-29 12:18:24 +02:00
ISSOtm db1eb8fbcb Revert "Prevent RGBASM from outputting corrupted files"
This reverts commit 06fe27c516.

According to Microsoft's documentation
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/tmpfile?view=vs-2019
`tmpfile` attempts to create the temporary file at the **root** folder
This seems to assume that the user has admin rights; might be a compat
thing, idk, but it breaks on people's computers.
(CI didn't catch it, annoyingly.)

Reverting to make RGBASM usable on most Windows computers.
(Sanely-configured ones, at least.)
Another solution to #446 needs to be figured out, yay...
2020-03-27 23:36:11 +01:00
ISSOtm 95f347dc6a Evaluate assertions after placing sections 2020-03-27 20:00:29 +01:00
ISSOtm 6579120d9e Simplify symbol-writing logic 2020-03-27 12:32:14 +01:00
ISSOtm 84cd9f2db9 Fix segfaults when using PC outside a section 2020-03-27 12:30:09 +01:00
ISSOtm 06fe27c516 Prevent RGBASM from outputting corrupted files
Properly fixes #451
2020-03-27 11:19:02 +01:00
ISSOtm 5039af6af1 Document new "unionized section" feature 2020-03-26 23:50:30 +01:00
ISSOtm 4df74d44ec Improve opcode reference 2020-03-26 23:11:01 +01:00
ISSOtm 9113647d41 Fix incorrect macro used for x-ref 2020-03-26 23:11:01 +01:00
ISSOtm 26af2bff5e Prevent text from bumping sides on mobile devices 2020-03-26 23:11:01 +01:00
ISSOtm 3c304f3acf Override mandoc styling without modifying the stylesheet 2020-03-26 23:11:01 +01:00
ISSOtm e308130e23 Update style overrides for new mandoc.css 2020-03-26 23:11:01 +01:00
ISSOtm 713eef9ef2 Update mandoc style sheet 2020-03-26 23:11:01 +01:00
ISSOtm 7635a2fc74 Reword and give an example of symbol interpolation 2020-03-26 23:11:01 +01:00
ISSOtm 6889334521 Add viewport tag for mobile users 2020-03-26 23:11:01 +01:00
ISSOtm d1e82e50cb Improve style of man page HTML renders
See individual comments within `rgbds.css` for more info
Not too fond of having to modify `mandoc.css`, but I did my best to
modify as little as possible
2020-03-26 23:11:01 +01:00
ISSOtm 7955447ca4 Overhaul man pages 2020-03-26 23:11:01 +01:00
ISSOtm 51e225cd75 Add post-processor for HTML renders
Adds links to argument descriptions in synopsis
Adds links to man pages in the set (not to external ones)
Removes artifact from the way long opts are encoded
Makes description blurb inline, consistently with terminal output
2020-03-26 23:11:01 +01:00
ISSOtm 187f88aa50 Only copy necessary characters for bare labels 2020-03-26 23:10:51 +01:00
ISSOtm caddd61f17 Remove "column 1" restriction for local labels
Because a local symbol is necessarily a label, the disambiguation
is not necessary. This is a first step towards fixing #457.
2020-03-26 22:36:40 +01:00
ISSOtm 29629245a4 Use new hashmap implementation for symbols 2020-03-24 12:50:53 +01:00
ISSOtm 666b9f8f7b Add tests for purging symbols 2020-03-24 10:52:45 +01:00
ISSOtm 7deb8d3e8a Allow purging exported symbols 2020-03-24 10:52:02 +01:00
ISSOtm cb0a882a31 Order warnings alphabetically 2020-03-23 16:03:36 +01:00
ISSOtm df2c0dc2f9 Check for unsatisfiable alignment constraints
Fixes #493
2020-03-22 11:54:57 +01:00
ISSOtm 062fa5392b Still override alignment even if not satisfied 2020-03-22 11:52:31 +01:00
Eldred Habert baeec2315f Merge pull request #495 from ISSOtm/sectunion
Implement unionized sections
2020-03-22 11:21:24 +01:00
ISSOtm 92134d7684 Add testing for assertions inside unionized sections 2020-03-22 11:14:04 +01:00
ISSOtm 4877bb783c Add more tests for unionized sections + fix bugs
Implementing those tests found a few bugs... oops
2020-03-22 11:14:04 +01:00
ISSOtm 275b8e15ff Document modification to object file format 2020-03-22 11:14:04 +01:00
ISSOtm e123b6dec7 Implement unionized sections in RGBLINK 2020-03-22 11:13:39 +01:00
ISSOtm cb52ae0f26 Implement unionized sections in RGBASM
This touched a lot more code than initially expected, for two reasons.

First, this broke a big RGBASM assumption: that sections are always being
written to at their end. This plus other problems required touching
basically the entirety of `section.c`.

Second, I tried different solutions to solve the above problem, and along
the way I cleaned up many things around. (I believe that keeping this to
"cleanup" commits yields subpar results, and since it's boring they get
postponed anyways.)

RGBLINK support still needs to be added, but this will come next.
2020-03-22 11:06:17 +01:00
ISSOtm 46a402f7d7 Prevent passing assertions that RGBASM passed to RGBLINK 2020-03-22 10:46:37 +01:00
ISSOtm e233c5d256 Don't drop RGBLINK output in RGBASM tests 2020-03-22 10:43:06 +01:00
Eldred Habert fe824e0068 Merge pull request #490 from ISSOtm/const
Implement `ISCONST`, reporting compile-time constness
2020-03-21 23:20:01 +01:00