300 Commits

Author SHA1 Message Date
Paul Koning
7354aadbfc Allow expression (with constant value) in .RADIX
Also add a test file for it.
2022-06-28 09:32:34 -04:00
Olaf Seibert
fe83ebf9ed Update CHANGES file with recent news. 2022-06-27 21:12:58 +02:00
Olaf Seibert
08912623a9 Comments in playground. 2022-06-27 21:12:30 +02:00
Paul Koning
edd43e8f1d Fix .ident handling for ident strings 3 chars or less. 2022-06-27 14:28:02 -04:00
Paul Koning
417ff111ad Fix .IDENT to accept <val> just as .RAD50 does. 2022-06-27 09:51:19 -04:00
Paul Koning
2969c16583 Allow formal name of .IRP and .IRPC to be enclosed in < >. 2022-06-26 14:48:22 -04:00
Paul Koning
5f71c6b7c3 Allow explicit decimal point after .RADIX argument. 2022-06-26 14:44:21 -04:00
Paul Koning
0721a35400 Treat unexpected .IF argument as true, not false. This appears
to be what the reference assembler does, at least it is necessary
for certain RSTS source files to assemble without error.
2022-06-26 14:29:04 -04:00
Paul Koning
7da1e1ef56 Implement .ENABLE MCL 2022-06-26 14:27:19 -04:00
Paul Koning
21f21b9799 Fix macro calls with omitted argument that has a default value,
followed by additional (not omitted) arguments.
2022-06-26 13:41:37 -04:00
Paul Koning
aa8d5fdfef Always list lines that have an error 2022-06-26 13:40:00 -04:00
Paul Koning
c42c5732b3 Fix .library pseudo
Two problems:
1. Spurious "junk at end of line" message because no parsing was done
in pass 2
2. Error messages not shown because error printing only happens in
pass 2
Solution for both is to process the directive in both passes.
2022-06-26 13:13:49 -04:00
Paul Koning
43d7b493fb Allow TRAP without argument, or with non-literal argument 2022-06-26 13:13:49 -04:00
Paul Koning
fbb936d1ce Fix .psect without argument, add (ignored) pseudo ops
.mdelete, .cross, .nocross
2022-06-26 13:13:49 -04:00
Paul Koning
db9cb5a9ee Add default extensions to .include, .library 2022-06-26 13:13:03 -04:00
Olaf Seibert
be7bbc5539 Improve comment about the division by multiplying. 2022-06-21 20:02:04 +02:00
Olaf Seibert
13f0fb4d2b Replace the loop that divides by 10 by a divide. 2022-06-19 16:27:20 +02:00
Olaf Seibert
3eb7274625 Add some FP test cases, including some parse errors.
Adjust the parsing a bit, and generate 0 values for bad syntax
like the reference version does.
2022-06-19 16:16:31 +02:00
Olaf Seibert
3109f40bd5 Parse floats using integers (64 bits) only.
The algorithm is close to what the reference version is doing.
2022-06-19 14:56:14 +02:00
Olaf Seibert
bb56fc33f1 Add floating point parsing playground. 2022-06-19 14:49:41 +02:00
Olaf Seibert
e86f0bd4d5 Also add more checks to RT11 MLB reader. 2022-06-15 15:34:04 +02:00
Olaf Seibert
779c775107 Make RSX MLB parser more resistant to bad files. 2022-06-13 22:54:47 +02:00
Olaf Seibert
ff183c0e36 Improve parsing of symbols.
In particular, don't confuse `4..` with a symbol.
2022-06-04 21:31:06 +02:00
Olaf Seibert
8d7414d7c3 Rename stream2 method "gets" to "getline"
because FORTIFY re#defines gets, and this gets is something different.
2022-01-05 22:29:03 +01:00
Olaf Seibert
a0add7154f Development after a release. 2022-01-05 22:27:00 +01:00
Olaf Seibert
c311f6a175 Release version 0.7.2
since the current state seems stable.
2022-01-05 21:30:15 +01:00
Olaf Seibert
29b7b4c540 Make the "gmake tests" target usable.
Add a leak exception for the leak sanitizer, needed on NetBSD 9.2.
2021-11-30 22:00:37 +01:00
Olaf Seibert
29cd179ff6 Remove outdated comment in test. 2021-11-30 21:56:45 +01:00
Olaf Seibert
39f1bcd238 Add %-expressions to CHANGES file. 2021-11-18 21:35:16 +01:00
Olaf Seibert
3a9d809b75 Optimize the previous version.
Fold the functionality of pull_up_reg() into evaluate_rec().
pull_up_reg() essentially returned a flag (EX_REG at the top, or not)
which can be represented with the outgoing flags word.
The check for recursion depth is made unneeded by doing the
"exceptional" case outside the recursion; luckily it is actually the
common case.
2021-11-15 21:35:37 +01:00
Olaf Seibert
1067b63043 Add the test with the weird expressions with registers.
Now that we have some code that seems to do pretty much what we want.
2021-11-15 19:28:19 +01:00
Olaf Seibert
c29dc7d7af Work in progress...
Make expressions work where the % operator isn't (only) at the top
level.
2021-11-15 19:28:19 +01:00
Olaf Seibert
21e9410571 Add evaluation of %+unary expressions.
This is a first step towards expressions like <%1>+1 and even later R1+1.
2021-11-15 18:31:15 +01:00
Olaf Seibert
2aa43f17f7 Make some expression tree operations more generic. 2021-11-15 18:26:10 +01:00
Olaf Seibert
6a3642e49a Nicer, more specific name for temp symbol. 2021-11-15 10:31:26 +01:00
Olaf Seibert
08c6254bdd Temp symbols are defined, so flag them as such. 2021-11-14 23:14:21 +01:00
Olaf Seibert
16b884a744 Add some more abusive test cases. 2021-11-14 23:09:35 +01:00
Olaf Seibert
3c858fe45d Make sure immediate operands #R0 etc are output as absolute values.
Previously it was generated as relocatable.
2021-11-14 23:05:20 +01:00
Olaf Seibert
1c37223977 Make sure .word R0 etc are output as absolute values.
Previously it was generated as relocatable.
2021-11-14 22:49:44 +01:00
Olaf Seibert
855c1ca321 Slightly improve expression tree debug output. 2021-11-14 22:40:43 +01:00
Olaf Seibert
36db00dc79 Name some unnamed special sections for easier recognition. 2021-11-14 22:37:15 +01:00
Olaf Seibert
ef66dd0379 Fix pasto. 2021-11-14 19:20:02 +01:00
Olaf Seibert
2df94bfc43 Fix memory leaks in error paths of get_mode(). 2021-11-14 18:58:58 +01:00
Olaf Seibert
5098927591 Fix a memory leak in my_searchenv2(). 2021-11-14 18:47:56 +01:00
Olaf Seibert
e1962af99e Fix a small one-time memory leak. 2021-11-14 18:44:00 +01:00
Olaf Seibert
3342090916 More silly %-register tests. 2021-11-14 17:09:29 +01:00
Olaf Seibert
efe4a882e3 Consistent out-of-memory checks. 2021-11-13 23:07:30 +01:00
Olaf Seibert
1722fae3d4 Rename 'rel' field to 'pcrel'. 2021-07-04 20:02:21 +02:00
Olaf Seibert
34b4815798 Rename undef to flags 2021-06-12 21:44:23 +02:00
Olaf Seibert
7ba6ed13e6 Move some work into expression parse tree constructors 2021-06-12 20:32:49 +02:00