Commit Graph

40 Commits

Author SHA1 Message Date
Kelvin Sherlock 471c4d4151 fixes so omf version 1 support works 2022-12-08 18:37:36 -05:00
Kelvin Sherlock 64aa57a9ed support for v1 omf (VER 1). 2022-12-06 23:25:44 -05:00
Kelvin Sherlock f7d70702f9 ORG support. 2020-11-12 19:24:58 -05:00
Kelvin Sherlock a38b2249f2 fix gcc overload ambiguity errors. 2020-11-12 17:38:31 -05:00
Kelvin Sherlock 433529897b add err support, handle it (and ds) via a separate pass over the relocation table. 2020-11-12 17:33:44 -05:00
Kelvin Sherlock d53d07087a add support for DS \ (flag type $cf).
Also adjusted the LEN and POS functionality based on merlin 16+ tests.
2020-11-12 17:33:44 -05:00
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 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 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 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 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
Kelvin Sherlock 515594346f sort relocation records
fix value for external labels.
2019-12-11 00:27: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 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 0d6d60c6c7
Update link.cpp 2019-12-10 13:27:53 -05:00
ksherlock 6e0bb5345d
missing header 2019-12-10 13:24:56 -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 5159061ff0 initial WIP 2019-12-08 13:55:33 -05:00