HPlogo System Debug Reference Manual > Chapter 10 System Debug Standard Functions

func pub

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

Coerces an expression into a PUB logical code pointer (LCPTR).

Syntax



   pub (value)

During the evaluation of the parameter to this function, the search path used for procedure name lookups is limited to the account library file (PUB).

Formal Declaration



   pub:pub (value:any)

Parameters


value

An expression to be coerced. All types are valid.

Table 10-10 Derivation of the PUB Bit Pattern

Parameter Type Action
BOOL0.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 ClassTransfer both parts of the address unchanged.
EADDR
SADDR
Transfer the SID part unchanged. Transfer the low-order 32 bits of the offset part.
STRTransfer 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.

Examples



   %cmdebug > wl pub(12.304)
   PUB %12.304

Coerce the simple long pointer into a PUB logical code pointer.

   %cmdebug > wl pub( sort )
   PUB %3.2632

Print the address of the procedure named sort. Note that the search path used for procedure name lookups is restricted to the account library (PUB).

   %cmdebug > wl pub(sys(24.630))
   PUB %24.630

The coercion simply changes the associated logical file. The pointer's bit pattern remains unchanged.

   $nmdat > wl pub( 1 )
   PUB $0.1

   $nmdat > wl pub( ffff )
   PUB $0.ffff

   $nmdat > wl pub( 1234abcd )
   PUB $0.1234abcd

   $nmdat > wl pub( -1 )
   PUB $0.ffffffff

   $nmdat > wl pub( 1234.5678 )
   PUB $1234.5678

   $nmdat > wl pub( true )
   PUB $0.1

   $nmdat > wl pub( "ABCDEFG" )
   PUB $414243.44454647

   $nmdat > wl pub( prog(1.2) )
   PUB $1.2

Limitations, Restrictions


none




func pstate


func rtov