If an error occurs during execution of your program, Omikron Basic outputs this error to an alert box. The alert
box offers two choices: 'Continue' and 'End'. If the error is a fatal one, the program is aborted even if 'Continue'
has been chosen. In the case of nonfatal errors, the program can continue; however, it might calculate with false
results (e.g., after a division by zero). In addition, most of the nonfatal errors create follow up or secondary
errors, which usually render a continuation of the program pointless. Therefore, it is recommended always to select
'End' and then first try to find the cause(s) of the error.
Since error-monitoring capability extends the program and reduces execution speed, there are a series of COMPILER
control words which can be used to adjust the extent of error monitoring. It is recommended always to use the control
word COMPILER "DEBUG ON" in the program development phase,
which activates all error monitoring options. Many of the subsequently listed error messages are only displayed
if this control word was set.
2 |
Syntax Error |
|
The program encountered a location, which was already marked by the editor as incorrect or the syntax of a command
is incorrect (e.g., incorrect format string in the case of USING). |
4 |
Out of DATA |
|
A READ command cannot find any more data.
Remedy: Input more data, incorporate verification of end of data into the program, or count the entries after DATA
once more and compare with the number the program is supposed to have read. |
5 |
Illegal Function Call |
|
A function or a command was used in an illegal manner. For example, ASC("") leads to an illegal function
call. This error message can occur even if the first parameter following BIT is less than 0 or greater than 31.
Remedy: Check the arguments. |
7 |
Out of BASIC Memory |
|
An attempt is made to set up a field or string although the still available amount of BASIC memory is insufficient.
Remedy: Reserve enough memory with COMPILER "BAS_MEM X". |
8 |
Undefined Label |
|
An attempt is made to jump to a line or label that is not even defined. This error can only occur if a numerical
dump or a string expression is used for the label. If constant jump markers are used, the compiler will find such
errors already during compilation time. |
9 |
Subscript out of Range |
|
An element of a variable field has been used whose field index is larger than the dimensioning of the field. This
error occurs even if the index is less than zero.
Example: DIM A$(100)
I=200:PRINT A$(I) |
13 |
Type Mismatch |
|
This error can occur if an attempt is made to e.g., read a string with the READ command although the DATA pointer
points to a numerical variable or vice versa. |
15 |
String Too Long |
|
This error message occurs if an attempt is made to use a string that is longer than 2147483647 bytes.
This error is also returned if the USING string is longer than 249 characters or if the FORM_ALERT string is longer
than 255 characters. |
38 |
STOP Command, Program Is Terminating |
|
The program encountered a STOP command. |
39 |
Out of Stack Memory |
|
The stack size adjusted with COMPILER "STACK X" is not sufficient. A stack shortage can occur if procedures
or functions with large interleaf depths call themselves (recursive programming). Another factor is that the SORT
command requires a great deal of stack memory. |
40 |
Not Dimensioned Array |
|
You will receive this error message, if you try to use an array which has not yet been dimensioned. E. g., this
can happen, if during runtime of your program all arrays have been deleted with CLEAR and than an array is used
whithout new dimensioning it before. |
47 |
Matrix Is Irregular |
|
The matrix to be inverted with MAT INV was not a regular one, therefore,
an inverse cannot exist for it either. This error can also occur in the case of matrix divisions since the division
is after all implemented by a multiplication with the inverse matrix. |
55 |
Channel Is Already Open |
|
An attempt was made to reopen an already open channel. If several parallel channels are to be opened, these channels
have to be assigned different numbers. |
56 |
Channel Is Not Open |
|
An attempt was made to use a channel for reading or writing although this channel had not been opened previously. |
62 |
Out of File Data |
|
An attempt was made to read data past the end of a (sequential) file, meaning, beyond the EOF character.
Remedy: Query with the EOF Function before input. |
74 |
Integer Overflow |
|
An attempt was made to assign a value to an integer number that is outside of the range of values for this data
type (e.g., A%=32768). |
80 |
Illegal Floating Point Operation |
|
An attempt was made to execute a floating point operation that is not defined (e.g., A#=SQR(-1)). |
81 |
Overflow in Floating Point Number Range |
|
During a calculation, the result of a floating point number is greater than the greatest number displayable in
the used format (e.g., A#=FACT(1000)). |
82 |
Underflow in Floating Point Number Range |
|
During a calculation, the result of a floating point number is smaller than the smallest number displayable in
the used format (e.g., A#=1D-200 * 1D-200). |
83 |
Floating Point Zero Divide |
|
An attempt was made to divide a floating point number by zero (e.g., A#=1/SQR(0)). |