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 |