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
Kelvin Sherlock
b45553c992
tweaks to self-compile qasm with qasm.
...
other than USR opcode differences, it should build with merlin 16+ as well.
2020-01-05 18:06:32 -05:00
Lane Roathe
81a1e5a37d
Merge pull request #32 from ksherlock/ksherlock-patch-3
...
(IIgs qasm) Add system 6.0 / System 6.0.1 macros
2020-01-03 10:36:31 -08:00
ksherlock
700524b0f2
(IIgs qasm) Add system 6.0 / System 6.0.1 macros
...
I regenerated the pre-compiled toolmacs file based on GSBug's toolcall list (plus Marinetti toolcalls).
This includes new tools from system 6.0/6.01 and a a few name updates. The _DU is gone I don't know what that is offhand and I dare say nobody used it since it doesn't exist.
2020-01-02 14:29:18 -05:00
Lane Roathe
e47eb286b1
Merge pull request #31 from marketideas/lane_qasm_main
...
Lane qasm main
2020-01-01 14:49:42 -08:00
Lane Roathe
054aa2fbfc
Merge pull request #30 from lroathe/master
...
Remove opcodes.h from project file list as it doesn't exist.
2020-01-01 14:49:22 -08:00
Lane Roathe
8a5c16feee
Remove opcodes.h from project file list as it doesn't exist.
2020-01-01 14:48:39 -08:00
Lane Roathe
2e27f6e785
Merge pull request #29 from ksherlock/ksherlock-patch-2
...
fix internal macro expansion
2019-12-29 18:33:12 -08:00
Lane Roathe
05c76826c1
Merge pull request #28 from ksherlock/ksherlock-patch-1
...
stack imbalance printing the hours elapsed
2019-12-28 11:32:38 -08:00
ksherlock
937c527344
fix internal macro expansion
...
I'm not sure why that line was commented out, but y has an undefined value at this point so it will read a random offset into the line.
2019-12-28 14:30:45 -05:00
ksherlock
92cffed07b
stack imbalance printing the hours elapsed
...
probably never noticed because no assembly ever took that long.
2019-12-27 22:25:42 -05:00
Lane Roathe
a1ce717825
Merge pull request #27 from ksherlock/usr_opcode
...
Add USR opcode.
2019-12-20 12:10:46 -08:00
Kelvin Sherlock
f0b10c0221
Add USR opcode. This uses the Merlin and QAsm opcode hashing scheme.
2019-12-19 20:05:49 -05:00
Lane Roathe
3e568ad47a
Merge pull request #26 from marketideas/lane_qasm_main
...
Lane qasm main
2019-12-11 10:38:38 -08:00
Lane Roathe
4e2d5fceb0
Merge pull request #25 from lroathe/master
...
Merge in latest work
2019-12-11 10:36:28 -08:00
Lane Roathe
1c863c1e81
Add note about ERR support to readme
2019-12-11 10:35:39 -08:00
Lane Roathe
60f7ef53d1
Remove redundant psuedo opcodes and move ops with non doPSEUDO handler to their own section to make it easier to find the ones we still need to implement
2019-12-03 12:09:44 -07:00
Lane Roathe
3c2d1c7a39
Get merlintests.sh working on my system
2019-12-03 12:04:18 -07:00
Lane Roathe
5e09e0ca2a
Merge pull request #24 from lroathe/master
...
Fix warnings
2019-12-03 08:46:31 -08:00
Lane Roathe
aa5069780c
Fix some type conversion warnings
2019-12-03 09:44:50 -07:00
Lane Roathe
038d1004ea
Merge branch 'master' of https://github.com/marketideas/qasm
2019-12-03 09:34:50 -07:00
Lane Roathe
d78c8612f9
Merge branch 'sgq_qasm_main' of https://github.com/marketideas/qasm
2019-11-23 09:24:28 -08:00
marketideas
476a46d7db
test
2019-11-22 09:33:24 -08:00