76ba56a36b
Previously, the linker gave an error if the relative displacement was more than + or - 32 KB. But 2-byte RELEXPR records are typically used for the operand of the BRL instruction, and since its address calculation wraps around within the program bank, it can effectively address + or - 64KB (i.e. any location within the program bank). Similar reasoning applies to PER, the other instruction using long relative addressing. This would give an error in code like the following: bigbrl start brl later ds 33000 ; realistic examples would have actual code here later rtl end (This currently also gives an assembler error due to similar logic in ORCA/M, but the output file can be linked anyway.) This issue can affect very large functions compiled with ORCA/C or ORCA/Pascal, which may sometimes have branches that go more than 32 KB forward or back. |
||
---|---|---|
obj | ||
backup | ||
build.ninja | ||
count | ||
directpage | ||
exp.asm | ||
exp.mac | ||
file.asm | ||
file.mac | ||
GNUmakefile | ||
LICENSE | ||
linker.asm | ||
linker.mac | ||
linker.notes | ||
linker.rez | ||
linkit | ||
make | ||
out.asm | ||
out.mac | ||
pass1.asm | ||
pass1.mac | ||
pass2.asm | ||
pass2.mac | ||
README.md | ||
seg.asm | ||
seg.mac | ||
smac | ||
symbol.asm | ||
symbol.mac | ||
util.asm | ||
util.mac |
Linker
Apple IIGS ORCA Linker, a link editor for the Apple IIGS object module format
If you would like to make changes to this linker and distribute them to others, feel free to submit them here. If the changes apply to compilation on and for an Apple IIGS, they will generally be approved for distribution on the master branch. For changes that run on a different platform, the project will either be forked or a new repository will be created, as appropriate.
The general conditions that must be met before a change is released on master are:
-
The modified linker must compile under the currently released version of ORCA/M.
-
The ORCA compilers must pass their test suites using the new linker, or the test suite must be suitably modified, too.
Contact support@byteworks.us if you need contributor access.
A complete distribution of the ORCA languages, including installers and documentation, is available from the Juiced GS store at https://juiced.gs/store/category/software/. It is distributed as part of the Opus ][ package.