CONTENTS Title Page Copyright Page Preface Part I Guide 1 Introduction to Device Access Software 1.1 Device Access Software 1.1.1 Protocol Emulator 1.1.2 Network Interface 1.1.3 Defining a Protocol Emulator 1.1.4 Defining a Network Interface 1.2 Device Server 1.2.1 Control Flow for a Device Request 1.2.2 Device Timeouts 1.3 BASEstar Device Connection Management Control Database 2 Protocol Emulator and Network Interface Data Structures 2.1 Call Packets 2.1.1 Protocol Emulator Call Packets 2.1.2 Network Interface Call Packets 2.1.3 Input/Output Status Block Definition 2.2 Control Blocks 2.2.1 Network Interface Control Blocks 2.2.1.1 Object Block 2.2.1.2 Line Block 2.2.1.3 Connect Block 2.2.1.4 I/O Block 2.2.2 Protocol Emulator Control Blocks 2.2.2.1 Access Block 2.2.2.2 Request Block 2.2.2.3 Listen Block 2.2.2.4 Point Block 2.3 Examples of Device Access Requests 3 Writing Device Access Software 3.1 Initializing the DAS 3.2 Transitioning a Device from Disabled State to Reachable State 3.2.1 Transitioning from Disabled to Enabled 3.2.2 Transitioning from Enabled to Connected 3.2.3 Transitioning from Connected to Reachable 3.3 Processing a Device Request 3.3.1 Specifying Device Request Action 3.3.2 Soliciting Data from a Device 3.3.3 ILAN$$xxx_PE_COMP_ADDR 3.3.4 ILAN$$yyy_NI_READ, ILAN$$yyy_NI_WRITE, and ILAN$$yyy_NI_SPECIFIC 3.3.5 ILAN$$xxx_PE_CANCEL_REQ 3.4 Accepting Unsolicited Data from a Device 3.4.1 Transitioning the Device State 3.4.2 ILAN$$xxx_PE_COMP_UNSOL_ID 3.4.3 ILAN$$xxx_PE_PNT_UNSOL_REQ 3.4.4 ILAN$$xxx_PE_REQ_LISTEN 3.5 Canceling Unsolicited Communications 3.5.1 ILAN$$xxx_PE_CNL_UNSOL_PNT 3.5.2 ILAN$$xxx_PE_CANCEL_UNSOL 3.6 Canceling Outstanding Device Requests 3.7 Terminating Communications with the Device 3.7.1 Transitioning a Device from Reachable to Connected 3.7.2 Transitioning a Device from Connected to Disabled 4 Support for Writing Your DAS 4.1 DAS Support Routines 4.1.1 Device Response Routines 4.1.2 OpenVMS File Management Routines 4.1.3 Terminal Port Characteristics Routine 4.1.4 Memory Management Routines 4.1.5 Information and Error Reporting Routines 4.2 Handling Errors 4.3 Support for Programming Languages 5 How a DAS Handles Data 5.1 Data Types 5.1.1 Array Support 5.1.2 Bit Support 5.2 Structured Data 5.2.1 Format Definition Block 5.2.2 Format Component Block 5.3 Data Conversions 6 Providing Support to Perform a Simple Compare 6.1 Writing the Simple Compare Routine 6.2 Compiling and Linking the Simple Compare Routine 6.3 Testing the Simple Compare Routine 6.4 Messages Returned by the Simple Compare Routine 7 Compiling, Linking, and Debugging PEs and NIs 7.1 Compiling the PE Source Files into Object Modules 7.2 Compiling the NI Source Files into Object Modules 7.3 Linking the PE Object Modules into the Shareable Image 7.4 Linking the NI Object Modules into the Shareable Image 7.5 Adding a Device to the BASEstar System 7.6 Debugging Device Access Software 7.6.1 Device Server Recovery During Debugging 7.6.2 Tracing Block Allocation 7.7 Creating an Installation Procedure for Your DAS 8 Device Access Software Documentation 8.1 Providing DAS Documentation 8.2 Providing DAS Online Help 8.3 Documentation for the RS-232 DAS Part II Reference Information 9 Device Access Software Routines ILAN$$yyy_NI_ABORT ILAN$$yyy_NI_CONNECT ILAN$$yyy_NI_INIT ILAN$$yyy_NI_READ ILAN$$yyy_NI_SPECIFIC ILAN$$yyy_NI_WRITE ILAN$$xxx_PE_ABORT ILAN$$xxx_PE_ACCESS ILAN$$xxx_PE_CANCEL_REQ ILAN$$xxx_PE_CANCEL_UNSOL ILAN$$xxx_PE_CHECK_ADDR ILAN$$xxx_PE_CHECK_SCATTER ILAN$$xxx_PE_CNL_UNSOL_PNT ILAN$$xxx_PE_COMP_ADDR ILAN$$xxx_PE_COMP_UNSOL_ID ILAN$$xxx_PE_LOAD_POINT ILAN$$xxx_PE_PNT_UNSOL_REQ ILAN$$xxx_PE_REQ_LISTEN ILAN$$xxx_PE_REQUEST ILAN$$xxx_SCMP 10 Support Routines ILAN$$SPT_ADD_DIRECTORY ILAN$$SPT_ADD_STATUS ILAN$$SPT_ALLOCATE_BLOCK ILAN$$SPT_ALLOC_DISCONN_AST ILAN$$SPT_CLOSE_FILE ILAN$$SPT_DEALLOCATE_BLOCK ILAN$$SPT_FIND_BLOCK_ADDR ILAN$$SPT_FIND_CHILD ILAN$$SPT_FIND_DISCONN_BLOCK ILAN$$SPT_FIND_FIRST_CHILD ILAN$$SPT_FREE_AST ILAN$$SPT_FREE_DISCONN_BLOCK ILAN$$SPT_GET_DISCONN_BLOCK ILAN$$SPT_GET_FILE ILAN$$SPT_GET_LINE_PARAM ILAN$$SPT_GET_PORT_INFO ILAN$$SPT_LOG_MSG ILAN$$SPT_LOG_STS_MSG ILAN$$SPT_OPEN_FILE ILAN$$SPT_PUT_FILE ILAN$$SPT_PUT_MSG ILAN$$SPT_PUT_STS_MSG 11 Return Codes and Error Messages 12 Device Access Software Function Codes 12.1 Function Codes 12.2 Request and Response Buffer Formats 12.2.1 ILAN$K_ALLOCATE 12.2.2 ILAN$K_DEALLOCATE 12.2.3 ILAN$K_DELETE 12.2.4 ILAN$K_DIRECTORY 12.2.5 ILAN$K_DOWNLOAD 12.2.6 ILAN$K_LOOP_DEVICE, ILAN$K_LOOP_NI, and ILAN$K_LOOP_PE 12.2.7 ILAN$K_READ 12.2.8 ILAN$K_SCATTER_READ 12.2.9 ILAN$K_SELECT 12.2.10 ILAN$K_START 12.2.11 ILAN$K_STATUS 12.2.12 ILAN$K_STOP 12.2.13 ILAN$K_UPLOAD 12.2.14 ILAN$K_WRITE