A8 Error Messages¶
The QDOS error code is a negative integer between -1 and -21 and is often referred to instead of the relative error message. You can either refer to the following tables to find the message text or use the various toolkit implementations of the command REPORT to display the representation on your machine.
On some implementations, REPORT also accepts parameters between -22 and -27 which represent strings used by the operating system, but which are not strictly error messages. The text can be freely changed with the TRA and LANG_USE commands.
The instances where such error messages will be reported is actually dependent upon the task which was being performed at the time.
A8.1 Standard English Error Messages¶
A very general explanation of each message is given below, according to the error number. For each message both the original English QDOS error message is given as well as the new English SMS error message:
-1 NOT COMPLETE (QDOS)-INCOMPLETE (SMS)
This message is generally issued when the Break key <CTRL><SPACE> is pressed, and signifies that a task being carried out by the QL has been interrupted.
This message will also appear if you try to use the standard version of RESPR when a Job is loaded into the QL.
-2 INVALID JOB (QDOS)-INVALID JOB ID (SMS)
This message is issued by all Job-related commands when the Job identification number / Job name / Job tag supplied as a parameter to the command does not relate to a Job resident in the QL’s memory.
-3 OUT OF MEMORY (QDOS)-INSUFFICIENT MEMORY (SMS)
This message is quite self-explanatory. It is issued when you try to do something which requires more memory than is currently available. This can however be due to heap fragmentation, and it may therefore be useful to try the command DEL_DEFB.
-4 OUT OF RANGE (QDOS)-VALUE OUT OF RANGE (SMS)
This generally occurs when a parameter supplied to a machine code Function or Procedure cannot be handled by that machine code routine. The best example of this is trying to open a window which cannot fit on the screen, eg:
-5 BUFFER FULL (QDOS & SMS)
This error generally occurs if SuperBasic’s input buffer becomes full. On pre-JS ROMs, you are likely to see this error quite often, especially if you try to INPUT a line greater than 128 characters.
-6 CHANNEL NOT OPEN (QDOS) - INVALID CHANNEL ID (SMS)
This will be generated by all well-written machine code Procedures and Functions if you pass a channel parameter (#ch) which points to a channel which is not actually open.
-7 NOT FOUND (QDOS & SMS)
This error message is generally issued by file-related commands (eg. LOAD) if either the supplied device name or file name do not exist.
-8 ALREADY EXISTS (QDOS & SMS)
This error is returned by commands such as SAVE to indicate that a file already exists with the specified name on the specified device. If Toolkit II is available, you will generally be asked whether or not you wish to overwrite the file.
-9 IN USE (QDOS)-IS IN USE (SMS)
This message is normally generated by file-related commands where you try to access a file which has an exclusive channel open to it, or for example, if you try to DELETE a file which has a channel open to it. This message is also printed by commands such as WSTAT where a channel is open to a file, allowing further data to be written to that file.
You will also see this message if you try to open a channel to one of the serial ports when there is already a channel open to that port.
-10 END OF FILE (QDOS & SMS)
You will see this message if you try to input data from a file when the file pointer is at the end of the file.
This also occurs if you try to READ DATA from within a program and there is no more DATA in the program to be READ. Note however, on SMS, that this error is altered to:
End of DATA
in this instance.
EOF or EOFW should be used to overcome this error.
-11 DRIVE FULL (QDOS)-MEDIUM IS FULL (SMS)
This error message is normally generated when you try to write to a medium and there is not enough room on the medium. Unfortunately, with many commands, unless you have Toolkit II installed, the error message will only be generated if there is no room left on the medium when you first try to open the new file. Without Toolkit II, if the medium becomes full whilst the file is actually being written, no error will be reported and an incomplete file will be left on the medium.
-12 BAD NAME (QDOS)-INVALID NAME (SMS)
This error is generated when you try to use an undefined name as a command in a program. It generally reveals typing errors in programs, such as 10 PRIT ‘Title’.
-13 XMIT ERROR (QDOS)-TRANSMISSION ERROR (SMS)
This is generated when you are trying to read data over the Network, or serial ports. This error normally occurs when there is an error in the parity of the data which has been read.
-14 FORMAT FAILED (QDOS & SMS)
This error will appear when you try to FORMAT a medium. It generally shows that there is something dreadfully wrong with that medium, however, you may find that if you try to FORMAT the same medium in another drive, or clean the drive heads, this may prevent this error.
-15 BAD PARAMETER (QDOS)-INVALID PARAMETER (SMS)
This message is generated by machine code Procedures and Functions where the wrong type of parameter has been used in the calling statement. This may for example occur if you try to pass a string when a number is required.
-16 BAD OR CHANGED MEDIUM(QDOS) - MEDIUM CHECK FAILED(SMS)
This message occurs when you try to read or write to a medium and an error occurs when the computer tries to verify the data being read or written.
When trying to write to microdrives, it will also signify when a microdrive is read only, due to a bug in the QL’s hardware.
-17 ERROR IN EXPRESSION (QODS & SMS)
This error is normally generated when part of an expression does not make sense, for example: DIM a(10,10):PRINT a/10. Look for the use of undefined variables, or possibly arrays where a simple variable is needed (or vice versa).
-18 OVERFLOW (QDOS)-ARITHMETIC OVERFLOW (SMS)
This occurs when you have used an expression which cannot be handled by the QL’s maths package, for example divide by zero, or where you try to assign a value to an integer which is greater than 32767.
-19 NOT IMPLEMENTED YET (QDOS) - NOT IMPLEMENTED (SMS)
This message generally appears when you try to do something which the QL cannot currently do, but which it is hoped may be implemented in the future. For example, DIM a$(10,10), z$(10,10): z$=a$.
-20 READ ONLY (QDOS)-WRITE PROTECTED (SMS)
This message is normally generated when you are trying to open a channel to a file for the output of data and the medium has been write-protected. Unfortunately, this does not work on microdrives!
-21 BAD LINE (QDOS)-INVALID SYNTAX (SMS)
This error message appears if you try to enter a SuperBASIC command which does not make sense. It is in fact a Syntax error - the line will be represented for editing, and if Minerva or SMS is present, the cursor will be (hopefully) placed on top of the offending character.
-22 IN LINE (QDOS) *
This message forms part of the error sequence and is used to notify you of the line at which the error occurred (eg. IN LINE 100). This has been modified on Minerva and SMS so that the number of the statement on that line where the error occurred is also shown (eg. IN LINE 100;3).
-22 UNKNOWN MESSAGE (SMS)
This error is reported if you try to use REPORT with a number parameter which does not point to an existing message in the computer.
-23 SECTORS (QDOS) *
This message is used by commands such as DIR and STAT to signify the number of used sectors/the number of available sectors on the given medium. FORMAT actually uses this to signify the number of available sectors/the number of sectors on the medium.
-23 ACCESS DENIED (SMS)
This error message has been implemented for when you try to access files over the network which are protected on the system of the other computer - see SERNET and MIDINET for a further explanation.
-24, -25 Various messages (QDOS) *
These messages only appear on the start up screen, to tell you which keys are available to start the QL in different modes. Message -25 is the copyright message explaining who designed the current ROM version. See below.
-26 DURING WHEN PROCESSING (QDOS) *
This message is generated after an error message to show that the error has actually occurred within a WHEN definition block.
-27 PROC/FN CLEARED (QDOS) *
This message is generated after an error which has occured whilst the interpreter was in the middle of a DEFine PROCedure or DEFine FuNction block. After this message has appeared, any attempt to RETRY or CONTINUE will fail. Also any LOCal variables (or parameters passed to the definition block) will be reset.
Those error messages marked with an asterisk above exist on SMS, but cannot be shown using the REPORT command as they are message groups rather than errors. The equivalents on SMS appear below.
A8.2 Foreign Error Messages¶
In the following tables, we have tried to list as many of the different language implementations as possible (thanks to QView for this information), although there are bound to be some languages which are not covered here (for example the Russian languages supported on the THOR XVI).
If you can supply any further error messages supported on the QL or its derivatives, then please contact us with a full print-out of the error messages (and preferably, a file on disk with containing the error messages supported).
Under QDOS the error messages are as follows:-
|-1||NOT COMPLETE||ABGEBROCHEN||OPERATION NON TERMINÉE|
|-2||INVALID JOB||FEHLERHAFTER JOB||TACHE INVALIDE|
|-3||OUT OF MEMORY||SPEICHERUEBERLAUF||HORS CAPACITÉE MEMOIRE|
|-4||OUT OF RANGE||BEREICHSUEBERLAUF||SORTIE DES LIMITES|
|-5||BUFFER FULL||PUFFER VOLL||TAMPON PLEIN|
|-6||CHANNEL NOT OPEN||KANAL NICHT EROEFFNET||CANAL NON OUVERT|
|-7||NOT FOUND||NICHT GEFUNDEN||NON TROUVÉE|
|-8||ALREADY EXISTS||EXISTIERT BEREITS||EXISTE DÉJÀ|
|-9||IN USE||IN BEARBEITUNG||EN USAGE|
|-10||END OF FILE||DATEIENDE||FIN DE FICHIER|
|-11||DRIVE FULL||DATENTRAEGER VOLL||LECTEUR PLEIN|
|-12||BAD NAME||UNGUELTIGE BEZEICHNUNG||NOM INCORRECT|
|-13||XMIT ERROR||UEBERTRAGUNGSFEHLER||ERREUR DE TRANSMISSION|
|-14||FORMAT FAILED||FORMATFEHLER||DEFAILLANCE DANS LE FORMATAGE|
|-15||BAD PARAMETER||UNGUELTIGER PARAMETER||MAUVAIS PARAMèTRE|
|-16||BAD OR CHANGED MEDIUM||FEHLERHAFTER DATENTRAEGER||ERREUR DE SUPPORT|
|-17||ERROR IN EXPRESSION||FEHLER IM AUSDRUCK||ERREUR DANS L’EXPRESSION|
|-18||OVERFLOW||UEBERLAUF||DÉPASSEMENT DE CAPACITÉ|
|-19||NOT IMPLEMENTED YET||NICHT IMPLEMENTIERT||COMMANDE NON REPERTORIE …|
|-20||READ ONLY||NUR LESEN||LECTURE UNIQUEMENT|
|-21||BAD LINE||SYNTAX-FEHLER||LIGNE INCORRECTE|
|-22||IN LINE||IN ZEILE||A LA LIGNE NO|
|-26||DURING WHEN PROCESSING||VERARBEITUNG LÄUFT||PENDANT L’EXECUTION DE WHEN|
|-27||PROC/FN CLEARED||PROC/FN GELOESCHT||PROC/FN EFFACÉES|
|-1||ej färdig||epätäydellinen||ikke fullf|rt|
|-2||fel i jobb||epäkelpo työ||ugyldig Job|
|-3||minne slut||muisti lopussa||arbeidslager fullt|
|-4||utom område||ulkopuolella||område overskredet|
|-5||buffer full||puskuri täynnä||buffer fullt|
|-6||oöppnad kanal||kanava avaamatta||kanal ikke åpen|
|-7||hittar ej||ei löydy||ikke funnet|
|-8||finns redan||jo olemassa||allerede oprettet|
|-10||fil slut||tiedosto lopussa||filens slutning nådd(EOF)|
|-11||full kassett||asema täynnä||lagermedie fullt|
|-12||namnfel||huono nimi||ukjent navn|
|-14||ej formaterbar||alustusvirhe||mislykket formatering|
|-15||parameterfel||huono parametri||ulovlig parameter|
|-16||mediafel||huono väline||lese/skrive feil|
|-17||fel i uttryck||lausekevirhe||feil i utryk|
|-18||för stort tal||ylitys||numerisk overl|p|
|-19||används ej||ei käytössä …||ikke innf|rt|
|-20||endast läsning||vain luku kun||lesning tillatt|
|-21||fel form||huono rivi||feil i linje|
|-22||På rad||Rivillä||I linje|
|-26||WHEN under bearbetning||WHEN - rutiinin aikanaved||WHENovervågning|
|-27||PROC/FN raderad||PROC/FN nollattu||PROC/FN renset|
When defining a new language for use by the computer, not only is it necessary to re-define the error messages, but also the codes used for representing the days of the week and the months of the year.
Days of the Week
UK+Finland:Sun Mon Tue Wed Thu Fri Sat
Germany:Son Mon Die Mit Don Fre Sam
France:Dim Lun Mar Mer Jeu Ven Sam
Sweden: Sön Mån Tis Ons Tor Fre Lör
Denmark: Søn Man Tir Ons Tor Fre Lør
Months of the Year
UK+Finland:Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Germany:Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez
France: Jan Fév Mar Avr Mai Jun Jul Aoú Sep Oct Nov Déc
Sweden: Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec
Denmark:Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Des
A8.4 SMS Messages¶
Under SMS, the equivalent in-built foreign error messages are as follows:
|-2||ungültige Job ID||ID Job non valable|
|-3||zu wenig freier Speicher||hors capacité mémoire|
|-4||Wert auáerhalb Bereich||valeur hors limites|
|-5||puffer voll||tampon plein|
|-6||ungültige Kanal ID||ID canal non valable|
|-7||nicht gefunden||est introuvable|
|-8||existiert bereits||existe déja|
|-9||wird schon benutztest||utilisé par ailleurs|
|-10||Datei-Ende||fin de fichier|
|-11||Medium ist voll||disque plein|
|-12||ungültiger Name||nom inadmissible|
|-13||Übertragungs-Fehler||erreur de transmission|
|-14||Formatier-Fehler||erreur dans le formatage|
|-15||ungültiger Parameter||paramètre non valable|
|-16||fehlerhafter Datenträger||erreur de support|
|-17||Fehler im Ausdruck||erreur dans l’expression|
|-18||arithmetischer Überlauf||débordement arithmétique|
|-19||nicht implementiert||ça n’existe pas|
|-20||schreibgeschützt||protection en écriture|
|-21||Syntax-Fehler||syntaxe non valable|
|-22||unbekannte Meldung||message inconnu|
|-23||Zugriff verweigert||accès interdit|
SMS also incorporates an improved Interpreter, and as a result, has a long list of further errors which can appear either before a program is RUN or whilst a program is RUNning. These errors do not affect ERNUM and do not have an error code as such. Each error is given in English, German and French.
In many instances, these errors replace the QDOS ‘Bad Line’ error, which left the user to guess why the line had been rejected.
Many of these problems would also be reported if you try to compile the program.
The SBASIC interpreter works in three stages:
This occurs whenever a new line is entered either from the keyboard as a direct command or using EDIT for example, or when a program is LOADed.
This occurs whenever the command RUN or GO TO is entered - the interpreter runs through the whole of the program to check that structures are correctly defined. It is this stage which has been added to the original QDOS SuperBASIC interpreter and allows SBASIC to be so much quicker than the original.
This is the interpreter’s job as the program is being RUN - keeping track of variables and program lines, as well as carrying out the actual instructions contained in the program.
Different errors are produced at each stage of the Interpretation process.
SYNTAX ERROR IN EXPRESSION
Syntax-Fehler im Ausdruck
erreur de syntaxe dans l’expression
This is reported during PARSING - it normally occurs where you have made a typing error when entering a line and placed two operators together when this is not allowed (or meaningless). For example, the following line will cause this error:
x = x ++ 1
MISSING LEFT PARENTHESIS
Linke Klammer fehlt
manque parenthèse gauche
This error is generated during PARSING - it indicates that there are more closing brackets on a line, than opening brackets. You either need to insert another opening bracket somewhere or delete a closing one.
However, the interpreter reports this error very infrequently - normally ‘Invalid Syntax’ is reported.
MISSING RIGHT PARENTHESIS
Rechte Klammer fehlt
manque parenthèse droite
This message is generated during PARSING - it appears when a program line has more opening brackets than closing brackets.
PRINT CHR$ ((HEX (‘d2’))
ERROR IN LINE NUMBER
erreur à la ligne numéro
This message appears during PARSING - it should be caused whenever you try to enter a line number outside the range 1…32767. However, line numbers which exceed 32767 are merely ignored on current implementations of SMS, causing the program line to be executed as if it had been entered without a line number.
BAD STRING: MISSING DELIMITER
manque marqueur limite de chaîne
This error is reported during PARSING whenever a program line is entered which contains a string within quote marks (either single or double) and one of those quote marks is missing.
PRINT ‘Hello “There”
INCORRECT PROCEDURE OR FUNCTION DEFINITION
falsche Definition einer Prozedur oder Funktion
mauvaise définition d’une procédure ou fonction
This message is reported during PARSING and indicates that there is something amiss with a program line containing DEFine PROCedure or DEFine FuNction, for example where one of the end brackets is missing around the parameter definition list, or one of the parameters appears in the definition as just a comma or empty quotes:
1 DEFine PROCedure TEST (a,”“)
1 DEFine PROCedure TEST (a,)
both produce this error.
Other problems may be indicated by the error ‘Invalid Syntax’, such as no opening bracket appearing before the list of parameters.
PROCEDURE OR FUNCTION DEFINITION NOT ALLOWED HERE
Prozedur- oder Funktion-Definition hier nicht erlaubt
définition d’une fonction ou procédure non permise ici
This message is reported during PARSING and occurs if you try to enter a line containing the DEFine PROCedure or DEFine FuNction structure as a direct command (rather than as a program line).
DEFINES MAY NOT BE WITHIN OTHER CLAUSES
DEFines dürfen nicht innerhalb Strukturen stehen
DEFines ne peuvent se trouver dans d’autres structures
This message is reported during PRE-COMPILING if the program includes a line containing DEFine PROCedure or DEFine FuNction inside another structure, such as another DEFine … END DEFine clause, or SELect … END SELect structure, IF … END IF, WHEN … END WHEN.
Unfortunately, a lot of very early SuperBASIC programs written for the Sinclair QL fall foul of this rule. The old style interpreter would jump the rogue DEFine structure, sometimes falling out of the program because the problem was actually a missing END DEFine statement.
MISPLACED END DEFINE
END DEFine darf hier nicht stehen
END DEFine n’est pas à sa place ici
This error is reported during PRE-COMPILING if a program line contains END DEFine without a relative DEFine PROCedure or DEFine FuNction.
LOCal darf hier nicht stehen
LOCal n’est pas à sa place ici
This message is reported during PRE-COMPILING if the program contains a LOCal statement other than as the first active program line after a DEFine PROCedure or DEFine FuNction statement.
RETURN NOT IN PROCEDURE OR FUNCTION
RETurn ist nicht innerhalb Prozedur oder Funktion
RETurn ne se trouve pas dans une fonction ou procédure
This message is generated during RUNNING if the interpreter tries to execute a RETurn command outside of a DEFine PROCedure or DEFine FuNction structure.
It will also be reported during RUNNING if the interpreter is executing a DEFine FuNction structure, but meets an END DEFine statement - in other words, the RETurn command is missing from the structure.
WHEN CLAUSES MAY NOT BE NESTED
WHEN Strukturen dürfen nicht verschachtelt sein
des structures WHEN ne peuvent être emboîtées
This error is generated during PRE-COMPILING if a program contains a WHEN ERRor (or WHEN variable, if implemented) structure inside another one.
MISPLACED END WHEN
END WHEN darf hier nicht stehen
END WHEN n’est pas à sa place ici
This error is generated during PRE-COMPILING if the program contains an END WHEN statement without a corresponding WHEN ERRor or WHEN variable statement.
ELSE darf hier nicht stehen
ELSE n’est pas à sa place ici
This error is generated during PRE-COMPILING if the program contains an ELSE statement without a corresponding IF statement.
MISPLACED END IF
END IF darf hier nicht stehen
END IF n’est pas à sa place ici
This error is generated during PRE-COMPILING if the program contains an END IF statement without a corresponding IF statement.
PROGRAM STRUCTURES NESTED TOO DEEPLY, MY BRAIN ACHES
Strukturen zu tief verschachtelt
les structures sont trop emboîtées, ça me fait mal au crÀne
This message will rarely appear - it will be generated during RUNNING if the program uses PROCedures or FuNctions which call themselves too many times.
You are in fact more likely to run out of memory or crash the machine than see this message!!
INCOMPLETE IF CLAUSE
unvollständige IF Struktur
structure IF incomplète
This error is generated during PRE-COMPILING if the program contains an IF statement without a corresponding END IF statement.
NOTE that in-line IF structures do not necessarily need a corresponding END IF statement.
INCOMPLETE SELECT CLAUSE
unvollständige SELect Struktur
structure SELECT incomplète
This error is generated during PRE-COMPILING if the program contains a SELect ON statement without a corresponding END SELect statement.
NOTE that in-line SELect ON structures do not necessarily need a corresponding END SELect statement.
structure DEFINE incomplète
This error is generated during PRE-COMPILING if the program contains a DEFine PROCedure statement or a DEFine FuNction statement without a corresponding END DEFine statement.
INCOMPLETE WHEN CLAUSE
unvollständige WHEN Struktur
structure WHEN incomplète
This error is generated during PRE-COMPILING if the program contains a WHEN ERRor statement (or WHEN variable when supported) without a corresponding END WHEN statement.
UNACCEPTABLE LOOP VARIABLE
variable de contrôle boucle inacceptable
This message appears during the PARSING stage if a program line contains a FOR loop with a string loop identifier (compare Minerva), such as:
FOR a$=’a’ TO ‘z’
UNABLE TO FIND AN OPEN LOOP
kann keine offene Schleife finden
aucune boucle ouverte ne peut être trouvée
This message appears during the PRE-COMPILING phase if a program contains an EXIT, NEXT, END FOR or END REPeat statement which does not have a loop control variable specified (compare ‘Undefined Loop Control Variable’) and the Interpreter is unable to find a corresponding FOR or REPeat statement.
UNDEFINED LOOP CONTROL VARIABLE
la variable de contrôle boucle est indéfinie
This message is similar to ‘Unable to Find an Open Loop’ except that it appears during RUNNING if a program contains an EXIT, NEXT, END FOR or END REPeat statement which includes the name of a loop control variable and the Interpreter is unable to find a corresponding FOR or REPeat statement.
This will also happen if the loop control variable has been re-defined before the EXIT, NEXT, END FOR or END REPeat statement is executed, for example:
FOR x=1 to 100 ... ... DIM x(100) ... ... END FOR x
MISPLACED END SELECT
END SELect darf hier nicht stehen
END SELect n’est pas à sa place ici
This message appears during PRE-COMPILING if a program contains an END SELect statement without a corresponding SELect ON statement.
DATA IN COMMAND LINE HAS NO MEANING
DATA in Befehlszeige wird ignoriert
DATA dans une ligne de commande n’a pas de sens
This message appears during PARSING if a line containing a DATA statement is entered as a direct command.
INCORRECTLY STRUCTURED SELECT CLAUSE
falsch strukturiertes SELect
SELECT mal structuré
This message is generated during PRE-COMPILING in one of two cases:
- a SELect ON statement appears without any comparison values, such as:
10 SELect ON x 20 PRINT 'Hello' 30 END SELect
- the comparison values appear in a program outside of a SELect ON structure, for example:
10 SELect ON x 20 =10 : PRINT 'x=10' 30 END SELect 40 =20 : PRINT 'x=20'
UNACCEPTABLE PARAMETERS FOR READ
unerlaubte Parameter für READ
paramètre inacceptable pour READ
This message appears during PRE-COMPILING if a READ statement has meaningless parameters, for example:
READ 'x' READ s,s1,s*1 READ 1,1,2
Note however, that no error is caused by the READ statement without any parameters.
which causes an error during RUNNING - assignment can only be a variable or array element.
END OF DATA
Ende von DATA
fin de DATA
This message is generated during RUNNING if a program is trying to READ DATA statements but has run out of DATA to read - use RESTORE or add check that all of the required DATA is contained in the program.
SBASIC CANNOT PERFORM READS WITHIN DATA EXPRESSIONS
SBASIC kann keine READs innerhalb DATAs ausführen
SBASIC ne peut effectuer des READs dans des expressions DATA
We are uncertain when this error appears, not having been able to create a situation which causes this error to be reported.
If a DATA statement contains a procedure name, such as:
then during RUNNING, when the program tries to read the data parameter ‘READ’, the error ‘unknown function or array’ is produced.
This message is displayed during RUNNING if a procedure name is used which has not been defined - this normally suggests one of three problems:
- a typing error
- a machine code toolkit has not been linked in properly
- a SuperBasic DEFine PROCedure structure is missing.
UNKNOWN FUNCTION OR ARRAY
unbekannte Funktion oder Feld
fonction ou tableau inconnus
This message is displayed during RUNNING if a Procedure name has been used as a function, variable or array descriptor. This normally suggests that a program uses the same name for a variable as a toolkit which has been linked in.
ONLY ARRAYS MAY BE DIMENSIONED
nur Felder dürfen dimensioniert werden
on ne peut dimensionner que des tableaux
This message is displayed during RUNNING if a Procedure name has been used as an array name in a DIM statement. This normally suggests that a program uses the same name for a variable as a toolkit which has been linked in.
This error is also reported if you try to DIMension the name of a parameter passed to a PROCedure or FuNction, such as:
100 DEFine PROCedure TEST(x) 110 DIM x(100) 120 END DEFine
- Use LOCal instead, such as:
110 LOCal x(100)
(although why you would want to do this, is anyone’s guess!!)
PROCEDURE AND FUNCTION PARAMETERS MAY NOT BE DIMENSIONED
Prozedur- oder Funktion-Parameter dürfen nicht dimensioniert werden
les paramètres des procédures et fonctions ne peuvent être dimensionnés
This error is intended to trap the second example for ‘Only Arrays May be Dimensioned’ - see description of DIM for an example and the difference between these two errors.
SBASIC CANNOT PUT UP WITH NEGATIVE DIMENSIONS
SBASIC mag keine negativen Dimensionen
SBASIC ne sait comment traiter des dimensions négatives
This error is reported during RUNNING if you try to DIMension an array with a negative index, such as:
Note that if you try to use a negative index in other situations, such as:
the error ‘Array Index out of Range’ will be reported.
DIMENSIONAL OVERFLOW - YOU CANNOT BE SERIOUS!
dépassement de dimension - soyons sérieux!
This message appears during RUNNING if you try to DIMension an array with too many indices - this appears to happen after around 7 indices). For example, the error will be caused by the following line:
NOTE the warning listed below!!
ERROR IN INDEX LIST
Fehler in Index-Liste
erreur dans la liste d’indexage
We are uncertain when this error appears, not having been able to create a situation which causes this error to be reported.
TOO MANY INDEXES
zu viele Indizes
We are uncertain when this error appears, not having been able to create a situation which causes this error to be reported.
CANNOT ASSIGN TO SUB-ARRAY
kann nicht auf Teil-Feld zuweisen
impossible d’assigner à un sous-tableau
UNACCEPTABLE ARRAY INDEX LIST
liste d’indices dans tableau inacceptab (French)le
This message is generated during RUNNING if you try to use an array with more indices that it was DIMensioned with, for example:
DIM x(100,100) x(10,10,10)=52
The error can also be generated when you try to assign a value across several array elements at a time (this should possibly cause the error ‘Cannot Assign to a Sub-Array’), for example:
DIM x(10,10) x(3,4 TO 5)=100
Beware of the dangers here - see below
In current versions of SMSQ/E, if you DIMension an array with the maximum number of indices and use two more indices in the reference that this maximum, you can crash the computer, for example:
DIM x(1,2,3,4,5,6,7) x(1,2,3,4,5,6,7,8,9)=52
You can also crash the computer if you miss out array indexes:
Another way of crashing the computer is when trying to assign a value across several array elements, for example:
x(1 TO 3,10)=52
ARRAY INDEX OUT OF RANGE
Feld-Index auáerhalb Bereich
indice tableau hors limites
This message is generated during RUNNING if the value of an index specified in an array is higher than that specified when the array was DIMensioned, for example:
DIM x(10,10) x(10,12)=52
Note however, that if you try to use an index which exceeds 32767, the error ‘Error in Expression’ is generated.
ONLY ARRAYS OR STRINGS MAY BE INDEXED
nur Felder oder Strings dürfen indiziert werden
on peut indexer uniquement des tableaux ou chaînes
This message is generated during RUNNING if you try to reference an array which has not yet been DIMensioned, for example:
Compare the situation where you try to index a name which is in fact defined as a Procedure - the index is ignored and the Procedure executed as normal, for example
PRINT (100)=32 displays 32 on the screen.
On the other hand, if you try to index a name which is defined as a Function, the error ‘Unknown Procedure’ is generated instead.
In both cases, compare what happens when an index is not specified (the next error listed here is generated).
ASSIGNMENT CAN ONLY BE TO A VARIABLE OR ARRAY ELEMENT
Zuweisungen nur an Variable oder Feld-Element
assignation uniquement vers une variable ou un élément d’un tableau
This error is generated during RUNNING when a program tries to assign a value to a variable which is actually defined as a Procedure or Function already (this suggests that a toolkit may have re-defined a variable name).
MISTAKE IN PROGRAM
MISTake - Fehler im Programm
MISTake - Erreur de programmation
This message is generated during PRE-COMPILING - whilst a program is being LOADed (or QLOADed), if a line has generated an error during PARSING, the word MISTake is inserted in the relevant line in the program. This message is generated if you try to RUN the program without altering the offending line.
DURING WHEN PROCESSING
pendant le traitement de when
This message is generated during RUNNING if an error occurs whilst the program was executing a WHEN ERRor (or WHEN variable when it is implemented) structure. You should enter WHEN ERRor as a direct command to switch off the WHEN ERRor trapping.
If an error is generated whilst the program is executing a DEFine PROCedure or DEFine FuNction structure, this error will be generated when you EDIT the program, or enter CONTINUE. Unlike earlier ROMs, this does not seem to prevent you from using CONTINUE to carry on with RUNning the program from the place the error occurred.
A la ligne
This is merely the message used to generate part of all error messages, signifying the line number and statement number where the error occurred.
FATAL ERROR IN SBASIC INTERPRETER
schwerwiegender Fehler im SBASIC-Interpreter
erreur fatale dans l’interpréteur SBASIC
This message should hopefully never happen - it means that the interpreter has become corrupt. If a multiple SBASIC interpreter, it will be removed from the system when you press a key.
One instance where this error will occur is if you try to RUN a program which has been QLOADed and the original file was created using QSAVE on a Minerva ROM with integer tokenisation enabled.