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
Olaf Seibert
760bef1e42
Bugfix release 0.7.1 for gitlab issues #7 and #8 .
2021-05-16 13:27:01 +02:00
Olaf Seibert
cb331d2a55
Add some register label tests that don't work yet.
2021-04-21 18:44:53 +02:00
Olaf Seibert
9ade850447
Fix typo.
2021-04-21 18:39:58 +02:00
Olaf Seibert
461205d60a
Make a nice flag name for evaluate().
2021-04-21 18:34:11 +02:00
Olaf Seibert
2753b081cc
Start each pass with .DSABL LSB
...
otherwise the end of pass 1 carries over into pass 2, which messes with
the ranges of local symbols.
2021-04-18 15:18:38 +02:00
Olaf Seibert
22fdaedded
Some floating point fixes.
...
- Fixed immediate source operand of LDEXP, LD[IL][FD]
which is an integer, unlike several other FPP instructions.
- Renamed floating point instruction formats so they match the
instruction descriptions in the architecture handbook better.
2021-03-30 20:13:31 +02:00
Olaf Seibert
b9b61a4659
Prepare for development after released version.
2021-03-19 21:11:19 +01:00
Olaf Seibert
33fc39ff32
Bump version to 0.7.
2021-03-19 20:16:16 +01:00
Olaf Seibert
b100021ffd
Add check for odd branch target.
...
Apart from the fact that instruction addresses must be even, this can't
even be expressed since the branch offset is expressed in words.
2021-03-14 21:19:18 +01:00
Olaf Seibert
0e373a8570
Make operand parsing error messages more helpful
...
and add a test that is supposed to exercise them all.
2021-03-14 20:19:15 +01:00
Olaf Seibert
d4c0520ac1
Update CHANGES.
2021-03-14 14:43:54 +01:00
Olaf Seibert
6369384e25
Add some missing instructions.
...
- to tests: MFPT, MTPS, MFPS
- also to opcode set: CSM, TSTSET, WRTLCK
2021-03-13 22:55:04 +01:00
Olaf Seibert
6280a4416e
Add test file with all opcodes.
2021-03-13 16:49:16 +01:00
Olaf Seibert
cf7e442557
LDCFD: add missing FloatingPointProcessor instruction.
2021-03-13 15:48:04 +01:00
Olaf Seibert
7d4370af45
Make sure "str->stream.next = NULL"
...
even though it isn't strictly necessary (stack_push() will set it
later).
2021-03-13 14:50:57 +01:00
Olaf Seibert
70d06c9a92
Fix a double free.
2021-03-13 14:50:29 +01:00
Bjoren Davis
12e66a65d9
Properly set the character pointer after the operand.
...
Fixes issue #6 .
2021-03-13 14:00:51 +01:00
Olaf Seibert
54b73f7f9c
Attempt bracketing checking.
...
Too bad we can't issue a diagnostic here now; we just return failure
and the caller will probably next try a whitespace delimited string
next.
2021-02-18 22:49:52 +01:00
Olaf Seibert
289860e539
Rearrange flow control in brackrange()
...
which was a bit weird.
This also fixes a potential bug when a bracketed or nested string is not
properly terminated on this line.
2021-02-18 20:56:54 +01:00
Olaf Seibert
13c5a8374f
Adjust the notice in CHANGES.
2021-02-15 20:06:34 +01:00
Stephen Casner
ef8afb9e5f
Put back a blank line unintentionally deleted
2021-02-15 19:48:23 +01:00
Stephen Casner
05fc94ce90
Extend left-shift operator
...
- Negative shift values are right-shift
- Optimize shift of 0 or more than 15
- Allow shifting symbols by complex relocation
2021-02-15 19:48:16 +01:00
Olaf Seibert
93d7839ccf
Expand some tabs that crept in over time.
2021-02-14 22:00:30 +01:00
Olaf Seibert
2d86002111
Note the first change in CHANGES.
2021-02-14 15:03:08 +01:00
Olaf Seibert
57afe7ec85
Prepare for development after released version.
2021-02-14 14:36:32 +01:00
Stephen Casner
dcdbc02b2e
Add binary operator '_' for left shift
...
If the command line option yus to allow the underscore character in
symbols is NOT selected, then interpret underscore as a new binary
operator meaning to do a left shift of the left side value by the
number of bit positions indicated by the right side value. As for the
arithmetic operators, both values must be literal (numeric constants
or symbols equated to a numeric constant).
2021-02-14 14:33:42 +01:00
Stephen Casner
e452ac437c
Ignore additional built files
2021-02-14 14:33:42 +01:00
Olaf Seibert
8d739efed4
Bump version to 0.6.
2021-02-13 14:24:56 +01:00
Olaf Seibert
39653bcd2f
Fix typo.
2021-02-13 14:14:37 +01:00
Olaf Seibert
b6d49ec467
Typo/comment fixes.
2021-01-31 17:55:22 +01:00
Olaf Seibert
63fbbee2a5
Keep sanitizer options off by default.
...
I'm getting spurious memory leak errors from dumpobj.
2021-01-31 17:46:25 +01:00
Olaf Seibert
55243369eb
Silence a spurious "maybe uninitialized" error.
...
mlb-rt11.c: In function 'mlb_rt11_entry':
mlb-rt11.c:284:27: warning: 'ent' may be used uninitialized in this function [-Wmaybe-uninitialized]
buffer_resize(buf, ent->length + 1); /* Make it large enough */
~~~^~~~~~~~
It is spurious because ent gets initialized in the loop above.
If the loop is never executed, this must be because 0 >= mlb->nentries
and NULL is returned, so the buffer_resize() is never reached.
2021-01-31 16:20:08 +01:00
Olaf Seibert
ada2d17a1b
Silence a spurious "maybe uninitialized" error.
...
mlb-rsx.c: In function 'mlb_rsx_entry':
mlb-rsx.c:374:23: warning: 'ent' may be used uninitialized in this function [-Wmaybe-uninitialized]
fseek(mlb->fp, ent->position, SEEK_SET);
~~~^~~~~~~~~~
It is spurious because ent gets initialized in the loop above.
If the loop is never executed, this must be because 0 >= mlb->nentries
and NULL is returned, so the fseek() is never reached.
2021-01-31 16:16:05 +01:00
Olaf Seibert
1d799534bb
Add Commercial Instruction Set.
...
I haven't done much compatibility testing with MACRO11 to check
weirdnesses, but the original functionality is very limied: none
of the mnemonics has operands.
2021-01-27 16:31:45 +01:00
Olaf Seibert
fa7ece3864
Update CHANGES.
2021-01-23 22:43:44 +01:00
Olaf Seibert
706e4e9758
Clang found an uninitialized pointer.
2021-01-23 22:06:12 +01:00
Olaf Seibert
c53aec71c3
This TODO has been done (line end checks).
2021-01-23 21:30:52 +01:00
Olaf Seibert
e3042c9175
Remove dubious workaround in parse_unary().
...
The comment "eat first char of illegal label, else endless loop on
implied .WORD" was no longer true. It did reveal some other small
gotchas, which are corrected now as well.
2021-01-23 21:30:52 +01:00
Olaf Seibert
c587587f49
Fix/work around a bug in parse_expr().
...
There was an obscure bug in parse_expr(), used to evaluate 'if df',
where it could skip past the end of the line marker.
If this happened inside an expanded macro, then after that was the
next line...
In other cases it might be worse.
Now that this is fixed, another check for line end junk can be enabled.
2021-01-23 20:09:32 +01:00
Olaf Seibert
6f1af83101
Check junk at end of line with the repeat directives.
2021-01-23 18:37:47 +01:00
Olaf Seibert
40b41c3087
Here is another.
2021-01-23 17:23:29 +01:00
Olaf Seibert
af0cf5f7bc
Here is the "Junk at end of line" case that I wanted to catch.
2021-01-23 17:18:08 +01:00