TAL Programmer's Guide
Accessing the Upper 32K-Word Area
Managing Addressing
B–6 096254 Tandem Computers Incorporated
You can use a move statement to copy a constant list to the address contained in a
simple pointer. You can then assign one of the values in the constant list to an array
element by appending an index to the pointer to access that particular value:
INT var[0:4]; !Declare array
INT .ptr := %100000; !Declare simple pointer
var[2] := 5; !Assign 5 to VAR[2]
ptr ':=' [1, 2, 3]; !Copy constant list to location
 ! at address %100000
var[3] := ptr[2]; !Assign 3 to VAR[3]
Copying Data to Structure Pointers
You can use INT structure pointers to copy data to word-addressed structure items in
the upper 32K-word area of the current user data segment. To copy data, you use a
move statement:
?DATAPAGES 64 !Get maximum upper 32K-word area
STRUCT names (
*
); !Declare template structure
 BEGIN
 INT new_name[0:7];
 END;
INT .name_ptr1(names) := %100000;
 !Point to beginning of upper
 ! 32K-word area
INT .name_ptr2(names) := %100010;
 !Point to next free space in upper
 ! 32K-word area
PROC main_proc MAIN;
 BEGIN
 !Lots of code
 name_ptr1.new_name[0] ':=' "Athersohn, Jutha";
 name_ptr2.new_name[0] ':=' "Zyrphn, Rhod Wen";
 !Move statement copies data
 !Lots of code ! to word-addressed structure
 END; ! items










