CONTENTS Title Page Copyright Page Preface 1 Overview of DSM System Overview DSM Language DSM Application Environment Data Management Precompiler Input/Output Processing External Routine Interface Callable Interface Application Interlocking Journaling Library and System Utilities DSM Shareable Images DSM Background Processes Shared Areas of Memory 2 DSM Command Line Getting Started DSM Command Syntax DSM User Modes Running DSM in Programmer Mode Programmer Mode Defaults Running DSM in Application Mode Application Mode Defaults Exiting from DSM DSM Command Line Qualifiers Command Line Qualifier Syntax Modifying the Default Command Line Qualifiers Using ^CONFIG Description of Command Line Qualifiers Command Line Qualifier Examples 3 Developing DSM Applications in a VMS Environment Logical Names in a DSM Environment Programming Techniques Running DSM from a DCL Command Procedure Executing a Routine in a Detached Process Using the JOB Command Using Sequential Files to Store Routines Saving a Routine in a Sequential File Restoring a Routine from a Sequential File Printing a Routine Saving and Restoring Globals ( ^%GTI and ^%GTO ) Source Routine Code Protection Using the VAX DEC/Code Management System ( ^%CMS ) Introduction to CMS Routine and Global Naming Conventions Used by ^%CMS Running the ^%CMS Utility 4 Parameter Passing and Extrinsic Functions DO Command and Parameter Passing Extrinsic Functions Rules for Extrinsic Function Calls Passing Arrays to Extrinsic Functions Summary 5 Using the DSM Debugger Overview Enabling and Disabling the DSM Debugger Breakpoints Setting Breakpoints with the $ZBREAK Special Variable Setting Breakpoints with the BREAK Command Setting XECUTE String Breakpoints Setting Breakpoint Action Strings Examining Breakpoints Clearing Breakpoints Watchpoints Setting Watchpoints with the $ZWATCH Special Variable Setting Watchpoint Action Strings Examining Watchpoints Clearing Watchpoints Continuing Execution After a Breakpoint or a Watchpoint Debugging Utilities Using the ^%STACK Utility Using the ^%TRACE Utility 6 Using Error Processing Types of Errors Overview of Error Processing Error-Processing Functions, Variables, and Commands Determining the Error Code Establishing Error Handlers Call Stacks and DO Frames $ETRAP Error Handling and the Call Stack $ETRAP Error Handler Flow Control Options $ZTRAP Error Handling and the Call Stack $ZTRAP Error Handler Flow Control Options $ETRAP and $ZTRAP Error Handler Interaction Errors in an Error Handler Forcing an Error SET $ECODE Command ZTRAP Command CTRAP I/O Option Using Error Handlers 7 DSM Library Utilities Overview Library Utility Conventions Running the DSM Library Utilities CMS Utility ( ^%CMS ) Conversion Utilities Date and Time Converter ( ^%H ) Numeric Conversion Utilities Decimal to Hex ( ^%DH ) Decimal to Octal ( ^%DO ) Hex to Decimal ( ^%HD ) Hex to Octal ( ^%HO ) Octal to Decimal ( ^%OD ) Octal to Hex ( ^%OH ) Debugger Utilities DSM Information Utilities Devices ( IO^%STAT ) Directories ( ^%DIRSHO ) Job Monitor ( ^%JOB ) System Status ( ^%SY ) Terminals ( TERM^%STAT ) External Call ( ^%CD ) Volume Set Global Utilities Block Mode Restore ( ^%GBR ) Block Mode Save ( ^%GBS ) Copy ( ^%GC ) Directory ( ^%GD ) Directory (Extended) ( ^%EGD ) Directory (Library) ( LIB^%GD ) Edit ( ^%GEDIT ) Efficiency ( ^%GE ) Journaling ( SETJRN^%GLOMAN ) List ( ^%G ) Management ( ^%GLOMAN ) Protection ( SETPRO^%GLOMAN ) Sequential Restore ( ^%GTI ) Sequential Save ( ^%GTO ) Translation Display ( ^%TRAN ) Miscellaneous Utilities Additional Utility Help ( HELP^%INF ) Error Trapping Error Trapping Utility ( ^%ET ) Error Reporting Utility ( ^%ER ) Global Select ( ^%GSEL ) DSM Help ( ^%HELP ) Device Select ( ^%IOS ) Magtape Status ( ^%MTCHK ) Routine Recompile ( ^%REPLACE ) Routine Select ( ^%RSEL ) Close Devices ( IO^%CLOSE ) Date ( ^%D ) Help List ( ^%HELPLIS ) Menu List ( ^%MENULIS ) Spawn ( ^%SPAWN ) Time ( ^%T ) Routine Utilities Change Every ( ^%RCE ) Compare ( ^%RCMP ) Copy ( ^%RCOPY ) Delete ( ^%RPURGE ) Directory ( ^%RD ) Directory (Extended) ( ^%RDX ) Directory (Library) ( LIB^%RD ) EDT Edit ( ^%EDT ) First Line List ( ^%FL ) Precompiled Routine Restore ( ^%PR ) Precompiled Routine Save ( ^%PS ) Restore ( ^%RR ) Save ( ^%RS ) Search ( ^%RSE ) Size ( ^%RSIZE ) Syntax Check ( ^%ERRCHK ) TPU Edit ( ^%TPU ) Transfer ( ^%RXFER ) VMS Information Utilities Device ( ^%GETDVI ) File ( ^%GETFILE ) General ( VMS^%STAT ) Message ( ^%GETMSG ) Process ( ^%GETJPI ) System ( ^%GETSYI ) Extrinsic Functions DSM Process Information Function DSM Job Table Information Function DSM Command Line Options Information Function DSM Open Device List Function 8 Introduction to I/O Processing Overview Accessing Devices and Files I/O Command Syntax I/O Device Specifiers Device or File Type Recognition Principal I/O Device I/O Commands I/O Special Variables 9 I/O Processing for Terminals Setting Terminal Characteristics Terminal Commands OPEN Command for Terminals USE Command for Terminals Using the ^%TERMUTL Utility to Show, Get, and Set Terminal USE Parameters Screen Management Facility and Foreign Terminal Support CLOSE Command for Terminals READ Command for Terminals READ * Command for Terminals WRITE Command for Terminals WRITE * Command for Terminals Optimizing Terminal Output Recognition of Ctrl/C and Ctrl/Y Escape Sequence Processing $ZB Special Variable in Escape Sequence Processing VT200, VT300, and VT400 Function Key Support Terminal Status and Error Conditions Local Area Transport Support for Terminals Logging In to a VMS System Using LAT Server and Port Names Printers and Host-Initiated Connections Modifying LAT Terminal Characteristics Using Dedicated LAT Ports Creating Dedicated LAT Ports Dedicated Port Example Using a Dedicated Port for $PRINCIPAL 10 I/O for DSM Magnetic Tape Magnetic Tape Commands OPEN Command for Magnetic Tape USE Command for Magnetic Tape CLOSE Command for Magnetic Tape WRITE and ZPRINT Commands for Magnetic Tape WRITE * Command for Magnetic Tape READ and ZLOAD Commands for Magnetic Tape Magnetic Tape Operations VIEW Buffer Mode Tape Labels and Multiple File Structures Data Formats Magnetic Tape Error Conditions Modifying the ASCII/EBCDIC Conversion Tables Utility Support for DSM Magnetic Tape 11 Input/Output Processing for RMS Files, VMS Mailboxes, and Network Devices Using RMS Files File Organization File Access Methods Record I/O Block I/O Creating and Opening Files Positioning Files Overview of Writing and Reading Records File Sharing File Protection Sequential Files on Disk Sequential File Commands OPEN Command for Sequential Files USE Command for Sequential Files CLOSE Command for Sequential Files READ Command for Sequential Files READ * Command for Sequential Files WRITE Command for Sequential Files WRITE * Command for Sequential Files ZPRINT Command for Sequential Files ZLOAD Command for Sequential Files Sequential File Status and Error Conditions Sequential Files on Magnetic Tape RMS Magnetic Tape Operations RMS Magnetic Tape Access Modes Accessing File-Structured Tapes Accessing Non-File-Structured Tapes RMS Magnetic Tape Status and Error Conditions RMS Magnetic Tape Commands OPEN Command for RMS Magnetic Tape USE Command for RMS Magnetic Tape CLOSE Command for RMS Magnetic Tape READ and WRITE Commands for RMS Magnetic Tape Indexed Files Indexed File Commands OPEN Command for Indexed Files USE Command for Indexed Files CLOSE Command for Indexed Files READ Command for Indexed Files WRITE Command for Indexed Files Record Locking for Indexed Files Indexed File Status and Error Conditions Relative Files Relative File Commands OPEN Command for Relative Files USE Command for Relative Files CLOSE Command for Relative Files READ Command for Relative Files WRITE Command for Relative Files Relative File Record Locking Relative File Status and Error Conditions Using Mailboxes Creating Mailboxes Mailbox Logical Names Mailbox Commands OPEN Command for Mailboxes OPEN Command Timeout USE Command for Mailboxes CLOSE Command for Mailboxes READ Command for Mailboxes WRITE Command for Mailboxes Mailbox Status and Error Conditions Communicating with Remote Computers Using DECnet Software Limitations on Operations Across the Network Reading and Writing Files Across the Network DECnet Task-to-Task Communication Across the Network Defining a DECnet Object Writing a Network Command Procedure Writing DSM Programs Using Mailboxes Across the Network 12 I/O Over TCP/IP TCP/IP Network Communication TCP/IP Support for OpenVMS Systems DSM Server DSM Client DSM Client and DSM Server 13 Using Device Control Mnemonics Device Handling Overview Device Control Mnemonic Spaces and Device Control Mnemonics Performing Output Format Control Associating Mnemonic Spaces with Devices Customizing Applications to Handle Different Device Types Developing a Device Control Mnemonic Space Creating the Device Control Mnemonics Table Format of the Device Control Mnemonics Table Creating the Device Control Mnemonics Table Source File 14 DSM Supplied External Routines Overview External Call Directory Utility ( ^%CD ) VMS Related External Routines VMS Service Functions Mathematical Functions Text-Manipulation Functions File-Related Functions DSM Functions Alphabetical List of Supplied External Routines %ARCCOS %ARCSIN %ARCTAN %ASCEBC %ATTACH %BASEDIT %BOOLEAN %CDATASC %CDATNUM %CHKSUM %COS %CRELOG %CTIMASC %CTIMNUM %CURRENCY %CVMSHOR %DAYS %DEJRNL %DELLOG %DELSYM %DES %DIGISEP %DIRECTORY %DISABLCTRL %DISMOUNT %EBCASC %EDT %ENABLCTRL %EXP %FDLCREATE %GETDVI %GETFILE %GETJPI %GETMSG %GETSYI %GETSYM %GETUAI %HIBER %IOCLOSE %LOG10 %LOG %LPLINES %MAX %MIN %MOUNT %MTerm %OPCOM %PARSE %POWER %PRINT %PROMPT %RADIXPT %SECMAP %SECSHOW %SETPRI %SETPRN %SETSYM %SETUCI %SIN %SPAWN %SQRT %SUBMIT %SYSFAO %TAN %TPU %TRANSLATE %TRNLNM %TRNLOG %UCI %UPCASE %UPCASEQ %VERSION %VIEWASSIGN %VIEWBUFFER %WAKE Memory Management External Routines Block Allocation/Deallocation External Routines %VMGET %VMFREE Block Writing External Routines Block Reading External Routines BLOCK INPUT Line Keyword A Error Messages Error Message Format Level 2 Errors Level 4 Errors Error Messages ALLOC . . . BLPRT BREAK . . . CI_NOTINIT CI_SDB . . . DBDGD DDPBUFFR . . . DDPINVCODE DDPLNKEXISTS . . . DEALLOC DELETERR . . . ECODE ECODETRAP . . . FRAME FUNC . . . GLSACCERR GLSALRMNT . . . GLSDBDGD10 GLSDBDGD11 . . . GLSOPNERR GLSOPTION . . . ICBADTYP ICBADUCI . . . ICNORIGHT ICOSETIS . . . INVDEVNAM INVGBLNAM . . . LCKBUFOVF LCKERR . . . MAXGLOBAL MAXTERM . . . MW_BITMAP MW_ILLEVENT . . . MW_NOFILE MW_NONMODAL . . . NOMSG NOPRIV . . . NUMBER OPENERR . . . PLDER PNAME . . . RULEVELERR RUNDOWN . . . SHUTINPROG SPACERR . . . TPINVTXID TPLOGIC . . . VIEWERR VIEWPROT . . . ZCPARSE ZCSIGNAL . . . ZUSERR B Modifying the DSM Error Message File