MC68060 Software Package
C-2
M68060 USER’S MANUAL
MOTOROLA
Each module has pre-defined addresses used by the target operating system as entry points
into the M68060SP routines. These pre-defined addresses will remain unchanged to ensure
that future releases of the M68060SP do not require recompilation.
The three kernel modules require some system-dependent subroutines to be supplied by
the target system. These modules also contain a call-out dispatch table. Each entry in the
call-out dispatch table represents an external function needed by that module. The call-out
dispatch table must be filled by the system integrator with the relative address (relative to
the top of the module) of the desired external function. This module-relative addressing
ensures full position independence.
C.1 MODULE FORMAT
Each module consists of the following parts:
1. Call-out Dispatch Table
2. Entry-point Dispatch Section
3. Code section
The call-out dispatch table is used by the module to reference external functions. The unim-
plemented integer and floating-point library modules do not require call-out dispatch tables.
For the other three modules, the call-out dispatch table contains a maximum of 32 call-out
entries. Each entry is 4 bytes long; hence, the call-out dispatch table size is 128 bytes. This
table must be supplied by the system integrator. Each entry must contain the relative
addresses of external functions, relative to the top of the call-out table.
For example, if the call-out dispatch table defines the first location to be the _mem_read
entry and the third entry defines the _mem_write entry, the table appears as shown in Figure
C-1.
The MC68060SP release has an example call-out dispatch table for each module. Since the
call-out dispatch table is system dependent, it is placed in a file separate from the next two
sections of the module. Care must be taken when porting the MC68060SP to ensure that
each module is kept intact.
xref _mem_read, _mem_write
xdef _top
_top:
dc.l _mem_read - _top
dc.l _mem_write - _top
dc.l $00000000
* End of Call-out Dispatch Table. The module (pseudo-assembly module) must
* immediately follow:
Figure C-1. Call-Out Dispatch Table Example