Commit Graph

211 Commits

Author SHA1 Message Date
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
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