Go to file
Stephen Heumann da13b94a43 Properly evaluate non-constant expressions in EQU/GEQU records.
Previously, the values of such expressions were essentially ignored, resulting in incorrect output.

This affected code like the following example:

test1   start
        lda     >p
        rtl
        end

D1      data
p       gequ    val
        end

val     data
        dc      i'123'
        end

Note that the EQU/GEQU expression is evaluated within the context of the location that references it, not the location where it is defined. This affects the value of the location counter, as well as the symbol search behavior. The references for the OMF format do not clearly define which way this should be done, but the current behavior can cause problems with certain object files produced by ORCA/M.
2022-09-25 21:42:20 -05:00
obj The ORCA Linker 2.0.3 from the Opus ][ CD 2017-10-01 21:26:59 -06:00
GNUmakefile add makefile and ninja file for use with Golden Gate. 2017-10-02 16:01:45 -04:00
LICENSE The ORCA Linker 2.0.3 from the Opus ][ CD 2017-10-01 21:26:59 -06:00
README.md The ORCA Linker 2.0.3 from the Opus ][ CD 2017-10-01 21:26:59 -06:00
backup convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
build.ninja add makefile and ninja file for use with Golden Gate. 2017-10-02 16:01:45 -04:00
count convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
directpage convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
exp.asm Properly evaluate non-constant expressions in EQU/GEQU records. 2022-09-25 21:42:20 -05:00
exp.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
file.asm Fix bug in handling of pathname buffers at the very beginning of a bank. 2017-10-08 20:47:06 -05:00
file.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
linker.asm Add support for auto-segmentation. 2022-08-30 19:32:09 -05:00
linker.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
linker.notes Properly evaluate non-constant expressions in EQU/GEQU records. 2022-09-25 21:42:20 -05:00
linker.rez Add support for auto-segmentation. 2022-08-30 19:32:09 -05:00
linkit convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
make Fix the make script to use actual names of macro files. 2021-03-03 23:27:28 -06:00
out.asm Set position-independent flag only if it is set in all object segments. 2022-08-30 19:46:22 -05:00
out.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
pass1.asm convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
pass1.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
pass2.asm Give error about excessive alignment at the right time. 2021-03-03 22:53:57 -06:00
pass2.mac Give error about excessive alignment at the right time. 2021-03-03 22:53:57 -06:00
seg.asm Add support for auto-segmentation. 2022-08-30 19:32:09 -05:00
seg.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
smac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
symbol.asm Properly evaluate non-constant expressions in EQU/GEQU records. 2022-09-25 21:42:20 -05:00
symbol.mac convert CR files to LF for better git compatibility. 2017-10-02 09:35:05 -04:00
util.asm Fix check for valid alignment values. 2021-03-03 23:26:08 -06:00
util.mac Fix check for valid alignment values. 2021-03-03 23:26:08 -06:00

README.md

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:

  1. The modified linker must compile under the currently released version of ORCA/M.

  2. 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.