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