| Previous | Contents | Index | 
This chapter explains the BASIC language exceptions for using standard 
DECwindows Motif Bindings. For more detailed information about 
programming DECwindows Motif, see the DECwindows Motif Guide to 
Application Programming.
23.1 Overview of DECwindows Motif Concepts
This section introduces DECwindows Motif concepts. DECwindows Motif is an X Window System type of operating environment. DECwindows Motif is used on a workstation, where several windows can be displayed with different applications on each window.
To program in the DECwindows Motif environment, DECwindows Motif 
bindings are used to help write programs that create and manage the 
different resources needed to control the windowing environment.
23.2 Using DECwindows Motif Bindings with BASIC
The DECwindows Motif bindings consist of constant definitions, global variable declarations, record structures, and function prototypes. The bindings include everything that is needed to do windows programming using the DECwindows Motif Application Programming Interface (API).
The BASIC implementation of the DECwindows Motif bindings allow you to write to either the C version or the non-C version of the bindings. In either case, you will want to refer to the DECwindows Motif OpenVMS User Interface before you start programming. For more detailed information about using Non-C Bindings, see DECwindows Motif for OpenVMS, Guide to Non-C Bindings.
BASIC$HELLOMOTIF.BAS, and BASIC$HELLOBURGER.BAS supplied on the kit as examples of using the BASIC language for windows programming.
A BASIC user may code to the standard C DECwindows Motif bindings with the following exceptions:
S__XmTraverseObscuredCallbackStru (33)
S_XmOperationChangedCallbackStruc (33)
S_XmDragDropFinishCallbackStruct (32)
_DXmPrintFormatStruct
_DXmPrintOptionMenuStruct
_XA_MOTIF_BINDINGS
_XA_MOTIF_WM_FRAME
_XA_MOTIF_WM_HINTS
_XA_MOTIF_WM_INFO
_XA_MOTIF_WM_MENU
_XA_MOTIF_WM_MESSAGES
_XA_MOTIF_WM_OFFSET
_XA_MWM_HINTS
_XA_MWM_INFO
_XA_MWM_MESSAGES
_XmSDEFAULT_BACKGROUND
_XmSDEFAULT_FONT
_XmSecondaryResuourceDataRec
_XmTraverseObscuredCallbackStru
_XtCheckSubclassFlag
_XtIsSubclassOf
dimension
display
font
name
pixel
screen
size
status
substitution
time
value
window
The DECW$MOTIF.BAS Motif bindings file includes the file DECW$MOTIF_DEFS.BAS, which contains data type aliases. This makes separate compilation of Motif application subroutines simpler. To separately compile a Motif application routine, add both of the following:
DECW$EXAMPLES contains two examples of DECwindows Motif applications in BASIC: BASIC$HELLOMOTIF.BAS and BASIC$MOTIFBURGER.BAS. SYS$LIBRARY:DECW$MOTIF.BAS, which contains the DECwindows Motif declarations, is required to build the programs. The steps to build and run the HELLOMOTIF example are:
      $ COPY DECW$EXAMPLES:BASIC$HELLOMOTIF.* *.*  | 
      $ UIL/MOTIF BASIC$HELLOMOTIF.UIL  | 
      $ BASIC BASIC$HELLOMOTIF $ LINK BASIC$HELLOMOTIF,SYS$INPUT/OPTIONS SYS$LIBRARY:DECW$DXMLIBSHR.EXE/SHARE SYS$LIBRARY:DECW$XMLIBSHR.EXE/SHARE SYS$LIBRARY:DECW$XTSHR.EXE/SHARE ^Z $  | 
      $ BASIC BASIC$HELLOMOTIF $ LINK BASIC$HELLOMOTIF,SYS$INPUT/OPTIONS SYS$LIBRARY:DECW$DXMLIBSHR12.EXE/SHARE SYS$LIBRARY:DECW$MRMLIBSHR12.EXE/SHARE SYS$LIBRARY:DECW$XMLIBSHR12.EXE/SHARE SYS$LIBRARY:DECW$XTLIBSHRR5.EXE/SHARE ^Z $  | 
      $ SET DISPLAY/CREATE/NODE=xxxx  | 
      $ RUN BASIC$HELLOMOTIF  | 
The .UID file must be kept in the same directory as the .EXE file when run. This program looks in the current directory for the UID file.  | 
  
All strings passed between DECwindows Motif and your program must be null terminated. For example:
      "A string" + "0"C  | 
When passing a string argument to a DECwindows Motif routine, the address of the string is required. For static strings, the address of the string can easily be obtained with the LOC function. For example:
      COMMON (c1) STRING hierarchy_file_name = 21 hierarchy_file_name = "BASIC$HELLOMOTIF.UID" + "0"C DECLARE LONG hierarchy_file_name_array(1) hierarchy_file_name_array(0) = LOC (hierarchy_file_name)  | 
Because dynamic strings are described by a descriptor, a different means is needed to get the address of the string text. The following helper function will get the address of dynamic strings as well as static strings:
      FUNCTION LONG ADDRESS_OF_STRING (STRING str_arg BY REF) OPTION TYPE=EXPLICIT, INACTIVE=SETUP END FUNCTION (LOC (str_arg))  | 
Example of passing a dynamic string to a DECwindows Motif routine:
      
DECLARE STRING temp_string 
temp_string = "A string value" + "0"C 
list_test = DXmCvtFCtoCS (ADDRESS_OF_STRING (temp_string),  & 
     byte_count, istatus) 
 | 
This appendix describes compile-time and compiler command errors, their 
causes, and the user action required to correct them.
A.1 Compile-Time Errors
BASIC diagnoses compile-time errors and does the following:
BASIC repeats this procedure for each error diagnosed during compilation. The error message format for compile-time errors is as follows:
| 
       %BASIC--<l>--<mnemonic>, <n>: <message>  | 
  
<l>
Is a letter indicating the severity of the error. The severity indicator can be one of the following:
- I ---- indicating information
 - W ---- indicating a warning
 - E ---- indicating an error
 - F ---- indicating a severe error
 <mnemonic>
Is a 3- to 9-character string that identifies the error. Error messages in this appendix are alphabetized by this mnemonic.<n>:
Is the nth error within the line's picture.<message>
Is the text of the error message.
For example:
      
Diagnostic on source line 1, listing line 1, BASIC line 10 
 
        10 DECLARE REAL BYTE A, A 
........................1.......2 
 
%BASIC--E--CONDATSPC, 1:   conflicting data type specifications 
%BASIC--E--ILLMULDEF, 2:   illegal multiple definition of name A 
 | 
This display tells you that two errors were detected on line 10; BASIC displays the line containing the error, then prints a picture showing you where the errors were detected. In the example, the picture shows a 1 under the keyword BYTE and a 2 under the second occurrence of variable A. The following line shows you:
In this case, the error message tells you that there are two contradictory data-type keywords in the statement. The next line shows you the same type of information for the second error; in this case, the compiler detected multiple declarations of variable A.
If a compilation causes an error of severity I or W, the compilation continues and produces an object module. If a compilation causes an error of severity E, the compilation continues but produces no object module. If a compilation causes an error of severity F, the compilation aborts immediately.
The following is an alphabetized list of compilation error messages:
ACTARGMUS, actual argument must be specified
Explanation: ERROR ---- A DEF function reference 
contains a null argument, for example, FNA(1,,2).
User Action: Specify all arguments when referencing a 
DEF function.
ALLOCSML, allocated area may be too small for section
Explanation: WARNING---A MAP or COMMON with the same 
name exists in more than one program module, and the first one 
encountered by the compiler is smaller than the subsequent ones.
User Action: BASIC first allocates MAP and 
COMMON areas in the main program, then MAP and COMMON areas in 
subprograms, in the order in which they were loaded. Thus, you can 
avoid this error by loading modules with the largest MAP or COMMON 
first. However, it is better practice to make MAP and COMMON areas 
equal in size.
AMBRECCOM, ambiguous RECORD component
Explanation: ERROR---The program contains an ambiguous 
RECORD component reference, for example, A::D when both A::B::D and 
A::C::D exist.
User Action: Remove the ambiguity by fully specifying 
the record component.
AMPCONILL, & continuation is illegal after %INCLUDE directive
Explanation: ERROR---A program contains a %INCLUDE 
directive followed by an ampersand continuation to another statement. 
For example, the following is illegal:
      
2300  %INCLUDE %FROM %CDD "CDD$TOP.PERSONNEL.EMPLOYEE"  & 
      GOTO 3000 
 | 
Ampersand continuation of the %INCLUDE directive is legal, however.
User Action: Recode to eliminate the line continuation 
or use backslash continuation.
AMPCONREP, & continuation is illegal after %REPORT directive
Explanation: ERROR---A program contains a %REPORT 
directive followed by an ampersand continuation to another statement. 
For example, the following is illegal:
      
2300  %REPORT %DEPENDENCY "CDD$TOP.PERSONNEL.EMPLOYEE.COURSE_FORM"  & 
      GOTO 3000 
 | 
Ampersand continuation of the %REPORT directive itself is legal, 
however.
User Action: Recode to eliminate the line continuation 
or use backslash continuation.
ANSDEFMUS, ANSI DEF must be defined before reference
Explanation: ERROR---A program compiled with the 
/ANSI_STANDARD qualifier contains a reference to a DEF function before 
the function definition.
User Action: Renumber the line containing the function 
definition so that the definition precedes all references to the 
function.
ANSILNREQ, a line number is required on first line for ANSI
Explanation: ERROR---When you specify the /ANSI 
qualifier, a program must have a line number on the first line for the 
ANSI qualifier.
User Action: Supply a line number on the first line.
ANSKEYSPC, keywords must be delimited by spaces in /ANSI
Explanation: ERROR---A program compiled with the 
/ANSI_STANDARD qualifier contains a line where two elements (two 
keywords, a keyword and a line number, or a keyword and a string 
constant) are not separated by at least one space. For example, 
PRINT"Hello".
User Action: Delimit all keywords, line numbers, and 
string constants with at least one space.
ANSLINDIG, ANSI line number may not exceed 4 digits
Explanation: ERROR---A program compiled with the 
/ANSI_STANDARD qualifier contains a line number with more than 4 
digits, that is, a number greater than 9999.
User Action: Renumber the program lines so that no 
line number exceeds 9999.
ANSLINNUM, ANSI line numbers must begin in column 1
Explanation: ERROR---A program compiled with the 
/ANSI_STANDARD qualifier contains a line number preceded by one or more 
spaces or tabs.
User Action: Remove any spaces and tabs that precede 
the line number.
ANSREQREA, ANSI requires REAL default type
Explanation: ERROR---The /ANSI_STANDARD qualifier 
conflicts with the /TYPE_DEFAULT qualifier.
User Action: Do not specify a default data type other 
than REAL. REAL is the default.
ANSREQSCA, ANSI requires SCALE 0
Explanation: ERROR---The /ANSI_STANDARD qualifier 
conflicts with the /SCALE qualifier.
User Action: Do not specify a scale factor.
ANSREQSET, ANSI requires SETUP
Explanation: ERROR---The /ANSI_STANDARD qualifier 
conflicts with the /NOSETUP qualifier.
User Action: Do not specify /NOSETUP.
ANYDIMNOT, dimension checking not allowed on ANY
Explanation: ERROR---Both a data type of ANY and a DIM 
clause were specified in an EXTERNAL statement.
User Action: Remove the DIM clause from the EXTERNAL 
statement. ANY implies either scalar or array.
ANYNOTALL, ANY not allowed on EXTERNAL PICTURE
Explanation: ERROR---An attempt was made to specify 
the ANY keyword on an EXTERNAL PICTURE declaration. This is not allowed 
because the ANY data type should be used for calling non BASIC 
procedures only.
User Action: Remove the ANY keyword from the EXTERNAL 
PICTURE declaration.
APPMISNUM, append file missing line number on first line
Explanation: ERROR---An attempt was made to append a 
source file that does not contain a line number on the first line.
User Action: Put a line number on the first line of 
the appended file.
APPNOTALL, append not allowed on programs without line numbers
Explanation: ERROR---The APPEND command cannot be used 
on a program without line numbers.
User Action: Use an include file.
ARESTYMUS, area style must be "HOLLOW", "SOLID", 
"PATTERN", or "HATCH"
Explanation: ERROR---You specified an invalid value in 
the SET AREA STYLE statement.
User Action: Specify one of the values listed in the 
message.
AREREQTHR, AREA output requires at least 3 X,Y points
Explanation: ERROR---An AREA graphic output statement 
specifies less than 3 points.
User Action: Specify at least 3 points in the AREA 
graphic output statement.
ARGERR, illegal argument for command
Explanation: ERROR---An argument was entered for a 
command that does not take an argument, or an invalid argument was 
entered for a command, for example, SCALE A or LIST A.
User Action: Reenter the command with the proper 
arguments.
ARRMUSHAV, array must have 1 dimension
Explanation: ERROR---An array with multiple dimensions 
is specified where a one-dimensional array is required.
User Action: Specify an array that has 1 dimension.
ARRMUSELE, array must have at least 4 elements
Explanation: ERROR---You specified an array with less 
than four elements. This statement requires an array with at least four 
elements in it.
User Action: Supply an array declared as having at 
least 4 elements.
ARRNAMREQ, array names only allowed
Explanation: ERROR---The type of variable name 
required must be an array name.
User Action: Change the variable name to an array name.
ARRNOTALL, array <name> not allowed in DEF declaration
Explanation: ERROR---The parameter list for a DEF 
function definition contained an entire array.
User Action: Remove the array specification. Passing 
an entire array as a parameter to a DEF function is not allowed.
ARRTOOBIG, named array <array-name> is too large
Explanation: ERROR---An array must occupy fewer than 
(2^16 ---- 1) bytes of storage.
User Action: Reduce the size of the array. If the 
array is within a record, the maximum size of the array is 65,535 bytes.
ATROVRVAR, attributes of overlaid variable <name> don't match
Explanation: ERROR---A variable name appears in more 
than one overlaid MAP; however, the attributes specified for the 
variable are inconsistent.
User Action: If the same variable name appears in 
multiple overlaid MAPs, the attributes (for example, data type) must be 
identical.
ATRPRIREF, attributes of prior reference to <name> don't match
Explanation: WARNING---A variable or array is 
referenced before the MAP that declares it. The attributes of the 
referenced variable do not match those of the declaration.
User Action: Make sure that the variable or array has 
the same attributes in both the reference and the declaration.
ATTGTRZER, graphics attribute value must be greater than zero
Explanation: ERROR---You specified a negative value 
when a positive value is required.
User Action: Supply a value greater than zero.
BADFMTSTR, invalid PRINT USING format string
Explanation: ERROR---The PRINT USING format string 
specified is not valid.
User Action: Supply a valid PRINT USING format string.
BADLOGIC, internal logic error detected
Explanation: ERROR---An internal logic error was 
detected.
User Action: This error should never occur. Please 
submit a Software Performance Report with a machine-readable copy of 
the source program.
BADNO, qualifier <name> does not accept 'NO'
Explanation: ERROR---A qualifier that does not allow a 
NO prefix was entered. For example, NODOUBLE.
User Action: Select the proper qualifier.
BADPROGNM, error in program name
Explanation: ERROR---The program name is longer than 
39 characters or contains invalid characters.
User Action: Change the program name to be less than 
or equal to 39 characters and make sure that it contains only letters, 
digits, dollar signs, and underscores.
BADVALUE, <text> is an invalid keyword value
Explanation: FATAL---The command supplied an invalid 
value for a keyword.
User Action: Supply a valid value.
BASICHLB, BASIC's HELP library is not installed on this system
Explanation: INFORMATION---A HELP command was entered 
and the BASIC HELP library was not available.
User Action: See your system manager.
BIFREQNUM, built in function requires numeric expression
Explanation: ERROR---A reference to a BASIC 
built-in function contains a string instead of a numeric expression.
User Action: Supply a numeric expression.
BIFREQSTR, built in function requires string expression
Explanation: ERROR---The program specifies a numeric 
expression for a built-in function that requires a string argument.
User Action: Supply a string expression for the 
built-in function.
BLTFUNNOT, built in function not supported
Explanation: ERROR---The program contains a reference 
to a built-in function not supported by this version of BASIC.
User Action: Remove the function reference.
BOTBOUSPE, bottom boundary must be less than the top boundary
Explanation: ERROR---In a statement that specifies a 
viewport or windowsize, you specified a bottom boundary that is greater 
than or equal to the corresponding top boundary.
User Action: Correct the bottom boundary so that it is 
less than the top boundary.
BOUCANNOT, bound cannot be specified for array
Explanation: ERROR---An EXTERNAL statement declaring a 
SUB or FUNCTION subprogram specifies bounds in an array parameter, for 
example:
      
               EXTERNAL SUB XYZ (LONG DIM(1,2,3)) 
 | 
User Action: Remove the array parameter's bound 
specifications. When declaring an external subprogram, you can specify 
only the number of dimensions for an array parameter. For example:
      
               EXTERNAL SUB XYZ (LONG DIM(,,)) 
 | 
BOUMUSTBE, bounds must be specified for array
Explanation: ERROR---The program contains an array 
declaration that does not specify the bounds (maximum subscript value). 
For example:
      
               DECLARE LONG A(,) 
 | 
      
               DECLARE LONG A(50,50) 
 | 
CANCON, can't continue
Explanation: FATAL---A CONTINUE command was typed 
after changes had been made to the source code.
User Action: After changes have been made to the 
source code, you can run the program, but you cannot continue it.
CAUNOTALL, CAUSE statement not allowed in error handler
Explanation: ERROR---A CAUSE statement is specified 
within an error handler.
User Action: Remove the CAUSE statement from the error 
handler.
CDDACCERR, CDD/Repository access error
Explanation: ERROR---CDD/Repository detected an error 
on an attempted CDD/Repository record extraction. BASIC 
displays the CDD/Repository error.
User Action: Take action based on the associated 
CDD/Repository error.
CDDACCITE, CDD/Repository error while accessing item <field-name> 
of record
Explanation: ERROR---CDD/Repository reported an error 
when accessing the field. The CDD/Repository record definition is 
corrupt, or there is an internal error in either BASIC or 
CDD/Repository.
User Action: If the problem is not in the 
CDD/Repository definition, please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
CDDACCREC, CDD/Repository error while accessing record
Explanation: ERROR---CDD/Repository reported an error 
when accessing the record. The CDD/Repository record definition is 
corrupt or there is an internal error in either BASIC or 
CDD/Repository.
User Action: If the problem is not in the 
CDD/Repository definition, please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
CDDADJBOU, adjusted bounds for dimension <number> of 
<array> to be zero based
Explanation: INFORMATION---CDD/Repository contains an 
array field with a lower bound that is not zero. BASIC adjusts 
the bound so that the array is zero based.
User Action: None.
CDDALCOFF, please submit an SPR ---- CDD/Repository inconsistent with 
allocated offset for <field-name>
Explanation: FATAL---The offset of a field within a 
BASIC RECORD differs from the offset specified by 
CDD/Repository for that record.
User Action: Please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
CDDALCSIZ, please submit an SPR ---- CDD/Repository inconsistent with 
allocated size for <field-name>
Explanation: FATAL---The amount of storage allocated 
for a field in a BASIC RECORD differs from the amount 
specified by CDD/Repository for that record.
User Action: Please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
CDDALCSPN, please submit an SPR ---- CDD/Repository inconsistent with 
allocated span for <field-name>
Explanation: FATAL---The amount of storage allocated 
by a BASIC RECORD for an array differs from the amount 
specified by CDD/Repository for that record.
User Action: Please submit a software problem report 
(SPR) with the source code of a small program this error.
CDDAMBFLD, ambiguous field name <name> for <RECORD--name>
Explanation: ERROR---More than one CDDL structure 
share the same level and the same name.
User Action: Change the CDD/Repository definition so 
that the structures have different names.
CDDATTBAS, CDD/Repository attributes for <name> are other than 
base 10
Explanation: ERROR---A field in a CDD/Repository 
definition uses the BASE keyword. This warns you that the numeric field 
is not interpreted as a base 10 number.
User Action: Remove the BASE attribute in 
CDD/Repository or avoid using the field.
CDDATTDAT, CDD/Repository data type attribute not permitted for GROUP
Explanation: ERROR---A CDD/Repository definition 
specified a data type after the CDD/Repository STRUCTURE keyword. 
BASIC translates STRUCTURE to a BASIC RECORD or GROUP 
statement. These BASIC statements do not allow data type 
attributes.
User Action: Change the CDD/Repository definition.
CDDATTDIG, DIGITS attribute of <field-name> not supported for 
datatype
Explanation: INFORMATION---The field contains a 
CDD/Repository fixed-point data type that specifies the number of 
allowed digits. This warning tells you that BASIC interprets 
the field as BYTE, WORD, LONG, or QUAD and does not support the DIGITS 
attribute for this data type.
User Action: None.
CDDATTSCA, CDD/Repository specifies SCALE for <RECORD-component>. 
Not supported.
Explanation: INFORMATION---A field in a CDD/Repository 
definition uses the SCALE keyword. This warns you that the field has an 
implied exponent.
User Action: Remove the SCALE attribute in 
CDD/Repository, or avoid using the field.
CDDATTTXT, CDD/Repository TEXT attribute for group <group-name> 
ignored
Explanation: INFORMATION---A CDD/Repository record 
definition specifies a data type of TEXT for the entire record.
User Action: None. BASIC ignores the TEXT 
attribute and substitutes the UNSPECIFIED attribute.
CDDBASNAM, CDD/Repository specified BASIC name <name> has illegal 
form
Explanation: ERROR---The BASIC name specified 
in the CDD/Repository record definition is a reserved keyword or 
contains an illegal character.
User Action: Change the invalid field name.
CDDBITFLD, field <field-name> from CDD/Repository has bit offset 
or length
Explanation: ERROR---A CDD/Repository field does not 
start on a byte boundary.
User Action: Change the bit field in CDD/Repository to 
have a length that is a multiple of 8 bits.
CDDCOLMAJ, <array-name> from CDD/Repository is a column major 
array
Explanation: ERROR---An array specified in a 
CDD/Repository definition is column-major rather than row-major. Thus, 
it is incompatible with BASIC arrays.
User Action: Change the CDD/Repository definition to 
be a row-major array.
CDDDIGERR, decimal digits of <VALUE> in CDD/Repository out of 
range for <field-name>
Explanation: ERROR---A packed numeric CDD/Repository 
definition specifies more than 31 digits.
User Action: Reduce the number of digits specified in 
the CDD/Repository definition.
CDDDIMNOT, RECORD cannot be dimensioned
Explanation: ERROR---A CDD/Repository definition is 
itself an array. This is incompatible with BASIC RECORDs, 
which can contain arrays but cannot be arrays.
User Action: None. You cannot access CDD/Repository 
definitions that are arrays.
CDDDUPREC, RECORD <name> from CDD/Repository has duplicate name
Explanation: ERROR---The CDD/Repository record name 
conflicts with a previous RECORD name. The previous RECORD name may be 
a standard BASIC RECORD or another CDD/Repository record.
User Action: Remove one of the duplicate definitions.
CDDFLDNAM, field name missing
Explanation: ERROR---The CDD/Repository definition 
contains a field that is not named.
User Action: Supply a field name for the 
CDD/Repository definition.
CDDINIIGN, initial value specified in CDD/Repository ignored for: name
Explanation: INFORMATION---The specification of an 
initial value is unsupported by BASIC.
User Action: Set the initial value of this field in 
your application program.
CDDINTONLY, % not allowed on <name> with noninteger datatype
Explanation: ERROR---The % suffix is allowed only on 
numeric data types.
User Action: Remove the % suffix from the variable 
name or change the data-type keyword.
CDDLOWBOU, lower bound omitted for dimension <number> of 
<array-name>
Explanation: ERROR---An array in a CDD/Repository 
definition does not specify a lower bound.
User Action: Check to make sure the omission is not a 
mistake. BASIC supplies a lower bound of zero and continues 
after issuing this warning.
CDDMAXDIM, <array-name> exceeds maximum dimensions
Explanation: ERROR---An array in a CDD/Repository 
definition specifies more than 32 dimensions.
User Action: Reduce the number of dimensions in the 
CDD/Repository definition.
CDDNAMKEY, <name> is a BASIC keyword
Explanation: ERROR---A CDD/Repository definition 
contains a field name that is a reserved word in BASIC.
User Action: Change the name in the CDD/Repository 
definition or supply a BASIC name clause.
CDDOCCIGN, OCCURS DEPENDING ON clause for <array-name> from 
CDD/Repository ignored
Explanation: INFORMATION---CDD/Repository contains an 
array field with a variable number of elements. BASIC creates 
an array large enough for the maximum value.
User Action: If you modify the array field, be sure 
also to change the field that contains the number of array elements.
CDDOFFERR, CDD/Repository offset error, field <field-name> 
offsets out of order
Explanation: ERROR---The CDD/Repository definition has 
been corrupted or there is an internal error in either BASIC 
or CDD/Repository.
User Action: If the problem is not in the 
CDD/Repository definition, please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
CDDPLUSERR, CDD/Repository access error
Explanation: ERROR---CDD/Repository detected an error 
while attempting to record dependency data. BASIC displays the 
CDD/Repository error.
User Action: Take action based on the associated 
CDD/Repository error.
CDDPREERR, decimal precision of <VALUE> in CDD/Repository out of 
range for <field-name>
Explanation: ERROR---The number of fractional digits 
for a packed decimal field is greater than the total number of digits 
specified for that field.
User Action: Change the number of fractional digits in 
CDD/Repository to be less than or equal to the total number of digits.
CDDRECFOR, CDD/Repository record format is not fixed
Explanation: ERROR---CDD/Repository supports both 
variable and fixed-length records. BASIC supports only 
fixed-length records.
User Action: Change the CDD/Repository record 
definition to specify fixed-length.
CDDRECNAM, record from CDD/Repository does not have a record name
Explanation: ERROR---BASIC uses the field 
name of the outermost structure to name the record, and therefore 
cannot include a CDD/Repository record that does not provide a record 
name.
User Action: Change the CDD/Repository record 
definition to provide a field name for the outermost structure of the 
record.
CDDSCAERR, decimal scale of <scale-factor> is out of range for 
<field> from CDD/Repository
Explanation: ERROR---The scale factor for a packed 
decimal CDD/Repository field is greater than the number of digits in 
the field or less than zero.
User Action: Change the scale factor in the 
CDD/Repository definition.
CDDSCAZER, scale 0 specified for CDD/Repository field <field-name>
Explanation: INFORMATION---A CDD/Repository field 
specifies no scale factor for a D_floating field, but the 
BASIC program specifies a nonzero scale factor.
User Action: Use a scale factor of zero in the 
BASIC program.
CDDSTRONLY, $ not allowed on <name> with nonstring datatype
Explanation: ERROR---The $ suffix is only allowed on 
string data types.
User Action: Remove the $ suffix from the variable 
name or change the data-type keyword.
CDDSUBGRO, substituted GROUP for <field-name>. Data type in 
CDD/Repository not supported.
Explanation: INFORMATION---The CDD/Repository 
definition specifies a data type that is not native to BASIC. 
BASIC creates a GROUP with the same name as the CDD/Repository 
field and creates variable names for the GROUP components.
User Action: None.
CDDTAGIGN, tag value ignored for <field-name> from CDD/Repository
Explanation: INFORMATION---The CDD/Repository record 
definition contains a VARIANTS OF.
User Action: None. BASIC translates the 
VARIANTS OF as if it were a regular variant; however, the tag value is 
ignored.
CDDUNSDAT, data type specified in CDD/Repository for <field-name> 
not supported
Explanation: ERROR---The data type specified for a 
field is not supported by BASIC.
User Action: Change the data type in the 
CDD/Repository record definition.
CDDUPPBOU, upper bound omitted for dimension <number> of 
<array-name>
Explanation: ERROR---An array in a CDD/Repository 
definition does not specify an upper bound.
User Action: Specify an upper bound in the 
CDD/Repository definition.
CDDVARFLD, field <name> from CDD/Repository has variable offset 
or length
Explanation: ERROR---A CDD/Repository field can be 
either variable or fixed-length. BASIC supports only 
fixed-length fields.
User Action: Change the CDD/Repository definition.
CHAEXPMUS, channel expression must be numeric
Explanation: ERROR---The program contains a nonnumeric 
channel expression, for example, PUT #A$
User Action: Change the channel expression to be 
numeric.
CHALINCLA, CHAIN does not support line number clause
Explanation: ERROR---A CHAIN statement contains a LINE 
keyword and a line number argument.
User Action: Remove the LINE keyword and the line 
number argument.
CHANGES, unsaved change has been made, Ctrl/Z or EXIT to exit
Explanation: WARNING---A BASIC source program 
in memory has been modified, and an EXIT command or Ctrl/Z has been 
typed. BASIC signals the error notifying you that if you exit 
from the compiler, the program modifications will be lost.
User Action: If you want to save the program, type 
SAVE. If you do not want to save the program, type EXIT or Ctrl/Z.
CHANOTALL, CHANGES not allowed on primary key
Explanation: ERROR---The PRIMARY KEY clause in an OPEN 
statement specifies CHANGES.
User Action: Remove the CHANGES keyword; you cannot 
change the value of a primary key.
CHASTAAMB, CHANGE statement is ambiguous
Explanation: ERROR---A string variable and a numeric 
array have the same name in a CHANGE statement.
User Action: Change the name of the string variable or 
the numeric array.
CLIPMUSBE, clipping must be set to "ON" or "OFF"
Explanation: ERROR---You specified an invalid value in 
the SET CLIP statement.
User Action: Specify one of the values listed in the 
message.
CLOSEIN, error closing <file-name> as input
Explanation: ERROR---An error was detected while 
closing an input file.
User Action: Take corrective action based on the 
associated message.
CLOSEOUT, error closing <file-name> as output
Explanation: ERROR---An error was detected while 
closing an output file.
User Action: Take corrective action based on the 
associated message.
CMDNOTALL, command not allowed on programs without line numbers
Explanation: ERROR---A command that cannot be used on 
a program without line numbers has been used on a program without line 
numbers.
User Action: Do not use this command on programs 
without line numbers.
CODLENEST, internal code length estimate error. Submit an SPR
Explanation: FATAL---BASIC has incorrectly 
estimated the size of the generated code for your program.
User Action: Submit a software problem report (SPR) 
with the program that caused the error. (You can often work around this 
error by making a simple change to your code.)
COLOUTRAN, color intensities must be in the range 0.0 to 1.0
Explanation: ERROR---The value specified for color 
intensity is either less than 0.0 or greater than 1.0.
User Action: Supply a value from 0.0 to 1.0.
COMMAPALI, variable <name> not aligned in COMMON/MAP <name>
Explanation: INFORMATION---In a COMMON or MAP, the 
total storage preceding a REAL, WORD, LONG, or QUAD numeric variable is 
an odd number of bytes.
User Action: None. In BASIC, numeric data can 
start on any byte boundary.
COMMAPNEQ, COMMON/MAP area sizes are not equal for section
Explanation: WARNING---A MAP or COMMON with the same 
name exists in more than one program module, but the size of the areas 
differs.
User Action: Make the size of the COMMON or MAP areas 
equal in size in all modules.
COMMAPOVF, COMMON/MAP <name> is too large
Explanation: ERROR---The program contains a MAP or 
COMMON longer than (2^31 ---- 1) longwords.
User Action: Reduce the length of the COMMON or MAP.
CONCOMSYN, conditional compilation cannot be used with /SYNTAX
Explanation: FATAL---The /SYNTAX_CHECKING qualifier is 
in effect when a program line containing the %IF, %THEN, %ELSE, or %END 
%IF lexical directive was entered.
User Action: Turn off syntax checking before entering 
a program line containing the %IF, %THEN, %ELSE, or %END %IF lexical 
directive.
CONDATSPC, conflicting data type specifications
Explanation: ERROR---The program contains a 
declarative statement containing two or more consecutive and 
contradictory data-type keywords, for example, DECLARE REAL BYTE.
User Action: Remove one of the data-type keywords or 
make sure that the keywords refer to the same generic data type. For 
example, DECLARE REAL SINGLE is valid.
CONEXPREQ, constant expression required
Explanation: ERROR---A statement specifies a variable, 
built-in function reference or exponentiation where a constant is 
required.
User Action: Supply an expression containing only 
literals or declared constants or remove the exponentiation operation.
CONTARNOT, CONTINUE target not legal in detached error handlers
Explanation: ERROR---A CONTINUE statement within a 
detached WHEN block error handler contains a target.
User Action: Remove the target line number or label 
from the CONTINUE statement or use an attached error handler.
CONIS_INC, constant is inconsistent with the type of <name>
Explanation: ERROR---A DECLARE CONSTANT statement 
specifies a value that is inconsistent with the data type of the 
constant, for example, a BYTE value specified for a REAL constant.
User Action: Change the declaration so that the data 
type of the value matches that of the constant.
CONIS_NEE, <item> requires conditional expression
Explanation: ERROR---A CASE or IF keyword is 
immediately followed by a floating-point or string expression.
User Action: Supply a conditional expression 
(relational, logical, or integer).
CONLFTSID, constant <name> not allowed on left side of assignment
Explanation: ERROR---The program tries to assign a 
value to a user-defined constant.
User Action: Remove the assignment statement; once you 
have assigned a value to a declared constant, you cannot change it.
CONNOTALL, constant <name> not allowed in assignment context
Explanation: ERROR---The program tries to assign a 
value to a user-defined constant.
User Action: Remove the assignment statement; once you 
have assigned a value to a declared constant, you cannot change it.
COOMUSBE, coordinates must be within NDC space (0.0 to 1.0)
Explanation: ERROR---The value of a coordinate is 
either less than 0.0 or greater than 1.0.
User Action: Supply a value from 0.0 to 1.0.
CORSTAFRA, corrupted stack frame
Explanation: ERROR---An immediate mode statement was 
entered after a STOP statement was executed in the VAX BASIC 
Environment and something corrupted the stack.
User Action: Check program logic to make sure that all 
array references are within array bounds. This error can also be caused 
by loading non BASIC object modules in the VAX BASIC Environment.
COUONLALO, COUNT clause only allowed with array LIST clause
Explanation: ERROR---A COUNT clause was found on a SET 
INITIAL CHOICE statement that contains a LIST clause that does not 
contain a string array.
User Action: Remove the COUNT clause or use the array 
form of the LIST clause.
COUVALCAN, COUNT value cannot be greater than array size
Explanation: ERROR---In the COUNT clause, you 
specified a count that is larger than the size of the array that you 
supplied.
User Action: Change either the COUNT value or the size 
of the array so that COUNT is less than or equal to the number of 
elements in the array.
DATTYPEXP, data type required for variable <name> with /EXPLICIT
Explanation: ERROR---A program compiled with the 
/TYPE=EXPLICIT qualifier declares a variable without specifying a data 
type.
User Action: Supply a data-type keyword for the 
variable or compile the program without the /TYPE=EXPLICIT qualifier.
DATTYPNOT, data type keyword not allowed in SUB statement
Explanation: ERROR---A SUB statement contains a 
data-type keyword between the subprogram name and the parameter list.
User Action: Remove the data-type keyword. In a SUB 
statement, data-type keywords can appear only within the parameter list.
DATTYPREQ, data type required in EXTERNAL CONSTANT declaration
Explanation: ERROR---An EXTERNAL CONSTANT statement 
has no data-type keyword.
User Action: Supply a data-type keyword to specify the 
data type of the external constant.
DECIMERR, DECIMAL overflow
Explanation: WARNING---The program contains a DECIMAL 
expression whose value is outside the valid range.
User Action: Reduce the value of the DECIMAL 
expression.
DECLEXSYN, DECLARED lexical function syntax error
Explanation: ERROR---The syntax of the %DECLARED 
lexical function is specified incorrectly.
User Action: Supply the correct syntax.
DECPREOUT, DECIMAL precision specification out of range
Explanation: ERROR---In the declaration for a packed 
decimal variable or constant, the number of digits to the right of the 
decimal point is greater than the total number of digits specified, or 
greater than 31.
User Action: Change the declaration so that the total 
number of digits specified is less than 31, and the number of digits to 
the right of the decimal point is less than or equal to the total 
number of digits.
DECSIZOUT, DECIMAL size specification out of range
Explanation: ERROR---The declaration for a packed 
decimal variable or variable specifies more than 31 digits.
User Action: Change the declaration to specify 31 or 
fewer digits.
DEFEXPCOM, expression with DEF* too complex, moving <name> 
invocation
Explanation: WARNING---A DEF* is being invoked from 
within a complex expression. To simplify the expression, the compiler 
will evaluate the DEF*(s) first. (Alpha BASIC only.)
User Action: Rewrite statement into simpler 
expressions.
DEFINVNOT, DEF invocation not allowed in assignment context
Explanation: ERROR---A DEF function invocation 
(including a parameter list) appears on the left side of an assignment 
statement.
User Action: Remove the assignment statement. You 
cannot assign values to a function invocation.
DEFMODNOT, DEF <name> mode not as declared
Explanation: ERROR---The specified data type in a 
function declaration disagrees with the data type specified in the 
function definition.
User Action: Make the data-type specifications match 
in both the function declaration and the function definition.
DEFNOTDEF, DEF <name> not defined
Explanation: ERROR---The program contains a reference 
to a nonexistent user-defined function.
User Action: Define the function in a DEF statement.
DEFNOTWHE, DEF not allowed in WHEN block or handler
Explanation: ERROR---A DEF function definition is not 
allowed in a WHEN block or its associated handler.
User Action: Remove the DEF function definition from 
within the WHEN block or handler.
DEFRESREF, DEF <name> result reference illegal in this context
Explanation: ERROR---The program attempts to assign a 
value to a DEF name outside the DEF block.
User Action: Remove the assignment statement. You 
cannot assign a value to a DEF outside of the DEF block.
DEFSIZNOT, DEF <name> decimal size not as declared
Explanation: ERROR---The DECIMAL(d,s) size specified 
in the DEF statement does not match the DECIMAL(d,s) used in the 
associated DECLARE DEF statement.
User Action: Make the DECIMAL size specification agree 
in both the DECLARE DEF and DEF statements.
DEFSTAPAR, DEF* formal <formal-name> inconsistent with usage 
outside DEF*
Explanation: ERROR---A DEF* formal parameter has the 
same name as a program variable, but different attributes.
User Action: You should not use the same names for 
DEF* parameters or program variables. If you do, you must ensure that 
they have the same data type and size.
DEFSTRPAR, DEF string parameter is illegal in MAP DYNAMIC or REMAP
Explanation: ERROR---You cannot use a static string 
that is a parameter declared in a DEF or DEF* function as the storage 
area in a MAP DYNAMIC or REMAP statement.
User Action: Change the storage area specification in 
the MAP DYNAMIC or REMAP statement to use either a MAP name or a static 
string variable that is not a parameter to the DEF or DEF* function.
DELETE, ignoring <item>
Explanation: ERROR---The program contains a syntax 
error. The compiler tries to recover from the error by ignoring an 
operator or separator in the source line. For example, DIM A(3, ) is a 
syntax error, but BASIC continues the compilation by ignoring 
the comma. The compilation continues only in order to discover other 
errors; no object module is produced.
User Action: Correct the syntax error in the displayed 
line.
DEPNOTANS, /DEPENDENCY_DATA qualifier not allowed with /ANSI
Explanation: ERROR---The /DEPENDENCY_DATA qualifier 
conflicts with the /ANSI_STANDARD qualifier.
User Action: Specify either the /DEPENDENCY_DATA 
qualifier or the /ANSI_STANDARD qualifier, but not both.
DESCOMABORT, /DESIGN=COMMENT processing has been aborted due to an 
internal error---please submit an SPR
Explanation: INFORMATION---The compiler was unable to 
process comment information due to an internal error.
User Action: Please submit a software problem report 
(SPR) with the source code of a small program that produces the error.
DESCOMERR, error in processing design information
Explanation: WARNING---The design information was 
syntactically incorrect.
User Action: You should respecify the design 
information and compile the program again.
DESIGNTOOOLD, /DESIGN=COMMENT processing routines are too old for the 
compiler
Explanation: WARNING---The compiler encountered 
obsolete routines.
User Action: Install a new version of Compaq Language 
Sensitive Editor for OpenVMS.
DESOUTRAN, destination out of range
Explanation: FATAL---The branch destination in an ON 
GOSUB statement is greater than 32,767 bytes away from the statement.
User Action: Reduce the distance between the 
destination and the statement.
DIMOUTRAN, dimension is out of range
Explanation: ERROR---The program contains the 
declaration of an array that specifies a negative number as a dimension.
User Action: Change the dimension to a positive number.
DIMLSSZERO, dimension must be greater than zero
Explanation: ERROR---The number specified for a 
dimension must be greater than zero.
User Action: Change the number to be greater than zero.
DIMTOOBIG, dimension for array <name> must be between 1 and 
<number>
Explanation: ERROR---The number of the dimension 
specified is greater than the number of dimensions in the array.
User Action: Change the dimension number to be less 
than or equal to the number of dimensions in the array.
DIRMUSTBE, directive must be only item on line
Explanation: ERROR---The program contains a compiler 
directive that is not the only item on the line.
User Action: Place the directive on its own line.
DIRNOTIMM, directive not valid in immediate mode
Explanation: ERROR---A compiler directive was typed in 
the VAX BASIC Environment.
User Action: None. Compiler directives are invalid in 
immediate mode.
DIVBY_ZER, division by zero
Explanation: WARNING---The value of a number divided 
by zero is indeterminate.
User Action: Change the expression so that no 
expression is divided by the constant zero.
DRAWITREQ, DRAW WITH clause requires 4X4 matrix
Explanation: ERROR---A user matrix is specified in a 
DRAW statement WITH clause where a two-dimensional matrix with lower 
bounds 0 and upper bounds 4 in both dimensions is required.
User Action: Declare the matrix to be a 
two-dimensional matrix with lower bounds 0 and upper bounds 4 in both 
dimensions.
DUPCLASPE, duplicate clause specified
Explanation: ERROR---A duplicate clause was found on a 
SET INITIAL statement or a graphics input statement.
User Action: Remove the duplicate clause.
DUPLINNOT, duplicate line numbers not ANSI
Explanation: ERROR---A program compiled with the 
/ANSI_STANDARD qualifier from the DCL command level, or called into the 
VAX BASIC Environment with the OLD command while the /ANSI_STANDARD 
qualifier is in effect, contains two identical line numbers.
User Action: Remove one instance of the duplicate line 
number. Even if you compile the program without the /ANSI_STANDARD, 
BASIC will ignore all statements connected with the first 
instance of the duplicate line number before compiling the program.
DUPLNFND, duplicate line number <number> found
Explanation: INFORMATION or WARNING
Explanation: INFORMATION---A line number in an include 
file is the same as a line number in the main source file.
Explanation: WARNING---There are two lines in the main 
source file with the same line number. BASIC keeps the second 
occurrence of the line number.
User Action: Correct the source by changing one of the 
line numbers to an unused number.
DYNATTONL, DYNAMIC attribute only valid for MAP areas
Explanation: ERROR---A COMMON keyword is followed by 
the DYNAMIC keyword.
User Action: Remove the DYNAMIC keyword. The DYNAMIC 
attribute is valid only for MAP areas.
DYNSTRINH, dynamic string variable <name> inhibits optimization
Explanation: INFORMATION---This error is reported only 
when the /NOSETUP qualifier is in effect. The program contains a 
dynamic string variable. This prevents optimization of the 
compiler-generated code.
User Action: Place the string variable in a COMMON 
keyword or MAP area.
ELENOALGN, Elements within array <array-name> are not naturally 
aligned.
Explanation: WARNING---Identifies record arrays that 
may not be naturally aligned because the size of each record element is 
not a multiple of the record's natural alignment. This error is 
reported only when the /WARNING=ALIGNMENT qualifier is in effect.
User Action: Modify the size of the record to be a 
multiple of the record's natural alignment.
ELSIMPCON, ELSE appears in improper context, ignored
Explanation: ERROR---The program contains an ELSE 
clause that either is not preceded by an IF statement or that appears 
after an IF has been terminated with a line number or END IF.
User Action: Remove either the ELSE clause or the 
terminating line number or END IF.
EMPTYOBJ, Empty object file due to error
Explanation: INFORMATION---The compiler has detected 
errors and therefore did not produce an object file.
User Action: The errors must be corrected before the 
compiler will produce an object file.
ENDIMPCON, END IF appears in improper context, ignored
Explanation: ERROR---The program contains an END IF 
statement that either is not preceded by an IF statement or occurs 
after an IF has been terminated by a line number.
User Action: Supply an IF statement or remove the 
terminating line number.
ENDSTAREQ, END statement required in ANSI
Explanation: INFORMATION---A program compiled with the 
/ANSI_STANDARD qualifier does not contain an END statement.
User Action: Include an END statement as the last 
statement in the program. ANSI Minimal BASIC requires an END statement.
ENTARRFIE, entire array field of virtual record cannot be passed
Explanation: ERROR---The program attempts to pass an 
entire array as a parameter to a subprogram when:
ENTARRNOT, entire array not allowed in this context
Explanation: ERROR---The program specifies an entire 
array in a context that permits only array elements, for example, in a 
PRINT statement.
User Action: Remove the reference to the entire array.
ENTGRONOT, entire GROUP or RECORD not allowed in this context
Explanation: ERROR---The program specifies an entire 
GROUP or RECORD in a context that permits only GROUP or RECORD 
components, for example, PRINT ABC::XYZ where XYZ is a GROUP.
User Action: Remove the reference to the entire GROUP 
or RECORD.
ENTVIRARR, entire virtual array cannot be a parameter
Explanation: ERROR---The program attempts to pass an 
entire virtual array as a parameter.
User Action: None. You cannot pass an entire virtual 
array as a parameter.
EOLNOTTER, End of line does not terminate IFs due to active blocks
Explanation: ERROR---A THEN or ELSE clause contains a 
loop block, and a line number terminates the if-then-else before the 
end of the loop block.
User Action: Make sure that any loop is entirely 
contained in the THEN or ELSE clause.
ERLNOTALL, ERL statement not allowed in programs without line numbers
Explanation: ERROR---An ERL statement has been found 
in a program without line numbers.
User Action: Remove the ERL statement.
ERRACCLIB, error accessing module <mod-name> in text library 
<text-lib-name>
Explanation: ERROR---BASIC found an 
unexpected LIBRARIAN error while trying to %INCLUDE a text library 
module. This error message is followed by a specific LIBRARIAN (LBR) 
message.
User Action: Take appropriate action based on the 
associated LBR message.
ERRCLOLIB, error closing text library <text-lib-name>
Explanation: ERROR---The text library specified in a 
%INCLUDE directive could not be closed. This error message is followed 
by the specific LIBRARIAN (LBR) error.
User Action: Take appropriate action based on the 
associated LBR message.
ERROPEFIL, error opening file
Explanation: ERROR---The file specified in a %INCLUDE 
directive could not be opened. This error message is followed by the 
specific RMS error.
User Action: Take appropriate action based on the 
associated RMS error.
ERROPELIB, error opening text library <text-lib-name>
Explanation: ERROR---The text library specified in a 
%INCLUDE directive could not be opened. This error message is followed 
by the specific LIBRARIAN (LBR) error.
User Action: Take appropriate action based on the 
associated LBR message.
ERRREADFIL, error reading file <file_name>
Explanation: ERROR---the compiler encountered problems 
while reading either a BASIC source file or a CDD audit file (as 
specified using the /AUDIT qualifier).
User Action: Examine the secondary message that 
follows this message to find out what went wrong, then take the 
appropriate action.
ERRRECCOM, erroneous RECORD component
Explanation: ERROR---The program contains an erroneous 
record component, for example, specifying A::B when RECORD A has no 
component named B.
User Action: Remove the erroneous reference.
EXEDIMILL, executable DIMENSION illegal for static array
Explanation: ERROR---A DIMENSION statement names an 
array already declared with a DECLARE, COMMON, MAP, or RECORD 
statement, or one that was declared statically in a previous DIMENSION 
statement.
User Action: Remove the executable DIMENSION statement 
or originally declare the array as executable in a DIMENSION statement.
EXPDECREQ, explicit declaration of <name> required
Explanation: ERROR---The program is compiled with the 
/TYPE:EXPLICIT qualifier in effect, and the program references a 
variable, constant, function, or subprogram name that is not explicitly 
declared.
User Action: Explicitly declare the variable, 
constant, function, or subprogram.
EXPIFDIR, expecting IF directive
Explanation: ERROR---The program contains a %END that 
is not immediately followed by a %IF.
User Action: Supply a %IF immediately following the 
%END.
EXPNOTALL, expression not allowed in this context
Explanation: ERROR---The program contains an 
expression in a context that allows only simple variables, array 
elements, or entire arrays, for example, in FIELD and MOVE statements.
User Action: Remove the expression.
EXPNOTRES, expression does not contribute to result of string 
concatenation
Explanation: INFORMATION---The compiler has detected 
an expression that is not needed in determining a result.
User Action: Review the program to determine if the 
expression can be eliminated. You may want to remove the expression if 
it is determined to be unnecessary.
EXPTOOCOM, expression too complicated
Explanation: ERROR---The program contains an 
expression or statement too complicated to compile. This message can 
occur whenever BASIC is unable to allocate sufficient 
registers.
User Action: Recode as required; for example, rewrite 
the statement as two or more less complicated statements.
EXPUNAOPE, expecting unary operator or legal lexical operand
Explanation: ERROR---A compiler directive contains an 
invalid lexical expression, for example, %IF *3% %THEN.
User Action: Correct the lexical expression.
EXTELSFOU, extra ELSE directive found
Explanation: ERROR---The program contains a %ELSE 
directive that is not matched with a %IF directive.
User Action: Make sure that each %ELSE is preceded by 
a %IF, and that each %IF contains no more than one %ELSE clause.
EXTENDIF, extra END IF directive found
Explanation: ERROR---A program unit contains a %END 
%IF without a preceding %IF directive.
User Action: Supply a %IF for the %END %IF.
EXTLEFPAR, extra left parenthesis in expression
Explanation: ERROR---A compiler directive contains a 
lexical expression with an extra left parenthesis.
User Action: Remove the extra parenthesis.
EXTNAMTOO, EXTERNAL name too long, truncating to <new--name>
Explanation: WARNING---An EXTERNAL statement names a 
symbol longer than 31 characters.
User Action: Shorten the symbol name to 31 characters 
or less.
EXTRIGPAR, extra right parenthesis in expression.
Explanation: ERROR---A compiler directive contains a 
lexical expression with an extra right parenthesis.
User Action: Remove the extra parenthesis.
EXTSTRVAR, EXTERNAL STRING variables not supported
Explanation: ERROR---The program contains an EXTERNAL 
statement that specifies an external string variable.
User Action: Remove or change the EXTERNAL statement. 
BASIC does not support external string variables.
FEANOTANS, language feature not ANSI
Explanation: INFORMATION---A program compiled with the 
/ANSI_STANDARD qualifier contains a BASIC feature (such as a 
long variable name or a string array) that does not conform to the ANSI 
Minimal BASIC Standard. (See Chapter 6 for more information about 
the ANSI Minimal Standard.)
User Action: Although BASIC allows you to run 
programs with non-ANSI language features, you must remove these 
features if you want your program to be transportable to other ANSI 
Minimal BASIC compilers.
FEANOTAVA, language feature not available in Alpha BASIC
Explanation: Feature is not currently available in 
Alpha BASIC.
User Action: Rewrite code to work around unavailable 
feature.
FIEVALONL, FIELD valid only for dynamic string variables
Explanation: ERROR---A FIELD statement contains a 
numeric or fixed-length string variable.
User Action: Remove the numeric or fixed-length string 
variable. Only dynamic string variables are valid in FIELD statements.
FILACCERR, file access error for INCLUDE directive <file-name>
Explanation: ERROR---The file named in the %INCLUDE 
directive was correctly opened but could not be read for some reason, 
for example, the disk drive was switched off line.
User Action: Take action based on the associated RMS 
error messages.
FILEWRITE, <prog--name> written to file: <file-name>
Explanation: INFORMATION---The specified program name 
has been saved in file-name.
User Action: None.
FILNOTALL, FILL not allowed in MAP DYNAMIC
Explanation: ERROR---A MAP DYNAMIC statement contains 
a FILL item.
User Action: Remove the FILL item.
FILNOTDEL, error deleting <file-name>
Explanation: ERROR---An error was detected in 
attempting to delete a file.
User Action: Supply a valid file specification, or 
take corrective action based on the associated message.
FILTOOBIG, FILL number <n> in overlay <m> of MAP 
<name> too big
Explanation: ERROR---A FILL string length or repeat 
count caused the compiler to try to allocate more than 2^31 longwords 
of storage.
User Action: Check the specified MAP statement and 
change the FILL string length or repeat count.
FLDNOALGN, FIELD <field-name> within RECORD <record_name> 
is not naturally aligned.
Explanation: WARNING---Identifies a field within a 
record that was found not to be naturally aligned. This error is 
reported only when the /WARNING=ALIGNMENT qualifier is in effect.
User Action: Modify the record so that all fields are 
naturally aligned.
FLOCVTILL, floating CVT valid only for SINGLE and DOUBLE
Explanation: ERROR---A CVTF$ or CVT$F function names a 
GFLOAT, HFLOAT, SFLOAT, TFLOAT, or XFLOAT value as an argument, or the 
default real size is one of these.
User Action: Use a SINGLE argument rather than SFLOAT. 
Use a DOUBLE argument rather than GFLOAT, TFLOAT, HFLOAT, or XFLOAT.
FLOPOIERR, floating point error or overflow
Explanation: WARNING---The program contains a numeric 
expression whose value is outside the valid range for the default 
floating-point data type.
User Action: Modify the expression so that its value 
is within the allowable range or select as the default REAL size a 
floating-point data type that has a greater range.
FNEWHINOT, exit from DEF while not in DEF
Explanation: ERROR---An FNEXIT or EXIT DEF statement 
has no preceding DEF statement.
User Action: Define the function before inserting an 
FNEXIT or EXIT DEF statement.
FNEWITDEF, end of DEF seen while not in DEF
Explanation: ERROR---An FNEND or END DEF statement has 
no preceding DEF statement.
User Action: Define the function before inserting an 
FNEND statement or delete the FNEND statement.
FORFEEMUS, FORM FEED must appear at end of line
Explanation: INFORMATION---A form-feed character is 
followed by other characters in the same line.
User Action: Remove the characters following the form 
feed. A form feed must be the last or only character on a line.
FORPARMUS, formal parameter must be supplied for <name>
Explanation: ERROR---The declaration of a DEF, SUB, or 
FUNCTION routine contains the parentheses for a parameter list but no 
parameters.
User Action: Supply a parameter list or remove the 
parentheses.
FORSTRPAR, formal string parameters may not be FIELDed
Explanation: ERROR---A variable name appears both in a 
subprogram formal parameter list and a FIELD statement in the 
subprogram.
User Action: Remove the variable from the FIELD 
statement or the parameter list.
FOUENDWIT, found end of <block> without matching <item>
Explanation: ERROR---The program contains an END 
SELECT, END DEF, END FUNCTION, FUNCTIONEND, SUBEND, END SUB, or END IF 
without a matching SELECT, DEF, SUB, FUNCTION, or IF.
User Action: Supply a SELECT, DEF, FUNCTION, SUB, or 
IF to match the END <block> statement, or remove the erroneous 
END statement.
FOUND, found <item> when expecting <item>
Explanation: ERROR---The program contains a syntax 
error. BASIC displays the item where the error was detected, 
then displays one or more items that make more sense in that context. 
The compilation continues so that other errors can be detected. The 
actual program line remains unchanged and no object file is produced.
User Action: Examine the line carefully to discover 
the error. Change the program line to correct the syntax error.
FOUNXTWIT, found NEXT without matching WHILE or UNTIL
Explanation: ERROR---The program contains a NEXT 
statement without a corresponding WHILE or UNTIL statement.
User Action: Supply a WHILE or UNTIL statement or 
remove the erroneous NEXT statement.
FOUWITMAT, found NEXT without matching FOR
Explanation: ERROR---The program contains a NEXT 
<control--variable> statement without a matching FOR 
<control--variable> statement.
User Action: Supply a FOR statement or remove the 
erroneous NEXT statement.
FUNINVNOT, function invocation not allowed in assignment context
Explanation: ERROR---An external function invocation 
(including a parameter list) appears on the left side of an assignment 
statement.
User Action: Remove the assignment statement. You 
cannot assign values to a function invocation.
FUNNESTOO, function nested too deep
Explanation: ERROR---The program contains too many 
levels of function definitions within function definitions.
User Action: Reduce the number of nested functions.
FUNWHINOT, exit from FUNCTION while not in FUNCTION
Explanation: ERROR---An EXIT FUNCTION or FUNCTIONEXIT 
statement was found in a module that is not a FUNCTION subprogram.
User Action: Remove the EXIT FUNCTION or FUNCTIONEXIT 
statement.
GRAARRMUS, graphics array must be integer or real
Explanation: ERROR---The specified array has a data 
type other than an integer or real data type.
User Action: Declare the array with an integer or real 
data type.
HANNOTDEF, HANDLER not allowed in DEF
Explanation: ERROR---A HANDLER definition has been 
found within a DEF function definition.
User Action: Remove the HANDLER definition from inside 
the DEF function definition.
HANNOTFOU, error handler <name> not found
Explanation: ERROR---You did not define the HANDLER 
you referenced in a WHEN statement.
User Action: Define the HANDLER you reference in the 
WHEN statement.
HANNOTWHE, HANDLER not allowed in a WHEN block or handler
Explanation: ERROR---A detached HANDLER definition was 
found in a WHEN block protected region or associated handler.
User Action: Remove the HANDLER definition from within 
all WHEN block protected regions and associated handlers.
HANWHINOT, exit from HANDLER while not in HANDLER
Explanation: ERROR---An EXIT HANDLER statement was 
found while not in a HANDLER block.
User Action: Remove the EXIT HANDLER statement.
HFLOATNOTS, HFLOAT is not supported
Explanation: ERROR---HFLOAT floating-point data type 
is not supported by Alpha BASIC.
User Action: Remove the use of HFLOAT floating-point 
data type, substituting either GFLOAT, TFLOAT, or XFLOAT as appropriate.
HORJUSMUS, horizontal justification must be "LEFT", 
"CENTER", "RIGHT" or "NORMAL"
Explanation: ERROR---You specified an invalid value 
for the horizontal component of the SET TEXT JUSTIFY statement.
User Action: Specify one of the values listed in the 
message.
IDEMAYAPP, IDENT directive may appear only once per module
Explanation: WARNING---The program contains more than 
one %IDENT compiler directive.
User Action: Remove all but one %IDENT directive.
IDENAMTOO, IDENT directive name is too long
Explanation: WARNING---The quoted string in a %IDENT 
directive is too long.
User Action: Reduce the length of the string. The 
maximum length is 31 characters.
IF_EXPMUS, IF directive expression must be terminated by THEN directive
Explanation: ERROR---A %IF directive contains a %ELSE 
clause with no intervening %THEN clause.
User Action: Insert a %THEN clause.
IF_IN_INC, IF directive in INCLUDE directive needs END IF directive in 
same file
Explanation: ERROR---A %INCLUDE file contains a %IF 
but no %END %IF.
User Action: Supply a %END %IF for the %INCLUDE file.
IF_NOTTER, IF statement not terminated
Explanation: ERROR---The program contains an 
if-then-else statement within a block (for example, a FOR-NEXT, 
SELECT-CASE, or WHILE block) and the end of the block was reached 
before the if-then-else statement was terminated.
User Action: Check program logic to be sure 
if-then-else statements are terminated with a line number or an END IF 
statement before the end of the block is reached.
ILLALLCLA, illegal ALLOW clause <clause>
Explanation: ERROR---The program contains an ALLOW 
clause on a GET statement, and the file was not opened with the UNLOCK 
EXPLICIT clause.
User Action: Either remove the ALLOW clause from the 
GET statement or use the UNLOCK EXPLICIT clause in the OPEN statement.
ILLARGBP2, illegal argument count for BASIC-PLUS-2
Explanation: INFORMATION---The program contains a SUB, 
DEF, or EXTERNAL FUNCTION reference with more than 32 parameters. This 
error is reported only when the /FLAG:BP2COMPATIBILITY qualifier is in 
effect.
User Action: If the program must run under both 
BASIC and PDP--11 BASIC-PLUS-2, the function must have 32 or 
fewer parameters.
ILLARGPAS, illegal argument passing mechanism
Explanation: ERROR---The program specifies an invalid 
argument-passing mechanism, for example, passing strings or arrays BY 
VALUE, or passing an entire virtual array.
User Action: Check all elements for the proper 
parameter-passing mechanism.
ILLCALFUN, illegal CALL of a DECIMAL, HFLOAT or STRING function
Explanation: ERROR---You attempted to use the CALL 
statement to invoke either a DECIMAL, HFLOAT, or STRING function.
User Action: Invoke the function not using the CALL 
statement.
ILLCHA, illegal character <ASCII code>
Explanation: WARNING---The program contains illegal or 
incorrect characters.
User Action: Examine the program for correct usage of 
the BASIC character set and possibly delete the character.
ILLCHAEXT, illegal character <ASCII code> in external name
Explanation: ERROR---The external symbol in an 
EXTERNAL FUNCTION or CONSTANT declaration contains an invalid character.
User Action: Remove the invalid character. External 
names can use only printable ASCII characters: ASCII values in the 
range 32 to 126, inclusive.
ILLCHAIDE, illegal character <ASCII value> in IDENT directive
Explanation: WARNING---A %IDENT directive contains an 
illegal character with the reported ASCII value.
User Action: Remove the illegal character.
ILLCONTYP, illegal constant type
Explanation: ERROR---The program contains an invalid 
declaration, for example, DECLARE RFA CONSTANT.
User Action: Remove the invalid data type. You cannot 
declare constants of the RFA data type.
ILLEXTPDP, <name> is illegal as a PDP--11 external name
Explanation: INFORMATION---This error is reported only 
when the /FLAG=BP2COMPATIBILITY qualifier is in effect. The external 
name is longer than six characters or contains a non-RAD50 character.
User Action: Reduce the length of the name or remove 
the non-RAD50 character.
ILLFRMNAM, illegally formed name
Explanation: ERROR---The program contains an invalid 
user identifier (such as a variable, constant, or function name).
User Action: Change the name to comply with the rules 
for naming user identifiers. See the Compaq BASIC for  OpenVMS Alpha and VAX Systems Reference Manual for more 
information.
ILLFRMNUM, illegally formed numeric constant
Explanation: ERROR---The program contains either: 1) 
an invalid E-format expression, or 2) a numeric constant with a digit 
that is invalid in the specified radix, for example, a decimal constant 
containing a hexadecimal digit.
User Action: Supply a valid E-format expression or a 
constant that is valid in the specified radix.
ILLGOTO, can't GOTO outside current procedure
Explanation: WARNING---The target line number of an 
immediate mode GOTO statement is outside of the currently compiled 
procedure.
User Action: None. If you RUN a source file containing 
more than one program unit, the currently compiled program is the last 
program unit in the source file. If you use the OLD command to read a 
program into memory and load one or more object modules, then type RUN, 
the currently compiled procedure is the program you read into memory 
with OLD.
ILLIDEPDP, illegal %IDENT string for PDP--11
Explanation: INFORMATION---A %IDENT compiler directive 
contains a string that is invalid for PDP--11 systems. This error is 
issued only when the BP2 compatibility flagger is enabled.
User Action: Change the %IDENT string. The string must 
be from 1 to 6 characters, and must contain only RAD-50 characters.
ILLIO_CHA, illegal I/O channel
Explanation: ERROR---A constant channel expression is 
greater than 99, or a variable channel expression is greater than 119.
User Action: If the channel expression is a constant, 
change to be less than or equal to 99. A variable channel expression 
can be less than or equal to 119; however, channels in the range 100 to 
119 are reserved for programs using LIB$GET_LUN.
ILLLINNUM, illegal line number in CHAIN
Explanation: ERROR---A CHAIN with LINE statement 
specifies an invalid line number. Either the number is outside the 
valid range, or a string expression follows the LINE keyword.
User Action: Supply an integer line number from 1 to 
32,767, inclusive.
ILLLOCARG, illegal LOC argument
Explanation: ERROR---An argument to the LOC function 
is a constant, virtual array element, or expression.
User Action: Change the argument to the LOC function.
ILLLOONES, illegal loop nesting, expecting NEXT <VARIABLE>
Explanation: ERROR---The program contains overlapping 
loops.
User Action: Examine the program logic to make sure 
that the FOR and NEXT statements for the inside loop lie entirely 
within the outside loop.
ILLMATOPE, illegal matrix operation
Explanation: ERROR---The program attempts matrix 
division. The operation is treated as a MAT multiply, and the 
compilation continues.
User Action: Remove the attempted matrix division. 
BASIC does not support this operation.
ILLMCHPDP, illegal passing mechanism on PDP--11s
Explanation: INFORMATION---This error is reported only 
when the /FLAG=BP2COMPATIBILITY qualifier is in effect. A parameter 
list contains a BY clause that is invalid in PDP--11 BASIC-PLUS-2, for 
example, specifying BY DESC for parameters that are not entire arrays 
or strings.
User Action: See the Compaq BASIC for  OpenVMS Alpha and VAX Systems Reference Manual for allowable 
BASIC-PLUS-2 parameter-passing mechanisms.
ILLMIDLEN, illegal MID assignment length
Explanation: ERROR---The value of the length in the 
MID statement is either greater than the length of the string or less 
than or equal to zero.
User Action: Correct the length to be between 1 and 
the length of the string.
ILLMIDSTRT, illegal MID starting value
Explanation: ERROR---The starting value in the MID 
statement is less than or equal to zero.
User Action: Correct the starting value to be greater 
than or equal to one.
ILLMODMIX, illegal mode mixing
Explanation: ERROR---The program contains string and 
numeric operands in the same operation.
User Action: Change the expression so that it contains 
either string or numeric operands, but not both.
ILLMULDEF, illegal multiple definition of name <name>
Explanation: ERROR---The program uses the same name 
for:
ILLMULOPT, OPTIONAL cannot be specified more than once
Explanation: ERROR---The OPTIONAL clause was specified 
more than once in the EXTERNAL statement for a single SUB or FUNCTION. 
This is not allowed because OPTIONAL implies that all parameters 
following it are optional.
User Action: Fix the EXTERNAL statement so that it has 
at most one OPTIONAL clause per SUB or FUNCTION.
ILLNESDEF, illegally nested DEFs
Explanation: ERROR---The program contains a DEF 
function block within another DEF function block.
User Action: Remove the inner DEF block. A DEF cannot 
contain another DEF.
ILLOPEARG, illegal operation for argument
Explanation: ERROR---The program performs an operation 
that is inconsistent with the data type of the arguments, for example, 
an arithmetic operation on variables of the RFA data type.
User Action: Remove the operation or change the data 
type of the arguments.
ILLOPTBAS, illegal OPTION BASE value
Explanation: INFORMATION---A program compiled with the 
/ANSI_STANDARD qualifier contains an OPTION BASE statement that 
specifies a value other than 0 or 1.
User Action: Change the OPTION BASE statement to 
specify either 0 or 1.
ILLQUACOM, illegal qualifier combination
Explanation: ERROR---In the VAX BASIC Environment, you 
specified an illegal combination of qualifiers, such as 
COMPILE/NOSHOW=CDD.
User Action: Issue the command again, using a valid 
combination of qualifiers.
ILLSTROPE, illegal string operator
Explanation: ERROR---The program specifies an invalid 
string operation, for example, A$ = B$ -- C$.
User Action: Replace the invalid operator.
ILLUSAFIE, illegal usage of FIELDed variable
Explanation: ERROR---A MAT statement operates on an 
element of a string array that appears in a FIELD statement.
User Action: Remove the array from the MAT statement.
ILLUSEUNA, illegal use of unary operator
Explanation: ERROR---A compiler directive contains an 
invalid lexical expression, for example, %IF 1 NOT 2.
User Action: Correct the invalid lexical expression.
ILLWAIVAL, WAIT value must be in the range 0 to 255, inclusive
Explanation: ERROR---An integer expression was 
specified on a WAIT clause that is less than 0 or greater than 255.
User Action: Specify an integer expression from 0 to 
255.
IMMMODOPE, immediate mode operation requires storage allocation
Explanation: ERROR---An immediate mode statement 
attempted to allocate storage, for example, to create a new variable.
User Action: None. You cannot create new storage in 
immediate mode.
IMMNOTANS, immediate mode not valid when ANSI
Explanation: ERROR---An immediate mode statement was 
typed when in ANSI mode.
User Action: None.
IMPCNTNOT, implied continuation not allowed
Explanation: ERROR---The program contains an implied 
continuation line after a statement that does not allow implicit 
continuation, for example, a DATA statement.
User Action: Use an ampersand (&) to continue the 
statement.
IMPDECILL, implicit declaration of <name> illegal in immediate 
mode
Explanation: ERROR---A new variable was named in an 
immediate mode statement after a STOP, for example, PRINT B after a 
STOP in a program that has no variable named B.
User Action: None. You cannot create new variables in 
immediate mode after a STOP statement.
IMPDECNOT implied declaration not allowed for <name> with 
/EXPLICIT
Explanation: ERROR---A program compiled with the 
/TYPE=EXPLICIT qualifier contains an implicitly declared variable.
User Action: Declare the variable explicitly or 
compile the program without the /TYPE=EXPLICIT qualifier.
INACODFOL, inaccessible code follows line <n> statement <m>
Explanation: WARNING---The compiler has detected code 
that will never be executed, for example, a multistatement line whose 
first statement is a GOTO, EXIT, ITERATE, RESUME, or RETURN. (VAX BASIC 
only)
User Action: Review the program to determine if the 
code should be executed. If you determine the code should be executed, 
then you should revise the program flow logic accordingly. Otherwise, 
the code is unnecessary and you may want to remove it. In the case of 
the GOTO, EXIT, ITERATE, RESUME, or RETURN statements, make sure that 
these statements are the only statements on the line, or the last 
statement on a multistatement line.
INCDIRSYN, INCLUDE directive syntax error
Explanation: ERROR---A %INCLUDE directive either is 
not followed by a quoted string or incorrectly uses the %FROM %CDD or 
%FROM %LIBRARY clause.
User Action: Supply either a quoted string or the 
correct syntax for the %FROM %CDD or %FROM %LIBRARY clause.
INCFUNUSA, inconsistent function usage for function <name>
Explanation: ERROR---The parameter list in a DEF 
function invocation contains a string where the function expected a 
number, or vice versa. This message is issued only when the invocation 
occurs before the DEF statement in the program.
User Action: Supply a correct parameter in the 
function invocation or correct the parameter list in the DEF.
INCRMSERR, INCLUDE directive RMS error number <number>
Explanation: ERROR---A %INCLUDE directive caused an 
RMS error when accessing the specified file.
User Action: Take action based on the reported RMS 
error number.
INCSUBUSE, inconsistent subscript use for <array-name>
Explanation: ERROR---The number of subscripts in an 
array reference does not match the number of subscripts specified when 
the array was created.
User Action: Specify the same number of subscripts.
INIOUTRAN, initial value must be within the specified range
Explanation: ERROR---The specified initial value is 
not within the range specified in the RANGE clause.
User Action: Change either the initial value or the 
range values so that the initial value falls within the range.
INPPROMUS, input prompt must be a string constant
Explanation: ERROR---An INPUT, LINPUT, or INPUT LINE 
statement list contains a numeric constant immediately following the 
statement.
User Action: Remove the numeric constant. You can 
specify only a string constant immediately after an INPUT, LINPUT, or 
INPUT LINE statement.
INSERTB, assuming <keyword> before <keyword>
Explanation: ERROR---The program contains a syntax 
error. BASIC assumes a keyword is missing and continues 
compilation under that assumption so that other errors can be detected. 
The actual program line remains unchanged and no object file is 
produced.
User Action: Examine the line carefully to discover 
the error. Change the program line to correct the syntax error.
INSERTM, assuming <keyword> to match <keyword>
Explanation: ERROR---The program contains a syntax 
error. BASIC assumes a keyword is misspelled and continues 
compilation under that assumption so that other errors can be detected. 
The actual program line remains unchanged and no object file is 
produced.
User Action: Examine the line carefully to discover 
the error. Change the program line to correct the syntax error.
INSSPADYN, insufficient space for MAP DYNAMIC variable in MAP 
<name>
Explanation: ERROR---A variable named in a MAP DYNAMIC 
statement is larger than the MAP, for example, an HFLOAT variable in a 
MAP that is only four bytes long.
User Action: Increase the size of the MAP so that it 
is large enough to hold the largest member.
INTCODERR, an internal coding error has been detected. Submit an SPR.
Explanation: ERROR---An error has been detected in the 
BASIC compiler.
User Action: Please submit a software problem report 
(SPR) with the source code of a small program that produces this error.
INTCONEXC, integer constant exceeds machine integer size
Explanation: ERROR---The value specified in a DECLARE 
CONSTANT statement exceeds the largest allowable value for an integer. 
The maximum is 2,147,483,647.
User Action: Supply a value in the valid range.
INTCONREQ, integer constant required
Explanation: ERROR---The program contains a noninteger 
named constant in a context that requires an integer. For example:
| Previous | Next | Contents | Index |