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

func user

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

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

Syntax



   user ([library] value)

Formal Declaration



   user:user ([library:str=''] value:any)

Parameters


library

If this value is provided, System Debug restricts procedure name searches to the indicated executable library. This restriction remains in effect until the function's parameters have been completely evaluated. The program file's group and account are used to fully qualify the library file name if needed. The library must have been loaded by the process. If this parameter is omitted, procedure name searches begin at the first user library as specified in the LIBLIST= option of the RUN command (if any). Strings longer than valid file names are truncated to the maximum file name string length.

value

An expression to be coerced. All types are valid.

Table 10-20 Derivation of the USER 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 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.
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



   $nmdebug > wl user(,1c.304c)
   USER $1c.304c

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

   $nmdebug > wl user(,sys(24.630))
   USER $24.630

The coercion simply changes the associated logical file. Note that no complicated conversion or range checking is performed.

   $nmdebug > wl user("mylib.test" myproc )
   USER $3f.4c04

We asked for the address of the procedure myproc. By providing a library name, we restricted the search for the procedure to the executable library named mylib.test.

Limitations, Restrictions


none




func u32


func vainfo