DIGITAL Software Product Description ___________________________________________________________________ PRODUCT NAME: PL/I for OpenVMS SPD 25.30.23 This SPD describes the following two products: VAX PL/I Version 3.5 DEC PL/I Version 4.1 for OpenVMS AXP Systems The general description section describes features common to both prod- ucts. Within the context of the general description both products will be referred to as DEC PL/I. The differences in product functionality are indicated in separate sections that follow. DESCRIPTION VAX PL/I and DEC PL/I for OpenVMS AXP are products of UniPrise Sys- tems, Inc. and licensed under Digital Equipment Corporation's Stan- dard Terms and Conditions. DEC PL/I is an extended implementation of the ANSI X3.74 1981, Amer- ican National Standard PL/I General Purpose Subset. DEC PL/I exten- sions include compatibility features with industry standard implemen- tations and ANSI full language features as well as OpenVMS system-specific features. DEC PL/I consists of a shareable compiler, a HELP facility, and a system interface library which includes declarations for sys- tem routines. The DEC PL/I compiler runs under the OpenVMS Operating System and generates optimized, position-independent machine code. DEC PL/I is a comprehensive and powerful programming language that sup- ports scientific computation, commercial data handling and data or- ganization, and extensive string manipulation. The block-structuring provided by the PL/I language helps to reduce the costs of program de- velopment and support. August 1996 DEC PL/I allows access to Oracle CDD. A compile-time preprocessor fa- cility allows language extension and conditional compilation. All Open- VMS System Services, the Common Run-Time Library, and system utili- ties are available through the PL/I CALL statement. A library of pre- defined ENTRY declarations provided with DEC PL/I minimizes the cod- ing required to use OpenVMS system services, the Common Run-Time Li- brary, and many system utilities. Features o Support for CDD/Repository, allowing DEC PL/I programmers to ex- tract a designated CDD/Repository record description node and rep- resent the record as a PL/I structure declaration. CDD/Repository structure declarations may be optionally included in the compiler listing. o Support for the following data types: Binary integer (FIXED BINARY), floating point (FLOAT BINARY, FLOAT DECIMAL), decimal (FIXED DECIMAL), fixed or varying length char- acter strings (CHARACTER [VARYING]), fixed length bit strings (BIT), edited numeric data in character format (PICTURE), address manip- ulation (AREA, OFFSET, and POINTER), entry point (ENTRY), label with an optional subscript (LABEL), and condition (CONDITION). o An assignment operator that operates on equivalent structures or arrays of data as well as scalar variables. A scalar can be assigned to an entire array. o Support for all OpenVMS RMS file organizations (sequential, rel- ative, and indexed), and access methods (sequential, direct, and keyed). A set of ENVIRONMENT options provides access to a large sub- set of RMS features. The OPTIONS option on READ provides extended control of record locking. o Five storage classes: - AUTOMATIC: Variables are allocated upon block entry. - STATIC: Variables are allocated at compile time. Static data can be EXTERNAL or globally shared. The GLOBALDEF attribute provides program section (PSECT) control of data. 2 - DEFINED: Variables are overlaid upon existing variables. - BASED: Variable allocation is dynamically controlled by the pro- grammer. - CONTROLLED: Variables are allocated and freed dynamically as gen- erations. Only the most recent generation is available to the programmer. o INITIAL values may be specified for AUTOMATIC, BASED, CONTROLLED, and STATIC variables. o A REFER option is available for the creation of dynamically self- defining based structures. This option may be specified for any or all bounds and extents for structure members which are arrays, bit strings, character strings, or areas. o ALLOCATE statement with the SET and IN options for explicit dynamic storage allocation. - FREE space previously allocated by the ALLOCATE statement - POINTER and OFFSET data types for address manipulation of scalar and aggregate data - AREA as an address base for variables of OFFSET type with lan- guage supported allocation and deallocation o LIKE attribute to allow the members of a structure to be declared in terms of an already-declared structure. o UNION attribute to declare overlaid minor structures. o TYPE attribute to allow scalars, arrays, or members of a structure to be declared in terms of already declared scalars, arrays, and structures. o A powerful set of structured program control statements. - DO statement with TO, BY, WHILE, UNTIL, and REPEAT options - LEAVE statement to transfer control out of one or more levels of containing DO-groups 3 - SELECT-WHEN-OTHERWISE group allowing CASE-like selection of a statement or statement group - IF...THEN...ELSE conditional statement - CALL statement and function reference (RETURN) - GOTO statement for transfer of control - OTHERWISE option applies to the GOTO statement o Condition Handling - ON statement to establish ON-units (for AREA, CONDITION, CON- VERSION, ENDFILE, ENDPAGE, KEY, UNDEFINEDFILE, FIXEDOVERFLOW, OVERFLOW, UNDERFLOW(1), ZERODIVIDE, STORAGE, STRINGRANGE, SUB- SCRIPTRANGE, ERROR, FINISH, ANYCONDITION, and VAXCONDITION con- ditions). - REVERT statement to cancel ON-units. - RESIGNAL statement that allows conditions to be passed to other ON-units. o Input/Output Control - OPEN and CLOSE file control statements. - READ, WRITE, DELETE, and REWRITE record-oriented I/O statements. - GET and PUT stream-oriented I/O statements (with FILE, STRING, EDIT, LIST, PAGE, and SKIP options). - ENVIRONMENT and OPTIONS clauses provide access to RMS features including a USEROPEN feature and extended record locking con- trol. o Program Structuring Statements - PROCEDURE blocks: Internal (nested) and EXTERNAL - BEGIN...END blocks, allowing local variable declaration - DO groups that provide compound statement capabilities - ENTRY statement that allows a routine to have multiple entry points 4 o Preprocessor Statements - %REPLACE statement for compile-time replacement of arithmetic, bit-, or character-string constants - %INCLUDE statement for compile-time source copying, with full library support for INCLUDE modules and default and user-specified system libraries - %DICTIONARY for CDD record extraction - %DECLARE, %ACTIVATE, %DEACTIVATE statements for declaration and control of compile-time variables - %DO...%END, %IF...%THEN...%ELSE, and %GOTO statements for com- pilation control - %PROCEDURE to define compile-time procedures - %INFORM, %WARN, %ERROR, %FATAL statements for user-generated di- agnostics - %[NO]LIST[_ALL], %[NO]LIST_DICTIONARY, %[NO] LIST_INCLUDE, %[NO]LIST_ MACHINE, and %[NO] LIST_SOURCE statements for selective list- ing control - %PAGE, %TITLE, %SBTTL statements for listing format control o Preprocessor Expressions and Built-in Functions o Built-In Functions - A full set of arithmetic functions: ABS, ADD, CEIL, DIVIDE, FLOOR, MAX, MIN, MOD, MULTIPLY, ROUND, SIGN, SUBTRACT, TRUNC - A full set of mathematical (transcendental) functions: ACOS, ASIN, ATAN, ATAND, ATANH, COS, COSD, COSH, EXP, LOG, LOG10, LOG2, SIN, SIND, SINH, SQRT, TAN, TAND, TANH - String functions: BOOL, COLLATE, COPY, EVERY, HIGH, INDEX, LENGTH, LOW, MAXLENGTH, REVERSE, SEARCH, SOME, STRING, SUBSTR, TRANS- LATE, TRIM, LTRIM, RTRIM, VERIFY - Conversion functions: BINARY, BIT, BYTE, CHARACTER, DECIMAL, DE- CODE, ENCODE, FIXED, FLOAT, RANK, UNSPEC, INT, POSINT 5 - Condition-handling functions: ONARGSLIST, ONCHAR, ONCODE, ON- FILE, ONKEY, ONSOURCE - Array-handling functions: DIMENSION, HBOUND, LBOUND, PROD, SUM, ADDREL - Storage functions: ADDR, ALLOCATION, EMPTY, NULL, OFFSET, POINTER, SIZE, BYTESIZE - Timekeeping functions: DATE, DATETIME, TIME - File Control functions: LINENO, PAGENO - Pseudovariables (functions allowed on left-hand side of an as- signment): INT, ONCHAR, ONSOURCE, PAGENO, POSINT, STRING, SUB- STR, UNSPEC - Calling mechanism support functions: DESCRIPTOR, REFERENCE, VALUE, ACTUALCOUNT, PRESENT - Picture Variable Validation function: VALID o Built-in Subroutines are provided for: - File-handling: DISPLAY, EXTEND, FLUSH, FREE, NEXT_VOLUME, RE- LEASE, REWIND, SPACEBLOCK - Condition-handling: RESIGNAL Other DEC PL/I language capabilities include: o Expressions in format lists o Replication factors for string constants o Preprocessor statements in any context Compiler Options Compile-time command qualifiers provide a variety of options: o /[NO]ANALYSIS_DATA: Causes Source Code Analyzer component infor- mation to be generated.(1) o /[NO]ALIGN: to allow for natural data alignment for RISC machine data types. 6 o /[NO]CHECK: Produce extra code to check array and string references. Options: Bounds. o /[NO]CROSS_REFERENCE: Produce an alphabetical symbol cross-reference. o /DATA: Specifies integer size and status of alignment.(2) o /[NO]DEBUG: Causes DEBUG information to be included with the ob- ject code. Options inline, traceback, symbols. o /[NO]DIAGNOSTICS: Causes Language-Sensitive Editor component in- formation to be generated.(1) o /[NO]FIXED BINARY: Sets the default size of fixed binary. Options: 31, 15. o /FLOAT: Specifies the default representation of floating-point vari- ables.(2) o /[NO]G_FLOAT: Specifies the default floating point representation. o /GRANULARITY: Specifies the smallest unit of data that can be cached in a register.(2) o /[NO]LIST: Controls the production of a listing file. o /SHOW: Selects specific listing. Options: source, CDD definitions, include files, map, statistics, trace, header, terminal, and ex- pansion. o /[NO]ERROR_LIMIT: Controls the compiler diagnostic message limit. o /VARIANT: Permits specification of compilation variants. o /[NO]MACHINE_CODE: Causes machine code to be listed with the source. o /[NO]OBJECT: Controls the production of the object file. o /[NO]OPTIMIZE: Controls optimizations performed by the compiler. Options: common_subexpressions, disjoint, inline, invariant, lo- cals_in_registers, peephole, result_incorporation. o /[NO]WARNINGS: Controls the printing of compiler warning messages. Options: noinformationals, nowarnings. 7 o /LIBRARY: Indicates the associated file is a library of source text modules specified by %INCLUDE statements. o /[NO]DESIGN: Controls the generation of design information for the Program Design Facility. Options: comments, placeholders.(1) At the end of each compilation in which messages are generated, the DEC PL/I compiler will display the number of informational, warning, and error messages. NOTES: 1. VAX PL/I only 2. DEC PL/I for OpenVMS AXP only Optimizations DEC PL/I generates efficient object code. Optimizations include: o Value propagation o Subexpression elimination o Allocation of local variables to registers o Removal of invariant computations from loops o Simplification of Boolean expressions o Extensive special case code generation o Pattern replacement in generated code o Inline expansion of procedure calls Industry PL/I Compatibility DEC PL/I provides many of those PL/I features often used by mainframe PL/I programmers. Conversion effort depends upon the individual pro- gram and the set of PL/I features used by the programmer. Well-structured programs that do not rely on system-specific or implementation-specific features convert with a minimum of effort (from no changes to a few 8 percent of the lines in the program). Programs that use implementation- specific features such as ENVIRONMENT and OPTIONS can require a larger conversion effort. Digital does not provide any special programs or other conversion aids. The user is responsible for determining the extent of any conversion effort and for providing appropriate conversion tools to convert pro- grams and data. * Unusual conversion requirements may be necessary if programs use the machine-dependent representation of data. The VAX and AXP ar- chitecture organizes bytes within an integer differently than most other vendors' hardware. This can lead to different results when UNSPEC or DEFINED operations are used to convert between BIT and FIXED BINARY data. Run-Time Library Redistribution The DEC PL/I kit may include updated Run-Time Library shareable im- ages. Digital grants the user a nonexclusive royalty-free worldwide right to reproduce and distribute the executable version of the Run- Time Library designated as PLIRTL.EXE (VAX) and DPLI$RTLSHR.EXE (Al- pha)(the "RTL's") provided that the user: o distribute the RTLs only in conjunction with and as a part of the user's software application product which is designed to operate in the OpenVMS environment; o does not use the name, logo, or trademarks of Digital or UniPrise Systems, Inc. to market the user's software application product; o includes UniPrise Systems, Inc.'s copyright notice for DEC PL/I on the user's product disk label and/or on the title page of the doc- umentation for software application product; and o agrees to indemnify, hold harmless, and defend Digital and UniPrise Systems Inc. from and against any claims or lawsuits, including at- torney's fees, that arise or result from the use or distribution of the software application product. Except as expressly provided 9 herein, Digital or UniPrise Systems Inc. grants no implied or ex- press license under any of its patents, copyrights, trade secrets, trademarks, or any license or other proprietary interest and rights. VAX PL/I Special Features As a native-mode VAX language, VAX PL/I is integrated into the VAX com- mon language environment. This integration provides VAX PL/I users with support for the VAX Interlanguage Calling Standard, access to the VAX Symbolic Debugger (including support for source-line debugging), and callable interfaces to VAX utilities and optional products (such as SORT, DEC DATATRIEVE, and Oracle CODASYL DBMS). VAX PL/I also interfaces to the DEC Language-Sensitive Editor/Source Code Analyzer. Source programs can be written and compiled using the Language-Sensitive Editor component which has built-in intelligence about the source format of PL/I programs. Language elements that support the VAX extended range and extended pre- cision floating point architectural features are as follows: o 64-bit G_floating point data type, with an 11-bit exponent and 53- bit mantissa, which provides a range of 0.56*10**-308 to 0.09*10**308 and a precision of 15 decimal digits. o 128-bit H_floating data type, with a 15-bit exponent and a 113-bit mantissa, which provides a range of 0.84*10**-4932 to 0.59*10**4932 and a precision of 33 decimal digits. VAX PL/I provides support for low-level program design, including the processing of pseudo code and the extraction of design information from comments. DEC PL/I for OpenVMS AXP Systems Special Features As a native-node language, DEC PL/I for OpenVMS AXP Systems is inte- grated into the OpenVMS common language environment. This integration 10 provides DEC PL/I users with support for Interlanguage Calling Stan- dard, access to the OpenVMS Debugger (including support for source- line debugging), and callable interfaces to utilities and optional prod- ucts (such as SORT, DEC DATATRIEVE, and Oracle CODASYL DBMS). DEC PL/I also interfaces to the DEC Language-Sensitive Editor. Source programs can be written and compiled using the Language-Sensitive Ed- itor component which has built-in intelligence about source format of PL/I programs. Language elements that support the extended range and extended pre- cision floating point architectural features: o 64-bit G_floating point data type, with an 11-bit exponent and 53- bit matissa, which provides a range of 0.56*10**-308 to 0.09*10**308 and a precision of 15 decimal digits. HARDWARE REQUIREMENTS Processors Supported by VAX PL/I: VAX: VAX 4000 Model 100, VAX 4000 Model 100A, VAX 4000 Model 105A, VAX 4000 Model 200, VAX 4000 Model 300, VAX 4000 Model 500, VAX 4000 Model 500A, VAX 4000 Model 600, VAX 4000 Model 600A, VAX 4000 Model 700A VAX 6000 Model 200 Series, VAX 6000 Model 300 Series, VAX 6000 Model 400 Series, VAX 6000 Model 500 Series, VAX 6000 Model 600 Series 11 VAX 7000 Model 600 Series, VAX 7000 Model 700 Series VAX 8200, VAX 8250, VAX 8300, VAX 8350, VAX 8500, VAX 8530, VAX 8550, VAX 8600, VAX 8650, VAX 8700, VAX 8800, VAX 8810, VAX 8820, VAX 8830, VAX 8840, VAX 8842 VAX 9000 Model 110, VAX 9000 Model 110VP, VAX 9000 Model 210, VAX 9000 Model 210VP, VAX 9000 Model 300 Series, VAX 9000 Model 400 Series, VAX 9000 Model 420, VAX 9000 Model 430, VAX 9000 Model 440 VAX 10000 Model 600 Series VAXft Model 110, VAXft Model 310, VAXft Model 410, VAXft Model 610, VAXft Model 612 VAX-11/730, VAX-11/750, VAX-11/780, VAX-11/785 MicroVAX: MicroVAX II, MicroVAX 2000, MicroVAX 3100 Model 10/10E, MicroVAX 3100 Model 20/20E, MicroVAX 3100 Model 30, MicroVAX 3100 Model 40, 12 MicroVAX 3100 Model 80, MicroVAX 3100 Model 85, MicroVAX 3100 Model 90, MicroVAX 3100 Model 95, MicroVAX 3100 Model 96, MicroVAX 3200,MicroVAX 3300, MicroVAX 3400,MicroVAX 3500, MicroVAX 3600,MicroVAX 3800, MicroVAX 3900 VAXstation: VAXstation II, VAXstation 2000, VAXstation 3100 Models 30,38,40,48,76, VAXstation 3100/GPX Models 38, 48,76, VAXstation 3100/SPX Model 38, 76, VAXstation 3200, VAXstation 3500, VAXstation 3520, VAXstation 3540 VAXstation 4000 Models 60,90,95,96, VAXstation 4000 VLC VAXserver: VAXserver 3100 Model 10/10E, VAXserver 3100 Model 20/20E, VAXserver 3300, VAXserver 3400, VAXserver 3500, VAXserver 3600, VAXserver 3800, VAXserver 3900 VAXserver 4000 Model 200, VAXserver 4000 Model 300, VAXserver 4000 Model 400, VAXserver 4000 Model 500, VAXserver 4000 Model 600 13 VAXserver 6000 Model 210, VAXserver 6000 Model 220, VAXserver 6000 Model 310, VAXserver 6000 Model 320, VAXserver 6000 Model 410, VAXserver 6000 Model 420, VAXserver 6000 Model 510, VAXserver 6000 Model 520 VAXserver 8700,VAXserver 8800, VAXserver 8810,VAXserver 8820, VAXserver 8830,VAXserver 8840 A TK50 Tape Drive is required for standalone MicroVAX 2000 and VAXs- tation 2000 systems. Processors Supported by DEC PL/I for OpenVMS AXP Systems: Alpha: DEC 2000 Models 300/500 DEC 3000 Models 300, 300L, 300X, DEC 3000 Models 400, 400S, DEC 3000 Models 500, 500S, 500X, DEC 3000 Models 600, 600S, DEC 3000 Models 700, 700LX, DEC 3000 Models 800, 800S, DEC 3000 Models 900, 900LX DEC 4000 Model 600, DEC 4000 Model 700 DEC 7000 Model 600 DEC 10000 Model 600 14 AlphaServer 8200 5/300 AlphaServer 8400 5/300 Digital 2100 Server Models A500MP, A600MP AlphaServer 2100 4/233, 5/250 AlphaServer 2000 4/233 AlphaServer 1000 4/200 AlphaServer 400 4/166, 4/266 AlphaServer 600 5/266 AlphaServer 250 4/233 AlphaServer 200 4/233, 4/166, 4/100 Disk Space Requirements (Block Cluster Size = 1) ___________________________________________________________________ TASK__________VAX_____________Alpha________________________________ Installation: 8,500 blocks 30,000 blocks (5.4 MB) (15.4 MB) Permanent: 6,500 blocks 27,500 blocks ______________(3.3_MB)________(14.0_MB)____________________________ Processors Not Supported: MicroVAX I, VAXstation I, VAXstation 8000, VAX-11/725, VAX-11/782 Processor Restrictions 15 These counts refer to the disk space required on the system disk. The sizes are approximate; actual sizes may vary depending on the user's system environment, configuration, and software options. Memory Requirements for DECwindows Support The minimum supported memory for this application running in a stan- dalone DECwindows environment with both the client and server execut- ing on that same system is 12MB. The performance and memory usage of DECwindows applications are par- ticularly sensitive to system configuration. Less memory may be re- quired on the client system (the system where the software is installed and executed) if the server (the component that displays the appli- cation) resides on another system. More memory may be required on a system with several applications running, or where it may be desir- able to improve the performance of an application. CLUSTER ENVIRONMENT This layered product is fully supported when installed on any valid and licensed VAXcluster* configuration without restrictions. The HARD- WARE REQUIREMENTS section of this product's Software Product Descrip- tion details any special hardware required by this product. * V5.x VAXcluster configurations are fully described in the VAXclus- ter Software Product Description (SPD 29.78.xx) and include CI, Eth- ernet, and Mixed Interconnect configurations. SOFTWARE REQUIREMENTS For VAX Systems: For All Systems Using Terminals (No DECwindows Interface): o OpenVMS VAX Operating System Version 5.2 - Version 6.1 For All Workstations Running VWS: o OpenVMS VAX Operating System Version 5.2 - Version 6.1 16 o OpenVMS VAX Workstation Software Version 4.4 - Version 4.5 For All Workstations Running DECwindows: o OpenVMS VAX Operating System (and necessary components of OpenVMS DECwindows) Version 5.2 - Version 6.1 For Alpha Systems: For All Systems Using Terminal (No DECwindows Interface): o OpenVMS Alpha Operating System Version 6.2 - Version 7.0 For All Workstations Running DECwindows: o OpenVMS Alpha Operating System (and necessary components of Open- VMS DECwindows) Version 6.2 - Version 7.0 OpenVMS DECwindows is part of the OpenVMS Operating System but must be installed separately. Installation of OpenVMS DECwindows gives you the option to install any or all of the following three components: o OpenVMS DECwindows Compute Server (Base kit; includes runtime sup- port) o OpenVMS DECwindows Device Support o OpenVMS DECwindows Programming Support For stand-alone execution, the following DECwindows components must be installed on the machine: o OpenVMS DECwindows Compute Server o OpenVMS DECwindows Device Support o OpenVMS DECwindows Programming Support For remote execution, the following DECwindows components must be in- stalled on the machine: Server Machine 17 o OpenVMS DECwindows Compute Server o OpenVMS DECwindows Device Support Client Machine o OpenVMS DECwindows Compute Server o OpenVMS DECwindows Programming Support OpenVMS VAX Tailoring The following OpenVMS classes are required for full functionality of this layered product: o OpenVMS Required Saveset o Programming Support o Utilities OPTIONAL SOFTWARE For VAX Systems: o DEC Language-Sensitive Editor/Source Code Analyzer Version 3.1 - Version 4.0 o VAX Performance and Coverage Analyzer Version 3.0 - Version 4.0 o CDD/Repository[1] Version 4.2 - Version 5.3 For Alpha Systems: o DEC Language-Sensitive Editor component of the DEC Language-Sensitive Editor/Source Code Analyzer Version 4.1 for OpenVMS Alpha Systems o DEC Performance and Coverage Analyzer (PCA) Version 4.1 for Open- VMS Alpha Systems ____________________ The reference to CDD/Repository refers to all CDD products: VAX CDD, VAX CDD/Plus, and CDD Repository. 18 GROWTH CONSIDERATIONS The minimum hardware/software requirements for any future version of this product may be different from the requirements for the current version. MEDIA DISTRIBUTION For VAX PL/I: 9-track 1600 BPI Magtape, TK50 Streaming Tape This product is also available as part of the OpenVMS Consolidated Soft- ware Distribution on CD-ROM. For DEC PL/I for OpenVMS Alpha Systems: Media and Documentation for this product are available on Digital CD- ROM Software Library for OpenVMS Alpha. Documentation in hardcopy for- mat can be ordered separately. ORDERING INFORMATION VAX PL/I Software License: Unlimited System Use: QL-114A*-** Software Media/Documentation: QA-114A*-** Software Documentation (Hard Copy): QA-114AA-GZ Software Product Services: QT-114A*-** DEC PL/I for OpenVMS Alpha Systems Software Licenses: Personal Use: QL-0HZAA-2B Unlimited System Use: QL-0HZ*-** Software Media/Documentation (CD-ROM): QA-03XAA-H8 Software Documentation (Hard Copy): QA-0HZAA-GZ 19 Software Product Services: QT-0HZ*-** * Denotes variant fields. For additional information on available li- censes, services, and media, refer to the appropriate price book. The above information is valid at the time of release. Please contact your local Digital office for the most up-to-date information. SOFTWARE LICENSING This software is furnished under the licensing provisions of Digital Equipment Corporation's Standard Terms and Conditions. For more information about Digital's licensing terms and policies, con- tact your local Digital office. License Terms for Printing On-Line Documentation Electronic Software documentation accompanying the Software may be printed as reasonably necessary to exersize your license to use the Software. License Management Facility Support This layered product supports the OpenVMS License Management Facil- ity. License units for this product are allocated on an Unlimited System Use and Personal Use basis. Each Personal Use license allows one identified individual to use the layered product. For more information on the License Management Facility, refer to the appropriate Operating System Software Product Description (SPD) or doc- umentation. 20 SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more in- formation, contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the pur- chase of a license for the product. This means that DIGITAL will rem- edy any nonconformance when it is reported to DIGITAL by the customer during the warranty period. The warranty period is one year. It begins when the software is in- stalled or thirty days after delivery to the end user, whichever oc- curs first and expires one year later. All warranty related support for this software will end one year after release of the subsequent version. Warranty is provided in the country of purchase. DIGITAL will provide a service location which will accept reporting (in a format prescribed by DIGITAL) of a nonconformance problem caused when using the licensed software under normal conditions as defined by the SPD. DIGITAL will remedy a nonconformance problem in the current unaltered release of the licensed software by issuing corrections information such as: cor- rection documentation, corrected code, or notice of availability of corrected code; or a restriction or bypass. The customer will have re- sponsible for the preparation and submission of the problem report to the service location. WARRANTY EXCLUSION DIGITAL DOES NOT WARRANT THAT THE SOFTWARE LICENSED TO CUSTOMER SHALL BE ERROR FREE, THAT THE SOFTWARE SHALL OPERATE WITH ANY HARDWARE AND SOFTWARE OTHER THAN AS SPECIFIED IN THIS SPD, THAT THE SOFTWARE SHALL SATISFY CUSTOMER'S OWN SPECIFIC REQUIREMENTS, OR THAT COPIES OF THE SOFTWARE OTHER THAN THOSE PROVIDED OR AUTHORIZED BY DIGITAL SHALL CON- FORM TO THIS SPD. 21 DIGITAL MAKES NO WARRANTIES WITH RESPECT TO THE FITNESS AND OPERABIL- ITY OF MODIFICATIONS NOT MADE BY DIGITAL. IF THE SOFTWARE FAILS TO FUNCTION FOR REASONS STATED ABOVE, THE CUS- TOMER WARRANTY WILL BE INVALIDATED AND ALL SERVICE CALLS WILL BE BIL- LABLE AT THE PREVAILING PER CALL RATES. This Software Warranty Addendum is effective for licensed software prod- ucts ordered in the United States after October 1988 and supersedes all prior versions. The above information is valid at time of release. Please contact your local Digital office for the most up-to-date information. [R] Oracle is a registered trademark of Oracle Corporation. [TM] Oracle CODASYL DBMS is a trademark of Oracle Corporation. [TM] The DIGITAL Logo, DATATRIEVE, DEC, DECwindows, Digital, Open- VMS, and VAX are trademarks of Digital Equipment Corporation. ©Digital Equipment Corporation 1996. All rights reserved. 22