Commit Graph

197 Commits

Author SHA1 Message Date
Sigrid Solveig Haflínudóttir 6317b5cf18 fix uxnasm: missing semicolon 2022-12-11 04:54:58 +01:00
neauoire c97aa87faf (uxnasm)Allow more space for symbols filename, and check for length 2022-12-10 11:07:45 -08:00
neauoire 2f3954d398 Uxnasm should use BE to store addresses 2022-12-09 12:52:34 -08:00
neauoire d4c55e2f48 Uxnasm now outputs a symbols file 2022-12-09 12:30:04 -08:00
neauoire f59b214ac1 Added _rune 2022-11-10 20:54:53 -08:00
neauoire da5e581442 (uxnasm) Fixed issue with = rune 2022-11-09 16:40:07 -08:00
neauoire 261b574671 (uxnasm) Added support for = and - runes 2022-11-09 16:21:07 -08:00
Devine Lu Linvega f348d24606 Removing rawchr run 2022-08-14 12:06:23 -07:00
Devine Lu Linvega ef30fb8f8e Removed JSR JMP2r tail-call optimisations for now 2022-08-06 11:05:16 -07:00
Andrew Alderwick 978713474a (uxnasm) Prevent tail call optimisation when required, fixes asma
Literals do not get squashed across absolute or relative pads and
labels, now the tail call optimisations do not occur under the same
conditions. etc/asma-test.tal was identifying serious errors with
asma.rom, which uses "JSR2 &skip JMP2r" in @asma-macro-body.
2022-06-07 20:03:12 +01:00
Andrew Alderwick 0ff2a3586d Deal with compiler warnings. 2022-06-07 19:39:43 +01:00
Devine Lu Linvega 0fafd652f1 (uxnasm) Better parent label reference counting 2022-06-06 09:42:26 -07:00
Devine Lu Linvega bf81d07113 (uxnasm)Quiet label warnings with sublabels 2022-06-06 07:57:29 -07:00
phoebos a014cd8da9 (uxnasm) only ignore [ or ] if it is a whole token
Currently, tokens beginning with a [ or ] character are completely
ignored, which forbids a macro from beginning with these characters.
Specifically, a macro can be declared eg. as `%[x { ... }` but cannot be
dereferenced as `[x`.
This patch only ignores these tokens if they have a length of 1;
otherwise the switch falls through to the default case.
2022-06-05 16:29:06 -07:00
Devine Lu Linvega 17fd40af43 (uxnasm) Minor cleanup 2022-05-31 14:04:54 -07:00
Devine Lu Linvega 18b73f4861 (uxnasm)Optimize tail-call for subroutines too 2022-05-31 13:55:00 -07:00
Devine Lu Linvega 3c06af41c3 Tiny change to uxnasm 2022-05-31 13:38:21 -07:00
Devine Lu Linvega 5a0e0c56aa Added tail-call optimization 2022-05-26 20:26:21 -07:00
Andrew Alderwick e00e74b9d0 (uxnasm) Raise an error if the output rom would be empty. 2022-05-09 21:13:28 +01:00
Andrew Alderwick d5253086b5 Move stack opcodes. 2022-04-18 09:45:33 +01:00
Andrew Alderwick c2ffe63cc3 (uxnasm) Fix valid macro names being rejected.
Macro names that begin with the name of an opcode were being rejected
incorrectly. “STA” would not be a valid macro name since it is an
opcode, but “STACK” should be fine.
2022-04-14 18:24:48 +01:00
neauoire d49981c4ce Removed runes 2022-04-11 17:27:33 -07:00
neauoire a3c42c23b9 Fixed issue with oprunes 2022-04-11 17:16:05 -07:00
neauoire dcc37fd0d5 Added logic/arithmetic symbols to uxnasm 2022-04-11 16:07:15 -07:00
neauoire 60315ff3dc Raised label limit in uxnasm 2022-04-11 15:34:53 -07:00
Andrew Alderwick 0c819b9f59 clang-format 2022-02-19 01:02:47 +00:00
Andrew Alderwick 550aceee23 (uxnasm) Allow writing the 0xffff byte of RAM. 2022-02-19 00:29:40 +00:00
Andrew Alderwick 8b84813c6e (uxnasm) Raise error when memory is overwritten. 2022-02-19 00:27:28 +00:00
Andrew Alderwick da4f0e70a5 (uxnasm) Allow returning errors from writebyte(). 2022-02-19 00:26:55 +00:00
Andrew Alderwick 0ae6992089 (uxnasm) Fix calculation of usage. 2022-02-18 23:02:42 +00:00
Andrew Alderwick 2a825de2fd Switch void context increments from pre to post 2022-01-04 02:05:32 +00:00
Sigrid Solveig Haflínudóttir 148dae4ebd fix a few "set and not used" warnings 2021-12-29 18:33:23 +01:00
neauoire 385fa44f9d Prefixed globals with uxn_ 2021-12-29 09:11:03 -08:00
~d6 abd6a3a5da Support nested comments in uxnasm.
Previously, code like this would fail with an error
about an unrecognized ) token:

    ( this is a ( nested ) comment )

With this patch, the above code will now work.

Relatedly, it was previously possible to write code
that compiled but was confusing:

    (open parenthesis should have a space )
    ( in this case the ADD2 will be ignored )ADD2
    ( this comment with ( would have been fine )

With this commit, the first example will emit a warning
but continue to work as intended. The second and third
examples will continue searching for a matching ) token,
which due to the new nested coment behavior will probably
mean the rest of the file gets commented out.
2021-12-28 19:28:15 -08:00
Andrew Alderwick 2330320985 (readability) Use preincrements throughout in void context. 2021-12-14 23:17:32 +00:00
neauoire bae2d37fc2 (uxnasm) Only catch hex labels with slen of 2 or 4 2021-12-06 09:01:48 -08:00
Andrew Alderwick 60f04ca053 (uxnasm) Add error for relative references that are too far. 2021-12-01 11:42:44 +00:00
neauoire da797b33c6 (uxnasm) Stop on resolve failure 2021-11-30 10:27:35 -08:00
neauoire 074a049ff2 (uxnasm) Renamed conflicting function 2021-11-29 16:19:47 -08:00
neauoire 25df420607 (uxnasm) Improved errors 2021-11-29 08:48:12 -08:00
Andrew Alderwick 6ba2af5c62 Avoid combining literals across | or $ pads. 2021-11-28 18:07:22 +00:00
neauoire 6c0e39ad6f (uxnasm) Fixed issue with labels 2021-11-27 14:58:37 -08:00
neauoire b4e50165b6 (uxnasm) Warn for refs size limit 2021-11-27 14:44:28 -08:00
neauoire 78853ac5c6 (uxnasm) Removed lit flag for writebyte 2021-11-27 14:20:56 -08:00
neauoire fbbddf50d6 (uxnasm) Cleanup 2021-11-27 14:07:25 -08:00
neauoire 4b6efa6fc6 (uxnasm) Combine byte literals 2021-11-27 13:55:33 -08:00
neauoire 71e8177657 (uxnasm) Rewrite 2021-11-27 11:33:22 -08:00
neauoire b873f04789 Added tal syntax highlight for nano 2021-11-26 08:11:18 -08:00
Devine Lu Linvega 088897c6b4 (uxnasm) Display exact numberof bytes 2021-11-24 17:12:01 -05:00
Andrew Alderwick d4e033e715 Remove vestigial mention of "include". 2021-11-18 00:14:15 +00:00
Andrew Alderwick c3ac41c41d Change "include" word into ~ rune for includes. 2021-11-17 22:06:00 +00:00
Sigrid Solveig Haflínudóttir 4988b2214e
uxnasm: reset scope to avoid pointing at garbage 2021-11-08 18:51:28 +01:00
Andrew Alderwick 80b4e4f88d Use Keep mode for all LIT opcodes 2021-10-30 00:28:33 +01:00
Devine Lu Linvega 6f872feff5 Use Keep modes for byte and short literals 2021-10-29 16:02:07 -07:00
Devine Lu Linvega 8132a09e21 Test for valid destination in uxnasm 2021-10-29 09:29:23 -07:00
Claude Heiland-Allen 33e77e261c uxnasm errors-out if too many macros 2021-10-26 09:55:57 -07:00
Claude Heiland-Allen a373939544 uxnasm errors-out if too many labels 2021-10-26 09:54:29 -07:00
neauoire 5582816943 Removed unecessary error 2021-10-24 09:09:58 -07:00
Andrew Alderwick 5807e22fef Fixed corruption in ff00-ffff, improved checks for | and $, thanks karolbelina! 2021-10-23 23:15:07 +01:00
neauoire 6799b5f78e Warn for out of bounds 2021-10-23 08:48:11 -07:00
neauoire 04e4edf05f Fixed an issue with the ref counter in uxnasm 2021-10-17 19:10:29 -07:00
neauoire d6ef361383 Corrected raw short length 2021-10-11 13:35:01 -07:00
neauoire 037ab10b6a Fixed issue with raw bytes in macros 2021-10-11 13:27:20 -07:00
Andrew Alderwick 55590cec7b Fixed "while loop has empty body" warning with macOS compiler 2021-10-10 20:09:20 +01:00
Andrew Alderwick 2006b2a6ad Print uxnasm message to stderr 2021-10-07 22:38:25 +01:00
neauoire d363aad7b5 Improved size report for uxnasm 2021-10-06 09:21:27 -07:00
neauoire 765724d2af Fixed issue where macro size was too large 2021-09-30 19:21:04 -07:00
neauoire 2b80b85baf Relative labels should not incr references to parent label 2021-09-25 09:39:27 -07:00
neauoire 4406c2856c Sublabels add refs to root labels in uxnasm 2021-09-16 09:11:53 -07:00
neauoire 25858c3948 Fixed issue with strings in uxnasm 2021-09-01 13:04:56 -07:00
neauoire 4f6a29f57d Reverted flags 2021-08-30 10:19:33 -07:00
Andrew Alderwick 4d535ebb46 Swapped return and short flags in advance of uxn.c refactoring 2021-08-29 22:28:30 +01:00
neauoire 3da9352230 Fixed issue with scmp in uxnasm 2021-08-29 11:43:00 -07:00
neauoire 66f898ade4 Removed hardcoded number for LIT opcode in asm 2021-08-29 11:25:58 -07:00
neauoire 0da8709ce3 Assembly stop on long token 2021-08-29 10:51:14 -07:00
neauoire c70f16f7ac Formatted changes 2021-08-28 10:49:51 -07:00
neauoire 83de614e53 Do no display unused macros anymore 2021-08-28 10:30:50 -07:00
Andrew Alderwick 08f20d35c8 Fixed addr being reset in include's pass1 2021-08-28 07:51:48 +01:00
Andrew Alderwick 28569d118e Implemented includes in uxnasm (no asma support yet) 2021-08-27 23:47:34 +01:00
Andrew Alderwick 61b8750bae Allowed long tokens within comments (typically URLs) 2021-08-25 22:56:24 +01:00
Andrew Alderwick c324881b90 Minor optimisation to uxnasm 2021-08-18 07:45:51 +01:00
Andrew Alderwick 1b68169cee Merged LIT and BRK into opcode zero, added INC opcode 2021-08-17 22:48:48 +01:00
Andrew Alderwick 107a59affa Rearranged POP, DUP, NIP opcodes 2021-08-15 21:34:33 +01:00
Andrew Alderwick be360ffc1e Replaced NOP with NIP 2021-08-15 21:22:01 +01:00
Andrew Alderwick e2190d84d8 Reverted "Removed OVR opcode and replaced with NIP" and uxn-fast.c update.
This reverts commits 1afe39fba4 and 3d3569bab7.
2021-08-15 21:07:32 +01:00
neauoire 1afe39fba4 Removed OVR opcode and replaced with NIP 2021-08-15 12:01:22 -07:00
neauoire fa6b8a1769 Improved error messages 2021-07-24 17:09:46 -07:00
neauoire eeb85bdcb1 Modified assembler errors 2021-07-03 20:24:36 -07:00
neauoire 74fc816810 Flagged functions as static 2021-06-28 14:42:36 -07:00
neauoire 2566943659 Removed the noisy prints in the assembler 2021-06-27 10:03:09 -07:00
neauoire 8d14b4bbc6 Fixed critical issue where a label/macro with more than 255 refs would vanish 2021-06-17 21:20:19 -07:00
neauoire 8d092bf1bc Give ids to labels and macros 2021-06-17 20:53:27 -07:00
neauoire 78c428d215 Improved uxnasm error report 2021-06-17 17:41:55 -07:00
neauoire 54ece814de Fixed error reports in assembler 2021-06-08 08:20:00 -07:00
neauoire 7b3d3505b5 Macro and label names cannot be blank 2021-06-08 08:09:03 -07:00
neauoire 31f18e1bdf Check for valid hex in padding 2021-06-08 07:37:12 -07:00
neauoire d163c43201 Improved uxncli and moved all demos into examples 2021-05-26 10:02:13 -07:00
Renamed from src/assembler.c (Browse further)