pTAL Reference Manual (G06.24+, H06.09+, J06.03+)
Example 11 Extended Addresses
EXTADDR e;
EXT32ADDR e32;
EXT64ADDR e64;
INT .EXT i;
INT .EXT32 j;
INT .EXT64 k;
IF e < @i THEN ... ! OK: e and @i are both EXTADDR
IF e < @j THEN ... ! OK, e and @j are both extended addresses
IF e < @k THEN ... ! OK, e and @k are both extended addresses
IF @i >= 0D THEN ... ! OK: @i is EXTADDR, 0D is 32 bits
IF @j >= 0D THEN ... ! OK: @j is EXT32ADDR, 0D is 32 bits
IF @k >= 0F THEN ... ! OK: @K is EXT64ADDR, 0F is 64 bits
IF e = 0D THEN ... ! OK
IF e <> 0D THEN ... ! OK
IF e THEN ... ! OK
IF NOT e THEN ... ! OK
IF e32 = 0D THEN ... ! OK
IF e32 <> 0D THEN ... ! OK
IF e32 THEN ... ! OK
IF NOT e32 THEN ... ! OK
IF e64 = 0F THEN ... ! OK
IF e64 <> 0F THEN ... ! OK
IF e64 THEN ... ! OK
IF NOT e64 THEN ... ! OK
IF e > i THEN ... ! ERROR: e is EXTADDR, i is INT
IF e32 > i THEN ... ! ERROR: e32 is EXT32ADDR, i is INT
IF e64 > i THEN ... ! ERROR: e64 is EXT64ADDR, i is INT
IF e '<' @i THEN ... ! ERROR: Unsigned operators are
! not valid with EXTADDRs
IF e32 '<>' 0D THEN ...! ERROR: Unsigned operators are
! not valid with EXT32ADDRs
IF e64 '>' 0F THEN ... ! ERROR: Unsigned operators are
! not valid with EXT64ADDRs
NOTE: The address types, EXT32ADDR and EXT64ADDR are 64-bit addressing functionality
added to the EpTAL compiler starting with SPR T0561H01^AAP. For more information, see
Appendix E, “64-bit Addressing Functionality” (page 531).
Nonextended Addresses
The following rules apply when you compare nonextended addresses:
• Use unsigned relational operators ( '<', '=', '>', '<=', '<>', '>='), a signed equality operator
(=), or a signed inequality operator (<>) to compare nonextended addresses. The signed and
unsigned equality operators produce the same results. Similarly, the signed and unsigned
inequality operators produce the same results.
• Do not compare nonextended addresses using signed operators that test for greater than or
less than (<, <=, >, >=).
Valid comparisons:
INT .p, .q;
IF @p = 0 THEN ...
IF @p <> 0 THEN ...
IF @p = @q THEN ...
Both operands must have the same address type:
STRING .s;
BADDR .b;
78 Expressions