.rm 65
.lm 0
1 VERB
.lm 5
VERB is a program to extract verb definitions from either
your process space or a command table file (such as SYS$SHARE:DCLTABLES.EXE).
These verb definitions can then be changed and recompiled via the command
definition utility ($SET COMMAND). This program is similar to the OpenVMS V3
program CLEXTRACT, though this version works with OpenVMS V4 and later
command tables. This program is centrally useful if you need to change
verb definitions, or if you just hate the HP OpenVMS defaults (getting
tired of HELP/PAGE, or LINK creating maps when executed from a batch job?).
.blank
.! Note, you will probably want to edit the following lines to
.! reflect local conditions....
.! Actually, VERB_CLD.CLD is what is shipped, if you want to use
.! the SET COMMAND syntax, you should copy VERB_CLD.CLD to VERB.CLD
.! and edit it to point to where the VERB image is stored.
To use VERB, either type $ SET COMMAND VERB, or define a foreign
command such as:
.blank
.break
.i+10;$ VERB :== $dev:
VERB__UTILITY
.break
.lm 0
2 Parameter
.break
.lm 5
VERB takes one parameter, a (comma separated) list of commands.
The commands may be wildcarded, as in VERB A*. All matching
commands will be displayed (either in full or in brief format
if /LIST is specified).
.break
.lm 0
2 Qualifiers
.break
/ALL
.break
.lm 5
VERB/ALL will cause ALL commands to be displayed. /ALL is the default if
no commands are passed.
.break
.lm 0
/LIST
.lm 5
VERB/LIST will simply list the name of all matching commands,
rather than the complete command definition.
.break
.lm 0
/OUTPUT
.lm 5
VERB/OUTPUT=file-spec will route the output to the specified file.
A default file type of ".CLD" is used.
.break
.lm 0
/PROCESS
.lm 5
VERB/PROCESS causes VERB to use your process specific command tables.
Normally this is the same as SYS$SHARE:DCLTABLES.EXE, however, if you
have different tables set up as your default command tables, or if
you have added commands to your process by using SET COMMAND, then
they may be different. This is the default action.
.break
.!.lm 0
.!/WIDTH
.!.lm 5
.!This qualifier tell VERB how wide your terminal screen is. /WIDTH=80 is
.!the default.
.!.break
.lm 0
/TABLE
.lm 5
VERB/TABLE=table-name causes VERB to search the specified command tables.
If you specify /TABLE without giving any name it will default to using
SYS$SHARE:DCLTABLES.EXE. Note that /TABLE is exactly equivalent to
using the /IMAGE qualifier in conjunction with /SYMBOL=DCL$AL__TAB__VEC.
.break
.lm 0
/IMAGE
.lm 5
/IMAGE=image-name causes VERB to load the specified image. You
must also pass /SYMBOL=symbol-name to specify the name of a
universal symbol which points to the command tables.
.break
.lm 0
/SYMBOL
.lm 5
/SYMBOL=symbol-name, in conjunction with /IMAGE=image-name enables
VERB to use LIB$FIND__IMAGE__SYMBOL to find command tables within
a shareable image. An example using a basic program follows:
.lit
10 external long constant smg$$ab_defkey_cld
! This simply defines the symbol smg$$ab_defkey_cld
! which is used internally, if you had your own
! command tables internal to the program, you
! could use it here.. But then, you probably wouldn't
! need to. This feature obviously has limited use...
end
.end lit
to be compiled like:
.lit
$ basic test
$ link/share sys$input/opt
test.obj
UNIVERSAL=SMG$$AB_DEFKEY_CLD
$ verb/image=sys$disk:[]test$image/symbol=smg$$ab_defkey_cld *
.end lit
.break
.lm 0
/FILE
.lm 5
VERB/FILE=file-spec
This allows you to read the command tables from any image, such
as SYS$SYSTEM:AUTHORIZE. This loads the specified file, and searches
for command tables within them. It only searches for a specific sequence
of characters, and may get confused by matching characters within a file.
To get around this problem, you may use the /COUNT qualifier to specify
which occurrence to use. By default, it uses the first occurrence.
There may also be more than one set of command tables within
an image, in this case, you must use /COUNT to find the other(s).
A default file spec of ".EXE" is applied to the specified file.
.break
.lm 0
/COUNT
.lm 5
VERB/COUNT=n
This is used in conjunction with /FILE, please see /FILE for more info.
.break
.lm 0
2 restrictions
.lm 5
This tool will not function with MCR (the RSX-11 Monitor Console Routine)
command tables. It is unlikely that you even have the RSX-11 environment
installed. If you are unfamiliar with MCR command processing and/or if you
do not have the RSX-11 compatibility-mode environment installed, you can
safely ignore this note.
.blank
When extracting several verbs at a time the verbs may reference common
TYPE definitions, in these cases only one is output, this only becomes
a problem if you cut up the output file into several smaller files.
.blank
When extracting several verbs (such as BASIC, MACRO, or FORTRAN) together
you can encounter cases where there are similarly-named TYPE definitions.
Cases where each verb references a local and differing TYPE definition,
but with the same name. If you then attempt to reload the aggregate CLD
back into OpenVMS, CDU will balk. You will want to extract these verbs
separately, or otherwise segment the aggregate module into separate CLD
files.
.break
.lm 0
2 author
.lm 5
The original author of this utility, and various of the contributors:
.blank
.i+5;Joe Meadows Jr.
.i+5;Hunter Goatley
.i+5;Luke Brennan
.i+5;Stephen Hoffman
.break