User`s guide

1.3.3 Applications and RSXs
A Resident System Extension is a temporary additional operating system module.
An RSX can extend or modify one or more operating system functions selectively.
As with a standard BDOS function, a transient program accesses an RSX function
through a numbered function call.
At any one time there might be zero, one, or multiple RSXs active in memory.
When a transient program makes a BDOS function call, and RSXs are active, each
RSX examines the function number of the call. If the function number matches the
function the RSX is designed to extend or modify, the RSX performs the requested
function. Otherwise, the RSX passes the function request to the next RSX. Noninter-
ceptcd functions are eventually passed to the BDOS for standard execution.
RSXs are loaded into memory when programs containing RSXs are loaded. The
CP/M 3 utility, GENCOM, can attach RSXs to program files. When attaching RSXS,
GENCOM places a special one page header at the beginning of the program file. The
CCP reads this header, learns that a program has attached RSXS, and loads the RSXs
accordingly. The header itself is not loaded into memory; it merely indicates to the
CCP that RSX loading is required.
The LOADER module is a special type of RSX that supports BDOS function 59,
Load Overlay. It is always resident when RSXs are active. To indicate RSX support
is required, a program that calls function 59 must have an RSX header attached by
GENCOM, even if the program does not require other RSXS. When the CCP
encounters this type of header in a program file when no RSXs are active, it sets the
address at location 0006H in Page Zero to LOADER-base + 6 instead of
BDOS_base + 6.
1.4 Memory Region Boundaries
This section reviews memory regions under CP/M 3, and then describes some
details of region boundaries. It then relates the sizes of various modules to the space
avialable for the execution of transient programs. Figure 1-6 reviews the location of
regions in logical memory.
1-9
1.3 Component Interaction CP/M 3 Programmer's Guide