User`s guide

When a transient program terminates execution, the BIOS warm start routine
reloads the CCP into memory. When the CCP receives control, it tests to see if RSXs
are resident in memory. If not, it relocates the LOADER module below the BDOS
module at the top of the TPA region of memory. Otherwise, it skips this step because
the LOADER module is already resident. The CCP execution cycle then repeats.
Unlike earlier versions of CP/M, the CCP does not reset the disk system at warm
start. However, the CCP does reset the disk system if a CTRL-C is typed at the
prompt.
1.6.3 Transient Program Operation
A transient program is one that the CCP loads into the TPA region of memory
and executes. As the name transient implies, transient programs are not system resi-
dent. The CCP must load a transient program into memory every time the program
is to be executed. For example, the utilities PIP and RMAC" that are shipped with
CP/M 3 execute as transient programs; programs such as word processing and
accounting packages distributed by applications vendors also execute as transient
programs under CP/M 3.
Section 1.6.2 describes how the CCP prepared the CP/M 3 environment for the
execution of a transient program. To summarize, the CCP initializes Page Zero to
contain parsed command-line fields and sets up a 32-byte stack before jumping to
location 0100H to pass control to the transient program. In addition, the CCP might
also load RSXs attached to the command file into memory for access by the transient
program.
Generally, an executing transient program communicates with the operating sys-
tem only through BDOS function calls. Transient programs make BDOS function
calls by loading the CPU registers with the appropriate entry parameters and calling
location 0005H in Page Zero.
Transient programs can use BDOS Function 50, Call BIOS, to access BIOS entry
points. This is the preferred method for accessing the BIOS; however, for compatibil-
ity with earlier releases of CP/M, transient programs can also make direct BIOS calls
for console and list I/O by using the jump instruction at location OOOOH in Page
Zero. But, to simplify portability, use direct BIOS calls only where the primitive level
of functionality provided by the BIOS functions is absolutely required. For example,
a disk formatting program must bypass CP/M's disk organization to do its job, and
therefore is justified in making direct BIOS calls. Note however, that disk formatting
programs are rarely portable.
1-22
1.6 System Operation CP/M 3 Programmer's Guide