Lane Roathe
bdbf17024e
Merge pull request #55 from ksherlock/ext_abs
...
fix absolute external labels
2021-04-12 20:11:15 -07:00
Kelvin Sherlock
2b9f5856d8
add test files for external abs
2021-04-12 20:53:57 -04:00
Kelvin Sherlock
8216c6f489
linker was relocating absolute entries (ie xxx equ $1234 ; ent xxx).
...
$20 is the bit in the on-disk symbol table for an absolute entry, linkabsbit (%0000_0100_0000_0000) is the correct bit in memory.
2021-04-11 22:03:55 -04:00
Lane Roathe
c9d2c39b5c
Merge pull request #54 from ksherlock/new-test-cases
...
add missing test cases for recent qasm iigs fixes.
2020-10-13 13:38:35 -07:00
Kelvin Sherlock
7b8a81d605
add missing test cases for recent qasm iigs fixes.
2020-10-12 18:07:54 -04:00
Lane Roathe
bdbf62fe36
Merge pull request #53 from ksherlock/dw-star
...
qasm gs - update program counter w/in data operands
2020-10-12 08:46:02 -07:00
Lane Roathe
0fb0dc0cc1
Merge pull request #52 from marketideas/pea_bad_address_mode
...
qasm gs - allow comma in quoted string during address check
2020-10-12 08:26:43 -07:00
Kelvin Sherlock
4a380871cd
ddb - update pcobjptr after each item.
2020-10-11 20:41:36 -04:00
Kelvin Sherlock
bc29319414
allow comma in quoted string during address check
...
example:
pea ',' or pea #',' previously generated a bad address mode error.
The addmode function expected an X,Y, or S after the , which is how it generated the error.
Changed to skip , search within the quoted string.
test case:
* previously caused an error
pea #','
pea ','
pea #","
pea ","
pea ','+','
* still cause and error (as they should):
pea ',',y
pea #',',y
* unterminated string:
pea '
2020-10-10 22:52:56 -04:00
Lane Roathe
f7e30ea543
Merge pull request #50 from ksherlock/pass-1-errors
...
qasm iigs: print the line when an error is encountered on first pass
2020-06-08 09:44:50 -07:00
Lane Roathe
79a0748ede
Merge pull request #49 from ksherlock/asm-listing
...
qasm iigs: adjust listing label placement
2020-06-08 09:44:16 -07:00
Kelvin Sherlock
8c94aa51c3
when an error is encountered in the first pass, print the line for better debugging. Previously, errors only printed the line on the second pass.
2020-06-06 18:03:54 -04:00
Kelvin Sherlock
f6408be2c0
tab to label column instead of using a space. This results in nicer output when line numbers increment in size (9 -> 10, 99 -> 110, etc)
2020-06-06 16:13:05 -04:00
Kelvin Sherlock
0976282d81
update program counter (for eval purposes) after each argument in data statements.
...
db,dw,da,adr,adrl all allow multiple arguments. In merlin, the value of * is updated after each argument. in qasm, the value of * is not updated.
Encountered assembling marinetti.
2020-05-31 16:06:14 -04:00
marketideas
cacc4661ac
Merge pull request #48 from ksherlock/linker-3-char-opcode
...
qlink iigs - truncate opcodes to 3 characters
2020-05-30 11:09:07 -07:00
Kelvin Sherlock
5ba4d043e5
merlin linker truncates opcodes to 3-characters.
...
This allows for things like `TYPe` and `LINk`
2020-05-30 13:26:20 -04:00
Lane Roathe
300a0b7bcd
Merge pull request #47 from ksherlock/inappropriate_intersegs
...
QLink IIgs - inappropriate interseg OMF records
2020-05-26 21:38:18 -07:00
Kelvin Sherlock
ca29613395
external, shifted references were always generating an interseg OMF relocation record even when in the same OMF segment (in which case they would reference segment 0 which is wrong).
2020-05-26 22:48:47 -04:00
Lane Roathe
b5955278c3
Merge pull request #46 from ksherlock/label-15-2
...
qasm iigs: two more label length stragglers
2020-05-25 23:10:59 -07:00
Lane Roathe
34ec484c67
Merge pull request #45 from ksherlock/macro_quoted_strings
...
qasm iigs: fix to macro operand parsing for quoted strings
2020-05-25 20:51:56 -07:00
Kelvin Sherlock
f6e5812894
a couple more linker label size adjustments.
2020-05-25 23:08:15 -04:00
Kelvin Sherlock
f5f3846a6d
two more label length straglers
2020-05-25 18:32:17 -04:00
Kelvin Sherlock
b4bf2c1611
fix to macro operand parsing for quoted strings
...
macro operand parsing code was a little too clever and had problems if both ' and " delimiters were present.
new code uses separate loops for handing delimited strings and raw strings, to keep things simpler and more correct.
```
xx mac
asc ]1
eom
xx '"hello"'
xx "'hello'"
xx 'hello'
xx "hello"
xx 'abc',00
xx ff
```
before:
```
Assembling macstr.s
Bad operand in line: 5.
Bad operand in line: 6.
1 xx mac
2 asc ]1
3 eom
4
008000: 5 xx '"hello"'
008000: 22 68 65 6C 5 asc '"hello"'
008004: 6C 6F 22
5 eom
008007: 6 xx "'hello'"
008007: A7 E8 E5 EC 6 asc "'hello'"
00800B: EC EF A7
6 eom
00800E: 7 xx 'hello'
00800E: 68 65 6C 6C 7 asc 'hello'
008012: 6F
7 eom
008013: 8 xx "hello"
008013: E8 E5 EC EC 8 asc "hello"
008017: EF
8 eom
008018: 9 xx 'abc',00
008018: 61 62 63 00 9 asc 'abc',00
9 eom
00801C: 10 xx ff
00801C: FF 10 asc ff
10 eom
End of QuickASM assembly. 29 bytes, 2 errors, 22 lines, 1 symbols.
Elapsed time = < 1 second.
```
after:
```
Assembling macstr.s
1 xx mac
2 asc ]1
3 eom
4
008000: 5 xx '"hello"'
008000: 22 68 65 6C 5 asc '"hello"'
008004: 6C 6F 22
5 eom
008007: 6 xx "'hello'"
008007: A7 E8 E5 EC 6 asc "'hello'"
00800B: EC EF A7
6 eom
00800E: 7 xx 'hello'
00800E: 68 65 6C 6C 7 asc 'hello'
008012: 6F
7 eom
008013: 8 xx "hello"
008013: E8 E5 EC EC 8 asc "hello"
008017: EF
8 eom
008018: 9 xx 'abc',00
008018: 61 62 63 00 9 asc 'abc',00
9 eom
00801C: 10 xx ff
00801C: FF 10 asc ff
10 eom
End of QuickASM assembly. 29 bytes, 0 errors, 22 lines, 1 symbols.
Elapsed time = < 1 second.
```
2020-05-25 16:14:13 -04:00
Lane Roathe
e743e2a6c4
Merge pull request #44 from ksherlock/shell_fix_1
...
QAsm Shell fixes
2020-05-24 21:21:51 -07:00
Kelvin Sherlock
4b3caaf78f
Don't try to do message center stuff when there was a message center error.
2020-05-24 22:45:17 -04:00
Kelvin Sherlock
1f241d42c8
infinite loop parsing the command table file
...
I don't remember the full details because it was a few months ago but there was an infinite loop on statup when parsing the command table.
2020-05-24 22:42:28 -04:00
Lane Roathe
fb12ad70f7
Merge pull request #43 from ksherlock/sym32
...
Update label/symbol size from 15 to 31.
2020-05-24 16:18:58 -07:00
Lane Roathe
80839b641c
Update src/data/sym.equates.S ds section with proper offset values
2020-05-24 16:18:51 -07:00
Lane Roathe
f8dd0bcc83
Merge pull request #42 from ksherlock/nocrossbank
...
symbol table needs to be no-cross-bank
2020-05-24 16:11:16 -07:00
Kelvin Sherlock
89b7308c15
Update labels/symbol size from 15 to 31.
...
Magic number offsets are also replaced with named constants.
Merlin 16+ increased the label size from 12 to 26 at some point and the 15-char limit causes duplicate label errors on some Merlin source code.
2020-05-24 18:37:21 -04:00
Kelvin Sherlock
8f7427d11d
symbol table needs to be no-cross-bank since qasm uses mvn to copy entries into it (mvn won't cross banks)
2020-05-24 17:53:33 -04:00
Lane Roathe
13473d448b
Merge pull request #41 from ksherlock/ent-pass-two
...
(qasm iigs) ent label-list operand
2020-01-16 10:35:33 -08:00
Kelvin Sherlock
275f49e43e
ent label-list operand should only execute on the second pass, after all labels are defined.
2020-01-15 21:00:16 -05:00
Lane Roathe
0dcd68a402
Merge pull request #40 from ksherlock/quicklink-xy
...
(qlink iigs) quick link was pulling x/y in the wrong order
2020-01-14 17:53:18 -08:00
Kelvin Sherlock
9c8abb1bb7
quick link was pulling x/y in the wrong order (when no subtype was specified).
2020-01-14 20:45:48 -05:00
Lane Roathe
938873e8f3
Merge pull request #39 from lroathe/master
...
Remove broken links in project file, fix run to use relocated test file
2020-01-14 16:50:42 -08:00
Lane Roathe
0bedddc756
Remove broken links in project file, fix run to use relocated test file
2020-01-14 16:49:48 -08:00
Lane Roathe
9f510117c0
Merge pull request #38 from ksherlock/undo-illegal-address
...
(qasm iigs) - add back error checking disabled for relative value bug
2020-01-13 19:18:10 -08:00
Lane Roathe
cb60f13d67
Merge pull request #37 from ksherlock/dot-s
...
qasm iigs: only add .S extension as necessary
2020-01-13 19:14:02 -08:00
Kelvin Sherlock
da1c2e8222
adds back error checking which was previously disabled due to the illegal relative value bug.
...
also fixes a couple tool macro typos that slipped in before
2020-01-13 22:13:16 -05:00
Kelvin Sherlock
861bb44d32
only add .S extension as necessary
...
modifies the asm command line, linker command line, and linker ASM/PUT/IF opcodes to only append a .S suffix if it's not already present.
this is more consistent with Merlin 16+ and less surprising for people who use the command-line asm or link commands.
2020-01-13 21:58:52 -05:00
Lane Roathe
77b01cbbb4
Merge pull request #36 from ksherlock/dumdum
...
reset dumor to 0, not $8000, at DEND. (qasm iigs)
2020-01-11 18:21:59 -08:00
Kelvin Sherlock
93a79855fb
reset dumor to 0, not $8000, at DEND.
...
should fix a bug where DUM * (or DUM label) generates absolute values.
2020-01-11 19:01:41 -05:00
Lane Roathe
d119b7a08e
Merge pull request #35 from ksherlock/y2k
...
fix y2k dat display.
2020-01-07 12:18:46 -08:00
Kelvin Sherlock
7336daffbf
fix y2k overflow.
...
_ReadTimeHex returns the year as an offset from 1900, so 2020 is 120, which overflows ('0' + 12 is ascii '<')
subtract 100, repeatedly, until it fits in 2 digits. Should last into 2100.
2020-01-06 19:46:24 -05:00
Lane Roathe
552603d2e0
Merge pull request #34 from ksherlock/self-build
...
qasm/qlink IIgs Self build
2020-01-06 11:45:03 -08:00
Kelvin Sherlock
fa3554f6e5
missing macros :)
2020-01-05 23:56:11 -05:00
Kelvin Sherlock
a0bc5de359
assembler - use named tool macros
2020-01-05 19:11:28 -05:00
Kelvin Sherlock
1fe4590e2c
use tool macros instead of numbers. also use normal tool macro case
2020-01-05 18:57:10 -05:00
Kelvin Sherlock
8d66e85d2c
self-build linker.
...
will also build with merlin 16+, other than USR differences.
2020-01-05 18:31:35 -05:00