pTAL Guidelines for TAL Programmers
Coding Guidelines
pTAL Guidelines for TAL Programmers—527256-002
2-15
Addresses and Integer Expressions
Addresses and Integer Expressions
Guideline: Include only constant operands in an integer expression whose value is
assigned to a 16-bit pointer.
In TAL, the expression you store into a 16-bit pointer can include both constant and
nonconstant integer values.
In pTAL, you can store an integer into a 16-bit pointer only if the integer is a constant
expression.
This guideline does not apply to 32-bit pointers. You can store 32-bit constants, literal
values, or variable values into a 32-bit pointer.
Address Conversions
Guideline: Restrict address conversions to the rules described in this guideline.
You can convert addresses from one address type to another. Table 2-2 on page 2-15
shows the low-level conversions that pTAL supports.
Example 2-10. Valid Assignments
DEFINE offset = 14;
LITERAL distance = 20;
INT .p;
BADDR b;
@p := 0;
@p := -1 + (offset * 100) / distance;
b := @177777;
Table 2-2. Address Conversions (page1of2)
Conversion Expression Result Type Example
WADDR ‘<<‘ 1 BADDR INT .p;
STRING .s := @p ‘<<‘ 1;
SGWADDR ‘<<‘ 1 SGBADDR INT .SG p;
STRING .SG s := @p ‘<<‘ 1;
SGXWADDR ‘<<‘ 1 SGBADDR INT .SGX p;
STRING .SG s := @p ‘<<‘ 1;
BADDR ‘>>‘ 1 WADDR STRING .p;
INT .s := @p ‘>>’ 1;
SGBADDR ‘>>‘ 1 SGWADDR STRING .SG p;
INT .SG s := @p ‘>>’ 1;
SGXBADDR ‘>>‘ 1 SGWADDR STRING .SGX p;
INT .SG s := @p ‘>>’ 1;
$UDBL(BADDR ) EXTADDR STRING .p;
STRING .EXT s := $UDBL(@p);