CONTENTS Title Page Copyright Page Preface 1 Using CMS Callable Routines 1.1 Calling CMS Routines 1.2 Rules for Writing Programs that Call CMS Routines 1.3 Passing Arguments to CMS Routines 1.3.1 Data Types 1.3.2 The Library Data Block 1.3.3 The Fetch Data Block 1.3.4 Specifying Flags as Arguments 1.3.5 Masks 1.4 Condition Values Returned 1.4.1 CMS$_EOF Condition Value 1.4.2 CMS$_INUSE, CMS$_WAITING, and CMS$_PROCEEDING Messages 1.5 Using Callback Routines 1.5.1 Rules for Writing Callback Routines 1.5.2 Callback Routines Used by CMS$CMS 1.5.2.1 The Confirmation Routine 1.5.2.2 The Prompt Routine 1.5.2.3 The Output Routine 1.5.3 Passing Strings Between CMS and Callback Routines 1.5.3.1 Specifying End of Input 1.5.3.2 Determining End of Output 1.5.4 Callback Return Codes 1.6 Handling Error Conditions 1.7 Writing an Error Message Handler 1.8 Linking with the CMS Image 2 CMS Routine Descriptions CMS$ANNOTATE CMS$ASYNCH_TERMINATE CMS$CMS CMS$COPY_ELEMENT CMS$CREATE_CLASS CMS$CREATE_ELEMENT CMS$CREATE_GROUP CMS$CREATE_LIBRARY CMS$DELETE_CLASS CMS$DELETE_ELEMENT CMS$DELETE_GENERATION CMS$DELETE_GROUP CMS$DELETE_HISTORY CMS$DIFFERENCES CMS$FETCH CMS$FETCH_CLOSE CMS$FETCH_GET CMS$FETCH_OPEN CMS$GET_STRING CMS$INSERT_ELEMENT CMS$INSERT_GENERATION CMS$INSERT_GROUP CMS$MODIFY_CLASS CMS$MODIFY_ELEMENT CMS$MODIFY_GENERATION CMS$MODIFY_GROUP CMS$MODIFY_LIBRARY CMS$PUT_STRING CMS$REMARK CMS$REMOVE_ELEMENT CMS$REMOVE_GENERATION CMS$REMOVE_GROUP CMS$REPLACE CMS$RETRIEVE_ARCHIVE CMS$REVIEW_GENERATION CMS$SET_ACL CMS$SET_LIBRARY CMS$SET_NOLIBRARY CMS$SHOW_ACL CMS$SHOW_ARCHIVE CMS$SHOW_CLASS CMS$SHOW_ELEMENT CMS$SHOW_GENERATION CMS$SHOW_GROUP CMS$SHOW_HISTORY CMS$SHOW_LIBRARY CMS$SHOW_RESERVATIONS CMS$SHOW_REVIEWS_PENDING CMS$SHOW_VERSION CMS$UNRESERVE CMS$VERIFY A Summary of CMS Interface Functional Mappings B Examples of Calling CMS B.1 Calling CMS from Ada B.2 Calling CMS from BASIC B.3 Calling CMS from BLISS B.4 Calling CMS from C B.5 Calling CMS from COBOL B.6 Calling CMS from DIBOL B.7 Calling CMS from FORTRAN B.8 Calling CMS from Pascal B.9 Calling CMS from PL/I B.10 Calling CMS from SCAN EXAMPLES 1-1 Calling CMS Routines 1-2 Passing the Concurrent Flag to CMS$CREATE_ELEMENT 1-3 Using a Bitmask 1-4 Using a Message Handler Routine B-1 Ada Example B-2 Calling CMS$SHOW_ELEMENT from BASIC B-3 Calling CMS$SHOW_ELEMENT from BLISS B-4 Calling CMS$SHOW_ELEMENT from C B-5 Calling CMS$SHOW_ELEMENT from COBOL B-6 DIBOL Example B-7 Calling CMS$SHOW_ELEMENT from FORTRAN B-8 Calling CMS$SHOW_ELEMENT from Pascal B-9 Calling CMS$SHOW_ELEMENT from PL/I B-10 SCAN Example FIGURES 1-1 A CMS Library Data Block 1-2 A String Identifier 2-1 Statistics Array TABLES 1-1 Data Types of Objects Passed to CMS Routines 1-2 Passing Concurrent Flag Values 1-3 Accessing CMS Symbols for Defined Condition Codes