User`s guide
 The prev: field contains the address of the preceding RSX in memory or location 5
 if the RSX is the first RSX in the chain.
 The remove: field controls whether the RSX is removed from memory by the next
 call to the LOADER module via BDOS function 59. If the remove: flag is OFFH, the
 LOADER removes the RSX from memory. Note that the CCP always calls the
 LOADER module during a warm start operation. An RSX that remains in memory
 past warm start because its remove: flag is zero, must set the flag at its termination
 to ensure its removal from memory at the following warm start.
 The nonbank: field controls when the RSX is loaded. If the field is OFFH, the
 LOADER only loads the module into memory on nonbanked CP/M 3 systems.
 Otherwise, the RSX is loaded into memory under both banked and nonbanked ver-
 sions of CP/M 3.
 The loader: flag identifies the LOADER RSX. When the LOADER module loads
 an RSX into memory, it sets this prefix flag of the loaded RSX to zero. However, the
 loader: flag in the LOADER's prefix contains OFFH. Thus, this flag identifies the last
 RSX in the chain, which is always the LOADER.
 4.4.2 Example of RSX Use
 These two sample programs illustrate the use of an RSX program. The first
 program, CALLVERS, prints a message to the console and then makes a BDOS
 Function 12 call to obtain the CP/M 3 version number. CALLVERS repeats this
 sequence five times before terminating. The second program, ECHOVERS, is an RSX
 that intercepts the BDOS Function 12 call made by CALLVERS, prints a second
 message, and returns the version 0031H to CALLVERS. Although this example is
 simple, it illustrates BDOS function interception, stack swapping, and BDOS function
 calls within an RSX.
4-22
4.4 Construction of an RSX Program CP/M 3 Programmer's Guide










