Guardian Application Conversion Guide
Converting a TAL Program to Run at a High PIN
Converting TAL Applications
3–10 096047 Tandem Computers Incorporated
Setting the HIGHPIN
Object-File Attribute
The HIGHPIN object-file attribute informs the system that the object file can run at a
high PIN. You set the HIGHPIN object-file attribute either during compilation using a
compiler directive or after compilation using the Binder program.
To set the attribute when you compile your program, specify the HIGHPIN directive
in your source code or as a compiler option in the TACL RUN command for the
TAL compiler. The BINSERV program then sets the HIGHPIN attribute in the object
file. An example of this directive in your source file is:
?HIGHPIN
An example of this directive as a compiler option is:
10> TAL /IN talsrc, OUT $s.#tallst, NOWAIT/ talobj; HIGHPIN
You need to specify the HIGHPIN directive only once during a compilation. The TAL
compiler ignores redundant HIGHPIN directives.
If you do not set the HIGHPIN attribute when you compile your program, you can set
it after compilation using the Binder program.
If you are binding more than one object file into a single target object file, the Binder
program sets the HIGHPIN object-file attribute in the target file only if all constituent
files have the HIGHPIN object-file attribute set. If necessary, use the Binder CHANGE
command to set the attribute in the target object file:
@CHANGE HIGHPIN ON IN talobj
Using a Library File If your program uses a library file, the library file must also have the HIGHPIN object-
file attribute set. To determine the current setting of the HIGHPIN attribute for the
library file, use the Binder SHOW command:
@SHOW SET HIGHPIN FROM libfile
If necessary, set this attribute as described in the previous step (provided the library
file has been converted to support a high-PIN process).
Declaring 16-Bit CPU and
PIN Variables
As described earlier under “Converting Basic Elements of a TAL Program,” you need
to provide a 16-bit variable for the CPU value and a 16-bit variable for the PIN value.
Your existing program might declare either a 16-bit integer variable for both the CPU
and PIN values or an 8-bit variable for a PIN value:
STRING primary^cpu, ! CPU of primary process.
primary^pin; ! PIN of primary process.
INT cpu^and^pin; ! CPU and PIN values.
Declare all PIN values, including backup-process PINs, as 16-bit integer variables. For
CPU and PIN values, declare each item as a separate 16-bit integer variable:
INT primary^cpu, ! CPU of primary process.
primary^pin; ! PIN of primary process.