DCL AND THE VAX/VMS UTILITIES Enhancements in V4.0 CONTENTS: - NEW UTILITIES - NEW COMMANDS - NEW QUALIFIERS - DCL COMMAND LANGUAGE INTERPRETER - CDU COMMAND DEFINITION UTILITY ANALYZE/CRASH_DUMP - Invokes the System Dump Analyzer (SDA) utility - New keypad mode - New commands and qualifiers to: o display RMS structures o display processes' locks information o log all commands and displays to a given file o validate the integrity of a queue o evaluate system messages ANALYZE/ERROR_LOG - Invokes the Errorlog Report Formatter (ERF) utility which replaces SYE - Selectively reports the contents of an error log file - Qualifiers are used to indicate action - No changes to the format of the reports generated ANALYZE/MEDIA - Invokes native mode Bad Block Locator utility (BAD) - Analyzes block-addressable devices and records the locations of bad blocks - Default is /NOEXERCISE ANALYZE/RMS_FILE - New /SUMMARY Qualifier - New secondary attribute, LEVEL1_RECORD_COUNT, for primary ANALYSIS_OF_KEY - Supports enhancements to Prolog 3 Isam files AUTHORIZE - New qualifiers to support the rights database functions - Other general qualifiers: /CLITABLES /MAXDETACH /JTQUOTA - Two sets of privileges /DEFPRIVILEGE /PRIVILEGE - /MODIFY command syntax change DEBUG - New screen mode - New keypad mode - Control structures as part of the debugger command language - Symbolization has been enhanced - Language support for existing languages enhanced - Many new commands EDT Editor - Retained features of previous version - CTRL/C is recorded in journal file - Better error detection - New nokeypad commands to emulate DECmail and WPS - Enhancements to existing commands - Line numbering restrictions changed - Callable EDT - Supports DEC multinational character set EXCHANGE - Native mode replacement for FLX - Processes: o RT-11 foreign disk o DOS-11 foreign tape volumes o supports FILES-11 volumes - Use as command or interactivly - Examples in SYS$UPDATE INSTALL - Speeds activation of images by making them known to the system - New command syntax o consistent with other utilities o not compatible with V3.0 operating procedures, but old interface still available - New commands and qualifiers provide enhanced functions MAIL - Allows sending and receiving of mail messages - Mail files are now 2-key ISAM files o date/time of insertion o folder name - MAIL.MAI sequential file converted automatically - Maintains the file VMSMAIL.DAT in SYS$SYSTEM: o username o forwarding address o personal name o various flags o mail subdirectory MAIL (Cont.) - Mail files are subdivided into folders MAIL FILE --------------------------------------------------------- FOLDER FOLDER FOLDER ---------------- ----------- ------------ M M M M M M M ---------------- ----------- ------------ ---------------------------------------------------------- - Three folders are included o MAIL o NEWMAIL o WASTEBASKET MAIL (Cont.) - New keypad mode - Many new commands and qualifiers o SPAWN and ATTACH o ANSWER = REPLY o MAIL = SEND o FILE to store messages in folders o EXTRACT replaces old FILE command o SET and SHOW commands - SEND/EDIT uses callable EDT unless overridden by definition of MAIL$EDIT MSCP SERVER COMMANDS - SHOW DEVICES/SERVED /ALL /COUNT /HOST /OUTPUT=filespec /RESOURCE - SET DEVICE/SERVED PATCH - Now allows patching of any file, not only images - New qualifiers: /ABSOLUTE /[NO]NEW_VERSION REPLY - Extensions to use new $BRKTHRU system service o REPLY /USERNAME = name /SHUTDOWN /URGENT - Broadcasts to entire VAXcluster by default - /NODE qualifier - OPER privilege required for most operations RUNOFF RUNOFF / INTERMEDIATE | | | output | | .BRN file (binary file) input RUNOFF/CONTENTS (TOC) RUNOFF/INDEX (TCX) SET BROADCAST - Enable screening out of messages from display at the terminal - Classes supported: ALL [NO]PHONE [NO]DCL [NO]QUEUE [NO]GENERAL [NO]SHUTDOWN [NO]MAIL [NO]URGENT NONE [NO]USERx [NO]OPCOM - Use SHOW BROADCAST to display which classes are currently disabled SHOW CLUSTER - Monitors and displays cluster activity and performance - Single or continuous reporting - Two report types: CLUSTER LOCALPORT - Interactive commands available with continuous display SHOW LOGICAL - Many new qualifiers: /ALL /OUTPUT=filespec /ACCESS_MODE=mode /PROCESS /DESCENDENTS /STRUCTURE /FULL /SYSTEM /GROUP /TABLE=(tblnam1, tblnam2,...) /JOB SECURITY Utilities - EDIT/ACL - SET ACL/ACL DEVICE/ACL DIRECTORY/ACL FILE/ACL - SET AUDIT, SHOW AUDIT - SET PASSWORD /SECONDARY /SYSTEM /GENERATE SYSGEN - New commands o MSCP /BUFFER=n /HOST=n /MAXIMUM=n /MINIMUM=n /PACKETS=n /PRIORITY=n /TIME_OUT=n o TERMINAL/ECHO - New qualifiers o CONNECT /SYSIDHIGH /SYSIDLOW /VECTOR /VECTOR_OFFSET o SHARE /POOLBSIZE /PRQCOUNT o SHOW /CLUSTER /HEX /LGI - Parameters o use SYS$SYSTEM:VAXVMSSYS.PAR o many new parameters MISCELLANEOUS DIRECTORY - displays more information - new format SET FILE /PROTECTION /UNLOCK SHOW ACCOUNTING SHOW SYSTEM/FULL TYPE/PAGE_MODE COMMON QUALIFIERS - Provide consistency - Used by many commands: /BACKUP /BEFORE[=time] /EXCLUDE = (filename) /BY_OWNER /EXPIRED /[NO]CONFIRM /MODIFIED /CREATED /SINCE[=time] ENHANCEMENTS TO DCL Command Input o Larger input buffers o Multi-national character set o Command to change prompt string $ SET PROMPT="NEW> " /CARRIAGE_CONTROL NEW> Editing Commands Lines o Terminal driver feature o SET TERMINAL/LINE_EDIT/INSERT SET TERMINAL/LINE_EDIT/OVERSTRIKE Terminal Key Action ------------ ------ CTRL/A Toggle edit mode CTRL/D,LEFT ARROW Move cursor to left CTRL/E Move cursor to end of line CTRL/F,RIGHT ARROW Move cursor to right CTRL/H,BACKSPACE,F12 Move cursor to start of line CTRL/J,LINEFEED,F13 Delete previous word CTRL/U Delete to start of line CTRL/V Quote key, overrides editing keys DELETE Delete previous character Recalling Command Lines o Terminal driver supports single command recall o 20 command/1024 character buffer Recall Command Action -------------- ------ UP ARROW, CTRL/B Recall previous command DOWN ARROW Recall "next" command RECALL 5 Recall by command number RECALL LINK Recall by leading substring RECALL/ALL Display numbered commands Recalling Command Lines - continued o Recall commands not saved in recall buffer o Consecutive duplicate commands are not saved o Continued commands automatically concatenated o 255 characters per recall o Use keys at Command prompt Continuation prompt Parameter prompt Inquire prompt Defining Keys Terminal Key Description ------------ ----------- PF1-PF4 Program function keys KP0-KP9 Keypad 0-9 PERIOD,COMMA, Special keypad keys MINUS,ENTER E1-E6 LK201 special keys F6-F20 LK201 function keys o Keypad states o SET TERMINAL/APPLICATION_KEYPAD SET TERMINAL/NONUMERIC_KEYPAD Defining Keys - continued DEFINE/KEY key-name equivalence-string Qualifier Description --------- ----------- /ECHO Display equivalence /ERASE Erase the line /TERMINATE Terminate the read operation /LOG Display informational messages /IF_STATE=(state,...) States to define key in /SET_STATE=state State to set /LOCK_STATE Lock the specified state Defining Keys - continued Examples: DEFINE/KEY PF1 "Directory" DEFINE/KEY PF2 "SHOW " /NOTERMINATE /ECHO /IF_STATE=default /SET_STATE=show_options /NOLOCK_STATE DEFINE/KEY PF2 "TIME" /TERMINATE /ECHO /IF_STATE=show_options DEFINE/KEY PF3 "DEFAULT" /TERMINATE /ECHO /IF_STATE=show_options Defining Keys - continued o SHOW KEY key-name /ALL /BRIEF /DIRECTORY /FULL /LOG /STATE=(state,...) o DELETE/KEY key-name /ALL /LOG /STATE=(state,...) o SET KEY /STATE=state /LOG Command Output o Trap DCL command output + e.g., SHOW DEFAULT, WRITE SYS$OUTPUT, verification + Redefine SYS$OUTPUT using DCL commands process logical name table supervisor mode no attributes + Output file is opened, logical name is redefined Non-Interactive Processing o Automatic output buffer flushing SET OUTPUT_RATE=00:01:00 o Batch job restartability SET RESTART_VALUE=checkpoint_5 $RESTART - true if restarted, false otherwise BATCH$RESTART - contains SET RESTART_VALUE value o Multi-step batch jobs - SUBMIT A,B,C /PARAM=(1,2,3) Propagate global symbols Propagate logical names Define P1-P8 locally in each step SPAWN and ATTACH o Propagate logical names and tables - /LOGICAL_NAMES o Propagate symbol definitions - /SYMBOLS o Propagate key definitions and state - /KEYPAD o Propagate or specify prompt string /PROMPT=prompt-string /CARRIAGE_CONTROL o Specify CLI - /CLI=cli-name o Specify command tables - /TABLES=command-table-spec o Request notification of subprocess completion - /NOTIFY CONNECT and DISCONNECT Version 3.0: Physical Terminal <----> Process Version 4.0: Physical Terminal <---> Virtual Terminal <---> Process o First use SYSGEN for the system o Then use SET TERMINAL /PERMANENT /DISCONNECTABLE for a terminal CONNECT and DISCONNECT - continued o Connect to terminal while logging in o Example: log in work lose communications line log in to new process let LOGIN connect you to your old virtual terminal continue work in old process o DISCONNECT /[NO]CONTINUE o CONNECT /[NO]CONTINUE /[NO]LOGOUT virtual-terminal-name Miscellaneous Command Changes o READ command Specify ISAM key match algorithm - /MATCH=[GT,GE,EQ] Specify time out period - /TIME_OUT=seconds Read 2048 byte records o WRITE command Accepts list of string expressions Write 1024 byte expressions Write 2048 byte symbols - WRITE/SYMBOL o ALLOCATE/GENERIC command e.g., ALLOCATE /GENERIC RK07 o SET UIC command accepts new format UICs e.g., SET UIC [VMS,GEORGE] New Lexical Functions o F$CVTIME([time],[type],[field]) - formats date/time string o F$EDIT(string,item-list) - edits a string o F$ELEMENT(element-number,delimiter,string) - returns an element from a string o F$ENVIRONMENT(item) - returns DCL environment information o F$TRNLNM(name,[translation],[mode],[attribute] - ,[item]) - returns logical name information o F$TYPE(symbol-name) - returns string type Enhanced Lexical Functions o F$FILE (file-spec, item) - new "KNOWN" item o F$GETDVI (device, item) - many new items o F$GETJPI (pid, item) - many new items o F$GETSYI (item, [node]) - many new items, new node argument o F$MODE () and F$GETJPI (pid, "MODE") - new return value o F$PARSE (file-spec, [default], [related], [field], [parse-type]) - new parse type argument (SYNTAX_ONLY, UNCONCEAL) o F$VERIFY ([procedure], [image]) - new image argument o Protection strings - new consistent format o UIC strings - new format Miscellaneous DCL Changes o Can access relative files from DCL o Depth of command procedure nesting increased from 8 to 16 o Captive processes check for login command procedures o PIOPAGES sysgen parameter to set size of RMS process IO segment o DCL broadcast class for CTRL/T and SPAWN/NOTIFY ENHANCEMENTS TO COMMAND PARSING Value type definitions o Function: Specify allowable syntax of a command value o Types: Built-in e.g., QUALIFIER listing,VALUE(TYPE=$FILE) User-defined e.g., PARAMETER p1,VALUE(REQUIRED,TYPE=options) o Built-in types: $ACL $NUMBER $DATETIME $QUOTED_STRING $DELTATIME $REST_OF_LINE $FILE Value type definitions - continued o Example of use of type definitions DUMP /BLOCKS=(START:0,END:256) FOO DEFINE TYPE dump_limits KEYWORD start,VALUE(TYPE=$NUMBER) KEYWORD end,VALUE(TYPE=$NUMBER) KEYWORD count,VALUE(TYPE=$NUMBER) DEFINE VERB dump PARAMETER p1,PROMPT="File",LABEL=input_file, VALUE(REQUIRED,TYPE=$FILE), QUALIFIER ascii QUALIFIER blocks,VALUE(LIST,TYPE=dump_limits) QUALIFIER records,VALUE(LIST,TYPE=dump_limits) ... Disallow Statements o Function: Specify disallowed combinations of command elements o Syntax: DISALLOW boolean-expression o Operands: Command element specifications entity-name.entity-name... o Operators: AND, OR, NOT, NEG, ANY2(), and parentheses Disallow Statements - continued o Example of use of DISALLOW statements DUMP /BLOCKS=(START:0,END:256,COUNT:10) FOO DEFINE TYPE dump_limits KEYWORD start,VALUE(TYPE=$NUMBER) KEYWORD end,VALUE(TYPE=$NUMBER) KEYWORD count,VALUE(TYPE=$NUMBER) DEFINE VERB dump PARAMETER p1,PROMPT="File",LABEL=input_file, VALUE(REQUIRED,TYPE=$FILE), QUALIFIER ascii QUALIFIER blocks,VALUE(LIST,TYPE=dump_limits) QUALIFIER records,VALUE(LIST,TYPE=dump_limits) ... DISALLOW blocks AND records DISALLOW blocks.end AND blocks.count DISALLOW records.end AND records.count Miscellaneous CDU Changes o Faster parsing of command tables o Better error checking and reporting at compile time o Forward DEFINE TYPE and DEFINE SYNTAX references allowed Enhancements to CLI$ Routines CLI$DCL_PARSE (command-string, table, [param-routine], [prompt-routine], [prompt-string]) Argument Description -------- ----------- command-string Command to parse table Address of tables containing the command definition param-routine Used to prompt for missing parameters prompt-routine Used to prompt for initial command line and continuation lines prompt-string Used by prompt-routine Enhancements to CLI$ Routines - continued CLI$DISPATCH ([user-argument]) o User-argument is passed directly to action routine Enhancements to CLI$ Routines - continued CLI$PRESENT (name-desc) CLI$GET_VALUE (name-desc, buffer-desc, [ret-length]) o Support keyword parsing IF CLI$PRESENT ("BLOCKS.START") THEN CLI$GET_VALUE("BLOCKS.START", RETDESC) o RTL input and output descriptor support STR$ANALYZE_SDESC, STR$COPY_DX o CLI$GET_VALUE returns optional return value length o New return statuses