Shawn Quick
e687507a3b
now able to push all test scripts to a directory that can be shared with gsplus, and files directly loaded into Merlin. Also support 'CHK' p-op to compare assemblies between the two
2023-02-09 13:26:09 -08:00
Shawn Quick
6571f2de07
clean up/add to .gitignore
2023-02-08 19:47:55 -08:00
Shawn Quick
20f78d128b
more fixes on operand handling, tests back to passing (not all, but many)
2023-02-08 15:46:38 -08:00
Shawn Quick
4380f4e8ca
might be broken, work on addressing modes and shift operators < > | ^
2023-02-08 10:14:55 -08:00
Shawn Quick
88e0251a16
more options, cleanup of command line options
2023-02-07 12:34:52 -08:00
Shawn Quick
107598bb02
working on parameters and options
2023-02-06 22:27:19 -08:00
Shawn Quick
6e9eb6cfcc
fixed a few bugs, got more tests to pass, added some parms.json options
2023-02-05 21:38:02 -08:00
Shawn Quick
2f79abe461
work on cmake-tools under vscode, adding syntax checking, and script processing
2023-02-05 10:49:07 -08:00
Shawn Quick
1fb1aa259d
build ciderpress libraries with cmake
2023-02-04 15:37:30 -08:00
Shawn Quick
9c66992c23
building ciderpress libraries with cmake
2023-02-04 15:34:50 -08:00
Shawn Quick
e74f463a1e
Merge branch 'master' of github.com:marketideas/qasm
2022-01-17 11:22:23 -08:00
Shawn Quick
e1f1f662df
libpal updates
2022-01-17 11:21:57 -08:00
Lane Roathe
901ea90126
Merge pull request #62 from marketideas/inc-a
...
qasm - in Merlin, 'a' as an operand is ignored.
2021-08-31 15:14:33 -07:00
Kelvin Sherlock
fc62d0c9e7
'a' as an operand is ignored.
...
Based on testing with Merlin-16+ 4.12, this seems to apply in all cases
inc a -> equivalent to inc
lda a -> equivalent to lda (bad address mode error)
if you do have an 'a' label, you need to specify the address mode, eg
lda |a, lda >a, lda <a
2021-08-31 18:08:08 -04:00
Shawn Quick
3f090b7b67
github authentication
2021-08-20 08:35:37 -07:00
Lane Roathe
a7b040e182
Merge pull request #61 from ksherlock/qlink_ext
...
qlinkgs - link script ext support
2021-05-04 13:01:18 -07:00
Kelvin Sherlock
8d65e4c290
link script ext support
...
"label ext" should import label (an absolute ent from a .L file) into the local symbol table.
handled by setting the linkgeqbit.
2021-05-03 23:50:56 -04:00
Lane Roathe
ba7a68c1bc
Merge pull request #60 from ksherlock/len_pos
...
qlinkgs - implement the len/pos linker opcodes
2021-05-03 07:57:49 -07:00
Kelvin Sherlock
59925b3a08
qlinkgs - implement the len/pos linker opcodes
...
len [label]
sets label = size of most recently linked/imported file
pos [label]
sets label = size of current segment. If no label, resets the position variable to 0.
label is added to the symbol table as an absolute entry.
Testing in merlin 16+, these are absolute entry labels, not gequ labels
Merlin does not include any ds fill in the len/pos, but that decision
seems questionable. these do include a ds fill for both.
2021-05-01 12:37:26 -04:00
Lane Roathe
b6826d0df4
Merge pull request #59 from ksherlock/rel_ds
...
qlinkgs: Fix rel DS handling
2021-04-27 15:54:33 -07:00
Kelvin Sherlock
b92683ed43
REL DS calculation is based on the total segment size, not the current file.
...
additionally, it was block moving the size of the DS fill rather than the size of the relocation records.
2021-04-27 16:39:22 -04:00
Lane Roathe
b1867bb1e3
Merge pull request #58 from ksherlock/ovr_off
...
qlinkgs - OVR OFF was checking for 'F' instead of 'O'.
2021-04-26 08:59:35 -07:00
Lane Roathe
e7852a03a6
Merge pull request #57 from ksherlock/link_badlabel_error2
...
qlinkgs - fix a couple cosmetic issues with error display
2021-04-26 08:58:50 -07:00
Lane Roathe
1d23d8c76d
Merge pull request #56 from ksherlock/export-gequ
...
qlinkgs : make GEQU symbols available to the linker
2021-04-26 08:57:51 -07:00
Kelvin Sherlock
c12743b943
OVR OFF was checking for 'F' instead of 'O'.
2021-04-25 22:37:31 -04:00
Kelvin Sherlock
b0fbd610c9
1. some, not all, badlable errors have bit $80 set (fatal indicator I believe). this is missing from the error table so they generate an undefined error.
...
2. error code isn't reloaded when checking for constraint/not resolved errors (which are handled specially), which would result in a second undefined error for them.
2021-04-24 21:04:58 -04:00
Kelvin Sherlock
f35e76b682
In Merlin, link script GEQU (and KBD) values are available to the assembler and the linker, as absolute values.
...
This makes them available in the link phase (asm phase was already supported).
2021-04-23 23:38:25 -04:00
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