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.