CONTENTS Title Page Copyright Page Preface Part I General Information about VMS Record Management Services 1 Introduction to VMS RMS 1.1 VMS RMS Functions 1.2 Passing Arguments to VMS RMS 1.2.1 VMS RMS Services and Control Blocks 1.2.2 Control Blocks for File Services 1.2.3 Control Blocks for Record Services 1.2.4 The Dual Purpose of Control Blocks 2 The Program Interface with VMS RMS 2.1 The Run-Time Environment and VMS RMS Programming 2.2 Conventions for Naming Fields 2.3 The VMS RMS Calling Sequence 2.4 Service Completion 2.5 Allowable Program Execution Modes 2.6 Access-mode Protected Memory 2.7 Reserved Event Flags 2.8 DEC Multinational Character Set 3 VMS RMS Macros and VAX MACRO Programming 3.1 VMS RMS Macros 3.1.1 Conventions for Naming VMS RMS Macros 3.1.2 Applicable VAX MACRO Syntax Rules 3.2 Using the VMS RMS Macros 3.2.1 Control Block Initialization Macros 3.2.2 Control Block Symbol Definition Macros 3.2.3 Control Block Store Macros 3.2.4 Service Macros 4 VMS RMS Example Programs 4.1 Creating, Accessing, and Deaccessing a File 4.1.1 Example of Opening and Creating Files 4.1.2 Example of Creating a Multiple-Key Indexed File 4.2 Processing File Specifications 4.3 Connecting and Disconnecting Record Streams 4.4 Other File-Processing Operations 4.5 Retrieving and Inserting Records 4.6 Deleting Records 4.7 Updating Records 4.8 Using Block I/O 4.8.1 Mixed Block and Record I/O 4.8.2 The Next Block Pointer (NBP) 4.9 Other Record-Processing Operations 4.10 Control Routines Part II-VMS RMS Control Blocks 5 File Access Block (FAB) 5.1 Summary of Fields 5.2 FAB$B_ACMODES Field 5.3 FAB$L_ALQ Field 5.4 FAB$B_BID Field 5.5 FAB$B_BKS Field 5.6 FAB$B_BLN Field 5.7 FAB$W_BLS Field 5.8 FAB$V_CHAN_MODE Subfield 5.8.1 Override Value 5.8.2 Channel Access Mode Function 5.9 FAB$L_CTX Field 5.10 FAB$W_DEQ Field 5.11 FAB$L_DEV Field 5.12 FAB$L_DNA Field 5.13 FAB$B_DNS Field 5.14 FAB$B_FAC Field 5.15 FAB$L_FNA Field 5.16 FAB$B_FNS Field 5.17 FAB$L_FOP Field 5.18 FAB$B_FSZ Field 5.19 FAB$W_GBC Field 5.20 FAB$W_IFI Field 5.21 FAB$B_JOURNAL Field 5.22 FAB$V_LNM_MODE Subfield 5.23 FAB$L_MRN Field 5.24 FAB$W_MRS Field 5.25 FAB$L_NAM Field 5.26 FAB$B_ORG Field 5.27 FAB$B_RAT Field 5.28 FAB$B_RFM Field 5.29 FAB$B_RTV Field 5.30 FAB$L_SDC Field 5.31 FAB$B_SHR Field 5.32 FAB$L_STS Field 5.33 FAB$L_STV Field 5.34 FAB$L_XAB Field 6 Name Block (NAM) 6.1 Summary of Fields 6.2 File Specification Component Descriptors 6.3 NAM$B_BID Field 6.4 NAM$B_BLN Field 6.5 NAM$B_DEV and NAM$L_DEV Fields 6.6 NAM$W_DID Field 6.7 NAM$B_DIR and NAM$L_DIR Fields 6.8 NAM$T_DVI Field 6.9 NAM$L_ESA Field 6.10 NAM$B_ESL Field 6.11 NAM$B_ESS Field 6.12 NAM$W_FID Field 6.13 NAM$L_FNB Field 6.14 NAM$B_NAME and NAM$L_NAME Fields 6.15 NAM$B_NODE and NAM$L_NODE Fields 6.16 NAM$B_NOP Field 6.17 NAM$L_RLF Field 6.18 NAM$L_RSA Field 6.19 NAM$B_RSL Field 6.20 NAM$B_RSS Field 6.21 NAM$B_TYPE and NAM$L_TYPE Fields 6.22 NAM$B_VER and NAM$L_VER Fields 6.23 NAM$L_WCC Field 7 Record Access Block (RAB) 7.1 Summary of Fields 7.2 RAB$B_BID Field 7.3 RAB$L_BKT Field 7.4 RAB$B_BLN Field 7.5 RAB$L_CTX Field 7.6 RAB$L_FAB Field 7.7 RAB$W_ISI Field 7.8 RAB$L_KBF Field 7.9 RAB$B_KRF Field 7.10 RAB$B_KSZ Field 7.11 RAB$B_MBC Field 7.12 RAB$B_MBF Field 7.13 RAB$L_PBF Field 7.14 RAB$B_PSZ Field 7.15 RAB$B_RAC Field 7.16 RAB$L_RBF Field 7.17 RAB$W_RFA Field 7.18 RAB$L_RHB Field 7.19 RAB$L_ROP Field 7.20 RAB$W_RSZ Field 7.21 RAB$L_STS Field 7.22 RAB$L_STV Field 7.23 RAB$B_TMO Field 7.24 RAB$L_UBF Field 7.25 RAB$W_USZ Field 7.26 RAB$L_XAB Field 8 Allocation Control XAB (XABALL) 8.1 Summary of Fields 8.2 XAB$B_AID Fields 8.3 XAB$B_ALN Field 8.4 XAB$L_ALQ Field 8.5 XAB$B_AOP Field 8.6 XAB$B_BKZ Field 8.7 XAB$B_BLN Field 8.8 XAB$B_COD Field 8.9 XAB$W_DEQ Field 8.10 XAB$L_LOC Field 8.11 XAB$L_NXT Field 8.12 XAB$W_RFI Field 8.13 XAB$W_VOL Field 9 Date and Time XAB (XABDAT) 9.1 Summary of Fields 9.2 XAB$Q_BDT Field 9.3 XAB$B_BLN Field 9.4 XAB$Q_CDT Field 9.5 XAB$B_COD Field 9.6 XAB$Q_EDT Field 9.7 XAB$L_NXT Field 9.8 XAB$Q_RDT Field 9.9 XAB$W_RVN Field 10 File Header Characteristic XAB (XABFHC) 10.1 Summary of Fields 10.2 XAB$B_ATR Field 10.3 XAB$B_BKZ Field 10.4 XAB$B_BLN Field 10.5 XAB$B_COD Field 10.6 XAB$W_DXQ Field 10.7 XAB$L_EBK Field 10.8 XAB$W_FFB Field 10.9 XAB$W_GBC Field 10.10 XAB$L_HBK Field 10.11 XAB$B_HSZ Field 10.12 XAB$W_LRL Field 10.13 XAB$W_MRZ Field 10.14 XAB$L_NXT Field 10.15 XAB$B_RFO Field 10.16 XAB$L_SBN Field 10.17 XAB$W_VERLIMIT Field 11 Item List XAB (XABITM) 11.1 Summary of Fields 11.1.1 XAB$B_BLN Field 11.1.2 XAB$B_COD Field 11.1.3 XAB$L_ITEMLIST Field 11.1.4 XAB$B_MODE Field 11.1.5 XAB$L_NXT Field 11.2 Network File Access Items (XAB$_NET_... and XAB$_CAP_...) 11.3 File User Characteristics Items (XAB$_UCHAR_...) 11.4 VMS RMS Performance Monitoring (XAB$_STAT_ENABLE) 11.5 VMS Support for Compound Documents (XAB$_..._SEMANTICS) 11.6 Specifying the Number of Local Buffers (XAB$_MULTIBUFFER_COUNT) 11.7 Expiration Date and Time Suppression 11.7.1 XAB$_NORECORD XABITM 11.7.2 Application 12 Journaling XAB (XABJNL) 13 Key Definition XAB (XABKEY) 13.1 Summary of Fields 13.2 XAB$B_BLN Field 13.3 XAB$B_COD Field 13.4 XAB$L_COLNAM Field 13.5 XAB$L_COLSIZ Field 13.6 XAB$L_COLTBL Field 13.7 XAB$B_DAN Field 13.8 XAB$B_DBS Field 13.9 XAB$W_DFL Field 13.10 XAB$B_DTP Field 13.11 XAB$L_DVB Field 13.12 XAB$B_FLG Field 13.13 XAB$B_IAN Field 13.14 XAB$B_IBS Field 13.15 XAB$W_IFL Field 13.16 XAB$L_KNM Field 13.17 XAB$B_LAN Field 13.18 XAB$B_LVL Field 13.19 XAB$W_MRL Field 13.20 XAB$B_NSG Field 13.21 XAB$B_NUL Field 13.22 XAB$L_NXT Field 13.23 XAB$W_POS0 Through XAB$W_POS7 Field 13.24 XAB$B_PROLOG Field 13.25 XAB$B_REF Field 13.26 XAB$L_RVB Field 13.27 XAB$B_SIZ0 Through XAB$B_SIZ7 Field 13.28 XAB$B_TKS Field 14 Protection XAB (XABPRO) 14.1 Summary of Fields 14.2 XAB$L_ACLBUF Field 14.3 XAB$L_ACLCTX Field 14.4 XAB$W_ACLLEN Field 14.5 XAB$W_ACLSIZ Field 14.6 XAB$L_ACLSTS Field 14.7 XAB$B_BLN Field 14.8 XAB$B_COD Field 14.9 XAB$W_GRP Field 14.10 XAB$W_MBM Field 14.11 XAB$B_MTACC Field 14.12 XAB$L_NXT Field 14.13 XAB$W_PRO Field 14.14 XAB$B_PROT_OPT Field 14.15 XAB$L_UIC Field 15 Revision Date and Time XAB (XABRDT) 15.1 Summary of Fields 15.2 XAB$B_BLN Field 15.3 XAB$B_COD Field 15.4 XAB$L_NXT Field 15.5 XAB$Q_RDT Field 15.6 XAB$W_RVN Field 16 Recovery Unit XAB (XABRU) 17 Summary XAB (XABSUM) 17.1 Summary of Fields 17.2 XAB$B_BLN Field 17.3 XAB$B_COD Field 17.4 XAB$B_NOA Field 17.5 XAB$B_NOK Field 17.6 XAB$L_NXT Field 17.7 XAB$W_PVN Field 18 Terminal XAB (XABTRM) 18.1 Summary of Fields 18.2 XAB$B_BLN Field 18.3 XAB$B_COD Field 18.4 XAB$L_ITMLST Field 18.5 XAB$W_ITMLST_LEN Field 18.6 XAB$L_NXT Field Part III-VMS RMS Services $CLOSE $CONNECT $CREATE $DELETE $DISCONNECT $DISPLAY $ENTER $ERASE $EXTEND $FIND $FLUSH $FREE $GET $NXTVOL $OPEN $PARSE $PUT $READ $RELEASE $REMOVE $RENAME $REWIND $SEARCH $SPACE $TRUNCATE $UPDATE $WAIT $WRITE A VMS RMS Completion Status Codes B RMS Control Block Macros $FAB $FAB_STORE $NAM $NAM_STORE $RAB $RAB_STORE $XABALL $XABALL_STORE $XABDAT $XABDAT_STORE $XABFHC $XABFHC_STORE $XABITM $XABKEY $XABKEY_STORE $XABPRO $XABPRO_STORE $XABRDT $XABRDT_STORE $XABSUM $XABSUM_STORE $XABTRM $XABTRM_STORE EXAMPLES 3-1 Use of the $XABDAT and $XABDAT_STORE Macros 4-1 Use of the Create, Open, and Close Services 4-2 Use of the Create Service for an Indexed File 4-3 Wildcard Processing Using Parse and Search Services 4-4 Use of the Connect Service and Multiple Keys 4-5 Use of the Rename Service 4-6 Use of the Get and Put Services 4-7 Use of the Delete Service 4-8 Use of the Update Service 4-9 Use of Block I/O 11-1 Using XABITM to Enable VMS RMS Statistics FIGURES 2-1 Argument List Format 11-1 Item Descriptor Data Structure 14-1 File Protection Field TABLES 3-1 User Control Blocks 3-2 VMS RMS Services 3-3 File, Record, and Block I/O Processing Macros 5-1 FAB Fields 5-2 Device Characteristics 5-3 File Processing Options 5-4 Maximum Record Size for File Organizations and Record Formats 6-1 NAM Block Fields 6-2 NAM$L_FNB Status Bits 7-1 RAB Fields 7-2 Record Processing Options 8-1 XABALL Fields 9-1 XABDAT Fields 10-1 XABFHC Fields 11-1 XABITM Fields 11-2 XABITM Item List 11-3 System Networking Capabilities 11-4 File User Characteristics 11-5 Tag Support Item Codes 13-1 XABKEY Fields 14-1 XABPRO Fields 15-1 XABRDT Fields 17-1 XABSUM Fields 18-1 XABTRM Fields RMS-1 Close Service FAB and XAB Input Fields RMS-2 Close Service FAB and XAB Output Fields RMS-3 Connect Service RAB Input Fields RMS-4 Connect Service RAB Output Fields RMS-5 Create Service FAB and XAB Input Fields RMS-6 Create Service FAB and XAB Output Fields RMS-7 Create Service NAM Block Input Fields RMS-8 Create Service NAM Block Output Fields RMS-9 Delete Service RAB Input Fields RMS-10 Delete Service RAB Output Fields RMS-11 Disconnect Service RAB Input Fields RMS-12 Disconnect Service RAB Output Fields RMS-13 Display Service FAB and NAM Input Fields RMS-14 Display Service FAB, NAM, and XAB Output Fields RMS-15 Enter Service FAB and NAM Input Fields RMS-16 Enter Service FAB and NAM Output Fields RMS-17 Erase Service FAB and NAM Input Fields RMS-18 Erase Service FAB and NAM Output Fields RMS-19 Extend Service FAB Input Fields RMS-20 Extend Service FAB Output Fields RMS-21 Find Service RAB Input Fields RMS-22 Find Service RAB Output Fields RMS-23 Flush Service RAB Input Fields RMS-24 Flush Service RAB Output Fields RMS-25 Free Service RAB Input Fields RMS-26 Free Service RAB Output Fields RMS-27 Get Service RAB Input Fields RMS-28 Get Service RAB Output Fields RMS-29 Next Volume Service RAB Input Fields RMS-30 Delete Service RAB Output Fields RMS-31 Open Service FAB and XAB Input Fields RMS-32 Open Service FAB and XAB Output Fields RMS-33 Open Service NAM Block Input Fields RMS-34 Open Service NAM Block Output Fields RMS-35 Parse Service FAB and NAM Block Input Fields RMS-36 Parse Service FAB and NAM Block Output Fields RMS-37 Put Service RAB Input Fields RMS-38 Put Service RAB Output Fields RMS-39 Read Service RAB Input Fields RMS-40 Read Service RAB Output Fields RMS-41 Release Service RAB Input Fields RMS-42 Release Service RAB Output Fields RMS-43 Remove Service FAB and NAM Block Input Fields RMS-44 Remove Service FAB and NAM Block Output Fields RMS-45 Rename Service FAB and NAM Block Input Fields RMS-46 Rename Service FAB and NAM Block Output Fields RMS-47 Rewind Service RAB Input Fields RMS-48 Rewind Service RAB Output Fields RMS-49 Search Service FAB and NAM Block Input Fields RMS-50 Search Service FAB and NAM Block Output Fields RMS-51 Space Service RAB Input Fields RMS-52 Space Service RAB Output Fields RMS-53 Truncate Service RAB Input Fields RMS-54 Truncate Service RAB Output Fields RMS-55 Update Service RAB Input Fields RMS-56 Update Service RAB Output Fields RMS-57 Wait Service RAB Input Fields RMS-58 Wait Service RAB Output Fields RMS-59 Write Service RAB Input Fields RMS-60 Write Service RAB Output Fields A-1 Completion Status Hexadecimal Values and Codes A-2 Descriptions of VMS RMS Completion Status Codes