LOC [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
LOC
Defines a local variable within a macro body.
Syntax
LOC var_name [:var_type] [=] var_value
The LOC command can only be executed within a macro.
Local variables are known only to the macro in which they are defined.
The environment variable NONLOCALVARS may be changed so that local
variables are accessible to any macro called after a local variable has
been defined. (Refer to the ENV command).
Local variables are automatically deleted when the macro in which the
variable was defined finishes execution.
Parameters
var_name The name of the local variable being defined. Names
must begin with an alphabetic character and are
restricted to thirty-two (32) characters, that must be
alphanumeric or an underscore (_), an apostrophe ('), or
a dollar sign ($). Longer names are truncated (with a
warning). Names are case insensitive.
var_type The type of the local variable. The following types are
supported:
STR String
BOOL Unsigned 16 bit
U16 Unsigned 16 bit
S16 Signed 16 bit
U32 Unsigned 32 bit
S32 Signed 32 bit
S64 Signed 64 bit
SPTR Short pointer
LPTR Long pointer
PROG Program logical address
GRP Group library logical address
PUB Account library logical address
LGRP Logon group library logical address
LPUB Logon account library logical address
SYS System library logical address
USER User library logical address
TRANS Translated CM code virtual address
If the type specification is omitted, the type is
assigned automatically, based on var_value.
The optional var_type allows the user to explicitly
specify the desired internal representation for
var_value (that is, signed or unsigned, 16-bit or
32-bit) for this particular assignment only. It does
not establish a fixed type for the lifetime of this
variable. A new value of a different type may be
assigned to the same local variable (name) by a
subsequent LOC command.
var_value The new value for the variable, which can be an
expression. An optional equal sign "=" can be inserted
before the variable value.
Examples
$nmdat > loc temp a.c000243c
Define local variable temp to be the address a.c000243c. By default,
this variable is of type LPTR (long pointer), based on the value.
$nmdebug > loc count=1c
Define local variable count to be the value 1c.
$nmdebug > loc s1:str="this is a string"
Define local variable s1 to be of type STR (string) and assign the value
"this is a string".
nmdat > mac sum(p1 p2) {loc temp p1+p2; loclist; ret temp}
nmdat > wl sum (1 2)
var temp : U16 = $3
var loc p2 : U16 = $2
var loc p1 : U16 = $1
$3
This example shows how the LOCLIST command, when executed as part of a
macro body, displays all currently defined local variables. Note that
the macro parameters appear as local variables. Local variables are
always listed in the reverse order that they were created.
Limitations, Restrictions
none
CAUTION The output format of all System Debug commands is subject to
change without notice. Programs that are developed to
postprocess System Debug output should not depend on the exact
format (spacing, alignment, number of lines, uppercase or
lowercase, or spelling) of any System Debug command output.
MPE/iX 5.0 Documentation