Commit Graph

50 Commits

Author SHA1 Message Date
Kelvin Sherlock
ebc350eac0 for command-line links, print the symbol table if -v flag given. 2020-06-06 12:09:55 -04:00
Kelvin Sherlock
41d5186c3f big-endian support. 2020-06-06 12:07:31 -04:00
Kelvin Sherlock
f0f87b4868 travis ci fix because travis ci is outdated 2020-06-03 10:57:52 -04:00
Kelvin Sherlock
ef618dc449 use ENT opcode to print symbol table. 2020-06-03 10:57:05 -04:00
Kelvin Sherlock
26676ede7d EXD warning support. 2020-06-02 23:33:34 -04:00
Kelvin Sherlock
4f7890c699 Merling DDB support. 2-byte data stored in big-endian format, which requires 2 1-byte relocation records. 2020-06-01 00:15:39 -04:00
Kelvin Sherlock
9723ce1f00 support for linker 3, generate OMF object files. 2020-05-17 17:01:03 -04:00
Kelvin Sherlock
38a61304a5 update readme 2019-12-22 15:00:22 -05:00
Kelvin Sherlock
30d26b7828 merlin uses the same loadname for all segments. 2019-12-22 14:43:12 -05:00
Kelvin Sherlock
5ee80c8b51 small subtlety with the $4f relocation record
the low-byte of the address is stored in the relocation record and needs to be accounted for.
2019-12-21 23:35:56 -05:00
Kelvin Sherlock
e52e7921ef fix bug with SUPER skip page calculations.
the page counter is advanced by 1 implicitly when the page finishes. Unless empty, the skip count is thus decreased by 1.
2019-12-21 20:31:42 -05:00
Kelvin Sherlock
bf63d70d3b print more info when verbose. 2019-12-21 17:51:15 -05:00
Kelvin Sherlock
3b95cbb475 improved sorting for symbol table printing.
numerical order now prints absolute values first and factors in the segment number (starting at 1) when sorting others.
2019-12-21 17:35:01 -05:00
Kelvin Sherlock
5e6829e9ae fix import segment number 2019-12-21 17:32:06 -05:00
Kelvin Sherlock
c85d401fbf add support for $4F relocation record, which is a 1-byte, internal relocation with 8-bit shift. Found via linking marinetti. 2019-12-21 15:07:03 -05:00
Kelvin Sherlock
67f34936c2 check for code segments that exceed the bank size. 2019-12-17 12:43:37 -05:00
Kelvin Sherlock
5269b58365 default merlin kind is 4096 (static code, no special memory) 2019-12-17 12:43:05 -05:00
Kelvin Sherlock
7b059c424b * is only a comment character if first character. 2019-12-16 23:12:53 -05:00
Kelvin Sherlock
4688dbc5c3 half of lib support (untested). library names need to match the symbol (singular) they define. 2019-12-15 13:06:49 -05:00
Kelvin Sherlock
dac2be0940 misc cleanup 2019-12-15 13:06:05 -05:00
Kelvin Sherlock
57525d5464 EXT support. 8/16+ added EXT as an operand to import an absolute linker value into the local symbol table. 2019-12-15 13:05:41 -05:00
Kelvin Sherlock
637df6ee33 ORG and LKV 1 support (untested) 2019-12-15 13:04:45 -05:00
Kelvin Sherlock
34523bbecf ALI and DS support 2019-12-15 13:03:43 -05:00
Kelvin Sherlock
c341d9a54f allow multiple linker 1 saves. each will generate a new file. 2019-12-14 22:24:24 -05:00
Kelvin Sherlock
a64c1ba843 cleanup segment number a bit 2019-12-14 21:56:52 -05:00
Kelvin Sherlock
f9ecc984a0 support for Merlin command files. 2019-12-14 19:01:12 -05:00
ksherlock
008862ed92
Create README.md 2019-12-11 10:07:12 -05:00
Kelvin Sherlock
515594346f sort relocation records
fix value for external labels.
2019-12-11 00:27:04 -05:00
Kelvin Sherlock
e3aa60be6a requires xcode 10, apparently, for optional. 2019-12-10 23:09:04 -05:00
Kelvin Sherlock
3aab0a4735 fix absolute shifting logic. 2019-12-10 23:00:59 -05:00
Kelvin Sherlock
bef129bd8c typo 2019-12-10 22:46:04 -05:00
Kelvin Sherlock
1ac35ec473 workaround missing charconv. also: print ! for missing symbols, ? for unused symbols. 2019-12-10 22:43:11 -05:00
Kelvin Sherlock
6fb0bf8532 try to work around old std libraries. 2019-12-10 22:11:29 -05:00
Kelvin Sherlock
06bdef4d80 fix travis 2019-12-10 21:57:22 -05:00
Kelvin Sherlock
debb2aebe9 add support for -D defines
fix segfault (switch id to be 0-based)
handle absolute symbols
2019-12-10 21:39:51 -05:00
ksherlock
43fd7a1b6e
Update .travis.yml 2019-12-10 13:43:49 -05:00
ksherlock
0672111313
Update .travis.yml 2019-12-10 13:33:54 -05:00
ksherlock
0d6d60c6c7
Update link.cpp 2019-12-10 13:27:53 -05:00
ksherlock
6e0bb5345d
missing header 2019-12-10 13:24:56 -05:00
ksherlock
60ac492cbb
Update Makefile 2019-12-10 13:20:07 -05:00
ksherlock
18c4a4f710
Update .travis.yml 2019-12-10 13:18:36 -05:00
ksherlock
48a21693b0
Update .travis.yml 2019-12-10 13:14:15 -05:00
ksherlock
03b35d1bc2
Create .travis.yml 2019-12-10 12:59:45 -05:00
ksherlock
b55305d11c
push string - only push a max of 255 chars. 2019-12-10 10:29:45 -05:00
Kelvin Sherlock
12bae449ba simple, 1-file link works. 2019-12-09 22:15:55 -05:00
Kelvin Sherlock
f8f698d3d6 misc fixes. 2019-12-09 21:58:01 -05:00
Kelvin Sherlock
7048c59813 it compiles... 2019-12-09 19:45:45 -05:00
Kelvin Sherlock
a4dfcec1f1 WIP 2019-12-09 13:02:15 -05:00
Kelvin Sherlock
5866fc8bc8 ignore 2019-12-08 13:55:49 -05:00
Kelvin Sherlock
5159061ff0 initial WIP 2019-12-08 13:55:33 -05:00