TAL Programmer's Guide
Accessing the Upper 32K-Word Area
Managing Addressing
096254 Tandem Computers Incorporated B–7
You can use an INT extended structure pointer to copy data to byte-addressed
structure items in the upper 32K-word area of the current data user segment:
STRUCT name_rec (
*
); !Declare template structure
 BEGIN
 STRING name[0:25];
 END;
INT .EXT ext_ptr(name_rec) := %200000D;
 !Point to beginning
 ! of upper 32K-word area
ext_ptr.name[0] ':=' "Anasta L. Malatorious";
 !Move statement copies data
 ! to byte-addressed structure
 ! items
Managing Large
Blocks of Memory
The DEFINEPOOL, GETPOOL, and PUTPOOL system procedures can help you
manage large blocks of memory and build proper addresses:
LITERAL head_size = 19D;
INT .EXT poolhead := %200000D; !Pool header
INT .EXT pool := %200000D + head_size; !Points into upper
 ! 32K-word area
INT .EXT block;
status := DEFINEPOOL (poolhead, pool, head_size);
@block := GETPOOL (poolhead, 1024D);
!Lots of processing
CALL PUTPOOL (poolhead, block);
The DEFINEPOOL, GETPOOL, and SEGMENT_USE_ procedures return both a
condition code and a value. If you assign a returned value to a variable, the condition
code setting is lost. For more information on system procedures, see the Guardian
Procedure Calls Reference Manual and the Guardian Programmer’s Guide.










