pTAL Reference Manual (G06.24+, H06.09+, J06.03+)

Example 128 Equivalencing Procedure Addresses and Pointer Variables
PROCPTR pp; ! pp is a 32-bit procedure pointer
END PROCPTR;
PROC32PTR p32p; ! p32p is a 32-bit procedure pointer
END PROCPTR;
PROC64PTR p64p; ! p64p is a 64-bit procedure pointer
END PROCPTR;
PROCADDR pae = pp; ! pa is a procedure address equivalenced to a
! procedure pointer
PROC32ADDR p32ae = p32p; ! pa is a procedure address equivalenced to a
! procedure pointer
PROC64ADDR p64ae = p64p; ! p64a is a procedure address equivalenced to a
! procedure pointer
PROCADDR pa;
PROC32ADDR p32a;
PROC64ADDR p64a;
PROCPTR ppe; ! ppe is a procedure pointer equivalenced to a
END PROCPTR = pa; ! procedure pointer
PROC32PTR p32pe; ! p32pe is a procedure pointer equivalenced to a
END PROCPTR = p32a; ! procedure pointer
PROC64PTR p64pe; ! p64pe is a procedure pointer equivalenced to a
END PROCPTR = p64a; ! procedure pointer
PROCPTR pp1; ! pp is a procedure pointer equivalenced to a
END PROCPTR = pp; ! procedure pointer
INT PROCPTR i; ! OK, however it is not recommended to
END PROCPTR = p64p; ! equivalence procedure pointers with different
! signatures or with different sizes
PROCADDR pa1 = p64a; ! OK, however it is not recommended to
! equivalence procedure pointers or addresses
! to procedure pointers or addresses with
! different sizes
Declaring Equivalenced Definition Structures
An equivalenced definition structure declaration associates a new structure with a previously
declared variable.
Indirection
., .EXT, .EXT32, .EXT64, .SG, and .SGX are indirection symbols (see Table 14 (page 41)).
188 Equivalenced Variables