.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 VMS V3 program CLEXTRACT, except that it works with VMS V4 _& V5 command tables. This program is a must if you need to change verb definitions, or if you just hate the DEC 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:VER .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 Well, it hasn't been tested with MCR tables.I wouldn't be surprised if it didn't like them. .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,FORTRAN) they may each reference a TYPE definition that is different for each verb, but has the same name. Since the TYPE definitions are actually different each one will be included in the file, but the CDU will not appreciate having similarly named TYPE definitions. In such cases simply extract the verbs into separate files. .break .lm 0 2 author .lm 5 If you have any questions, comments, ideas, or whatever, feel free to contact me. .blank .i+5;Joe Meadows Jr. .i+5;bitnet - JOE@FHCRCVAX .i+5;arpa - JOE@KIRK.FHCRC.ORG .i+5;voice - (206) 454-3680 .break