286 Commits

Author SHA1 Message Date
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
Olaf Seibert
0058db9044 Name the addressing modes. 2021-06-12 18:37:45 +02:00
Olaf Seibert
7f38f6ae03 Make it really easy to test putting undefined symbols in the main table. 2021-06-09 23:09:28 +02:00
Olaf Seibert
354aadfdc0 Add comment about undef'd symbols
that they can also be put in the main symbol table, since all code is
made to work with that scenario.
2021-05-30 21:52:08 +02:00
Olaf Seibert
72eae62c45 Update CHANGES. 2021-05-30 13:21:33 +02:00
Olaf Seibert
d2d143dd9b Put undefined symbols in separate table.
Even though all regression tests pass, it feels better to do the
undefined symbols similar to the implicit globals.
2021-05-30 13:19:39 +02:00
Olaf Seibert
652c047711 Better error message for .globl 1$
Local labels can't be exported (or imported).
2021-05-30 13:19:39 +02:00
Olaf Seibert
0ab2a4fa16 Add consistency checking for symbol flags
while also adding some consistency.
All listings now list . (dot) as defined so they need updating.
2021-05-30 13:19:39 +02:00
Olaf Seibert
7bbcbba5f5 Include undefined symbols in the symbol table for listing purposes.
MACRO11 V05.05 does this:

```
.MAIN.  MACRO V05.05  Sunday 18-APR-2021 16:29  Page 1

      1
      2 000000  012700  000000G                 mov #lab1,r0
      3
      4                                         .dsabl gbl
      5
U     6 000004  012700  000000                  mov #lab2,r0
      7
      8         000001                          .end

.MAIN.  MACRO V05.05  Sunday 18-APR-2021 16:29  Page 1-1
Symbol table

LAB1  = ****** GX       LAB2  = ******

. ABS.  000000    000   (RW,I,GBL,ABS,OVR)
        000010    001   (RW,I,LCL,REL,CON)
Errors detected:  1

*** Assembler statistics

Work  file  reads: 0
Work  file writes: 0
Size of work file: 34 Words  ( 1 Pages)
Size of core pool: 9260 Words  ( 35 Pages)
Operating  system: RSX-11M/M-PLUS

Elapsed time: 00:00:00.01
GBL,GBL/-SP=GBL
```
2021-05-30 13:19:39 +02:00
Olaf Seibert
d0445ef8f4 Record change. 2021-05-28 20:15:51 +02:00
Olaf Seibert
877248f94e More detailed error messages about bad addressing modes
because of gitlab issue #10.
2021-05-28 19:02:31 +02:00
Olaf Seibert
e21f390722 Adjust tests with new error message. 2021-05-28 17:18:55 +02:00
Olaf Seibert
426db4afda Make 2 "invalid expression" messages more exolicit. 2021-05-28 17:12:33 +02:00
Olaf Seibert
cb8103d112 Run tests in both RSX11 and RT11 format.
This is possible since our reference files are output from dumpobj,
and that does not depend on the format.
2021-05-16 14:04:43 +02:00
Olaf Seibert
6c6f241bac Prepare for development after released version. 2021-05-16 13:46:31 +02:00