.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