IXV11/VMS Driver User's and Installation Guide Order Number: AA-HU97C-TN Revision/Update Information: Operating System and Version: VMS V5.4 Software Version: IXV11/VMS Driver V2.1 ________________________ February 1991 __________ The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies. Restricted Rights: Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. __________ Copyright ©1991 Digital Equipment Corporation All Rights Reserved. Printed in U.S.A. __________ The postpaid Reader's Comments forms at the end of this document request your critical evaluation to assist in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DEC DIBOL UNIBUS DEC/CMS EduSystem VAX DEC/MMS IAS VAXcluster DECnet MASSBUS VMS DECsystem-10 PDP VT DECSYSTEM-20 PDT DECUS RSTS DECwriter RSX DIGITAL This document was prepared using VAX DOCUMENT, Version 1.2 _______________________________________________________ Contents _________________________________________________ PREFACE vii _______________________________________________________ CHAPTER 1 INTRODUCTION 1-1 _________________________________________________ 1.1 IXV11 INDUSTRIAL I/O MODULE SET 1-1 _________________________________________________ 1.2 IXV11/VMS DRIVER 1-4 _______________________________________________________ CHAPTER 2 SOFTWARE INTERFACE - I/O REQUESTS STANDARD $QIO FUNCTIONS 2-1 _________________________________________________ 2.1 STANDARD SYSTEM SERVICES 2-2 2.1.1 $ALLOC Allocate Device ________ 2-2 2.1.2 $DALLOC Deallocate Device _____ 2-2 2.1.3 $CANCEL Cancel I/O on Channel _ 2-3 _________________________________________________ 2.2 IXV11/VMS DRIVER SPECIFIC $QIO FUNCTIONS 2-5 2.2.1 Digital Input $QIO Functions __ 2-9 2.2.1.1 IO$_READ_DI - Read digital input, 2-9 2.2.1.2 IO$_MORE_DI - More digital inputs, 2-11 2.2.1.3 IO$_SETMODE!IO$M_ATTNAST - Set mode, DI attention AST, 2-14 2.2.1.4 IO$_SET_DP - Set digital parameters, 2-18 iii Contents 2.2.2 Digital Output $QIO Functions _ 2-20 2.2.2.1 IO$_WRITE_DO - Write digital output, 2-20 2.2.2.2 IO$_MORE_DO - More digital outputs, 2-22 2.2.3 Analogue Input $QIO Functions _ 2-25 2.2.3.1 IO$_READ_AI - Read analogue input, 2-25 2.2.3.2 IO$_MORE_AI - More analogue inputs, 2-28 2.2.4 Analogue Output $QIO Function _ 2-34 2.2.4.1 IO$_WRITE_AO - Write analogue output, 2-34 2.2.5 Five Channel Counter $QIO Functions _____________________ 2-37 2.2.5.1 IO$_SET_UP_CC - Set_up counter channel, 2-37 2.2.5.2 IO$_ARM_CC - Arm counter channels, 2-44 2.2.5.3 IO$_DISARM_CC - Disarm counter channel, 2-47 2.2.5.4 IO$_READ_CC - Read counter channel, 2-51 2.2.5.5 IO$_MODIFY_FO - Modify frequency output, 2-53 _______________________________________________________ CHAPTER 3 PREPARING TO INSTALL THE IXV11/VMS DRIVER 3-1 _________________________________________________ 3.1 REQUIRED OPERATING SYSTEM COMPONENTS 3-1 _________________________________________________ 3.2 PREREQUISITE AND OPTIONAL SOFTWARE 3-2 iv Contents 3.2.1 Prerequisite Software _________ 3-2 3.2.2 Optional Software _____________ 3-2 _________________________________________________ 3.3 PREREQUISITE HARDWARE 3-3 _________________________________________________ 3.4 VMS LICENSE MANAGEMENT FACILITY 3-3 _________________________________________________ 3.5 VAXCLUSTER CONSIDERATIONS 3-4 _________________________________________________ 3.6 INSTALLATION PROCEDURE REQUIREMENTS 3-4 3.6.1 Time __________________________ 3-4 3.6.2 Privileges ____________________ 3-4 3.6.3 Disk Space ____________________ 3-5 3.6.4 System Parameters _____________ 3-5 3.6.5 Process Account Quotas ________ 3-5 3.6.6 VMSINSTAL Requirements ________ 3-6 3.6.7 Backing Up Your System Disk ___ 3-6 3.6.8 License Management Utility Requirements __________________ 3-7 _______________________________________________________ CHAPTER 4 INSTALLING THE IXV11/VMS DRIVER 4-1 _________________________________________________ 4.1 GENERAL INFORMATION 4-1 4.1.1 Accessing the Online Release Notes _________________________ 4-1 4.1.2 Determining the Directories/Files Added to the System _________________ 4-1 v Contents 4.1.3 Running the Installation Verification Procedure (IVP) __ 4-2 4.1.4 Aborting the Installation _____ 4-2 _________________________________________________ 4.2 THE INSTALLATION PROCEDURE 4-2 4.2.1 Invoking VMSINSTAL ____________ 4-3 4.2.2 Installation Questions ________ 4-4 4.2.3 Informational Messages ________ 4-11 4.2.4 Running the Installation Verification Procedure ________ 4-11 4.2.5 Completing the Installation Procedure _____________________ 4-11 _________________________________________________ 4.3 ERROR RECOVERY 4-12 _______________________________________________________ CHAPTER 5 AFTER INSTALLING THE IXV11/VMS DRIVER 5-1 _________________________________________________ 5.1 EDITING THE SYSTEM FILES 5-1 _________________________________________________ 5.2 REBOOTING THE SYSTEM 5-2 _________________________________________________ 5.3 CLUSTER CONSIDERATIONS 5-2 _________________________________________________ 5.4 TAILORING YOUR SYSTEM 5-2 _________________________________________________ 5.5 DETERMINING AND REPORTING PROBLEMS 5-3 vi Contents _______________________________________________________ CHAPTER 6 IXV11/VMS DEMONSTRATION PROGRAMS 6-1 _______________________________________________________ CHAPTER 7 IXV11/VMS DRIVER EXERCISER 7-1 _________________________________________________ 7.1 RUNNING THE IXV11/VMS EXERCISER 7-1 _________________________________________________ 7.2 IXV11/VMS EXERCISER COMMAND FORMAT 7-3 7.2.1 ACC - Arm Counter Channels ____ 7-4 7.2.2 CAN - Cancel I/O on Channel ___ 7-4 7.2.3 DCC - Disarm Counter Channel __ 7-5 7.2.4 DDA - Disable Digital AST _____ 7-5 7.2.5 DELAY - Delay program execution _____________________ 7-5 7.2.6 EDA - Enable Digital AST ______ 7-6 7.2.7 MAI - More Analogue Inputs ____ 7-6 7.2.8 MDI - More Digital Inputs _____ 7-7 7.2.9 MDO - More Digital Outputs ____ 7-8 7.2.10 MFO - Modify Frequency Output _ 7-8 7.2.11 RAI - Read Analogue Input _____ 7-8 7.2.12 RCC - Read Counter Channel ____ 7-9 7.2.13 RDI - Read Digital Input ______ 7-9 7.2.14 SCC - Set_up Counter Channel __ 7-10 7.2.15 SDP - Set Digital Parameters __ 7-10 7.2.16 SET DATA - Set Data into Control Buffer of MAI _________ 7-11 7.2.17 VERIFY - Print Data in Control Buffer of MAI Request _________ 7-12 7.2.18 WAO - Write Analogue Output ___ 7-12 7.2.19 WDO - Write Digital Output ____ 7-12 vii Contents 7.2.20 WFR - Wait for Request ________ 7-13 _______________________________________________________ APPENDIX A SAMPLE INSTALLATION A-1 _______________________________________________________ APPENDIX B DIRECTORIES/FILES INSTALLED ON YOUR SYSTEM B-1 _______________________________________________________ APPENDIX C SAMPLE IXV11$EXEF EXECUTION USING IXV11$DEMO C-1 _______________________________________________________ APPENDIX D EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER D-1 _______________________________________________________ APPENDIX E RUN OF THE IXV11$MAIP EXAMPLE PROGRAM E-1 _______________________________________________________ APPENDIX F READER'S COMMENTS F-1 _______________________________________________________ TABLES 3-1 Disk Space Requirements _______ 3-5 viii _______________________________________________________ Preface MANUAL OBJECTIVES The goal of this manual is to provide information necessary to install and use the IXV11/VMS Driver. All information is also explained by examples. INTENDED AUDIENCE The manual assumes that the reader understands the IXV11 Industrial I/O Module Family for which programs are being developed. The reader is assumed to be familiar with the MicroVAX II processor, related terminology as presented in the MicroVAX Handbook, and the VMS operating system currently being used. Knowledge of the operating procedures essential to the assembling/compiling, linking and initiating of VAX MACRO or higher level language programs is also necessary. To install the driver some knowledge of VAX/VMS Optional Software Installation is also assumed. STRUCTURE OF THIS DOCUMENT This manual has seven chapters and several appendices. Chapter 1 is a short general introduction to the IXV11 Industrial I/O Module Family and the IXV11/VMS Driver. Chapter 2 details information about the $QIO requests available for programming the IXV11 interfaces. Chapter 3 describes the preparations for installing the IXV11/VMS Driver. Chapter 4 discusses how to install the IXV/VMS Driver. vii Preface Chapter 5 contains informations after installing the IXV11/VMS Driver. Chapter 6 describes the IXV11/VMS Demonstration Programs. Chapter 7 contains the detailed description of the IXV11/VMS Driver Exerciser. Appendix A is an example of the IXV11/VMS Driver installation. Appendix B shows the files/directories added to the system during the installation of the IXV11/VMS Driver. Appendices C-E are examples of running the IXV11/VMS Driver Exerciser, Driver Tester and Example Programs. viii Preface ASSOCIATED DOCUMENTS For hardware details on the IXV11 interfaces, refer to the manual "Industrial I/O Modules for Q-Bus". For descriptions of documents related to the operating system and programming language, refer to the "Cover Letter for VMS Full Kit". + Option Description of Industrial I/O Modules for Q-Bus CONVENTIONS USED IN THIS MANUAL Square brackets ([]) in syntactic models enclose optional parameters. An ellipsis (...) indicates, that additional parameters, options, or values can be entered. If not explicitly designated, all addresses in this manual are assumed to be octal and all numbers are assumed to be decimal. All other numbers were explicitly designated with trailing decimal point or with trailing X indicating hexadecimal radix. Numbers containing the numerals 8 or 9 are defaulted to decimal and numbers containing letters A,B,C,D,E or F are defaulted to hexidecimal radix. For the IXV11/VMS Driver the words unit, interface, controller, and device all have the same meaning and are used interchangeably. The notation or ^Z indicates that the CTRL (control) key must be pressed simultaneously with the Z key. The terms D/A Converter or DAC or analogue output have the same meaning and stand for Digital to Analogue Converter. The terms A/D Converter or ADC or analogue input have the same meaning and stand for Analogue to Digital Converter. ix _______________________________________________________ 1 INTRODUCTION __________________________________________________________________ 1.1 IXV11 Industrial I/O Module Set The Industrial I/O Module Family for Q-Bus includes the following digital input/output, analogue input/output and counter boards: IDV11-A 16-Bit Opto Isolated Input M5026 IDV11-B 16-Bit Opto Isolated Output M6029 IDV11-C 16-Bit Relay Output M8005 IDV11-D Five Channel Counter M7197 IAV11-A 4/12-Channel A/D Converter A410 IAV11-AA 16 Channel A/D Converter A410- YA IAV11-B 4-Channel Isolated D/A Converter A6007 IAV11-C 16-Channel Flying Capacitor A/D A029 Multiplexer IAV11-CA 16-Channel Expansion Multiplexer A029- YA 1-1 INTRODUCTION Each IXV11 board may be used by itself on the Q-bus (except the A/D Multiplexers), but typically each is used with one or more other boards to create a small I/O system. For each module, there are always four addresses from the I/O page reserved, even if not all of the four words are actually used. The register set used by an IXV11 module is: 171xx0 Mode Register (MOD) 171xx2 Data Register (DAT) or Status and Command Register (SCR) 171xx4 Control Status Register (CSR) or Counter Control Register (CCR) 171xx6 reserved - or Interrupt Register (INR) The digital/analogue input and the five channel counter modules have interrupt logic. The digital/analogue output modules do not have interrupt capability. (For more information about interrupt vectors refer also to paragraph 1.2 and Chapter 3,Chapter 4). The bus and vector addresses (if available) are freely selectable via switches but there are some suggested ("standard") address and vector ranges described in the Industrial I/O Modules for Q-Bus Option Description. Each module type is identified via the Mode Register. The module identification code is checked by the driver to decide if the issued request is legal for the selected module type. 1-2 INTRODUCTION For digital and analogue modules, data is written to or read from the Data Register. The Control Status Register is a 16-bit read/write register to control and change the status of an IXV11 device. The fourth register is reserved for future use. For the five channel counter module the Status and Command Register is written to issue commands. The Counter Control Register is an addressing window referring to sixteen subordinate registers. The Interrupt Register is used to enable and recognize interrupts from counter channels. 1-3 INTRODUCTION __________________________________________________________________ 1.2 IXV11/VMS Driver The IXV11/VMS Driver is installed as a part of the VMS operating system and supports the five types of IXV11 Industrial I/O modules for Q-Bus. The driver assumes that all types of interfaces have an interrupt vector. For IXV11 modules not having real interrupt possibilities, a "dummy" interrupt vector address must be reserved. A dummy interrupt vector is an existent memory address in the interrupt vector area not yet used by the system. Each vector address may be used only once in the system. Therefore, the vectors assigned to an IXV11 device, including the dummy ones will be allocated for the exclusive use of the IXV11/VMS Driver. The dummy vectors, though not used for hardware interrupts, are nevertheless no longer available to the system. The IXV11/VMS Driver supports up to 26 physical devices. Each physical device can be one of the following: o 16-bit digital input, or o 16-bit digital output, or o 16- to 128-channel A/D converter (analogue input), or o 4-channel D/A converter (analogue output), or o Five channel counter. The device mnemonic for the IXV11 interface runs from IVA0: with only the third character varying from A to Z. For this reason, only 26 devices are possible. User programs perform I/O in the VMS operating system by submitting requests for I/O service in the form of $QIO system services. See VAX/VMS System Services Reference Manual for the description of the $QIO system service. Normally the user will only need a subset of the possible functions when programming an 1-4 INTRODUCTION application. The driver can be referenced without any privileges. 1-5 _______________________________________________________ 2 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions This chapter describes the software interface to the IXV11 interfaces. For each request the returned condition values specific for the IXV11/VMS Driver are described. Other possible condition values have the standard VAX/VMS condition value meaning. These condition values and the corresponding symbolic definitions are included in the default system library (SYS$LIBRARY:STARLET.OLB). A listing of these symbolic codes can be obtained by invoking the system macro $SSDEF, for example in a VAX FORTRAN program by including the command line. INCLUDE '($SSDEF)' It is recommended to use symbolic names rather than the corresponding values when testing any certain error condition within an application program. A detailed description of how to call system services and how to use condition values returned from system services can be found in the manuals "Introduction to VAX/VMS System Routines" and "VAX/VMS System Services Reference Manual". For some high level languages there are Include files on the distribution kit which contain the IXV11/VMS Driver specific $QIO function codes. It is recommended to use the symbolic $QIO function names as defined in these Include files. As an example the following line should be added to the beginning of a VAX FORTRAN program: INCLUDE 'IXV11$DEFF.FOR' 2-1 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions __________________________________________________________________ 2.1 Standard System Services Standard system services are requests as described in the "VAX/VMS System Services Reference Manual". See also this manual for the possible condition values returned by the operating system. ___________________________ 2.1.1 $ALLOC Allocate Device The Allocate Device service allocates an IXV11 device for exclusive use by a process and its subprocesses. No other process can allocate the device or assign channels to it until the process that called $ALLOC exits or explicitly deallocates the device with a Deallocate Device ($DALLOC) service. Note that each IXV11 interface is a device of its own and should be allocated with an individual service request. ___________________________ 2.1.2 $DALLOC Deallocate Device The Deallocate Device service deallocates a previously allocated IXV11 device. The issuing process relinquishes exclusive use of the IXV11 device thus allowing other processes to assign or allocate that IXV11 device. Note that each IXV11 interface is a device of its own and has to be deallocated with an individual service request. 2-2 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.1.3 $CANCEL Cancel I/O on Channel The cancel I/O on channel service cancels all pending I/O requests on a specified channel. In general, this includes all I/O requests that are queued as well as the request currently in progress. $CANCEL is useful in such special cases as cancelling an I/O request on a device from which a response is overdue (for example a read analogue input function with external trigger). 2-3 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Special IXV11/VMS Driver action is taken if the unit for which the cancel was issued is a: o digital input module with AST enabled by the current process, o analogue input module and either a "read analogue input" or a "more analogue inputs" function is currently taking place, o counter module which was set up by the current process. For more information on "cancel" see the paragraphs describing the functions mentioned above. 2-4 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions __________________________________________________________________ 2.2 IXV11/VMS Driver Specific $QIO Functions The IXV11/VMS Driver specific $QIO requests can be divided into five groups relating to: o Digital Inputs (DI) o Digital Outputs (DO) o Analogue Inputs (AI) o Analogue Outputs (AO) o Counters (CC) The following table lists all functions implemented in the IXV11/VMS Driver: _______________________________________________________ Code Function or Requests (hex)__Modifier___________________Name_________________ 22 IO$_READ_DI Read digital input 2D IO$_MORE_DI More digital inputs 23 IO$_SETMODE!IO$M_ATTNAST Set mode, DI attention ASTs 32 IO$_SET_DP Set digital parameters 24 IO$_WRITE_DO Write digital output 2E IO$_MORE_DO More digital outputs 25 IO$_READ_AI Read analogue input 2F IO$_MORE_AI More analogue inputs 26 IO$_WRITE_AO Write analogue output 2-5 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _______________________________________________________ Code Function or Requests (hex)__Modifier___________________Name_________________ 28 IO$_SET_UP_CC Set up counter channel 29 IO$_ARM_CC Arm counter channels 2A IO$_DISARM_CC Disarm counter channels 2B IO$_READ_CC Read counter channel 2C IO$_MODIFY_FO Modify frequency __________________________________output_______________ 2-6 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions The following paragraphs describe all supported functions. The $QIO parameters P1 to P6 are always longwords. Sometimes, these longwords are divided into words or bytes to pass on some more information to the IXV11/VMS Driver. In this case, one word or one byte is referenced as a parameter. In other cases the $QIO parameters P1 and P2 are addresses of user buffers containing either control information relayed from the user or data returned by the driver. A control information in the user buffer can also have word or byte length which is referenced as a parameter. For most parameters (except the parameters such as buffer address or buffer length), the driver offers a default mechanism to the user. If the parameter is omitted or if it equals 0, the default value will be used. The default value is always indicated on the list of parameters. There are condition values returned either in R0 (VAX register 0) or in the I/O Status Block specific for the driver. The symbolic names and meanings for these values are listed for each function. Condition values returned by the VMS Operating System whose standard names and meanings are described in the VMS standard manuals. The I/O Status Block has the following general format: The conditon value (return status) IO$_DEVREQERR means that the referenced module is an IXV11 interface but the selected function is not valid for that module type. Should this error be detected, additional information is available in the high order word of this status longword. One of the following bits is set depending on the module type: bit 0 for Digital Input 2-7 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions bit 1 for Digital Output bit 2 for Analogue Input bit 3 for Analogue Output bit 4 for Five Channel Counter bit 5 for unknown module type The module type has been ascertained by the unit initialization routine of the driver at driver load time. 2-8 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.2.1 Digital Input $QIO Functions Digital Input $QIO requests are related to the IDV11- A module and are used to read the input data buffer or enable/disable interrupts (AST recognition) from the module's input line 15 or change its programmable features. _____________________ 2.2.1.1 IO$_READ_DI - Read digital input This request reads a field from the input data buffer register of one 16-bit digital input module. The field to read is specified by the position and size parameters. The position parameter defines the first bit to read and the size parameter defines the number of bits to return. The value read in is returned twice: right justified in the third word of the I/O Status Block and the original content of the input data buffer register in the fourth word of the I/O Status Block. The parameters are: P1 = position - position parameter (0 to 15, default is 0) points to the first bit to read. The bits of one word are numbered from right to left, from 0 (least significant bit) to 15 (most significant bit). 2-9 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P2 = size - size parameter (1 to 16, default is 16) is the number of bits to read from the bit indicated by the position parameter in the direction to the most significant bit (bit 15). Therefore the size parameter must be lower or equal to the value of the position parameter subtracted from 16. The whole word will be returned if the position parameter equals 0 and the size parameter is 16. The driver always reads the whole 16-bit word of the digital input module and then it makes the bit manipulations (it extracts the requested field). Request specific condition values: SS$_BADPARAM Bad position or size parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital input). The high order word of this status condition contains the current module type as described in section 2.2. 2-10 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.1.2 IO$_MORE_DI - More digital inputs This request is used to read fields from one or more digital input modules. The user fills his control buffer with position and size specifications for the fields and determines which interfaces are to be read. The requested fields and the content of the data registers are returned in the user's data buffer. The parameters are: P1 = conbuf - address of control buffer. P2 = length - length of one buffer in bytes (multiple of the length of one entry; an entry is 4 bytes long; both the control and the data buffer must have the same length). P3 = datbuf - address of data buffer. An entry of control buffer: 1 word: position - position parameter (0 to 15, default is 0) points to the first bit to read. The bits of one word are numbered from right to left, from 0 (least significant bit) to 15 (most significant bit). 2-11 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions 2 word: size - size parameter (1 to 16, default is 16) is the number of bits to read from the bit indicated by the position parameter in the direction to the most significant bit (bit 15). Therefore the size parameter must be lower or equal to the value of the position parameter subtracted from 16. An entry of data buffer: 1. word: field - content of requested field. 2. word: data - content of data register. The first entry is for the digital input module which is selected in the channel argument of the $QIO request. The next entry specifies the "neighbour" module (e.g. if the I/O channel was assigned to IVB0:, the next digital inputs selected are IVC0:. then IVD0:, etc.) 2-12 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions The request is finished if either all of the requested modules are read (success) or an error is detected (no next module found, the found next module is not a digital input module or bad position or size parameter is detected). In both cases the number of modules successfully read is returned in the third word of the I/O Status Block. Request specific condition values: SS$_BADPARAM Bad position or size parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital input). The high order word of this status condition contains the current module type as described in section 2.2. SS$_NOSUCHDEV No more devices found (DDB$L_LINK=0), or next device found is not an IXV11 module or it is not a digital input module. SS$_IVBUFLEN Invalid buffer length. P2 equals 0 or is not a multiple of four. Read and write access from/to the user buffers and the callers buffer quota are also checked. Possible condition values have standard meaning. (For IXV11/VMS Driver specific and standard condition values refer also to paragraph 2.2.) 2-13 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.1.3 IO$_SETMODE!IO$M_ATTNAST - Set mode, DI attention AST This request is used to enable or disable digital input interrupts (attention ASTs) from the selected digital input module. The request is returned immediately and then the AST is generated on a hardware interrupt at leading or trailing edge of input line 15 of the selected IDV11-A module. The maximum number of ASTs to receive can be defined in a parameter. After delivering the specified number of ASTs, the AST recognition will be automatically disabled. For each interface only one user/process can enable one digital input attention AST at a time. The parameters are: P1 = - addresses of the AST service routine to astadr be executed on interrupt, or 0 (default) if the AST should not be enabled. In the latter case, the other parameters are irrelevant and will be ignored. Reenabling and/or disabling the AST recognition is allowed only for the same process which enabled it. P2 = - AST parameter is a 16-bit word astprm identification code to be passed on to the AST service routine (default is 0). The high word of this parameter is not used but must be 0. 2-14 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P3 = - access mode in which the AST is to be astacs delivered: 0 - kernel mode 1 - executive mode 2 - supervisor mode 3 - user mode. It will be maximized against the caller's access mode. P4 = - maximum number of ASTs to receive astnum (default is 1). P5 = - interrupt parameter selects which intprm change of the input line 15 can generate interrupts: 1 - enables the trailing edge (OFF-going signal) for interrupt. 2 - enables the leading edge (ON-going signal) for interrupt (default). 3 - enables both the leading and trailing edge for interrupt. The AST parameter longword which is available to the AST routine contains in the low order word the astprm (P2) and in the high order word the content of the digital input data register at the time of the interrupt. It is the user's responsibility to synchronize the input value and the interrupt. If the change of bit 15 causing an interrupt is simultaneous to the changes of the other bits in the input register, the content of this register at the time of the interrupt is undefined. (See also the response time parameter for the "set digital parameters" function.) 2-15 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions The AST recognition will be disabled and any nonprocessed AST queue entry will be flushed when the process exits, or if the unit is deallocated or deassigned, or if the $CANCEL system service has been requested. 2-16 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad access mode or interrupt parameter. SS$_DEVALLOC AST already enabled by another process. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital input). The high order word of this status condition contains the current module type as described in section 2.2. SS$_EXQUOTA Process AST quota exceeded. SS$_ILLIOFUNC IO$_SETMODE requested without the IO$M_ ATTNAST function modifier. SS$_ILLSER Digital Input AST recognition not enabled by the current process. The process tries to disable AST recognition, although it has not enabled it. The AST recognition is either not enabled or it is enabled by another process. 2-17 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.1.4 IO$_SET_DP - Set digital parameters This request allows the selection of the Input Range and/or the Bounce Delay for one IDV11-A module. For a complete description of these hardware features refer to the manual "Industrial I/O Modules for Q-Bus". The parameters are: P1 = respar - response time parameter selects the Input Response Time for the contact bounce eliminator circuits of all 16 input lines on the IDV11-A module: 1 - response time 500 microseconds. 2 - response time 5 milliseconds (default). 3 - response time 10 milliseconds. P2 = lowpar - this parameter selects the Input Range for all 16 digital inputs of one IDV11-A module: 0 - select standard Input Range (24 to 48 Vdc) (default). 1 - select low level Input Range (5 Vdc). By the hardware reset after power on or if the $QIO request is issued without parameters, the standard Input Range (24 to 48 Vdc) and the 5 milliseconds delay are selected. The selected Input Range and Bounce Delay are unchanged until the IO$_SET_DP function is issued again by this or another process. Loading or reloading the driver does not affect the digital input parameters. Request specific condition values: SS$_BADPARAM Bad respar or lowpar parameter. 2-18 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital input). The high order word of this status condition contains the current module type as described in section 2.2. 2-19 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.2.2 Digital Output $QIO Functions The digital output modules (IDV11-B and IDV11-C) do not generate interrupts, however it is necessary to reserve a "dummy" vector address for each module in the driver (see paragraph 1.2 and Chapter 3,4). _____________________ 2.2.2.1 IO$_WRITE_DO - Write digital output This request is issued to modify a field of the Output Data Register of a 16-bit digital output module. The currently written value will be returned in the third word of the I/O Status Block (e.g. the new content of the Output Data Register). The old content of the Output Data Register is returned in the fourth word of the I/O Status Block. The parameters are: P1 = value - value to be written to a field of the Output Data Register (default is 0). P2 = position - position parameter (0 to 15, default is 0) points to the first bit to write. The bits of one word are numbered from right to left, from 0 (least significant bit) to 15 (most significant bit). 2-20 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P3 = size - size parameter (1 to 16, default is 16) is the number of bits to write from the bit indicated by the position parameter in the direction to the most significant bit (bit 15). Therefore the size parameter must be lower or equal to the value of the position parameter subtracted from 16. The field specified by the position and size parameters in the Output Data Register is replaced by the bits from 0 to size-1 of the value parameter. The rest of the P1 parameter is ignored. The whole word will be written if the position parameter equals 0 and the size parameter is 16. The driver always reads the old content of the Output Data Register, modifies the requested field of this word, and then writes the new word back. Request specific condition values: SS$_BADPARAM Bad position or size parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital output). The high order word of this status condition contains the current module type as described in section 2.2. 2-21 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.2.2 IO$_MORE_DO - More digital outputs This request can be used to write the requested fields of several digital output modules. The user fills his control buffer with value, position and size specifications and determines which interfaces are to be written to. The old and the new contents of the output data registers are returned in the user's data buffer. The parameters are: P1 = conbuf - address of control buffer. P2 = length - length of one buffer in bytes (multiple of the length of one entry; an entry is 4 bytes long; both the control and the data buffer must have the same length). P3 = datbuf - address of data buffer. An entry of control buffer: 1. word: value - value to be written to the digital output. 3. byte: position - position parameter (0 to 15, default is 0) points to the first bit to be written. The bits of one word are numbered from right to left, from 0 (least significant bit) to 15 (most significant bit). 2-22 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions 4. byte: size -size parameter (1 to 16, default is 16) which is the number of bits to be written from the bit indicated by the position parameter in the direction to the most significant bit (bit 15). Therefore the size parameter must be lower or equal to the value of the position parameter subtracted from 16. An entry of data buffer: 1. word: new data - content of digital output data register after it has been written to. 2. word: old data - content of digital output data register before it has been written to. 2-23 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions The first entry is for the digital output module which is selected in the channel argument of the $QIO request. The next entry specifies the "neighbour" module (e.g. if the I/O channel was assigned to IVE0:, the next digital outputs written are IVF0:. then IVG0:, etc.) The request is finished if either all of the requested modules are written (success) or if an error is detected (no next module found, or it is not a digital output module or bad parameter detected). In both cases the status and the number of digital output modules successfully written are returned into the I/O Status Block (first and third word respectively). Request specific condition values: SS$_BADPARAM Bad position or size parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not digital output). The high order word of this status condition contains the current module type as described in section 2.2. SS$_IVBUFLEN Invalid buffer length. P2 equals 0 or is not a multiple of four. SS$_NOSUCHDEV No more devices found (DDB$L_LINK=0), or found next device is not an IXV11 module, or not a digital output module. Read and write access from/to the user buffers and the caller's buffer quota are also checked. Possible condition values have the standard meaning. (For IXV11/VMS Driver specific and standard condition values refer also to paragraph 2.2.) 2-24 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.2.3 Analogue Input $QIO Functions Analogue Input $QIO requests are related to the IAV11- A/IAV11-AA A/D converters with optional IAV11-C/IAV11- CA Multiplexers. _____________________ 2.2.3.1 IO$_READ_AI - Read analogue input The request is used to read one selected input channel of an analogue input interface. The conversion can be started externally or internally. The gain and the timeout (maximum time to wait for the end of the conversion) are also programmable. The timeout time is important if an external start signal is used. At the end of a conversion, the analogue input module generates an interrupt. The result of the conversion is written into the third word of the I/O Status Block. The parameters are: P1 = - analogue input channel number to be channel read (0 to 127, default is 0). The channels are numbered starting from 0. An IAV11-A/IAV11-AA module has always the channels 0 to 15. The starting channel number of an IAV11-C/IAV11-CA multiplexer is selectable on board with switches (e.g. channel 16, 32, 48, 64, 80, 96, or 112). For the driver the channel address banks do not have to be selected consecutively. 2-25 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P2 = gain - programmable gain of the A/D Converter. Valid gains are 1, 2, 5, 10, 20, 50, 100 or 200 (default is 1). P3 = start - start parameter: 0 - internal start (default) 1 - external start. P4 = time - timeout time in seconds,(default is 2). This is the time which is allowed between the start of an A/D conversion and its termination. If this parameter is 0 or omitted, the default value is used. The time count of 1 is allowed but is not precise because the internal clock mechanism operates asynchronous with the driver execution. Therefore the minimum meaningful timeout is 2 seconds. 2-26 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions If successful, the value read is returned in the third word of the I/O Status Block. Otherwise this word is filled with hexadecimal FFFF. Request specific condition values: SS$_BADPARAM Bad channel, gain or start parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not analogue input). The high order word of this status condition contains the current module type as described in section 2.2. SS$_DRVERR Error interrupt occurred: a new external start signal was received before the current A/D conversion was finished. SS$_TIMEOUT In the selected timeout time no conversion was done. The reason could be a hardware problem, e.g. the external start signal was not received or the ADC is defect. 2-27 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.3.2 IO$_MORE_AI - More analogue inputs This request is used to read several analogue input channels of one analogue input interface (with optional multiplexer modules) with or without automatic gain selection. The user fills his control buffer with analogue input channel, gain, start and timeout time specifications. The read values are returned into the users data buffer. Although the number of different channels is limited to 128, it is possible to read each channel more than once. Therefore the actual number of values which can be read is limited only by the length of the control buffer. A conversion will be started (internally or externally) using the specified gain. If this parameter is 0, omitted or *, automatic gain selection is made: after a conversion with gain 1 a gain is calculated to get the nearest value to 4095 (hexadecimal FFF). If such a gain is found, a new internally triggered conversion is started using this calculated gain. For each channel the result of the last conversion will be written into the data buffer. The number of the successfully read channels is returned in the third word of the I/O Status Block. The parameters are: P1 = conbuf - address of control buffer. 2-28 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P2 = length - length of one buffer in bytes (a multiple of the length of one entry; an entry is 4 byte long; both the control and the data buffer must have the same length). P3 = datbuf - address of data buffer. 2-29 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions An entry of control buffer: 1.byte: channel - analogue input channel number to be read (0 to 127; default is 0). The channels are numbered starting from 0. An IAV11-A/IAV11-AA module has always the channels 0 to 15. The starting channel number of an IAV11-C/IAV11-CA multiplexer is selectable on the board with switches (e.g. channel 16, 32, 48, 64, 80, 96, or 112). For the driver the channel address banks do not have to be selected consecutively. 2. byte: gain - programmable gain of the A/D converter to be used. Valid gains are: 1, 2, 5, 10, 20, 50, 100, 200 or the character "*" (decimal 42, default) for an automatic gain selection. 3. byte: start - start parameter: 0 - internal start (default) 1 - external start. 2-30 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions 4. byte: time - timeout time in seconds in the range of 2 to 255 (default is 2). This is the time which is allowed between the start of an A/D conversion and its termination. If this parameter is 0 or omitted, the default value is used. The time count of 1 is allowed but is not precise because the internal clock mechanism operates asynchronous with the driver execution. Therefore the minimum meaningful timeout is 2 seconds. An entry of data buffer: 1. byte: channel - same as in control buffer. 2. byte: gain - the gain used last. It is identical to the gain specified in the control buffer if no automatic gain correction was made, or it differs from this gain if an automatic gain correction was made (e.g. the gain used to get the result of the conversion near to 4095). 2. word: value - the result of the conversion. 2-31 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad channel, gain or start parameter. The fourth word of the I/O Status Block contains the offset from the beginning of the buffer to the bad parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not analogue input). The high order word of this status condition contains the current module type as described in section 2.2. SS$_DRVERR Error interrupt occurred: a new external start signal was received before the current A/D conversion was finished. SS$_IVBUFLEN Invalid buffer length. P2 equals 0 or is not a multiple of four. SS$_NOIOCHAN A valid analogue input channel is not available: it is neither present on the analogue to digital converter nor on the expander multiplexer module. SS$_TIMEOUT In the selected timeout time no conversion was done. The reason could be a hardware problem, e.g. the external start signal was not received or the ADC is defect. Read and write access from/to the user buffers and the caller's buffer quota are also checked. Possible condition values have standard meaning. (For IXV11/VMS Driver specific and standard condition values refer also to paragraph 2.2.) 2-32 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions If SS$_BADPARAM, IO$_DEVREQERROR or SS$_IVBUFLEN error (e.g. bad entry in the conbuf, bad module type or bad buffer length) is detected, no conversions performed. In this case the content of the data buffer is not valid. In the case of an SS$_DRVERR, SS$_NOIOCHAN or SS$_ TIMEOUT error (e.g. error interrupt, not available channel or timeout) or if the request was cancelled, the previously selected channels are successfully read and the content of the data buffer is valid until the entry with an error. The third word of the I/O Status Block contains the number of successfully read channels. 2-33 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.2.4 Analogue Output $QIO Function The four channel digital to analogue converter module (IAV11-B) does not generate interrupts, however it is necessary to reserve a "dummy" vector address for each module in the driver (see paragraph 1.2 and Chapter 3,4). _____________________ 2.2.4.1 IO$_WRITE_AO - Write analogue output This request is issued to transfer 12-bit values to the digital to analogue converters of one selected IAV11-B unit. With one request, it is possible to write all or some of the available four output channels and/or test if the Open Line at 20mA Output bit OPL for the DAC is set (e.g. the 20mA output line is broken or not used). In the second long word of the I/O Status Block, information about the DACs actually written to is returned (see below). The four DACs are numbered from 0 to 3 for one IAV11-B analogue output module. The parameters are: P1 = value0 P2 = value1 P3 = value2 P4 = value3 Each parameter value0, value1, value2 and value3 is a 12-bit value to be written to the appropriate DAC on the selected IAV11-B interface or -1 (hexidecimal FFFF) if the DAC is to remain unchanged. Note: If a parameter is omitted, a value of 0 is assumed and written to the analogue output channel. 2-34 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions If one of the values is neither a 12-bit value (e.g. not in the range of 0 to 4095) nor a -1, the corresponding DAC remains unchanged and an I/O error is returned. If an error is detected for more than one channel, the last detected error overwrites the previous ones. The information returned in the I/O Status Block has the following format: The first word contains the normal $QIO return status (e.g. success or error). In both the third and fourth words the bits 0, 1, 2, 3 can be set. The bits in the third word are set correspondingly to those DACs which have the "Open Line at 20mA Outputs" bit set (e.g. bit 0 is set if the first DAC on the IAV11 has the 20mA output line broken, bit 1 is set if the second DAC has the OPL bit set, etc). The bits in the fourth word are set correspondingly to the deck's number when successfully written to (e.g.#bit 0 in this word is set if DAC 0 was successfully written to, bit 1 if DAC 1 was successfully written to, etc.). A DAC channel will be successfully written to, if the value for this channel was in the range from 0 to 4095, the channel addressed was available and the ready bit was already set or asserted within ca. 100 microseconds after initiation of the write function. An example: All of the four available analogue output channels are written successfully with one $QIO request and all of them have the OPL bit set, then the first word of the I/O Status Block contains SS$_NORMAL and both the third and fourth words contain hexadecimal F, that is bits 0, 1, 2 and 3 are set. 2-35 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad value parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not analogue output). The high order word of this status condition contains the current module type as described in section 2.2. SS$_DRVERR The ready bit in the CSR was not set within ca. 100 microseconds. SS$_NOIOCHAN The channel available bit in the CSR is not set after a legal channel (channels 0, 1, 2 or 3) is addressed. 2-36 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions ___________________________ 2.2.5 Five Channel Counter $QIO Functions Five channel counter $QIO requests are related to the IDV11-D module. The requests "set up counter channel" and "read counter channel" can manipulate only one counter channel. The requests "arm counter channels" and "disarm counter channels" can start or stop one to five channels of the same module. The request "modify frequency output" serves one module. During the loading of the driver, a master reset for all of the five channels of each counter module is done. Chapter 8.4 "Operation and Programming" of the hardware option description "Industrial I/O Modules for Q-Bus" describes the terms such as master reset, source, gate, arm, disarm, divider, step command, etc. used in the description below. Additional application examples can also be found in the same chapter. _____________________ 2.2.5.1 IO$_SET_UP_CC - Set_up counter channel This request is used to set up and optionally start (arm) one channel of a five channel counter module. AST recognition from the selected channel can also be enabled in this request. 2-37 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions The parameters are: P1 = astadr - addresses of the AST service routine to be executed on interrupt from the selected counter channel (see also P5), or 0 (default) if the AST should not be enabled. In the latter case the parameters P2, P3 and P4 are irrelevant and will be ignored. For each counter channel only one user/process can enable one counter channel attention AST at a time. Reenabling and/or disabling the AST recognition is allowed only for the same process which enabled it. P2 = astprm - AST parameter is a 16-bit word identification code to be passed on to the AST service routine (default is 0) The high word of this parameter is not used but must be. P3 = astacs - access mode in which the AST is to be delivered: 0 - kernel mode 1 - executive mode 2 - supervisor mode 3 - user mode. It will be maximized against the caller's access mode. P4 = astnum - maximum number of ASTs to receive (default is 1). P5 = contains four parameters as follows: 2-38 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions 1. byte: channel - counter channel number (0, 1, 2, 3 or 4, default is 0 i.e.first counter on the board). The channels of one counter module are numbered starting from 0. 2. byte: start - start parameter: 0 - channel set up without start (default), 1 - channel set up with immediate start. 3. byte: source - selects the source selection signal (0 to 15, default is 0, i.e. TC N-1). 4. byte: polarity - polarity parameter: 0 - for count on rising edge (default), 1 - for count on falling edge. 2-39 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions P6 = contains three parameters as follows: 2-40 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions 1. byte: gate - selects the gating control signal (0 to 5, default is 0, i.e. no gating). 2. byte: direction - direction parameter: 0 - for count down (default), 1 - for count up. 2. word: precount - precount is the initiate value of the Load register of the selected counter channel. Precount can be any 16-bit value except 0 if count down is selected. In this case, the driver replaces the 0 value with -1 and does not generate an error condition. In those special cases, when the precount is +1 for count down or -1 for count up, +2 or -2 are loaded and a step command executed to get the requested value of +1 or -1. Default precount is 0 if count up is selected, -1 2-41 if count down is selected. SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions If the function is successfully started, the new content of the Channel Mode Register is returned in the third word of the I/O Status Block. It is allowed to set up a counter channel by a process and another counter channel by another process, but any further set up and/or all other counter functions (IO$_ARM_CC, IO$_DISARM_CC, IO$_READ_CC) are allowed only for the same process by which this counter channel was set up. Set up for another process is allowed only if the counter channel was disarmed with the IO$_READ_CC function or if the process which set up the counter channel exits, deallocates or deassigns the unit, or cancels the previously set up. In these latter cases the channel will be automatically disarmed and saved, and its interrupts (AST recognition) disabled. If counter channel AST is in effect, an interrupt from the selected channel gains the attention of the enabling process. The AST parameter longword which is available to the AST routine contains in the low order word the astprm (P2) and in the high order word the channel number (0, 1, 2, 3 or 4). 2-42 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad astacs, counter channel, start, source, polarity, gate or direction parameter. SS$_DEVALLOC Channel already set up by another process. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not five channel counter). The high order word of this status condition contains the current module type as described in section 2.2. SS$_EXQUOTA Process AST quota exceeded. 2-43 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.5.2 IO$_ARM_CC - Arm counter channels This request is used to arm (start) some or all of the available channels of a five channel counter. With this $QIO request it is possible to start the channels previously set up by the same process. The parameters are: P1 = arm0 P2 = arm1 P3 = arm2 P4 = arm3 P5 = arm4 Each parameter arm0, arm1, arm2, arm3 and arm4 can be either 0 (default) if channel 'n' should not be started or 1 if the selected channel should be armed with this $QIO request. Note: If a parameter is omitted, a value of 0 is assumed and the corresponding channel will not be armed. If one of the parameters is neither 0 nor 1, or a channel to arm was not set up by this process, the corresponding channel will not be armed and an I/O error code is returned. If an error is detected for more than one channel, the last detected error overwrites the previous ones. The information returned in the I/O Status Block has the following format: The first word contains the normal $QIO return status (e.g. success or error). In the third word, the bits 0, 1, 2, 3, 4 will be set as long as the corresponding counter channels are successfully armed (e.g. bit 0 is set if the first channel was armed, bit 1 is set if the second channel is armed, etc.). A hexadecimal 1F 2-44 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions returned in third word of the I/O Status Block means that all of the five channels are successfully armed with one request. 2-45 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad arm parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not five channel counter). The high order word of this status condition contains the current module type as described in section 2.2. SS$_ILLSER Channel not set up by the current process. 2-46 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.5.3 IO$_DISARM_CC - Disarm counter channel This request is used to disarm, save, or disarm and save some or all of the available channels of a five channel counter. It is only allowed for the same process which issued the IO$_SET_UP_CC function for the selected channels. This function does not free the channels for the set up for other processes. The parameters are: P1 = contains two parameters for channel 0 as follows: 1. word: disarm0 2. word: save0 P2 = contains two parameters for channel 1 as follows: 1. word: disarm1 2. word: save1 P3 = contains two parameters for channel 2 as follows: 1. word: disarm2 2. word: save2 P4 = contains two parameters for channel 3 as follows: 1. word: disarm3 2. word: save3 P5 = contains two parameters for channel 4 as follows: 1. word: disarm4 2. word: save4 Each parameter P1, P2, P3, P4 and P5 contains 0 (default) in the low order word if channel 'n' should not be disarmed or 1 if the selected channel should be disarmed. In the high order word there is either 0 2-47 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions (default) if the channel should not be saved or 1 if the channel should be saved. Note: If a parameter is omitted, a value of 0 is assumed and the corresponding channel will be neither disarmed nor saved. 2-48 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions If one of the parameters is incorrect or a selected channel was not set up by the current process, the corresponding channel will be neither disarmed nor saved and an I/O error is returned. If an error is detected for more than one channel, the last detected error overwrites the previous ones. The information returned in the I/O Status Block has the following format: The first word contains the normal $QIO return status (e.g. success or error). In both the third and fourth words the bits 0, 1, 2, 3, 4 can be set. In the third word the bits corresponding to the channel number are set when the channel was successfully disarmed (e.g. bit 0 is set if the first channel was disarmed, bit 1 is set if the second channel was disarmed, etc.). In the fourth word, the bits corresponding to the channel number are set when the channel was successfully saved (e.g. bit 0 is set if the first channel was saved, bit 1 is set if the second channel was saved, etc.). An example: If all of the available channels of a five channel counter are successfully disarmed and saved with one $QIO request, the I/O Status Block contains SS$_NORMAL in the first word and both the third and fourth words contain hexadecimal 1F, that is the bits 0, 1, 2, 3 and 4 are set. Request specific condition values: SS$_BADPARAM Bad disarm or save parameter. 2-49 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not five channel counter). The high order word of this status condition contains the current module type as described in section 2.2. SS$_ILLSER Channel not set up by the current process. 2-50 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.5.4 IO$_READ_CC - Read counter channel This request is used to read the hold register of one channel of a five channel counter module. The selected channel can be optionally disarmed or saved before the hold register is read. The value read is returned in the third word of the I/O Status Block. This function is allowed only for the process, which has set up the selected counter channel. The parameters are: P1 = - counter channel number (0, 1, 2, 3 channel or 4, default is 0 e.g. first counter). The channels of one five channel counter module are numbered starting from 0. P2 = disarm - disarm parameter: 0 - if the counter channel should not be disarmed (default), 1 - if the counter channel should be stopped (disarmed). The disarm parameter can be also 1 if the counter channel is already disarmed with the IO$_DISARM_CC function. Only disarm with the IO$_READ_CC function frees the counter channel for the set up for other processes. P3 = save - save parameter: 0 - if the selected counter channel should not be saved (default), 1 - if the selected counter channel should be saved. 2-51 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions Request specific condition values: SS$_BADPARAM Bad counter channel, disarm or save parameter. SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not five channel counter). The high order word of this status condition contains the current module type as described in section 2.2. SS$_ILLSER Channel not set up by the current process. 2-52 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions _____________________ 2.2.5.5 IO$_MODIFY_FO - Modify frequency output This request is used to modify or switch off the FOUT reference output signal of one five channel counter module. The new content of the Frequency Output Control Register is returned in the third word of the I/O Status Block if the $QIO request was successful. The parameters are: P1 = halt - halt parameter: 0 - for FOUT on (default), 1 - for FOUT off. In the latter case the parameters P2 and P3 are irrelevant and will be ignored. P2 = source - is the selected FOUT source (0 to 15, default is 0, i.e. F1 = 5MHz). P3 = divider - is the selected FOUT divider (0 to 15, default is 0, i.e. divide by 16). For a description of the source and divider parameters see the figure "Frequency Output Control Register Bit Assignments" in the hardware option description, chapter "Pulse Frequency Output Generation". Request specific condition values: SS$_BADPARAM Bad source, halt or divider parameter. 2-53 SOFTWARE INTERFACE - I/O REQUESTS Standard $QIO Functions SS$_DEVREQERR Wrong identification (interface selected in the channel argument of the $QIO request is IXV11 but not five channel counter). The high order word of this status condition contains the current module type as described in section 2.2. 2-54 _______________________________________________________ 3 PREPARING TO INSTALL THE IXV11/VMS DRIVER This chapter discusses the preparations and requirements necessary for installing the IXV11/VMS Driver. This manual applies to Version 2.1 of the IXV11/VMS Driver and all subsequent maintenance releases up to the next major product release. Your bill of materials (BOM) and indented bills report (BIL) specify the number and contents of your media. Be sure to verify the contents of your kit with this information. If your kit is damaged or if you find that parts of the kit are missing, contact your DIGITAL representative. The IXV11/VMS distribution kit provides online Release Notes. DIGITAL strongly recommends that you read the Release Notes before proceeding with the installation. __________________________________________________________________ 3.1 Required Operating System Components For VMS V5.x systems, the following VMS classes are required for full functionality of this layered product: o BASE Base System o PROG Programming Support o SYSP System Programming Support 3-1 PREPARING TO INSTALL THE IXV11/VMS DRIVER __________________________________________________________________ 3.2 Prerequisite and Optional Software This section discusses the software you must have installed on your system before installing the IXV11/VMS Driver. The section also includes information about software that you can use together with the IXV11/VMS Driver. Please refer to the System Software Addendum (SSA) for the required versions of these prerequisites. The SSA is part of the Software Product Description (SPD). ___________________________ 3.2.1 Prerequisite Software A valid version of the VMS V5.x Full Kit and a registered and loaded IXV11-DRIVER authorization key are needed in order to install the IXV11/VMS Driver. Please refer to the System Software Addendum (SSA) for the required versions of these prerequisites. The SSA is part of the Software Product Description (SPD). ___________________________ 3.2.2 Optional Software o VAX FORTRAN (FORSYSDEF.TLB must also be build) o or any other VAX/VMS high level languages Please refer to the System Software Addendum (SSA) for the required versions of these optional products. The SSA is part of the Software Product Description (SPD). 3-2 PREPARING TO INSTALL THE IXV11/VMS DRIVER __________________________________________________________________ 3.3 Prerequisite Hardware o IXV11 interface(s) o loopback cable for running the IVP __________________________________________________________________ 3.4 VMS License Management Facility The VMS License Management Facility is available with Version 5.x of the VMS operating system. If you are installing the IXV11/VMS Driver on a VMS V5.x system, you have to register your software license first. The Product Authorization Key (PAK), which is shipped with the IXV11/VMS distribution, contains the necessary license registration information. The PAK is a paper certificate that contains information about the license. It is required that the IXV11-DRIVER license has been registered before you perform the installation. During the installation, you are asked if you have registered and loaded the IXV11-DRIVER license. If you have not already done so, please answer "NO". Once you have performed the license registration and loaded, you may restart the installation. To register a license under VMS V5.x, first log in to the system manager's account, SYSTEM, offering you two different possibilities to perform the registration: o Invoke the SYS$UPDATE:VMSLICENSE.COM procedure. When it prompts you for information, respond with data from your Product Authorization Key (PAK). o Issue the DCL command "LICENSE REGISTER" with the appropriate qualifiers that correspond to information on the PAK. 3-3 PREPARING TO INSTALL THE IXV11/VMS DRIVER For complete information on using LMF, see the manual on the License Management Utility in the VMS documentation set. __________________________________________________________________ 3.5 VAXcluster Considerations This layered product is fully supported when installed on any valid and licensed VAXcluster configuration. The software components of the product will be installed common to all accessing systems. The load file generated during the installation will be located on SYS$SPECIFIC of the node you are logged in. Before starting the installation verify that you are logged in to the node where the IXV11 hardware is installed. __________________________________________________________________ 3.6 Installation Procedure Requirements The following sections discuss various requirements for installing the IXV11/VMS Driver. ___________________________ 3.6.1 Time The installation should take approximately between 5 to 10 minutes, depending on your type of media and your system configuration. Installing the IXV11/VMS Driver and running the IVP on a standalone VAX 11/780 system takes approximately 8 minutes. ___________________________ 3.6.2 Privileges To install the IXV11/VMS Driver, you have to be logged in to the SYSTEM account. Note: Note that VMSINSTAL turns off BYPASS privilege at the start of the installation. 3-4 PREPARING TO INSTALL THE IXV11/VMS DRIVER ___________________________ 3.6.3 Disk Space Installing the IXV11/VMS Driver requires a certain amount of free storage disk space during the installation. Once the IXV11/VMS Driver is installed, less storage space is required. Table 3-1 summarizes the storage requirements for the IXV11/VMS Driver. Table_3-1__Disk_Space_Requirements_____________________ Blocks During Blocks After Kit______________Installation__________Installation____ IXV11/VMS 700 400 Driver Version 2.1____________________________________________________ To determine the number of free disk blocks on the current system disk, enter the following command at the DCL prompt: $ SHOW DEVICE SYS$SYSDEVICE ___________________________ 3.6.4 System Parameters The required system parameter values are the standard parameter values for the installation. Depending on the kinds of programs and applications running at your site, you might need some higher value settings. ___________________________ 3.6.5 Process Account Quotas The account you use to install the IXV11/VMS Driver needs to have sufficient quotas enabling you to perform the installation. The required quotas for the installation are equal to those with the standard SYSTEM account. 3-5 PREPARING TO INSTALL THE IXV11/VMS DRIVER ___________________________ 3.6.6 VMSINSTAL Requirements When you invoke VMSINSTAL, the following will be checked: o Whether you have set your default device and directory to SYS$UPDATE o Whether you are logged in to the SYSTEM account o Whether you have adequate quotas for installation o Whether DECnet is up and running o Whether any users are logged in to the system If VMSINSTAL detects any problems during the installation, it notifies you of the problem and asks if you want to continue the installation. In some instances, you can enter "YES" to continue. To stop the installation process and correct the situation, enter "NO" or press RETURN. Then solve the problem and restart the installation. ___________________________ 3.6.7 Backing Up Your System Disk At the beginning of the installation, VMSINSTAL asks if you have backed up your system disk. DIGITAL recommends that you do a system disk backup before installing any software on top of the operating system. Use the backup procedures that have been established at your site. For details on performing a system disk backup, see the section on the Backup Utility in the VMS documentation set. 3-6 PREPARING TO INSTALL THE IXV11/VMS DRIVER ___________________________ 3.6.8 License Management Utility Requirements You will need to register and load your license for the IXV11/VMS Driver before you start the installation. Refer to the VMS documentation on the License Management Utility for information about registering your license. For more information on the VMS License Management Facility, see the VMS documentation set. 3-7 _______________________________________________________ 4 INSTALLING THE IXV11/VMS DRIVER This chapter describes how to install the IXV11/VMS Driver. Section 4.2 contains a step-by-step description of the installation procedure. __________________________________________________________________ 4.1 General Information This section includes information about accessing Release Notes, determining files added to your system, running the Installation Verification Procedure (IVP), and aborting the installation. ___________________________ 4.1.1 Accessing the Online Release Notes The IXV11/VMS Driver provides online Release Notes. If you specify OPTIONS N when you invoke VMSINSTAL, the installation procedure asks you if you want to display or print the Release Notes. The Release Notes question comes near the beginning of the installation. You should review the Release Notes in every case. After the IXV11/VMS Driver has been installed, the Release Notes are located in the following file: SYS$HELP:IXV11$021.RELEASE_NOTES. ___________________________ 4.1.2 Determining the Directories/Files Added to the System See Appendix B for the directories/files added to the system. 4-1 INSTALLING THE IXV11/VMS DRIVER ___________________________ 4.1.3 Running the Installation Verification Procedure (IVP) The Installation Verification Procedure (IVP) for the IXV11/VMS Driver verifies the installation. During the installation, you are asked if you want to run the IVP as part of the installation. If you respond YES, VMSINSTAL runs the IVP. This is recommended to make sure that the IXV11/VMS Driver has been installed correctly. After the IXV11/VMS Driver has been installed, you can run the IVP independently. You might also want to run the IVP after a system failure to make sure that the IXV11/VMS Driver remains executable. $ RUN SYS$SYSROOT:[SYSTEST.IXV11]IXV11$IVPM.EXE Note: Due to the fact that the product is hardware dependent the IVP can be run seperately only on that specific node where the IXV11 hardware is installed. ___________________________ 4.1.4 Aborting the Installation To abort the installation procedure at any time, press CTRL/Y. When you press CTRL/Y, the installation procedure deletes all files it has created up to that point and exits. You can then start the installation again. __________________________________________________________________ 4.2 The Installation Procedure The IXV11/VMS Driver installation process consists of a series of questions and informational messages. 4-2 INSTALLING THE IXV11/VMS DRIVER ___________________________ 4.2.1 Invoking VMSINSTAL To start the installation, invoke the VMSINSTAL command procedure from a privileged account, such as the SYSTEM account. Next, invoke VMSINSTAL. You use the following syntax to invoke VMSINSTAL: @SYS$UPDATE:VMSINSTAL product-name device-name OPTIONS N product-name The installation name for the component. For the IXV11/VMS Driver, use the following installation name: ixv11 device-name The name of the device on which you plan to mount the media. For example, MUA0: is the device name for a tape drive. It is not necessary to use the console drive for this installation. However, if you do use the console drive, you should replace any media you removed once the installation is completed. OPTIONS N An optional parameter that indicates you want to be prompted to display or print the Release Notes. If you do not include the OPTIONS N parameter, VMSINSTAL does not prompt you to display or print the Release Notes. You are strongly recommended to read the Release Notes before proceeding with this installation. VMSINSTAL has several other options; for information, see the VMS documentation on Software Installation. The following example displays the command to invoke VMSINSTAL to install the IXV11/VMS Driver from tape drive MUA0: and the system response. This example uses the OPTIONS N parameter for printing or displaying Release Notes. 4-3 INSTALLING THE IXV11/VMS DRIVER $ @SYS$UPDATE:VMSINSTAL IXV11 MUA0: OPTIONS N VAX/VMS Software Product Installation Procedure V5.4 It is 13-FEB-1991 at 10:19. Enter a question mark (?) at any time for help. If you do not supply either the product name or the device name, VMSINSTAL prompts you for this information later on in the installation procedure. VMSINSTAL does not prompt you for any options, so be sure to include OPTIONS N on the VMSINSTAL command line to access the Release Notes during the installation. ___________________________ 4.2.2 Installation Questions This section discusses the questions that appear during the installation. See Appendix A for a sample installation procedure. Each question in the installation is marked with an asterisk (*) at the beginning of the line. Some questions show the default response in brackets, for example [YES]. If you want to give the default response, press the RETURN key. 1 DECnet status VMSINSTAL notifies you if DECnet is running and displays a list of all active processes. It then asks if you want to continue the installation. You should install the IXV11/VMS Driver on a standalone system or cluster with DECnet shut down. "NO" is the default response to the question. %VMSINSTAL-W-DECNET, Your DECnet network is up and running. . . . * Do you want to continue anyway [NO]? 4-4 INSTALLING THE IXV11/VMS DRIVER 2 System backup VMSINSTAL asks if you are satisfied with your system backup. You should always back up your system disk before performing an installation. If you are satisfied with the backup of your system disk, press RETURN. Otherwise, enter "NO" to discontinue the installation. After you back up your system disk, you can restart the installation. * Are you satisfied with the backup of your system disk [YES]? 3 Mounting the media You should now mount the first distribution volume on the device you specified when you invoked VMSINSTAL. The device name appears in the line preceding the question. VMSINSTAL then asks you if you are ready to continue with the installation. If you respond "YES" to indicate that you are ready, VMSINSTAL displays a message that the media containing the IXV11/VMS Driver has been mounted on the specified device and that the installation has begun. For example: Please mount the first volume of the set on MUA0:. * Are you ready? YES %MOUNT-I-MOUNTED, IXV11 MOUNTED ON _CSSSE7$MUA0: The following products will be processed: IXV11 V2.1 Beginning installation of the IXV11 V2.1 at 20:01 %VMSINSTAL-I-RESTORE, Restoring product saveset A... If you entered the wrong device name when you invoked VMSINSTAL and need to restart the installation, enter NO in response to the "Are you ready?" question. To abort the installation for other reasons, press CTRL/Y. 4-5 INSTALLING THE IXV11/VMS DRIVER 4 Release Notes If you specified OPTIONS N when you invoked VMSINSTAL, you are now given five options for reviewing the Release Notes. Release Notes Options: 1. Display Release Notes 2. Print Release Notes 3. Both 1 and 2 4. Copy Release Notes to SYS$HELP 5. Do not display, print or copy Release Notes * Select option [2]: If you select option 1, VMSINSTAL displays the Release Notes immediately on the console terminal. You can terminate the display at any time by pressing CTRL/C. If you select option 2, VMSINSTAL prompts you for the name of the print queue that you want to use: * Queue name [SYS$PRINT]: You can enter a queue name or press RETURN to send the file to the default output print device. If you select option 3, VMSINSTAL displays the Release Notes immediately on the console terminal and then prompts you for a queue name for the printed version. 5 Continuing the installation The installation procedure now asks if you want to continue the installation. To continue, enter YES. Otherwise, press RETURN. In either case, the Release Notes are copied to a file in the SYS$HELP directory. For example: 4-6 INSTALLING THE IXV11/VMS DRIVER * Do you want to continue the installation [N]?: YES %VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP. The Release Notes are located in the following file:. SYS$HELP:IXV11$021.RELEASE_NOTES. Note: The name of the Release Notes file installed by VMSINSTAL consists of the current product name and version number. Do not delete Release Notes for previous versions of the IXV11/VMS Driver. 6 License Registration If you have already registered and loaded the PAK, the specific information for this particular license will be displayed: Product: IXV11-DRIVER Producer: DEC Version: 2.1 Release Date: 18-FEB-1991 The installation procedure asks if you have registered and loaded your authorization key for the IXV11/VMS Driver. * Does this product have an authorization key registered and loaded? If you have not registered and loaded your authorization key, you have to answer "NO" to this question. A successful installation of the IXV11/VMS Driver depends upon an authorization key being registered and loaded. Please be certain that this has been completed before proceeding with the installation. 7 Choosing to purge files You have the option to purge files from previous versions of the IXV11/VMS Driver that are superseded by this installation. Purging is 4-7 INSTALLING THE IXV11/VMS DRIVER recommended; however, if you need to keep files from the previous version, enter "NO" in response to the question. * Do you want to purge files replaced by this installation [YES]? 8 Selecting the number of IXV11 interfaces The IXV11 devices are not supported under the VMS AUTOCONFIGURATION utility. In order to run the installation procedure, you must answer questions concerning the IXV11 hardware installation. This procedure will then create the SYS$STARTUP:IXV11$LOAD.COM procedure to load the driver. The term IXV11 interface in this procedure stands for one of the following modules: IDV11-A 16-bit opto isolated input (M5026 ), IDV11-B 16-bit opto isolated output (M6029 ), IDV11-C 16-bit relay output (M8005 ), IDV11-D five channel counter module (M7197 ). IAV11-A 4/12 channel A/D converter (A410 ), IAV11-B 4-CH isolated D/A converter (A6007 ), IAV11-AA 16 channel A/D converter (A410- YA), 4-8 INSTALLING THE IXV11/VMS DRIVER The boards IAV11-C 16-channel flying cap. multiplexer (A029 ), IAV11-CA 16-channel expansion multiplexer (A029- YA) are add-on options to the A/D converters. The combination of one A/D converter and (up to 8) connected Multiplexers is treated as one interface to this question. If you do not know these configuration at this time, then use the default configuration and do not request execution of the Installation Verification Procedure. You may then edit SYS$STARTUP:IXV11$LOAD.COM at your convenience to set the correct hardware parameters and to add additional IXV11 interface units and later verify the installation by starting some of the distributed IXV11 verification and demonstration programs. Enter the number of IXV11 interfaces present or use the default value of 1. * Number of IXV11 interfaces to be supported [1]: 9 Choosing the bus address This question is repeated for each interface given in the configuration. Enter the base address of the interface (address assigned to the Mode Register) selected via switches on the IXV11 board. This address may be overridden with the CONNECT command at SYSGEN (see IXV11$LOAD.COM as described above). * Enter bus address for IXV11 interface 'n' (octal) [171400]: 4-9 INSTALLING THE IXV11/VMS DRIVER 10 Selecting the vector address This question is repeated for each interface given in the configuration. Enter the interrupt vector address selected on board via switches. For IXV11 interfaces not having real interrupt possibilities, a "dummy" interrupt vector address must be entered. A dummy interrupt vector is an existent memory address in the interrupt vector area not yet used by the system and from this point on will be reserved for the driver. This address may be overridden with the CONNECT command at SYSGEN (see IXV11$LOAD.COM as described above). * Enter vector address for IXV11 interface 'n' (octal) [400]: 11 Confirmation of the configuration This question appears after all bus addresses and vector addresses are entered and the selected configuration is printed for confirmation. Type "yes" or just if the configuration is correct or answer "no" to repeat the questions about the IXV11 configuration. * Is this configuration correct [YES]? 12 Choosing to run the Installation Verification Procedure (IVP) The installation procedure now asks if you want to run the Installation Verification Procedure. The IVP for the IXV11/VMS Driver checks to be sure that the installation was succesful. It is recommended that you run the IVP. The loopback cable must be installed on the IXV11 interfaces to successfully run the IVP. If the cables are not installed then do not request execution of the IVP. The IXV11/VMS Driver will be loaded by VMSINSTAL only if it has been requested to run the IVP. 4-10 INSTALLING THE IXV11/VMS DRIVER * Do you want to run the IVP after the installation [YES]? ___________________________ 4.2.3 Informational Messages At this point, the installation procedure displays a number of informational messages that report on the progress of the installation. There are no further questions to answer. VMSINSTAL moves the files to their target directories, updates help files, and updates DCL tables, if necessary. The following message is displayed: %VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories... ___________________________ 4.2.4 Running the Installation Verification Procedure If you chose to run the IVP, VMSINSTAL runs it now. When the IVP runs successfully, you see the following display: %IXV11-I-SUCCESS, The IVP of the IXV11 V2.1 was successful... The IXV11/VMS Driver Installation Verification Procedure IXV11$IVP can be run again using the following command: $ RUN IXV11$TEST:IXV11$IVPM ___________________________ 4.2.5 Completing the Installation Procedure The following messages indicate that the entire installation procedure has completed: Installation of IXV11 V2.1 completed at 10:49 VMSINSTAL procedure done at 11:04 4-11 INSTALLING THE IXV11/VMS DRIVER You can now log out of the privileged account: $ LOGOUT SYSTEM logged out at 13-FEB-1991 11:05:00.00 Note that VMSINSTAL deletes or changes entries in the process symbol tables during the installation. Therefore, if you are going to continue using the system manager's account and you want to restore these symbols, you should log out and log in again. __________________________________________________________________ 4.3 Error Recovery If errors occur during the installation itself or when the IVP is running, VMSINSTAL displays failure messages. If the installation fails, the following message is displayed: %VMSINSTAL-E-INSFAIL, The installation of the IXV11 V2.1 has failed. If the IVP fails, the following messages are displayed: %VMSINSTAL-E-IVPFAIL, The IVP for the IXV11 V2.1 has failed. Errors can occur during the installation if any of the following conditions exist: o The operating system version is incorrect. o Quotas necessary for successful installation are insufficient. o System parameter values for successful installation are insufficient. o The product is not properly licensed. o The product is not supported on this processor o The IXV11 hardware is not installed 4-12 INSTALLING THE IXV11/VMS DRIVER For descriptions of the error messages generated by these conditions, see the VMS documentation on system messages, recovery procedures, and VMS software installation. If you are notified that any of these conditions exist, you should take the appropriate action as described in the message. (You might need to change a system parameter or increase an authorized quota value.) For information on installation requirements, see Chapter 3. The product specific installation errors, warnings and information messages are listed below: 1. Error - %IXV11-E-CPU_TYPE, This kit must be installed on a MicroVAX II / MicroVAX 3xxx system or VAX 4000-300 system. Solution - Refer to the System Support Addendum (SSA 29.18.xx-x) for a list of supported processors. 2. Error - %IXV11-E-BADVMSV1, This kit requires VMS V5.0 (or later) for correct installation. - %IXV11-E-BADVMSV2, Please install VMS V5.0 (or later) before installing the IXV11 V2.1. Solution - Refer to the System Support Addendum (SSA 29.18.xx-x) for required VMS Versions. 4-13 INSTALLING THE IXV11/VMS DRIVER 3. Error - %IXV11-E-NOSPACE, This kit requires at least 600 free disk blocks. Solution - Refer to the System Support Addendum (SSA 29.18.xx-x) for disk space requirements. 4-14 INSTALLING THE IXV11/VMS DRIVER 4. Error - %IXV11-E-NOLICENSE1, The IXV11 V2.1 installation requires a valid license. - %IXV11-E-NOLICENSE2, Install the Product Authorization Key (PAK) and retry. Solution - Restart the installation after the license is registered and loaded 5. Error - %IXV11-E-IXV11$TSTM_ERR, IXV11/VMS Driver Tester failed to compile or link. Solution - Some problems with the VMS system or the VAX MACRO assembler or the VAX Linker. The installation continues, the Driver Tester can be built at later time or some other successfully built example programs can be taken for demonstrations. See Chapter 6 of this manual for the description of these VAX MACRO, VAX FORTRAN, VAX BASIC, VAX PASCAL or VAX C programs. 4-15 INSTALLING THE IXV11/VMS DRIVER 6. Error - %IXV11-E-IXV11$EXEF_ERR, IXV11/VMS Driver Exerciser failed to compile or link. 4-16 INSTALLING THE IXV11/VMS DRIVER Solution - Some problems with the VMS system or the VAX FORTRAN V4.8 (or later) compiler or the FORSYSDEF.TLB. The installation continues, the Driver Exerciser can be built at later time or some other successfully built example programs can be taken for demonstrations. See Chapter 6 of this manual for the description of this VAX MACRO, VAX BASIC, VAX PASCAL or VAX C programs. 7. Error - %IXV11-E-BASIC_ERR, IXV11/VMS BASIC Demonstration failed to compile or link. Solution - Some problems with the VMS system or the VAX BASIC V3.2 (or later) compiler. The installation continues, the BASIC Demonstration can be built at later time or some other successfully built example programs can be taken for demonstrations. See Chapter 6 of this manual for the description of this VAX MACRO, VAX FORTRAN, VAX PASCAL or VAX C programs. 8. Error - %IXV11-E-PASCAL_ERR, IXV11/VMS PASCAL Demonstration failed to compile or link. 4-17 INSTALLING THE IXV11/VMS DRIVER Solution - Some problems with the VMS system or the PASCAL V3.7 (or later) compiler. The installation continues, the PASCAL Demonstration can be built at later time or some other successfully built example programs can be taken for demonstrations. See Chapter 6 of this manual for the description of this VAX MACRO, VAX BASIC, VAX FORTRAN or VAX C programs. 9. Error - %IXV11-E-C_ERR, IXV11/VMS C Demonstration failed to compile or link. Solution - Some problems with the VMS system or the C compiler. The installation continues, the C Demonstration can be built at later time or some other successfully built example programs can be taken for demonstrations. See Chapter 6 of this manual for the description of this VAX MACRO, VAX BASIC, VAX PASCAL or VAX FORTRAN programs. 4-18 INSTALLING THE IXV11/VMS DRIVER 10. Warning - %IXV11-W_LOADED, The IXV11/VMS Driver is already loaded. 4-19 INSTALLING THE IXV11/VMS DRIVER Solution - Complete installation is normally made only if the IXV11/VMS Driver is not yet present. The driver disappears if the automatic loading of the driver is removed from the SYSTARTUP_V5.COM procedure and the system is rebooted. Although it is possible to install the new IXV11/VMS Driver if an old version is already loaded, it will be neither loaded nor verified. In this case, after editing the IXV11$LOAD.COM (if necessary) and rebooting the system, it is absolutely necessary to start some of the distributed demonstration/verification programs. 11. Warning - %IXV11-W-NO_FOR, IXV11/VMS Driver Exerciser not built because of missing FORTRAN V4.8 (or later) Compiler. - %IXV11-W-NO_TLB, IXV11/VMS Driver Exerciser not build because of missing FORSYSDEF.TLB. 4-20 INSTALLING THE IXV11/VMS DRIVER Solution - The current operating system does not have the FORTRAN.EXE V4.8 (or later) in the SYS$SYSTEM directory or the FORSYSDEF.TLB in the SYS$LIBRARY directory. The installation continues, the Driver Exerciser can be built at a later time (after installing the VAX FORTRAN) or some other example programs (written in VAX MACRO, VAX BASIC, VAX PASCAL OR VAX C) can be taken for demonstrations. See Chapter 6 of this manual for the description of these programs. 12. Warning - %IXV11-W-NO_BAS, IXV11/VMS BASIC examples not built because of missing BASIC V3.2 (or later) Compiler. Solution - The current operating system does not have the BASIC.EXE V3.2 (or later) in the SYS$SYSTEM directory. The installation continues, the BASIC examples can be built at a later time (after installing the VAX BASIC) or some other example programs (written in VAX MACRO, VAX FORTRAN, VAX PASCAL OR VAX C) can be taken for demonstrations. See Chapter 6 of this manual for the description of these programs. 4-21 INSTALLING THE IXV11/VMS DRIVER 13. Warning - %IXV11-W-NO_PAS, IXV11/VMS PASCAL example not built because of missing PASCAL V3.7 (or later) Compiler. 4-22 INSTALLING THE IXV11/VMS DRIVER Solution - The current operating system does not have the PASCAL.EXE V3.7 (or later) in the SYS$SYSTEM directory. The installation continues, the PASCAL example can be built at a later time (after installing the VAX PASCAL) or some other example programs (written in VAX MACRO, VAX BASIC, VAX FORTRAN OR VAX C) can be taken for demonstrations. See Chapter 6 of this manual for the description of these programs. 14. Warning - %IXV11-W-NO_C, IXV11/VMS C example not built because of missing VAX C V2.4 (or later) Compiler. Solution - The current operating system does not have the VAXC.EXE V2.4 (or later) in the SYS$SYSTEM directory. The installation continues, the C examples can be built at a later time (after installing the VAX C) or some other example programs (written in VAX MACRO, VAX BASIC, VAX PASCAL OR VAX FORTRAN) can be taken for demonstrations. See Chapter 6 of this manual for the description of these programs. 4-23 INSTALLING THE IXV11/VMS DRIVER 15. Informatio- There are some information messages printed by VMSINSTAL about the status of the installation (what is currently being done), about a message from the Linker which can be ignored, about new directories created, how to start the successfully built example programs, which directories were used and some information for the system manager (about AUTOCONFIGURATION and IXV11$LOAD.COM) etc. Solution - No immediate action is needed on information messages. 4-24 _______________________________________________________ 5 AFTER INSTALLING THE IXV11/VMS DRIVER After installing the IXV11/VMS Driver, you need to perform the following tasks: o Edit the system startup file. o Reboot the system (optional). __________________________________________________________________ 5.1 Editing the System Files You have to edit the specific system startup file to provide for an automatic load of the IXV11/VMS Driver when your system is rebooted. Add the command line that starts the IXV11/VMS Driver to the specific system startup file, SYS$SPECIFIC:[SYS$STARTUP]SYSTARTUP_V5.COM. You have to position this new command line after the line that invokes the network startup command procedure. The following example shows the network startup command line followed by the load command line for the IXV11/VMS Driver: $ @SYS$SPECIFIC:[SYS$STARTUP]STARTNET.COM . . . $ @SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD.COM 5-1 AFTER INSTALLING THE IXV11/VMS DRIVER __________________________________________________________________ 5.2 Rebooting the System You can reboot your system after you have installed the IXV11/VMS Driver and edited the system startup file. A system reboot verifies that the IXV11/VMS Driver is ready for use, and ensures that the edits to the system startup command file are correct. Note, however, that rebooting is optional. __________________________________________________________________ 5.3 Cluster Considerations You can use the product on any other nodes, where a IXV11 interface is installed, in the VAXcluster. The load file IXV11$LOAD.COM has to be modified according to the hardware configuration on that node. Use the command procedure SYS$MANAGER:IXV11$CONFIG.COM to set up the IXV11$LOAD.COM according to your hardware configuration. The load file will be automatically installed on SYS$SPECIFIC:[SYS$STARTUP] on that node where you are logged in. For automatic loading the system specific startup command procedure SYSTARTUP_V5.COM has to be modified accordingly. __________________________________________________________________ 5.4 Tailoring Your System This section provides information about special system arrangements and cleanup procedures that you can perform after installing the IXV11/VMS Driver. All source files and example programs located in IXV11$EXAMPLES are independent of the IXV11/VMS Driver. If it is necessary to recover disk space, these files, except the include files can be deleted without any effect upon the use of the driver. 5-2 AFTER INSTALLING THE IXV11/VMS DRIVER __________________________________________________________________ 5.5 Determining and Reporting Problems If an error occurs while the IXV11/VMS Driver is being used and you believe that the error is caused by a problem with the IXV11/VMS Driver, take one of the following actions: o If you have a BASIC or DECsupport Software Agreement, you should call your Customer Support Center. (With these services, you receive telephone support that provides high-level advisory and remedial assistance.) o If you have a Self-Maintenance Software Agreement, you can submit a Software Performance Report (SPR). o If you purchased the IXV11/VMS Driver within the past 90 days and you think the problem is caused by a software error, you can submit a Software Performance Report (SPR). When you prepare to submit an SPR, please do the following: 1 Provide a description of the problem as complete as possible, trying not to overlook any details. Include in the description the version number of the IXV11/VMS Driver, the current VMS system and the CPU type. 2 Reduce the problem to a size as small as possible, preferably to a program of 200 source lines or less, including user INCLUDE files. 3 Submit program sources on machine-readable media (floppy diskette or streamer tape), if possible. All media will be returned when the SPR is answered. 4 Provide a listing of the program using IXV11/VMS Driver, compiled with the command switches: /LIST/CROSS_REFERENCE/SHOW=ALL 5-3 AFTER INSTALLING THE IXV11/VMS DRIVER 5 Remember to include listings of any command files, linker maps, relevant data files, and so on. If you find an error in the IXV11/VMS Driver documentation, you should fill out and submit the Reader's Comments form at the back of the document in which the error was found. Include the section and page number where the error was found. 5-4 _______________________________________________________ 6 IXV11/VMS Demonstration Programs The example programs have the following naming convention: After an example program (except the Driver Exerciser) is started, it o identifies itself, o asks for the IXV11 device mnemonic and assigns an I/O channel for this device, o asks for the function to test (Driver Tester only!), o asks for the parameters, o issues a $QIO request and waits for the completion, o prints error or success message and other information (e.g. the value read in or written or the content of the I/O Status Block etc.). An example program never tests if the inputs entered by the user are correct. It requests an $ASSIGN system service for the selected device and it passes all parameters which were entered to the IXV11/VMS Driver. The $ASSIGN system service tests if the device is present and online. The IXV11/VMS Driver verifies if the selected device is an IXV11 interface, checks the parameters and if the requested function is valid for the selected module. 6-1 IXV11/VMS Demonstration Programs Inputs requested by an example program contain suggestions in brackets about the type of input accepted. The first character in the bracket depicts the type of input (S for string, D for decimal). The next characters "R:" stands for the range which will be followed with the low and the high limit of the valid range (separated by a hyphen). Should the string "(0)" precede the low limit, then 0 can also be typed for the default value. (The defaults used by the IXV11/VMS Driver can be found in chapter 2.2). For the description of the IXV11/VMS Driver Exerciser please refer to the next chapter. The installation verification program is always build during the IXV11 installation and copied to the directory SYS$SYSROOT:[SYSTEST.IXV11]. It can be run after successful installation with the following DCL command: $ RUN IXV11$TEST:IXV11$IVPM All other distributed exerciser, tester and demonstration programs are built during the driver installation depending on the compilers presence (a warning message is printed if a program was not built because of missing compiler) and then copied to the directory SYS$SYSROOT:[SYSHLP.EXAMPLES.IXV11]. These programs can be run after successful installation using a DCL command such as: $ RUN IXV11$EXAMPLES:IXV11$xxxy The printout produced by the IXV11$MAIP (more analogue inputs, written in VAX PASCAL) can be found in Appendix E. 6-2 _______________________________________________________ 7 IXV11/VMS DRIVER EXERCISER The IXV11/VMS Exerciser is available for use in a simple dialog mode to select an IXV11 interface, one of the functions available for the selected interface and the parameter(s) for the current function. After the function is submitted to the driver, starting, return and function specific information will be printed. The exerciser can also serve as FORTRAN example program. __________________________________________________________________ 7.1 Running the IXV11/VMS Exerciser The image IXV11$EXEF.EXE is provided to verify that the IXV11/VMS Driver is properly installed and to demonstrate to the user the functionality of the IXV11/VMS Driver. The IXV11/VMS Exerciser program uses a dialogue mode in which commands and parameters are translated into $QIO requests. Input can be made directly by the user or through indirect command files. The demonstration indirect command file IXV11$DEMO.COM is provided in the distribution kit. Although it is runnable, this command procedure is not an official test and is only included as an example. The IXV11$DEMO.COM file is meant for a figurative configuration. It sets the digital input parameters, enables and disables the digital input ASTs (interrupts). It transfers data from digital output to digital input modules with or without an interrupt. It 7-1 IXV11/VMS DRIVER EXERCISER also transfers data from analogue output to analogue input modules. The analogue input channels are read first with internal start, and then with external start. The command file sets up, arms, disarms and reads some counter channels and modifies the Frequency Output Signal of the five channel counter module. In order for the command file to run properly the driver must be generated with at least eight controllers: two digital inputs (IVA0: and IVB0:), two digital outputs (IVC0: and IVD0:), two analogue inputs (IVE0: and IVF0:), an analogue output (IVG0:) and a five channel counter (IVH0:). In addition, two of the digital IXV11 interfaces (IVA0: and IVC0:) and two of the analogue modules (IVF0: and IVG0:) must be connected with back to back test cables which the customer must supply. The demonstration file can be run with the following commands: $RUN IXV11$EXAMPLES:IXV11$EXEF IVD>@IXV11$EXAMPLES:IXV11$DEMO This command file demonstrates all features of the IXV11 Module Family and the IXV11/VMS Driver. It produces a printout. If any errors are returned by the driver then an appropriate error message is generated. When a command is issued the IXV11/VMS Exerciser program tests whether this command has been completed. Thus if command file hangs, it means that the command has not been completed. 7-2 IXV11/VMS DRIVER EXERCISER __________________________________________________________________ 7.2 IXV11/VMS Exerciser Command Format Commands to the IXV11/VMS Exerciser program are very similar to the I/O request processed by the driver. Generally the commands consist of the I/O function, the controller name to which the request is to be made and a list of parameters for the request. In the following examples the first argument after the command name identifies the controller. The description of the arguments starts with the argument following the controller identification. For the sake of clarity the controller identification A,B,C,D,E, and F are specified in the examples to demonstrate five different controller types. A for Digital Input B for Digital Output C for Analogue Input D for Analogue Output E for Counter F for all five controller types All arguments should be separated by one space. The character ";" is treated as the start of a comment. The default radix is octal. A decimal number contains the numerals 8 or 9 or it is terminated with a point. An "X" termination or the letters A,B,C,D,E, or F in a number indicates a hexadecimal number. 7-3 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.1 ACC - Arm Counter Channels Format: ACC E arm0 arm1 arm2 arm3 arm4 Request generated: IO$_ARM_CC This request is issued to start (arm) some or all of the available five channels of a five channel counter previously set up by SCC command. The content of the I/O Status Block is printed (e.g. status information and the bits for the channels successfully armed). ___________________________ 7.2.2 CAN - Cancel I/O on Channel Format: CAN F KIL F Request generated: System Service $CANCEL This command will cancel all of the requests which have been issued to a unit and have not been completed. The second format shown is used for IXV11/RSX11 compatibility. It can only be used to cancel the requests for which the cancel command exerciser does not wait to complete (e.g. RAI or MAI function) or cancel counter channel set ups (e.g. make the channel free for the next set up). 7-4 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.3 DCC - Disarm Counter Channel Format: DCC E disarm0 save0 disarm1 save1 disarm2 save2- disarm3 save3 disarm4 disarm4 Request generated: IO$_DISARM_CC This request is issued to disarm, save or disarm and save some or all of the available five channels of a five channel counter. The contents of the I/O Status Block is printed ( e.g. status information, the bits for the channels successfully disarmed and the bits for the channels successfully saved). ___________________________ 7.2.4 DDA - Disable Digital AST Format: DDA A Request generated: IO$_SETMODE!IO$M_ATTNAST This command is issued to disable the previously enabled digital input interrupt AST recognition. On success, the message "AST disabled" is printed. ___________________________ 7.2.5 DELAY - Delay program execution Format: DELAY [tens] Request generated: System Services: $BINTIM, $SETIMR, $WAITFR 7-5 IXV11/VMS DRIVER EXERCISER Should it be desired to wait for asynchronous events such as interrupts (ASTs) from an IXV11 interface, a programmed delay can be requested with this command. The optional parameter tens can have a value between 1 and 6 and tells how many times 10 second delay is required. Default value is 1, i.e.#10 seconds delay. ___________________________ 7.2.6 EDA - Enable Digital AST Format: EDA A [astprm astacs astnum] intpar Request generated: IO$_SETMODE!IO$M_ATTNAST This request is issued to enable digital input interrupt ASTs. A message that the AST enabled is printed and on an interrupt the AST parameter and the content of the Digital Input Data Register are printed. If only one parameter is present, it is assumed to be the interrupt parameter and then the parameters astpm and astacs are defaulted to 0, the astnum parameter to 65535. ___________________________ 7.2.7 MAI - More Analogue Inputs Format: MAI C channel gain start time channel ... MAI C Request generated: IO$_MORE_AI 7-6 IXV11/VMS DRIVER EXERCISER This request is issued to read several analogue input channels with or without automatic gain correction. A message will be printed only if an error occurs. It is suggested to wait for the request completion with the command WFR. After which, the result of the conversion and the gain used are printed for all of the selected channels. In the first form, four parameters for each channel must be entered. The number of channels read is defined by the number of channel, gain, start and time parameter quartets in the command line. If the second form is entered, the buffer previously prepared by the SET DATA command or by the latter MAI request is used. In the last case, the number of channels to read is determined by the length of this buffer (the offset of the last entered/modified entry). ___________________________ 7.2.8 MDI - More Digital Inputs Format: MDI A position size position size... Request generated: IO$_MORE_DI This command allows a field of the data register(s) of one or more digital input modules to be read. The number of modules to read are defined by the number of position and size parameter pairs in the command line. Return status information, the requested field(s) and the content of data register(s) are printed. 7-7 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.9 MDO - More Digital Outputs Format: MDO B value position size value position size... Request Generated: IO$_MORE_DO This command allows fields of the data registers of one or more digital output modules to be written. The number of modules to write are defined by the number of the value, position and size parameter trio in the command line. Return status information, and for each module both the old and new content of the Output Data Register are printed. ___________________________ 7.2.10 MFO - Modify Frequency Output Format: MFO E halt source divider Request generated: IO$_MODIFY_FO This request is issued to modify or stop the FOUT reference output signal of one five channel counter module. If the signal is to stop (halt parameter equals 1) the source and divider parameters are not needed. On successful completion, the new content of the Frequency Output Control (FOC) Register is printed. ___________________________ 7.2.11 RAI - Read Analogue Input Format: RAI C channel gain start time Request generated: IO$_READ_AI 7-8 IXV11/VMS DRIVER EXERCISER This request is used to read an analogue input channel. No message is printed. WFR can be used to wait for the completition of the request and to get the status information and the result of the conversion printed. ___________________________ 7.2.12 RCC - Read Counter Channel Format: RCC E channel disarm save Request generated: IO$_READ_CC This request is issued to disarm, save or disarm and save and then read the Hold Register of the selected channel of a five channel counter. On success the value read is printed. ___________________________ 7.2.13 RDI - Read Digital Input Format: RDI A [position size] Request generated: IO$_READ_DI This command is issued to read a field of the data register of a 16-bit digital input module. Data read in (the requested field and the content of the data register) is printed. If no parameter is given, the whole word of the data register is read. 7-9 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.14 SCC - Set_up Counter Channel Format: SCC E astadr astprm astacs astnum channel - start source polarity gate direction precount Request generated: IO$_SET_UP_CC This request is issued to set up (with or without AST enabled) and optionally start one channel of a five channel counter. The first parameter is not a real address, but it must be 0 if the AST is not to enable or not 0 if the AST is to enable. If astadr equals 0, the next three parameters (astprm, astacs, astnum) are irrelevant, but they must be present. The new content of the channel Mode Register is printed if the request is successful. After start and if astadr was other than 0, on interrupt the AST parameter and the counter channel number are printed. ___________________________ 7.2.15 SDP - Set Digital Parameters Format: SDP A respar lowpar Request generated: IO$_SET_DP This command is issued to change the response time and the low level input select parameters of a 16-bit digital input module. If the request is successful, the message "digital parameters set" is printed. 7-10 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.16 SET DATA - Set Data into Control Buffer of MAI Format: SET DATA [format] offset data1 data2 data3 ... dataN Request generated: none With this command the user can fill the control buffer of the next MAI request. The format parameter can contain two characters and specifies the format in which the data is to be entered: first character B : data specified as byte values W : (default) data specified as word values second character O : values entered in octal format D : (default) X : values specified in decimal format values specified in hexadecimal format The format specification for a single data can be overwritten using the radix convention described above. The offset parameter points to the first word/byte to be modified in the buffer. The position of the last written data determines the length of the buffer which will be used by the next MAI request. 7-11 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.17 VERIFY - Print Data in Control Buffer of MAI Request Format: VERIFY Request generated: none This command prints the content of the control buffer, entered by either the last MAI or SET DATA commands as it will be used by the next MAI request. ___________________________ 7.2.18 WAO - Write Analogue Output Format: WAO D value0 value1 value2 value3 Request generated: IO$_WRITE_AO This command transfers the four 12-bit values to the analogue output module. Success or error message, the bits for the DAC's having OPL bit set, and the bits for the DAC's successfully written are printed. ___________________________ 7.2.19 WDO - Write Digital Output Format: WDO B value [position size] Request generated: IO$_WRITE_DO This request is issued to write data to a field of the data register of a 16-bit digital output module. If the request is successful, both the old and the new contents of the Output Data Register are printed. 7-12 IXV11/VMS DRIVER EXERCISER ___________________________ 7.2.20 WFR - Wait for Request Format: WFR F WFQ F Request generated: System Service $WAITFR This command waits for the completion of the last request on the unit. The second format shown is for IXV11/RSX11 compatibility. If the last request has been completed, then the contents of I/O Status Block and/or the following information will be printed: o a message if the last function on this unit was cancelled, o on device request error, the type of the selected module, o on RAI function, the value read in, o after MAI function the content of the data buffer. This command is useful in determining when commands, for which the exerciser does not wait to complete, have completed, or to get the information described above about the last request on the unit. 7-13 _______________________________________________________ A Sample Installation This appendix contains a sample installation of the IXV11/VMS Driver. This sample was run on a system that had no previous version of the IXV11/VMS Driver installed. Depending on which layered products you have on your system, you might see additional messages and questions when you perform your installation. The sample installation assumes that DECnet has been shut down, that no users are logged on to your system, and that OPTIONS N is specified to copy the Release Notes to SYS$HELP. The Installation Verification Procedure (IVP) runs at the end of the installation. Welcome to VAX/VMS V5.4 Username: SYSTEM Password: Welcome to VAX/VMS V5.4 on node CSSSE7 Last interactive login on Monday, 11-FEB-1991 13:16 Last non-interactive login on Monday, 11-FEB-1991 08:31 $ @sys$update:vmsinstal ixv11 mua0: options n VAX/VMS Software Product Installation Procedure V5.4 It is 13-FEB-1991 at 13:20. Enter a question mark (?) at any time for help. * Are you satisfied with the backup of your system disk [YES]? YES A-1 Sample Installation Please mount the first volume of the set on MUA0:. * Are you ready? YES %MOUNT-I-MOUNTED, IXV11 mounted on _MUA0: The following products will be processed: IXV11 V2.1 Beginning installation of IXV11 V2.1 at 13:21 %VMSINSTAL-I-RESTORE, Restoring product saveset A ... Release Notes Options: 1. Display release notes 2. Print release notes 3. Both 1 and 2 4. Copy release notes to SYS$HELP 5. Do not display, print or copy release notes * Select option [2]: 4 %VMSINSTAL-I-RELMOVED , The product's release notes have been successfully moved to SYS$HELP. * Do you want to continue the installation? YES Product: IXV11-DRIVER Producer: DEC Version: 2.1 Release Date: 18-FEB-1991 * Does this product have an authorization key registered and loaded? YES * Do you want to purge files replaced by this installation [YES]? YES The IXV11 devices are not supported under the VMS AUTOCONFIGURATION utility. In order to run the installation procedure, you must answer questions concerning the IXV11 hardware installation. This procedure will then create the SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD.COM procedure to load the IXV11/VMS Driver. A-2 Sample Installation If you do not know the configuration at this time, then use the default configuration and do not request execution of the IVP. You may then edit SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD.COM at your convenience to set the correct hardware parameters and to add additional IXV11 interface units and later verify the installation by starting some of the distributed IXV11 verification/demonstration programs. * Number of IXV11 interfaces to be supported [1]: 7 * Enter bus address for IXV11 interface 0 (octal) [171400]: * Enter vector address for IXV11 interface 0 (octal) [400]: * Enter bus address for IXV11 interface 1 (octal) [171400]: 171000 * Enter vector address for IXV11 interface 1 (octal) [400]: 600 * Enter bus address for IXV11 interface 2 (octal) [171400]: 171010 * Enter vector address for IXV11 interface 2 (octal) [400]: 610 * Enter bus address for IXV11 interface 3 (octal) [171400]: 171420 * Enter vector address for IXV11 interface 3 (octal) [400]: 420 * Enter bus address for IXV11 interface 4 (octal) [171400]: 171410 * Enter vector address for IXV11 interface 4 (octal) [400]: 410 * Enter bus address for IXV11 interface 5 (octal) [171400]: 171440 * Enter vector address for IXV11 interface 5 (octal) [400]: 440 * Enter bus address for IXV11 interface 6 (octal) [171400]: 171370 * Enter vector address for IXV11 interface 6 (octal) [400]: 620 You have chosen the following configuration: Device Address Vector Name (octal) (octal) IVA0: 171400 400 IVB0: 171000 600 IVC0: 171010 610 IVD0: 171420 420 IVE0: 171410 410 IVF0: 171440 440 IVG0: 171370 620 * Is this configuration correct [YES]? YES * Do you want to run the IVP after the installation [YES]? YES The installation procedure has asked all the questions required to complete the installation of the IXV11 V2.1 driver. A-3 Sample Installation The installation will now continue for approximately 5 to 10 minutes depending on your configuration. %VMSINSTAL-I-RESTORE, Restoring product saveset B ... %IXV11-I-LINKING, Linking the IXV11/VMS Driver... %IXV11-I-IGNORE, Please ignore the next warning %LINK-W-USRTFR. %LINK-W-USRTFR, image VMI$ROOT:[SYSUPD.IXV11021]IVDRIVER.EXE;1 has no user transfer address %IXV11-I-BUILDING, Building the Installation Verification Procedure... %VMSINSTAL-I-SYSDIR, This product creates system disk directory VMI$ROOT:[SYSHLP.EXAMPLES.IXV11]. %VMSINSTAL-I-SYSDIR, This product creates system disk directory VMI$ROOT:[SYSTEST.IXV11]. %IXV11-I-BUILDING, Building the IXV11/VMS Driver Exerciser... The IXV11/VMS Driver Exerciser program IXV11$EXEF can be run using the following command: $ RUN IXV11$EXAMPLES:IXV11$EXEF Input can be made then interactivly or through an indirect command file such IXV11$DEMO.COM typing IVD>@IXV11$EXAMPLES:IXV11$DEMO %IXV11-I-BUILDING, Building the IXV11/VMS Demonstration Programs... The IXV11/VMS Driver Tester IXV11$TSTM can be run with the following command: $ RUN IXV11$EXAMPLES:IXV11$TSTM %IXV11-W-NO_BAS, BASIC examples not built because of missing BASIC V3.2 (or later) compiler. %IXV11-I-BUILDING, Building the PASCAL Sample Application... The IXV11/VMS Driver PASCAL Demonstration Program can be run using the following command: $ RUN IXV11$EXAMPLES:IXV11$MAIP %IXV11-I-BUILDING, Building the C Sample Application... The IXV11/VMS Driver C Demonstration Program can be run using the following command: $ RUN IXV11$EXAMPLES:IXV11$WAOC A-4 Sample Installation This procedure stores files in the following directories: SYS$LOADABLE_IMAGES:IVDRIVER.EXE ; IXV11/VMS Driver image SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD.COM ; IXV11/VMS Startup procedure SYS$HELP:IXV11$021.RELEASE_NOTES ; Release Notes file SYS$LIBRARY:IXV11$DEFM.MLB ; Macro I/O code definitions SYS$SYSROOT:[SYSMGR]IXV11$CONFIG.COM ; Configuration file SYS$SYSROOT:[SYSTEST.IXV11] ; IXV11$TEST: after execution of ; IXV11$LOAD.COM IXV11$IVPM.EXE ; IVP image file SYS$SYSROOT:[SYSHLP.EXAMPLES.IXV11] ; IXV11$EXAMPLES: after ; execution of IXV11$LOAD.COM IXV11$*.* ; All sources, demonstration ; programs, memory allocation ; listings (map) and ; include files System Manager: Upon completion of this installation, please be sure to verify (if necessary edit) the SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD.COM procedure to conform to your IXV11 installation. If you wish automatic driver installation at system startup time, add the line: $ @SYS$SPECIFIC:[SYS$STARTUP]IXV11$LOAD to your SYS$MANAGER:SYSTARTUP_V5 command procedure. %VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories... Device Device Error Name Status Count IVA0: Online 0 IVB0: Online 0 IVC0: Online 0 IVD0: Online 0 IVE0: Online 0 IVF0: Online 0 IVG0: Online 0 %IXV11-I-RUNNING, Running the Installation Verification Procedure... IXV11/VMS Module Identifier. A-5 Sample Installation Device Device Name Type IVA0: Digital Input (IDV11-A) IVB0: Digital Output (IDV11-B or IDV11-C) IVC0: Digital Output (IDV11-B or IDV11-C) IVD0: Five Channel Counter (IDV11-D) IVE0: Analogue Input (IAV11-A or IAV11-AA) IVF0: Analogue Input (IAV11-A or IAV11-AA) IVG0: Analogue Output (IAV11-B) Number of IXV11 modules found: 7 online, 0 offline End of IXV11/VMS Module Identifier. %IXV11-I-SUCCESS, The IVP of IXV11 V2.1 was successful... The IXV11/VMS Installation Verification Procedure IXV11$IVPM can be run again using the following command: $ RUN IXV11$TEST:IXV11$IVPM Installation of IXV11 V2.1 completed at 13:32 VMSINSTAL procedure done at 13:32 $ lo SYSTEM logged out at 13-FEB-1991 13:36:27.13 A-6 _______________________________________________________ B DIRECTORIES/FILES INSTALLED ON YOUR SYSTEM The IXV11/VMS Driver installation procedure installs a number of files on your system. This installation creates the following directories/files: SYS$LOADABLE_IMAGES: IVDRIVER.EXE IXV11/VMS Driver SYS$SPECIFIC:[SYS$STARTUP]: IXV11C$LOAD.COM Load-file for IXV11 SYS$SYSROOT:[SYSTEST.IXV11]: IXV11$IVPM.EXE IVP image file SYS$HELP: IXV11$021.RELEASE_NOTES SYS$MANAGER: IXV11$CONFIG.COM Configuration set up procedure B-1 DIRECTORIES/FILES INSTALLED ON YOUR SYSTEM SYS$LIBRARY: IXV11$DEFM.MLB Macro I/O code definitions B-2 DIRECTORIES/FILES INSTALLED ON YOUR SYSTEM SYS$SYSROOT:[SYSHLP.EXAMPLES.IXV11]: IXV11$OPT.OPT;2 Sources, demonstration and IXV11$EXEF.FOR;1 include files for different IXV11$EXEF.EXE;2 VAX/VMS high level languages IXV11$HELP.HLP;1 IXV11$IVPM.MAR;1 IXV11$IVPM.MAP;1 IXV11$MAIP.PAS;1 IXV11$MAIP.EXE;1 IXV11$MDOB.BAS;1 IXV11$RDIB.BAS;1 IXV11$TSTM.MAR;1 IXV11$TSTM.EXE;2 IXV11$WAOC.C;1 IXV11$DEFB.BAS;1 IXV11$DEFC.H;1 IXV11$DEFF.FOR;1 IXV11$DEFM.MAR;1 IXV11$DEFP.PAS;1 IXV11$DEMO.COM;1 IXV11$DRIVER.MAP;1 B-3 _______________________________________________________ C Sample IXV11$EXEF Execution using IXV11$DEMO $ run ixv11$examples:ixv11$exef IVD>@ixv11$examples:ixv11$demo IVD>; IVD>; This is an example indirect command file to demonstrate IVD>; the features of the IXV11/VMS Driver and the IXV11 IVD>; Q-bus interfaces, in the following configuration installed: IVD>; IVD>; Device Name: Device Type: Connections: Notes: IVD>; IVD>; IVA0: Digital Input <----+ Includes IVD>; IVB0: Digital Input | power - IVD>; IVC0: Digital Output >----+ supply. IVD>; IVD0: Digital Output IVD>; IVE0: Analogue Input * IVD>; IVF0: Analogue Input <----+ ** IVD>; IVG0: Analogue Output >----+ 20mA IVD>; IVH0: Five Channel Counter IVD>; IVD>; * = Channels 0 to 15 are present with 0 to 10 Volt input. IVD>; ** = Channels 0 to 63 are present with 0 to 10 Volt input. IVD>; IVD>; The user can also write his own command file to test other IVD>; configuration. IVD>; IVD>; Note: Default radix is octal. A decimal number contains IVD>; the numerals 8 or 9 or it is terminated with a point. IVD>; An "X" termination or the letters A, B, C, D, E or F IVD>; indicates a hexidecimal number. IVD>; IVD>sdp a 1 1 ; Set digital input parameters **IVD** SDP success, digital input parameters set C-1 Sample IXV11$EXEF Execution using IXV11$DEMO IVD>sdp b 1 1 ; Set digital input parameters **IVD** SDP success, digital input parameters set IVD>wdo c FDCB 0 16. ; Write digital output ; (no interrupt) **IVD** WDO success, new content of OUTPUT register [hex]: FDCB old content of OUTPUT register [hex]: 7DCB IVD>rdi a 4 11. ; Read it back **IVD** RDI success, requested field contains [hex]: 7DC content of DATA register [hex]: FDCB IVD>eda a ABCD 3 4 3 ; 1 interrupt expected ; before reenable **IVD** EDA success, digital input AST enabled IVD>mdi a 0 0 0 0 ; Read two digital inputs **IVD** MDI success, number of DI(s) successfully read [D]: 2 Digital input: requested field [hex]: DATA register [hex]: IVA0 FDCB FDCB IVB0 5555 5555 IVD>mdo c 123456 0 0 7DCB 0 16. ; Write two digital outputs **IVD** MDO success, number of DO(s) successfully written to [D]: 2 Digital output: new content [hex]: old content [hex]: IVC0 A72E FDCB IVD0 7DCB FDCB IVD>mdo c 0 0 0 FDCB 0 0 0 0 0 ; More digital outputs ; (interrupt, error) **IVD** MDO error return, number of DO(s) successfully written to [D]: 2 **IVD** DI AST occurred, parameter [hex]: ABCD, content of DI [hex]: 2328 %SYSTEM-W-NOSUCHDEV, no such device available Digital output: new content [hex]: old content [hex]: IVC0 0 A72E IVD0 FDCB 7DCB IVD>mdi a 0 0 0 0 ; Read two digital inputs **IVD** MDI success, number of DI(s) successfully read [D]: 2 Digital input: requested field [hex]: DATA register [hex]: IVA0 0 0 IVB0 5555 5555 IVD>mdi a 4 4 8 8 0 0 ; Try more digital inputs (error) **IVD** MDI error return, number of DI(s) successfully read [D]: 2 %SYSTEM-W-NOSUCHDEV, no such device available C-2 Sample IXV11$EXEF Execution using IXV11$DEMO Digital input: requested field [hex]: DATA register [hex]: IVA0 0 0 IVB0 55 5555 IVD>eda a CDEF 3 3 2 ; 1 interrupt expected before ; disable **IVD** EDA success, digital input AST enabled IVD>wdo c 7DCB 0 0 ; Write digital output IVD> ; (interrupt) **IVD** WDO success, new content of OUTPUT register [hex]: 7DCB old content of OUTPUT register [hex]: 0 **IVD** DI AST occured, parameter [hex]: EFAB, content of DI [hex]: 7DCB IVD>wdo c FDCB 0 0 ; Write digital output (no ; interrupt) **IVD** WDO success, new content of OUTPUT register [hex]: FDCB old content of OUTPUT register [hex]: 7DCB IVD>dda a ; Disable digital ASTs **IVD** DDA success, digital input AST disabled IVD>eda a EFAB 3 3 3 ; 1 interrupt expected ; before cancel **IVD** EDA success, digital input AST enabled IVD>wdo c 7DCB 0 0 ; Write digital output ; (interrupt) **IVD** WDO success, new content of OUTPUT register [hex]: 7DCB **IVD** DI AST occured, parameter [hex]: EFAB, content of DI [hex]: 7DCB old content of OUTPUT register [hex]: FDCB IVD>can a ; Cancel digital interrupts **IVD** CAN success, last request canceled IVD>wfr a ; Check if cancel successful **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: 0, fourth word [hex]: 0, **IVD** CAN last request on unit was cancel! IVD>; IVD>set data bd 0 0 0 0 2 1 0 0 3 2 0 0 2 3 0 0 2 12. 1 0 4 IVD>set data bd 20 48 0 0 2 49 0 0 10 50 0 0 10 51 0 0 0 63 1 0 4 C-3 Sample IXV11$EXEF Execution using IXV11$DEMO IVD>verify ; Check content of control ; buffer Channel# [D]: gain [D]: start [D]: timeout [D]: 0 0 0 2 1 0 0 3 2 0 0 2 3 0 0 2 12 1 0 4 48 0 0 2 49 0 0 8 50 0 0 8 51 0 0 0 63 1 0 4 IVD>wao g 0 4095. 0 4095. ; Write analogue output ; module **IVD** WAO success, DAC(s) having OPL bit set [hex]: 0 DAC(s) successfully written [hex]: F IVD>rai f 0 1 0 2 ; Read first analogue input ; channel IVD>wfr f ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: 29C, fourth word [hex]: 0, **IVD** RAI success, value read [D]: 668 IVD>mai f ; Read more analogue ; channels IVD>wfr f ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: A, fourth word [hex]: 0, **IVD** MAI success, number of AI channels successfully read C-4 Sample IXV11$EXEF Execution using IXV11$DEMO Channel number [D]: gain used [D]: value read [D]: 0 20 3297 1 1 4095 2 10 3063 3 1 4095 12 1 2835 48 50 3070 49 20 1740 50 20 1684 51 100 3475 63 1 0 IVD>wao g 2000. FFFF 2000. FFFF ; Write analogue output ; again **IVD** WAO success, DAC(s) having OPL bit set [hex]: 0 DAC(s) successfully written [hex]: 5 IVD>mai f ; Read more analogue ; channels IVD>wfr f ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: A, fourth word [hex]: 0, **IVD** MAI success, number of AI channels successfully read IVD> [D]: 10 Channel number [D]: gain used [D]: value read [D]: 0 2 2612 1 1 4095 2 2 2449 3 1 4095 12 1 3370 48 50 3093 49 20 1745 50 20 1685 51 100 3507 63 1 0 C-5 Sample IXV11$EXEF Execution using IXV11$DEMO IVD>rai e 0 1 0 2 ; Read first analogue input ; channel IVD>wfr e ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: 3, fourth word [hex]: 0, **IVD** RAI success, value read [D]: 3 IVD>mai e 0 0 0 2 1 0 0 3 2 0 0 2 3 0 0 2 12. 1 0 4 ; Read more analogue ; channels IVD>wfr e ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 1, second word [hex]: 0, third word [hex]: 5, fourth word [hex]: 0, **IVD** MAI success, number of AI channels successfully read IVD> [D]: 5 Channel number [D]: gain used [D]: value read [D]: 0 200 943 1 200 773 2 200 1032 3 200 1500 12 1 0 IVD>rai f 0 1 1 4 ; Read analogue input ;(timeout error) IVD>wfr f ; Wait for request to ; complete **IVD** last request finished, return status [hex]: 1 **IVD** I/O Status Block first word [hex]: 22C, second word [hex]: 0, third word [hex]: FFFF, fourth word [hex]: 0, **IVD** RAI error return, value in I/O Status Block third word is not valid ! %SYSTEM-W-TIMEOUT, device timeout C-6 Sample IXV11$EXEF Execution using IXV11$DEMO IVD>mfo h 1 ; Switch FOUT signal off **IVD** MFO success, new content of FOC register [hex]: 7000 IVD>mfo h 0 13 13 ; Switch FOUT on (F1=5MHz, IVD> ; divide by 11) **IVD** MFO success, new content of FOC register [hex]: 6BB0 IVD>scc h 1 abcd 3 5 0 0 15 1 0 1 32768. ; h=IVH0:, 1=AST_enable, ; abcd=astprm, IVD>; 3=user_mode(AST_access), 5=astnum, 0=channel0, 0=no_arm, ; 15=5MHz/00256, IVD>; 1=falling-edge, 0=no_gate, 1=count_up, 32768.=precount **IVD** SCC success, new content of CHANNEL MODE register [hex]: 1D29 IVD>scc h 1 bcde 3 5 1 0 15 1 0 0 32768. ; Set up channel 1 with ; AST, no arm **IVD** SCC success, new content of CHANNEL MODE register [hex]: 1D21 IVD>scc h 1 cdef 3 5 2 0 15 1 0 1 32768. ; Set up channel 2 with ; AST, no arm **IVD** SCC success, new content of CHANNEL MODE register [hex]: 1D29 IVD>scc h 1 defa 3 5 3 0 15 1 0 0 32768. ; Set up channel 3 with ; AST, no arm **IVD** SCC success, new content of CHANNEL MODE register [hex]: 1D21 IVD>scc h 1 efab 3 5 4 0 15 1 0 1 32768. ; Set up channel 4 with ; AST, no arm **IVD** SCC success, new content of CHANNEL MODE register [hex]: 1D29 IVD>acc h 1 1 1 1 1 ; Arm all counter channels **IVD** ACC success, armed channels [hex]: 1F C-7 Sample IXV11$EXEF Execution using IXV11$DEMO IVD>delay ; Wait for interrupts (ASTs) **IVD** CC AST occured, parameter [hex]: ABCD, channel number: 0000 **IVD** CC AST occured, parameter [hex]: BCDE, channel number: 0001 **IVD** CC AST occured, parameter [hex]: CDEF, channel number: 0002 **IVD** CC AST occured, parameter [hex]: DEFA, channel number: 0003 **IVD** CC AST occured, parameter [hex]: EFAB, channel number: 0004 **IVD** CC AST occured, parameter [hex]: ABCD, channel number: 0000 **IVD** CC AST occured, parameter [hex]: BCDE, channel number: 0001 **IVD** CC AST occured, parameter [hex]: CDEF, channel number: 0002 **IVD** CC AST occured, parameter [hex]: DEFA, channel number: 0003 **IVD** CC AST occured, parameter [hex]: EFAB, channel number: 0004 **IVD** CC AST occured, parameter [hex]: ABCD, channel number: 0000 **IVD** CC AST occured, parameter [hex]: BCDE, channel number: 0001 **IVD** CC AST occured, parameter [hex]: CDEF, channel number: 0002 **IVD** CC AST occured, parameter [hex]: DEFA, channel number: 0003 **IVD** CC AST occured, parameter [hex]: EFAB, channel number: 0004 **IVD** CC AST occured, parameter [hex]: ABCD, channel number: 0000 **IVD** CC AST occured, parameter [hex]: BCDE, channel number: 0001 **IVD** CC AST occured, parameter [hex]: CDEF, channel number: 0002 **IVD** CC AST occured, parameter [hex]: DEFA, channel number: 0003 **IVD** CC AST occured, parameter [hex]: EFAB, channel number: 0004 **IVD** CC AST occured, parameter [hex]: ABCD, channel number: 0000 **IVD** CC AST occured, parameter [hex]: BCDE, channel number: 0001 **IVD** CC AST occured, parameter [hex]: CDEF, channel number: 0002 **IVD** CC AST occured, parameter [hex]: DEFA, channel number: 0003 **IVD** CC AST occured, parameter [hex]: EFAB, channel number: 0004 IVD>rcc h 2 0 1 ; Read channel 2 with no ; disarm but save **IVD** RCC success, content of the counter channel [hex]: FF7F IVD>rcc h 2 0 0 ; Read channel 2 with no ; disarm no save **IVD** RCC success, content of the counter channel [hex]: FF7F IVD>rcc h 2 0 1 ; Read channel 2 with no ; disarm but save **IVD** RCC success, content of the counter channel [hex]: 84CC IVD>dcc h 1 1 1 1 1 1 1 1 1 1 ; Disarm and save all ; channels **IVD** DCC success, disarmed channels [hex]: 1F C-8 Sample IXV11$EXEF Execution using IXV11$DEMO saved channels [hex]: 1F IVD>rcc h 0 1 1 ; Read channel with disarm ; and save **IVD** RCC success, content of the counter channel [hex]: 8789 IVD>rcc h 1 1 1 ; Read channel with disarm ; and save **IVD** RCC success, content of the counter channel [hex]: 7877 IVD>rcc h 2 1 1 ; Read channel with disarm ; and save **IVD** RCC success, content of the counter channel [hex]: 8789 IVD>rcc h 3 1 1 ; Read channel with disarm ; and save **IVD** RCC success, content of the counter channel [hex]: 7877 IVD>rcc h 4 1 1 ; Read channel with disarm ; and save **IVD** RCC success, content of the counter channel [hex]: 8789 IVD>; IVD>; End of IXV11/VMS demonstration. IVD>; IVD>; If no error messages, other than those purposely IVD>; generated, have been produced, then the hardware and IVD>; device driver are functioning properly. IVD>; IVD>exit $ C-9 _______________________________________________________ D EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER $ run ixv11$examples:ixv11$tstm IXV11/VMS Driver Tester. Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: A Enter option number (0 for help, ^Z for exit) [D R:0-15]: 0 Options are: 0 Print this list 1 **RDI** Read digital input (IO$_READ_DI) 2 **MDI** More digital inputs (IO$_MORE_DI) 3 **SDP** Set digital parameters (IO$_SET_DP) 4 **SET** Set mode (IO$_SETMODE!IO$M_ATTNAST) 5 **WDO** Write digital output (IO$_WRITE_DO) 6 **MDO** More digital outputs (IO$_MORE_DO) 7 **RAI** Read analogue input (IO$_READ_AI) 8 **MAI** More analogue inputs (IO$_MORE_AI) 9 **WAO** Write analogue output (IO$_WRITE_AO) 10 **SCC** Set_up counter channel (IO$_SET_UP_CC) 11 **ACC** Arm counter channels (IO$_ARM_CC) 12 **DCC** Disarm counter channels (IO$_DISARM_CC) 13 **RCC** Read counter channel (IO$_READ_CC) 14 **MFO** Modify frequency output (IO$_MODIFY_FO) 15 or ^Z Exit Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: A Enter option number (0 for help, ^Z for exit) [D R:0-15]: 1 **RDI** Read digital input Enter position parameter [D R:0-15]: 3 Enter size parameter [D R:(0)1-16]: 3 **RDI** success, requested field contains [hex]: 0005 content of DATA register [hex]: 7B2F D-1 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: A Enter option number (0 for help, ^Z for exit) [D R:0-15]: 2 **MDI** More digital inputs Enter number of DI(s) to read [D R:1-16]: 2 Enter position parameter [D R:0-15]: 3 Enter size parameter [D R:(0)1-16]: 4 Enter position parameter [D R:0-15]: 5 Enter size parameter [D R:(0)1-16]: 6 **RDI** success, number of DI(s) successfully read [D]: 2 Digital input: requested field [hex]: DATA register [hex]: IVA0: 0005 7B2F IVB0: 002A 5555 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: A Enter option number (0 for help, ^Z for exit) [D R:0-15]: 3 **SDP** Set digital parameters Enter response time parameter [R:(0)1-3]: 1 Enter 0/1 for standard/low_level input range [R:0-1]: 1 **SDP** success, digital input parameters set Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: A Enter option number (0 for help, ^Z for exit) [D R:0-15]: 4 **SET** Set mode (DI attention AST) Enter 0/1 for AST disable/enable [R:0-1]: 1 Enter AST parameter [D R:0-65535]: 4444 Enter access mode to deliver AST [R:0-3]: 0 Enter number of ASTs to receive [D R:(0)1-2147483647]: 44 Enter interrupt parameter [R:(0)1-3]: 3 **SET** success, digital input AST enabled Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: C Enter option number (0 for help, ^Z for exit) [D R:0-15]: 5 D-2 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **WDO** Write digital output Enter value to be written [D R:0-65535]: 1 Enter position parameter [D R:0-15]: 15 Enter size parameter [D R:(0)1-16]: 1 **DI** AST occured, parameter [hex]: 115C, content of DI [hex]: FB2F **WDO** success, new content of OUTPUT register [hex]:FB2F old content of OUTPUT register [hex]: 7B2F Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: C Enter option number (0 for help, ^Z for exit) [D R:0-15]: 6 D-3 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **MDO** More digital outputs Enter number of DO(s) to write [D R:1-16]: 2 Enter value to be written [D R:0-65535]: 0 Enter position parameter [D R:0-15]: 0 Enter size parameter [D R:(0)1-16]: 0 Enter value to be written [D R:0-65535]: 0 Enter position parameter [D R:0-15]: 0 Enter size parameter [D R:(0)1-16]: 0 **MDO** success, number of DO(s) successfully written to [D]: 2 Digital output: new content [hex]: old content [hex]: **DI** AST occured, parameter [hex]: 115C, content of DI [hex]: 2B29 IVC0: 0000 FB2F IVD0: 0000 2439 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: E Enter option number (0 for help, ^Z for exit) [D R:0-15]: 7 **RAI** Read analogue input Enter analogue input channel number [D R:0-127]: 3 Enter gain for channel [D R:(0)1,2,10,20,50,100,200]: 10 Enter 0/1 for internal/external start [R:0-1]: 0 Enter timeout parameter in seconds [D R:(0)2-2147483647]: 3 **RAI** success, value read [hex]: 0049 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: E Enter option number (0 for help, ^Z for exit) [D R:0-15]: 8 D-4 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **MAI** More analogue inputs Enter number of channels to read [D R:1-16]: 3 Enter analogue input channel number [D R:0-127]: 1 Enter gain for channel [D R:(0)1,2,10,20,50,100,200,42]: 20 Enter 0/1 for internal/external start [R:0-1]: 0 Enter timeout parameter in seconds [D R:(0)2-255]: 4 Enter analogue input channel number [D R:0-127]: 7 Enter gain for channel [D R:(0)1,2,10,20,50,100,200,42]: 100 Enter 0/1 for internal/external start [R:0-1]: 0 Enter timeout parameter in seconds [D R:(0)2-255]: 4 Enter analogue input channel number [D R:0-127]: 1 Enter gain for channel [D R:(0)1,2,10,20,50,100,200,42]: 42 Enter 0/1 for internal/external start [R:0-1]: 0 Enter timeout parameter in seconds [D R:(0)2-255]: 4 **MAI** success, number of AI channels successfully read [D]: 3 Channel number [D]: gain used [D]: value read [hex]: 1 20 004F 7 100 0000 1 200 0314 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: G Enter option number (0 for help, ^Z for exit) [D R:0-15]: 9 D-5 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **WAO** Write analogue output Enter value to be written [D R:0-4095 or -1]: 4095 Enter value to be written [D R:0-4095 or -1]: 4095 Enter value to be written [D R:0-4095 or -1]: 4095 Enter value to be written [D R:0-4095 or -1]: 4095 **WAO** success, DAC(s) having OPL bit set [hex]: 0000 DAC(s) successfully written [hex]: 000F Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 10 **SCC** Set_up counter channel Enter 0/1 for AST disable/enable [R:0-1]: 1 Enter AST parameter [D R:0-65535]: 3333 Enter access mode to deliver AST [R:0-3]: 0 Enter number of ASTs to receive [D R:(0)1-2147483647]: 3 Enter counter channel number [R:0-4]: 3 Enter 0/1 for channel no_arm/arm [R:0-1]: 0 Enter source parameter [D R:0-15]: 13 Enter 0/1 for rising/falling edge [R:0-1]: 1 Enter gate parameter [R:0-5]: 0 Enter 0/1 for count down/up [R:0-1]: 0 Enter precount value [D R:0-65535]: 32000 **SCC** success, new content of CHANNEL MODE register [hex]: 1D21 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 11 **ACC** Arm counter channels Enter 0/1 for channel no_arm/arm [R:0-1]: 0 Enter 0/1 for channel no_arm/arm [R:0-1]: 0 Enter 0/1 for channel no_arm/arm [R:0-1]: 0 Enter 0/1 for channel no_arm/arm [R:0-1]: 1 Enter 0/1 for channel no_arm/arm [R:0-1]: 0 **ACC** success, armed channels [hex]: 0008 **CC** AST occured, parameter [hex]: 0D05, channel number: 0003 **CC** AST occured, parameter [hex]: 0D05, channel number: 0003 **CC** AST occured, parameter [hex]: 0D05, channel number: 0003 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 12 D-6 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **DCC** Disarm counter channels Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 0 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 0 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 0 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 1 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 0 **DCC** success, disarmed channels [hex]: 0000 saved channels [hex]: 0008 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 13 **RCC** Read counter channel Enter counter channel number [R:0-4]: 3 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 0 Enter 0/1 for no_save/save channel [R:0-1]: 1 **RCC** success, content of the counter channel [hex]: 25CE Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 13 **RCC** Read counter channel Enter counter channel number [R:0-4]: 3 Enter 0/1 for no_disarm/disarm channel [R:0-1]: 1 Enter 0/1 for no_save/save channel [R:0-1]: 1 **RCC** success, content of the counter channel [hex]: 2A90 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 14 **MFO** Modify frequency output Enter 0/1 for switch FOUT on/off [R:0-1]: 1 **MFO** success, new content of FOC register [hex]: 7000 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 14 D-7 EXAMPLE RUN OF THE IXV11/VMS DRIVER TESTER **MFO** Modify frequency output Enter 0/1 for switch FOUT on/off [R:0-1]: 0 Enter source parameter [D R:0-15]: 5 Enter divider parameter [D R:0-15]: 5 **MFO** success, new content of FOC register [hex]: 6050 Select IXV11 unit (A for IVA0:, ^Z for exit) [S R:A-Z]: H Enter option number (0 for help, ^Z for exit) [D R:0-15]: 15 End of IXV11/VMS Driver Tester. D-8 _______________________________________________________ E RUN OF THE IXV11$MAIP EXAMPLE PROGRAM $ run ixv11$examples:ixv11$maip ******* * MAI * IXV11/VMS more analogue inputs example program. ******* **MAI** Which IXV11 interface? (e.g. IVA0) [S]: IVE0 **MAI** Enter number of channels to read [D R: 0-127]: 3 **MAI** Enter analogue input channel number [D R: 0-127]: 7 **MAI** Enter gain [D R: (0)1,2,10,20,50,100,200,42]: 20 **MAI** Enter 0/1 for internal/external start [R: 0-1]: 0 **MAI** Enter timeout parameter in seconds [D R: (0)2-255]: 3 **MAI** Enter analogue input channel number [D R: 0-127]: 11 **MAI** Enter gain [D R: (0)1,2,10,20,50,100,200,42]: 200 **MAI** Enter 0/1 for internal/external start [R: 0-1]: 0 **MAI** Enter timeout parameter in seconds [D R: (0)2-255]: 4 **MAI** Enter analogue input channel number [D R: 0-127]: 15 **MAI** Enter gain [D R: (0)1,2,10,20,50,100,200,42]: 42 **MAI** Enter 0/1 for internal/external start [R: 0-1]: 0 **MAI** Enter timeout parameter in seconds [D R: (0)2-255]: 3 **MAI** success, number of channels successfully read [D]: 3 Channel number [D]: Gain used [D]: Value read [hex]: 7 20 0345 11 200 07FF 15 100 0FFF End of IXV11/VMS more analogue inputs example program. E-1 _______________________________________________________ F Reader's Comments F-1 Reader's Comments F-2 Reader's Comments IXV11/VMS Driver V2.1 User's and Installation Guide Documentation No. AA-HU97C-TN Last revision: February 1991 READER'S COMMENTS Note: This form is for documents only. Digital will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) service, submit your comments on an SPR form. Did you find this manual understandable, usable, and well organized? Please make suggestions for improvement. Did you find errors in this manual? If so, specify the error and the page number. Please indicate the type of user/reader that you most nearly represent. ____ Assembly language programmer ____ Higher-level language programmer (language: ___________ ) ____ Occasional programmer (experienced) ____ User with little programming experience F-3 Reader's Comments ____ Student programmer ____ Other (please specify) __________________ Name __________________________ Date ________________ Organization __________________________________________ Street ________________________________________________ City __________________ Zip Code _____________________ State _________________ Country ______________________ F-4 Reader's Comments DIGITAL EQUIPMENT GMBH Enterprise Integration Center Sustaining Engineering Gutenbergstrasse 3 D-8043 Unterfoehring Germany F-5