MPE XL User Interface (Scheduling) Enhancements [ COMMUNICATOR 3000/XL XL RELEASE 2.1 ] MPE/iX Communicators
COMMUNICATOR 3000/XL XL RELEASE 2.1
MPE XL User Interface (Scheduling) Enhancements
by Jeff Vance/Scott Cressler/Steve Elmer/Tom Shem
Commercial Systems Division
The MPE XL User Interface has been improved for Release 2.1. There are
new and modified commands, new predefined HP variables, enhanced command
file and UDC parameter handling, improvements to the FINFO evaluator
function, and generalized I/O redirection available on most MPE commands.
These enhancements are described below, except for I/O redirection which
is featured in a separate Communicator paper. The MPE XL Commands
Reference Manual (P/N 32650-60002) should be consulted for further
details.
NEW COMMANDS
MPE XL Release 2.1 contains several new and modified commands. The
enhancements to support the Native Mode Spooler and Native Mode KSAM are
described elsewhere in this Communicator. The new 2.1 commands, covered
below, include: :ALTPROC, :ERRCLEAR, :ESCAPE, :LISTFILE and :SHOWPROC.
Commands which have been modified are: :SHOWQ and :TUNE.
Altproc Command
The new :ALTPROC command changes characteristics for one or more
process(es), and requires OP or SM capability.
Syntax
___________________________________________________________
| |
| ALTPROC [[PIN=] pinspec | ( pinspec [, pinspec]...)]|
| [[JOB=] jobspec | ( jobspec [, jobspec]...)]|
| [[;PRI=] pri] |
| [;TREE | ;NOTREE] |
| [;USER | ;ANYUSER] |
| [;SYSTEM] |
___________________________________________________________
A process can be identified by its Process Identification Number (pin),
job number or user.account. Additionally, children processes may be
automatically altered via the TREE option. Altering system processes
requires SM capability as well as specification of the SYSTEM option.
Either the PIN= or the JOB= parameter is required. Both parameters may
be specified.
Parameters
PIN A pinspec or a list of pinspecs enclosed in parentheses.
If more than one pinspec is used parentheses are
required.
pinspec A pin number which may be preceded by a "#P". If
pinspec is 0 then the caller's pin is used.
If the target pinspec is a system process then SM
capability is required. Also, the SYSTEM option must be
supplied to prevent system processes from accidentally
being altered.
NOTREE is the default for all pinspec target processes,
and can be overridden via the TREE option.
The USER and ANYUSER options do not apply to pinspec.
pinspec is optional as long as JOB= is supplied. If
both are omitted an error is reported.
JOB A jobspec or a list of jobspecs enclosed in parentheses.
If more than one jobspec is used parentheses are
required.
jobspec The name of the job or session who's processes are to be
altered. jobspec can be any of the following:
jobnumber, username, @S, @J, @.
The jobnumber must be in the form #Jnnn | #Snnn.
The username must be in the form user[.account]. If
there is more than one job/session matching the same
username they will all be altered.
Wildcards have the following meanings:
@S - all sessions,
@J - all jobs,
@ - all sessions and jobs.
The USER and ANYUSER options apply only if jobspec is
wildcarded. The USER option causes only processes
matching the user's name to be altered, while the
ANYUSER option allows all processes matching the
wildcarded jobspec to be altered. For example, if the
user's name is steve.ui and the command entered is
:ALTPROC job=@j;pri=cs, only job processes logged on as
steve.ui will be altered. However, if the command is
:ALTPROC job=@j;pri=cs;anyuser, then all job processes
will be altered.
TREE is the default for all jobspec target processes,
and can be overridden via the NOTREE option.
The SYSTEM option is ignored for all jobspec target
processes.
jobspec is optional as long as pinspec is supplied. If
both are omitted an error is reported.
pri The execution priority for the process. If omitted the
priority is unchanged. For OP users pri may be one of
the following:
BS | CS | DS | ES
For users with SM capability pri may additionally
include:
BM | CM | DM | EM (queue manager) or
a number in the range of 100 to 255.
pri may not exceed the user's MAXPRI value, unless the
user has SM capability.
CAUTION Misuse of PRI can significantly degrade system operating
efficiency.
TREE An option that causes each process specified, as well as
all its descendants, to be altered. TREE is the default
for all jobspec target processes. If both TREE and
SYSTEM are specified a warning is reported indicating
that TREE will be ignored.
NOTREE An option that causes only the processes specified to be
altered. Descendant processes will not be altered.
NOTREE is the default for all pinspec target processes.
SYSTEM An option that is necessary if the target process from
pinspec is a system process. SM capability is required.
SYSTEM is ignored for all jobspec processes. If both
SYSTEM and TREE are specified a warning is issued
indicating that TREE will be ignored.
CAUTION Exercise extreme care when altering system processes since
operating system efficiency may significantly degrade.
USER An option that applies only when jobspec is wildcarded.
It causes only jobspec target processes matching the
user's name to be altered. USER is the default.
ANYUSER An option that applies only when jobspec is wildcarded.
It causes all jobspec target processes to be altered,
regardless of their owners.
Example
:ALTPROC 42; pri=cm { Alter pin 42 to the CM subqueue (requires SM) }
:ALTPROC 0; pri=ds { Alter current process's pri to the DS subqueue}
:ALTPROC job=mgr.payroll;& { Alter all processes logged on as mgr.payroll }
pri=155 { to linear 155 (requires SM capability) }
:ALTPROC 6; system; & { Alter system process 6 to linear 100 }
pri=100 { (requires SM capability) }
:ALTPROC #p133; tree; & { Alter process 133 and all its descendants to }
pri=cs { the CS subqueue }
:ALTPROC (150,#p247,211);& { Alter pins 150, 247, 211 to the ES subqueue }
pri=es
:ALTPROC job=(#j2,me.ap);& { Alter all processes belonging to job 2 or }
pri=ds; anyuser { logged on as me.ap to the DS subqueue }
:ALTPROC job=@j ;pri=cs; & { Alter all job processes matching the user's }
user { name to the CS subqueue }
:ALTPROC job=@j ;pri=cs; & { Alter all job processes to the CS subqueue }
anyuser
Errclear Command
The new :ERRCLEAR command zeros all error related HP variables.
_____________________________________
| |
| ERRCLEAR |
_____________________________________
The :ERRCLEAR command zeros the following variables: CIERROR, HPCIERR
(new), HPCIERRCOL (new), HPFSERR (new). :ERRCLEAR is equivalent to the
following commands:
:setvar cierror 0
:setvar hpcierr 0
:setvar hpcierrcol 0
:setvar hpfserr 0
Often :ERRCLEAR may be used in place of :setjcw cierror 0.
The new variables are discussed later in this article. See also the new
:ESCAPE command.
Example
:ERRCLEAR and :ESCAPE example:
ERRCLEAR
continue
run database
if hpcierr < 0 then
echo Database warning ![abs(hpfserr)] detected, proceeding...
elseif hpcierr > 0 then
echo FATAL database error !hpcierr detected, halting...
ESCAPE
else...
Escape Command
The new :ESCAPE command causes the CI to exit from all user command
levels as if a command error was detected.
Syntax
_____________________________________
| |
| ESCAPE [[CIERR=] errnum] |
_____________________________________
:ESCAPE, in conjunction with the :ERRCLEAR command and the new predefined
HPCIERR, HPCIERRCOL and HPFSERR variables, allows the CI programmer to
simulate all aspects of CI error handling. Now a warning can be easily
distinguished from an error, the caret (^) can be positioned under the
offending parameter, and file system errors can be captured. Also jobs
can now be easily aborted via :ESCAPE without worrying about user command
nesting levels.
The :ESCAPE command causes control to leave all user commands (regardless
of nesting levels) and return to the CI. This means that batch jobs will
flush (terminate), and sessions will issue the prompt. :ESCAPE works
differently than :RETURN, which only exits one user command level and has
no effect when entered directly from the CI (in a job or a session).
:CONTINUE operates as if a normal error occurred: it protects the
command immediately following it, and if that command is a user command
the entire user command is considered protected by an active :CONTINUE.
:ESCAPE causes control to return to the command following the command
after the active :CONTINUE. Thus, a :CONTINUE can "trap" an :ESCAPE. If
no :CONTINUE is active then :ESCAPE causes the CI to act as it would for
any error: for sessions the user command environment is cleared and the
prompt is displayed; jobs are flushed.
Parameters
errnum If errnum is specified then CIERROR is set to the
absolute value of errnum, and HPCIERR is set to errnum
(and thus can be negative, allowing warnings to be
distinguished from errors).
Refer to the :ERRCLEAR example for an illustration of :ESCAPE.
Listfile Command
The new :LISTFILE command lists file information. It can be used instead
of the :LISTF and :LISTFTEMP commands.
Syntax
_______________________________________________________________
| |
| LISTFILE [[FILES=] [fileset] | ( fileset [,fileset]...)]|
| [[;FORMAT=] format_opt] |
| [[;SELEQ=] select_eq] |
| [;PASS] |
| [;PERM | TEMP | PERMTEMP] |
_______________________________________________________________
The :LISTFILE command is used to list file information. :LISTFILE is a
functional superset of the :LISTF and :LISTFTEMP commands. Any user may
list any level of information on any file on the system. The PASS option
is available to the creator of the file, to the Account Manager (AM
capability) if the file resides in the logon account, and to the System
Manager (SM capability). A file will not be listed unless the file's
home volume set is mounted.
Parameters
fileset Specifies the set of files to be listed. More than one
file may be listed via wildcarding or by enclosing
several file names within parentheses. For example,
myfile, my@, (myfile, hisfile, hertext), (my@,
h[ei][sr]@), x#[0-5][c-f]@x are all valid filesets. The
bracket wildcarding is the same as for the :SHOWVAR
command. If omitted, the default fileset is '@'.
format_opt A format selection. This parameter has no effect on
the files selected for display. The following
numbers/mnemonics will be recognized:
-1 | LABEL Show only the file label in hex.
0 | FILES Show only the file name.
1 | SUMMARY Show LISTF,1 data.
2 | DISC Show LISTF,2 data.
3 | DETAIL Show LISTF,3 data.
4 | SECURITY Show LISTF,4 data.
5 | DATA Show LISTF,3 data and all file
specific data in LISTF,3 type format
(i.e. KSAM and SPOOL).
6 | QUALIFY Show only fully qualified file name.
7 | UNIQUE Show unique file attributes, e.g.
KSAM key information or spool device
for NM spool files.
Format options 5 and 7 are "data driven" outputs that
will show file specific information such as KSAM keys,
or SPOOLER device.
When option 5 is used and a file has no unique data,
then only the :LISTF,3 data will be shown. When option
7 is used and a file has no unique data, then only the
file name is displayed. The default format is FILES
(0).
select_eq The selection equation is used as a filter on the
fileset. From the set of files matching the fileset,
only files which match the filter requirements will be
listed. Currently, only the file type (FTYPE) field may
be specified, and the only recognized operator is
equality (=). Selection equations have the following
format:
<select_eq> ::= [ FTYPE = mnemonic ]
Selection equations must be surrounded by square
brackets. For Release 2.1 the only mnemonics supported
are KSAMXL and SPOOL.
PASS An option that is used to see sensitive data. The use
of this option depends on the user's access rights to
the data.
PERM An option that is used to display permanent files only.
This is the default.
TEMP An option that is used to display temporary files only.
PERMTEMP An option that is used to display both permanent and
temporary files. Temporary files will be listed after
the permanent files.
SAMPLE OUTPUT
:LISTFILE ksamfmt, unique
********************
FILE: KSAMFMT.KSAM.DEV
KEY KEYTYPE KEYLOC KEYSIZE DUP
1 BYTE 1 5 RDUP
2 INT 10 2 DUP
4 REAL 6 4 RDUP
5 PACK 12 7 DUP
6 *PACK 19 10 DUP
7 NUM 38 5 RDUP
8 IEEEREAL 34 4 DUP
9 BYTE 43 7 RDUP
10 PACK 29 5 DUP
TOTAL KSAM KEYS : 10 FIRST KSAM RECORD : 1
LANGUAGE : ENGLISH REUSE RECORDS : YES
:LISTFILE splrfmt; format=unique
********************
FILE: SPLRFMT.SPLR.DEV
SPOOL DEV : 6
Example
:LISTFILE ,disc { lists '@' files with DISC (2) format }
:LISTFILE x@,detail;pass >outfile { writes all files starting with 'X' }
{ in DETAIL format with lockwords to }
{ outfile }
:LISTFILE (@[xy],my@,foo,bar), & { lists all files ending in 'X' or 'Y',}
data,[ftype=ksamxl] { or beginning with 'MY', plus the }
{ file FOO and BAR that are also }
{ KSAMXL files }
:LISTFILE [a-c]#[x-z]@,3; & { appends all files starting with 'A', }
seleq=[ftype=spool] >>outfile { 'B','C', followed by any number, }
{ followed by an 'X', 'Y' or 'Z', that }
{ are spool files to outfile }
Showproc Command
The new :SHOWPROC command displays information for one or more processes.
Syntax
____________________________________________________________
| |
| SHOWPROC [[PIN=] pinspec | ( pinspec [, pinspec]...)]|
| [[JOB=] jobspec | ( jobspec [, jobspec]...)]|
| [[;FORMAT=] format] |
| [;TREE | ;NOTREE] |
| [;USER | ;ANYUSER] |
| [;SYSTEM] |
____________________________________________________________
A process can be identified by its Process Identification Number (pin),
job number or user.account. Additionally, children processes may be
automatically shown via the TREE option.
By default, all processes for the user's current job or session are
shown. Users with SM or OP capability may see information for processes
belonging to other users. SM users may also display system processes via
the SYSTEM option.
If both the PIN= and JOB= parameters are specified then the information
for the list of pins will precede the information for the list of jobs.
Duplicate specifications are not detected.
SUMMARY is the only format currently supplied and is the default.
Except as noted below, all parameters and defaults are the same as for
the :ALTPROC command.
Parameters
pinspec SM or OP capability is required to display other user's
processes. pinspec is optional and has no default (see
jobspec).
jobspec SM or OP capability is required to display other user's
processes. jobspec is optional and defaults to the
user's current job id (e.g., #!hpjobtype!hpjobnum). An
ordinary user can only see their own processes, even
when jobspec is wildcarded. For example, if the user
name is jeff.mfg and the command is :SHOWPROC job=@j,
only processes for jobs logged on as jeff.mfg will be
displayed. On the other hand, if the user is steve.ui
(who has OP capability), the command :SHOWPROC job=@j
will show all processes for all jobs on the system. If
steve.ui only wants to see his own job processes he must
enter :SHOWPROC job=@j;user.
format This parameter causes :SHOWPROC output to appear in
different formats. SUMMARY is the only format provided
at this time. A brief description appears below. A
complete description can be found in the MPE XL Commands
Reference Manual.
The SUMMARY display shows process and dispatching queue
information. It shows the queue name, process priority,
CPU time, the execution state, associated JOB or SESSION
number, pin (indented to show tree structure), program
name and INFO= string, if any (or command step if the
process is CI.PUB.SYS). SUMMARY is the default format.
TREE Can be specified in conjunction with the SYSTEM option.
SYSTEM Can be used with the TREE option.
USER The default for ordinary users who lack OP and SM
capability.
ANYUSER The default for users with OP or SM capability.
SAMPLE OUTPUT
:SHOWPROC #p54;tree
QPRI CPU STATE JOBNUM PIN (PROGRAM) STEP
C152 0:12.999 WAIT S12 54 :TDP "text myfile"
C152 0:02.000 WAIT S12 38 (TDP.PUB.SYS) text myfile
C152 0:01.030 READY S12 67 (FCOPY.PUB.SYS) from=foo;to=bar;new
NOTE The PIN column is indented by two spaces for each child process.
Example
:SHOWPROC { Show all processes for current job/session }
:SHOWPROC #p42 >outf { Write process information for pin 42 to OUTF }
:SHOWPROC #p42; tree { Show info for pin 42 and all its descendants }
:SHOWPROC 1; system; tree { Show all processes if user has SM capability }
:SHOWPROC job=@j { Show all processes for all jobs matching the }
{ user's name (for non-OP, non-SM user) }
:SHOWPROC job=@j { Show all processes for all jobs on the system }
{ (for OP or SM user) }
:SHOWPROC (150,#p247,211) { Show process info for pins 150,247,211 }
:SHOWPROC job=mgr.payroll { Show process info for all processes logged on }
{ as mgr.payroll (requires SM or OP capability) }
:SHOWPROC job=(#j2,me.ap) { Show process info for all processes belonging }
{ to job 2 or logged on as me.ap (requires SM }
{ or OP capability) }
Showq Command
The :SHOWQ command has been enhanced to filter its output.
Syntax
___________________________________________________________________
| |
| SHOWQ [;ACTIVE] [;STATUS] |
___________________________________________________________________
The :SHOWQ command displays process scheduling data and the contents of
each Dispatcher circular queue. It has been enhanced by the addition of
two filtering options, and the boost property (OSCILLATE and DECAY) is
displayed. See the :TUNE command and the Dispatcher Communicator article
for more information on boost properties.
Parameters
ACTIVE Causes only the executing/ready processes' information
to be displayed, followed by the STATUS lines.
STATUS Reduces the output from :SHOWQ to the final lines of
display (minimum and maximum quanta for each dispatcher
scheduling queue, base and limit queue priorities, and
boost properties).
Example
:SHOWQ; status
CQ MINQUANTUM=100, MAXQUANTUM=350, BASEPRI=152, LIMPRI=228, DECAY
DQ MINQUANTUM=1000, MAXQUANTUM=1000, BASEPRI=230, LIMPRI=238, DECAY
EQ MINQUANTUM=2000, MAXQUANTUM=2000, BASEPRI=240, LIMPRI=253, OSCILLATE
MINIMUM CLOCK CYCLE=N/A
:SHOWQ; active
DORMANT RUNNING
Q PIN JOBNUM Q PIN JOBNUM
D M96 #S470
CQ MINQUANTUM=100, MAXQUANTUM=350, BASEPRI=152, LIMPRI=228, DECAY
DQ MINQUANTUM=1000, MAXQUANTUM=1000, BASEPRI=230, LIMPRI=238, DECAY
EQ MINQUANTUM=2000, MAXQUANTUM=2000, BASEPRI=240, LIMPRI=253, OSCILLATE
MINIMUM CLOCK CYCLE=N/A
Tune Command
The :TUNE command now supports oscillation for the three circular
dispatcher subqueues.
Syntax
________________________________________________________________
| |
| TUNE [minclockcycle] |
| {CQ} |
| [[;]{DQ}=[base][,[limit][,[min][,max][,[{DECAY }]]]]]]|
| {EQ} {OSCILLATE} |
| [[;]...] |
________________________________________________________________
The :TUNE command adjusts priorities, quantums and boost properties for
the dispatcher circular queues. For more information please read the
Dispatcher article in this Communicator.
OSCILLATE is a new boost property for Release 2.1. DECAY was the only
boost property supported prior to Release 2.1, and is the default.
Both boost properties cause a process's priority to decay from the base
value to the limit. The rate of decay is inversely related to the
quantum. Whenever a dispatcher transaction (e.g. a terminal read)
completes the process's priority is boosted back to the base value.
DECAY allows a process's priority to remain at the limit until a
transaction completes or the process is preempted. OSCILLATE causes the
process's priority to jump to the base value as soon as the limit is
reached.
CAUTION Misuse of the :TUNE command can significantly degrade system
operating efficiency.
Example
:TUNE dq=228,238,,,oscillate
NEW VARIABLES
Release 2.1 of MPE XL supports six new predefined variables: HPCIERR,
HPCIERRCOL, HPERRSTOLIST, HPFSERR, HPSTDLIST and HPSTDIN.
HPCierr
HPCIERR is a read/write integer variable that contains the most recent CI
related error. It is very similar to CIERROR, except that warnings are
negative numbers and errors are positive. (CIERROR is unsigned.)
HPCierrCol
HPCIERRCOL is a read/write integer variable that contains the column
number of the offending parameter for the most recent CI command error
(this is the location of the caret, "^"). Zero implies that the CI would
not have displayed a caret for this error. NOTE: the length of the CI's
prompt is not included. Below is an example to print a caret under an
erroneous parameter (the CI's prompt is accounted for):
echo ![rpt(' ',len("!hpprompt")+hpcierrcol-1)]^
NOTE HPPROMPT needs to be explicitly dereferenced since it may contain
other variables.
HPErrsToList
HPERRSTOLIST is a boolean read/write variable. TRUE, which is the
default, means that all CI errors/warnings will be written to $STDLIST.
FALSE indicates that CI errors and warnings will be written to $STDERR.
See the I/O Redirection article for more information.
HPSerr
HPFSERR is a read/write integer variable that contains the file system
error for the most recent CI command error. A value of zero means that a
separate file system error message is not reported by the CI. Zero does
not necessarily indicate the absence of any file system related error.
For example:
:print xyzzy
^
NONEXISTENT PERMANENT FILE (FSERR 52)
THE PRINT COMMAND FAILED. (CIERR 9080)
:echo CIerr=!hpcierr, FSerr=!hpfserr, ErrCol=!hpcierrcol
CIerr=9080, FSerr=52, ErrCol=7
:run xyzzy
^
PROGRAM FILE XYZZY.VANCE.UI NOT FOUND. (CIERR 622)
:echo CIerr=!hpcierr, FSerr=!hpfserr, ErrCol=!hpcierrcol
CIerr=622, FSerr=0, ErrCol=5
The last example shows the :RUN command failing due to a nonexistent
file; however, HPFSERR is zero and the CI does not display a separate
file system error message.
HPStdin / HPStdList
HPSTDIN and HPSTDLIST are read-only string variables reflecting the file
names for $STDIN and $STDLIST, respectively. The default values are
'$STDIN' and '$STDLIST'. If I/O has been redirected, the formal file name
(or backreference designator) appears, rather than the default strings.
More information is available in the I/O Redirection article.
NEW PARAMETER HANDLING
The rules for the user command header (PARM line and OPTIONs) have been
relaxed, command files can now be variable record width files (UDCs still
cannot), and a new parameter type, ANYPARM, supports syntax-free user
commands.
The reserved words PARM, ANYPARM and OPTION begin statements which
constitute the user command header. For UDCs only, parameters may be
defined in the same line as the UDC name, with additional parameters
described in subsequent PARM or ANYPARM lines. Parameter and option
lines may be interspersed. There is a limit of 255 parameters per user
command. If ANYPARM is specified it must be the last parameter
definition statement, meaning that PARM cannot follow an ANYPARM
declaration. The user command header is terminated by the first
non-PARM, non-ANYPARM, non-OPTION record. For example:
OPTION logon PARM p1, p2=hi OPTION list
PARM flag=" PARM p3=there PARM p1
doit OPTION nohelp PARM p2="what's up, doc?"
doit ANYPARM p3=what's up, doc?
doit
AnyParm
ANYPARM causes all normal delimiters to be ignored; meaning, delimiters
are now considered part of the parameter's value. This definition forces
ANYPARM to be the last parameter declared, since equalsign (=), comma,
semicolon, quotes, etc. are treated as part of the ANYPARM parameter's
value.
A benefit of ANYPARM can be seen in the following example:
MYTELL user, word1=",w2=",w3=",w4=",w5=",w6=",w7=",w8=",w9=",w10="
tell !user; !hpdatef (!hptimef) -- !word1 !w2 !w3 !w4 !w5 !w6 !w7 !w8 !w9 !w10
***
:mytell zinta.ui This will work; however, we may need some better examples?
FROM/S505 JEFF.UI/MON, OCT 30, 1989 ( 3:11 PM) -- This will work however we...
Note that a longer message requires quoting, and the ";" and "," are lost
since they are delimiters.
--versus--
MYTELL user
ANYPARM message=<no message>
tell !user; !hpdatef (!hptimef) -- !message
***
:mytell mikep.uis Will woff;tr,i,d;lev 0,1;mr sp sp-40;mr pc r2 work??
FROM/S505 JEFF.UI/MON, OCT 30, 1989 ( 3:11 PM) -- Will woff;tr,i,d;lev 0,1;...
The first example is limited to 10 words, unless quoting is used. The
ANYPARM version does not require the user to quote or count parameters,
and all normal delimiters are ignored, and thus treated as data.
FINFO ENHANCEMENT
FINFO is a function which can be used in any MPE XL expression. MPE XL
expressions are used in the :CALC, :IF, :ELSEIF, :WHILE, and :SETVAR
commands. An expression can be appear in any command through expression
substitution, i.e. ![expression].
FINFO requires two parameters. The first is a string expression which
names a file. The second is an integer expression which indicates what
type of information about the file is desired. This parameter is the
item number used by the FLABELINFO intrinsic. The information is
returned as the FINFO functional return.
As of MPE XL Release 2.1, the FINFO function has been enhanced in two
ways. First, FINFO now supports all FLABELINFO options. Previously, it
supported only a subset of the FLABELINFO items. Second, the second
parameter can now be a string. This string is an "alias" for the option
number. Each option number has one or more aliases. For example:
:listf myfile,2
ACCOUNT= X GROUP= C
FILENAME CODE ------------LOGICAL RECORD----------- ----SPACE----
SIZE TYP EOF LIMIT R/B SECTORS #X MX
MYFILE 132B VA 122 30 1 16 1 1
:calc finfo('myfile',19)
122, $7A, %172
:calc finfo('myfile','end of file')
122, $7A, %172
:calc finfo('myfile','EOF')
122, $7A, %172
The first use of the :CALC command is the old format with an integer of
19 to request the end of file of MYFILE from FINFO. The next command uses
the string 'end of file' instead of 19. The last example uses the other
alias for end of file, 'EOF'. The table below shows all of the FINFO
option numbers and their corresponding string name aliases.
Data Option
Type Data Number Aliases
B Existence of file 0 'EXISTS'
S Fully Qualified File Name 1 'FULL FILENAME'
'FULLFNAME'
'FULLY QUALIFIED FILENAME'
S File Name Only (No Group or Acct) -1 'FILENAME ONLY'
'FNAME'
S Group Name Only 2 'GROUP NAME'
'GROUP'
S Account Name Only 3 'ACCOUNT NAME'
'ACCT'
S User ID Of File Creator 4 'CREATOR'
S Formatted Security Matrix 5 'FMTSECURITY'
'FORMATTED SECURITY MATRIX'
I Security Matrix (Bit Map) -5 'INTSECURITY'
'SECURITY MATRIX'
S Formatted Creation Date 6 'CREATED'
(e.g. MON, OCT 16, 1989) 'CREATION DATE'
'FMTCREATED'
I Integer Creation Date -6 'CREATION DATE INTEGER'
(e.g. 19891016) 'INTCREATED'
S Formatted Date Last Accessed 7 'ACCESSED'
'FMTACCESSED'
'LAST ACCESS DATE'
I Integer Last Accessed Date -7 'INTACCESSED'
'LAST ACCESS DATE INTEGER'
S Formatted Date Last Modified 8 'FMTMODDATE'
'LAST MOD DATE'
'MODIFIED'
I Integer Last Modified Date -8 'INTMODDATE'
'LAST MOD DATE INTEGER'
S File Code Mnemonic (e.g. NMPROG) 9 'FILE CODE MNEMONIC'
'FMTFCODE'
I Integer File Code (e.g. 1030) -9 'FCODE'
'FILE CODE'
'INTFCODE'
I Number of User Labels Written 10 'USER LABELS WRITTEN'
I Number of User Labels Available 11 'USER LABELS AVAIL'
I File Limit 12 'FILE LIMIT'
'LIMIT'
S FOPTIONS In LISTF Format 13 'FMTFOPT'
'FORMATTED FOPTIONS'
I FOPTIONS Bit Map -13 'FOPTIONS'
'INTFOPT'
I Record Size In CM Words 14 'RECORD SIZE'
(Negative Means Bytes) 'RECSIZE'
I Block Size 15 'BLKSIZE'
'BLOCK SIZE'
I Maximum Number Of Extents 16 'MAX EXTENTS'
'MAXEXT'
I Size Of The Last Extent 17 'LAST EXTENT SIZE'
'LASTEXTSIZE'
I Extent Size 18 'EXTENT SIZE'
'EXTSIZE'
I End Of File 19 'END OF FILE'
'EOF'
S Formatted Allocation Time 20 'ALLOC TIME'
(e.g. 2:15 PM) 'FMTALLOCTIME'
I Integer Allocation Time -20 'ALLOC TIME INTEGER'
(e.g. 141524 for 2:15:24 PM) 'INTALLOCTIME'
S Formatted Allocation Date 21 'ALLOC DATE'
'ALLOCATED'
'FMTALLOCDATE'
I Integer Allocation Date -21 'ALLOC DATE INTEGER'
'INTALLOCDATE'
I Number of Open/Close Records 22 'NUM OPEN CLOSE RECS'
S Device Name 23 'DEVICE NAME'
'DEVNAME'
S Formatted Last Modified Time 24 'FMTMODTIME'
'LAST MOD TIME'
I Integer Last Modified Time -24 'INTMODTIME'
'LAST MOD TIME INTEGER'
S First User Label 25 'FIRST USER LABEL'
S Unique File Identifier 27 'UFID'
'UNIQUE FILE ID'
I File Limit In Bytes 28 'BYTE FILE LIMIT'
'BYTELIMIT'
I Offset Of Data In Bytes 29 'BYTE DATA OFFSET'
'DATASTART'
I Record Size In Bytes 30 'BYTE RECORD SIZE'
'BYTERECSIZE'
I Block Size In Bytes 31 'BYTE BLOCK SIZE'
'BYTEBLKSIZE'
I Extent Size In Bytes 32 'BYTE EXTENT SIZE'
'BYTEEXTSIZE'
S Lockword 33 'LOCKWORD'
S Volume Restriction 34 'VOLRESTR'
'VOLUME RESTRICTION'
MPE/iX Communicators