|
|
Coerces an expression into a LPUB logical code pointer
(LCPTR).
lpub (value)
During the evaluation of the parameter to this function, the
search path used for procedure name lookups is restricted to the
logon account library file (LPUB).
lpub:lpub (value:any)
- value
An expression to be coerced. All types are valid.
Table 10-8 Derivation of the LPUB Bit Pattern
Parameter Type |
Action |
BOOL |
0.1 if TRUE, 0.0 if FALSE. |
U16 U32 SPTR |
Set the SID part to zero. Right justify the original value in the
low-order 32 bits of the offset part with zero fill. |
S16 S32 S64 |
Set the SID part to zero. Right justify the original value in the
low-order 32 bits of the offset part with sign extension. |
LONG Class |
Transfer both parts of the address unchanged. |
EADDR SADDR |
Transfer the SID part unchanged. Transfer the low-order 32 bits of the
offset part. |
STR |
Transfer the ASCII bit pattern for the last eight characters in the
string. Strings shorter than eight characters are treated as if they were
extended on the left with nulls. |
%cmdebug > wl lpub(12.304)
LPUB %12.304
Coerce the simple long pointer 12.304 into a LPUB logical
code pointer.
%cmdebug > wl lpub( sort )
LPUB %2.6632
Print the address of the procedure named sort. Note that the search
path used for procedure name lookups is restricted to the logon account library
(LPUB).
%cmdebug > wl lpub(sys(24.630))
LPUB %24.630
The coercion simply changes the associated logical file. The pointer's bit
pattern remains unchanged.
$nmdat > wl lpub( 1 )
LPUB $0.1
$nmdat > wl lpub( ffff )
LPUB $0.ffff
$nmdat > wl lpub( 1234abcd )
LPUB $0.1234abcd
$nmdat > wl lpub( -1 )
LPUB $0.ffffffff
$nmdat > wl lpub( 1234.5678 )
LPUB $1234.5678
$nmdat > wl lpub( true )
LPUB $0.1
$nmdat > wl lpub( "ABCDEFG" )
LPUB $414243.44454647
$nmdat > wl lpub( prog(1.2) )
LPUB $1.2
None
|