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