[Oberon] Project Oberon loader external reference methods

Paul Reed paulreed at paddedcell.com
Thu Aug 8 13:32:43 CEST 2013

> Date: Wed, 7 Aug 2013 21:34:21 -0700
> From: peasthope at shaw.ca
> Subject: [Oberon] ProjectOberon.pdf

>> http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf
> "1. External references are directly patched in the code. The object file
> contains a list of the locations of
> all external references. It is called the fixup list.
> 2. A separate link table is provided with external references to be
> converted. The actual references
> within the program code directly refer to these table entries, and only
> indirectly to the objects."
> I don't understand this.  If each external reference is patched, why is
> the
> fixup list needed?  Appears that the fixup list is equivalent to the link
> table and the two cases are almost one.

Hi Peter,

If the code in the object file references other modules directly, it needs
to be patched by the loader when the code is loaded into memory (e.g. a
branch offset to a procedure in another module).

On the other hand, if the code merely refers to an entry in a table
maintained by the loader, the code itself doesn't need to be patched.

The NS32032 had some fancy instructions and registers to support this
latter method.


More information about the Oberon mailing list