TAL Programmer's Guide
CRE Guidelines for TAL
Mixed-Language Programming
17–38 096254 Tandem Computers Incorporated
To terminate execution, call CRE_TERMINATOR_, which calls PROCESS_STOP_.
Do not call the PROCESS_STOP_, STOP, or ABEND system procedures.
For services provided by the CRE, call CRE routines. For example, call CRE
routines to:
Open, manipulate, and close the standard files
Perform math or string operations
For services not provided by the CRE, call system procedures. For example, call
system procedures to:
Create processes
Manage extended data segments
Do not call the ABEND, ARMTRAP, PROCESS_STOP_ , or STOP system
procedure, because of probable conflict with TAL_CRE_INITIALIZER_ and
CRE_TERMINATOR_.
Do not call the INITIALIZER system procedure or read the startup message from
$RECEIVE itself, because of probable conflict with TAL_CRE_INITIALIZER_ and
CRE_TERMINATOR_.
If you use sequential I/O (SIO) procedures (such as WRITE^FILE, SET^FILE, and
READ^FILE), resolve how to remove any calls to the INITIALIZER procedure.
The Guardian Programmer’s Guide describes how you use the SIO and
INITIALIZER procedures.
Do not use the DATAPAGES, EXTENDSTACK, or STACK directive. (The
compiler automatically allocates 64K words of memory space for the user data
segment.)
Do not write data to areas in the user data segment that are reserved for use by the
CRE; that is, do not use:
Locations G[0] or G[1]
The upper 32K-word area
Your program can access $RECEIVE by calling either CRE routines only or system
procedures only, as described in “Accessing $RECEIVE” later in this section.
When an error occurs in a CRE routine, the CRE returns control to the calling TAL
routine without taking any action. The TAL routine must explicitly handle all
errors except certain errors detected by the CRE routines.
If a CRE math routine detects an error, the calling TAL routine must manage the
trap enable bit of the environment register to control program behavior.