ERR$
BASIC keyword | |
Keyword: | ERR$(number) |
Abbreviation: | eR |
Type: | system variable |
Token code: | $d3 (211) |
Handling routine in BASIC ROM: |
?–? ?–? |
List of all BASIC keywords |
Remark: This article describes the BASIC system variable ERR$ in Commodore BASIC V3.5 or higher.
Type: System variable General Programming-Syntax: ERR$(number)
ERR$() could be regarded as a (read-only) string array and it returns the error text (without the word ERROR on the end) for a given error number as an index. The valid error number range for BASIC 3.5 is from 1 to 36, for BASIC 7.0 from 1 to 41. Values not in the appropriate range leads to an ?ILLEGAL QUANTITY ERROR.
Note: To be exact ERR$() could be seen more like a string function, because
- variable names are generally limited to two characters which means that ER$() would be the same array, but this is not the case. The array ER$() may co-exist. Referencing it as ERRTEXT$() maps to the ER$() array and only stating exactly ERR$() refers to the system's error messages,
- index 0 does not exist (as expected for arrays),
- out of range subscripts raises an ?ILLEGAL QUANTITY ERROR instead of ?BAD SUBSCRIPT ERROR,
- ERR$() is a keyword and therefore has a token code for functions.
Error Numbers
TO |
This article has recently been imported from the German C64-Wiki and not been translated yet. Please come back at a later time to read the English version of this article or help us. |
Error numbers with corresponding text:
Error Number |
Error Text | Description | Remark | |
---|---|---|---|---|
1 | TOO MANY FILES | Zu viele Dateien: Es wurde versucht, mehr als 10 Dateien gleichzeitig zu öffnen. | ||
2 | FILE OPEN | Datei offen: Es wurde versucht, eine Datei mit einer bereits verwendeten logischen Dateinummer zu öffnen. | ||
3 | FILE NOT OPEN | Datei nicht geöffnet: Die verwendete logischen Dateinummer wurde noch nicht geöffnet. | ||
4 | FILE NOT FOUND | Datei nicht gefunden: Die angegebene Datei wurde nicht gefunden oder die Bandendemarke auf der Datasette wurde gelesen. | ||
5 | DEVICE NOT PRESENT | Gerät nicht angeschlossen: Das angegebene Gerät ist entweder nicht vorhanden oder abgeschalten oder die Pufferzuweisung für Kassetten-Ein-/Ausgabe ist aufgehoben. | ||
6 | NOT INPUT FILE | Keine Eingabedatei: Es wurde versucht aus einer zur Ausgabe geöffneten Datei zu lesen. | ||
7 | NOT OUTPUT FILE | Keine Ausgabedatei: Es wurde versucht in eine zum Lesen geöffneten Datei zu schreiben. | ||
8 | MISSING FILE NAME | Dateiname ist angegeben, aber leer (z.B. SAVE, VERIFY, SCRATCH, DIRECTORY). | ||
9 | ILLEGAL DEVICE NUMBER | Gerätenummer hat bei Massenspeicherbefehlen keinen zulässigen Wert. | BASIC V2 erlaubt für LOAD/SAVE/VERIFY 0,2,3 nicht. BASIC 3.5 erlaubt Werte von 3 bis 31, während BASIC 7.0 nur Werte von 4 bis 30 akzeptiert. |
|
10 | NEXT WITHOUT FOR | Ein NEXT-Befehl ohne zugehörigem FOR wurde gefunden. | ||
11 | SYNTAX | Der Aufbau einer Programm- oder Eingabezeile entspricht formal nicht der erwarteten Struktur (falsche Befehlsabfolge oder -struktur, falscher Befehlsname, fehlende oder zu viele Argumente bei Befehlen oder Funktionen). | ||
12 | RETURN WITHOUT GOSUB | Dem RETURN-Aufruf ist im Programmverlauf kein dazugehöriges GOSUB vorangegangen. | ||
13 | OUT OF DATA | Der READ-Befehl hat bereits alle Werte aus den DATA-Zeilen gelesen (sofern vorhanden). | ||
14 | ILLEGAL QUANTITY | Parameter von Funktionen oder Befehlsargumenten weisen einen Wert außerhalb des erlaubten Bereichs auf. | ||
15 | OVERFLOW | Eine Zahlendarstellung bzw. ein Rechenausdruck liefert einen Wert außerhalb der Grenzen der Fließkommazahlendarstellung (siehe VAL-Funktion). | ||
16 | OUT OF MEMORY | Der freie Speicherplatz (für Programm, Variablen, Zeichenketten) oder der BASIC-Stapel ist ausgeschöpft. | ||
17 | UNDEF'D STATEMENT | Eine mittels COLLISION, ELSE, GOTO, GOSUB, RESTORE, RESUME, RUN, THEN und TRAP adressierte Zeile existiert nicht. | ||
18 | BAD SUBSCRIPT | Ein Element einer Feldvariable existiert nicht (Index größer als der maximale Index der implizite Dimensionierung, nämlich 10, oder der mittels DIM festgelegten). | ||
19 | REDIM'D ARRAY | Feldvariable wurde zum 2. Mal versucht mittels DIM zu dimensionieren. | ||
20 | DIVISION BY ZERO | Division durch Null. | ||
21 | ILLEGAL DIRECT | Ein nicht für den Direktmodus geeigneter Befehl (z.B. GET$) wurde aufgerufen. | ||
22 | TYPE MISMATCH | Ein Befehlsargument oder Funktionsparameter wies nicht den geforderten Wertetyp (Zahl bzw. Zeichenkette) auf. | ||
23 | STRING TOO LONG | Eine Zeichenkette war in einem Ausdruck (mehr 255 Zeichen) oder als Befehlsargument bzw. Funktionsparameter länger als erlaubt. | ||
24 | FILE DATA | Es wurde versucht, aus einer Eingabedatei mittels GET# oder INPUT# alphanumerische Daten in eine numerische Variable einzulesen. | ||
25 | FORMULA TOO COMPLEX | Ausdrucksauswertung wies zu viele Verschachtelungen bzw. am Stapel war zu wenig Platz dafür. | ||
26 | CAN'T CONTINUE | Die Programmfortsetzung mittels CONT ist nicht mehr möglich, weil der Status des laufenden Programms nicht mehr verfügbar ist. | ||
27 | UNDEF'D FUNCTION | Der Aufruf mittels FN bezieht sich auf eine (noch) nicht definierte Funktion (DEF). | ||
28 | VERIFY | Der VERIFY- oder DVERIFY-Befehl hat einen Unterschied festgestellt. | ||
29 | LOAD | Der BOOT-, BLOAD-, DLOAD-, LOAD- oder RUN-Befehl konnte die Datei fehlerbedingt nicht (vollständig) laden. | ||
30 | BREAK | Manuelle Unterbrechung mittels Taste RUN/STOP oder nach einem STOP-Befehl. | ||
31 | CAN'T RESUME | RESUME wurde ohne vorheriges TRAP-Befehl aufgerufen oder ein Fehler in der TRAP-Behandlungsroutine selbst ist aufgetreten. | since BASIC 3.5 | |
32 | LOOP NOT FOUND | Eine DO-LOOP-Schleife wurde nicht mit LOOP abgeschlossen. | since BASIC 3.5 | |
33 | LOOP WITHOUT DO | Ein LOOP ohne zugehörigem DO wurde gefunden. | since BASIC 3.5 | |
34 | DIRECT MODE ONLY | Das Programm traf auf einen nur für den Direktmodus vorgesehenen Befehlt (z.B. AUTO, DELETE). | since BASIC 3.5 | |
35 | NO GRAPHICS AREA | Grafikbefehl wurde aufgerufen, obwohl noch kein Grafikmodus aktiv ist oder war (GRAPHIC). | since BASIC 3.5 | |
36 | BAD DISK | Diskbefehl hat ein fehlerhaftes Medium festgestellt (z.B. HEADER, BACKUP). | since BASIC 3.5 | |
37 | BEND NOT FOUND | Das abschließende BEND eines BEGIN-BEND-Blocks wurde nicht gefunden. | only BASIC 7.0 | |
38 | LINE NUMBER TOO LARGE | Beim RENUMBER würde die höchste zulässige Zeilennummer (63999) überschritten werden. | onlyBASIC 7.0 | |
39 | UNRESOLVED REFERENCE | Beim RENUMBER wurde ein nicht vorhandenes Sprungziel gefunden. | only BASIC 7.0 | |
40 | UNIMPLEMENTED COMMAND | Es wurde versucht, einen nicht implementierten Befehl auszuführen, z.B. OFF oder KEY OFF. | only BASIC 7.0 | |
41 | FILE READ | Ein Lesefehler beim Einlesen einer Datei ist aufgetreten. | only BASIC 7.0 |
Examples[edit | edit source]
PRINT ERR$(20)
Result
DIVISION BY ZERO
After an actual error which happened in a program the BASIC interpreter sets ER system variable to the corresponding error number. The following command shows the last error message again.
PRINT ER, ERR$(ER)
Result e.g.
11 SYNTAX
The following example prints all error message available on a C16, C116 and Plus/4 or C128:
10 FOR N = 1 TO 36 : REM a C128 has 41 error messages 20 PRINT N, ERR$(N) 30 NEXT
See also[edit | edit source]
ABS | ASC | ATN | AUTO | BACKUP | BOX | CHAR | CHR$ | CIRCLE | CLOSE | CLR | CMD | COLLECT | COLOR | CONT | COPY | COS | DATA | DEC | DEF | DELETE | DIM | DIRECTORY | DLOAD | DO | DRAW | DS | DS$ | DSAVE | END | EL | ELSE | ER | ERR$ | EXIT | EXP | FN | FOR | FRE | GET | GET# | GETKEY | GOSUB | GOTO | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | IF | INPUT | INPUT# | INSTR | INT | JOY | KEY | LEFT$ | LEN | LET | LIST | LOAD | LOCATE | LOG | LOOP | MID$ | MONITOR | NEW | NEXT | ON | OPEN | PAINT | PEEK | POKE | POS | PRINT | PRINT USING | PRINT# | PUDEF | RCLR | RDOT | READ | REM | RENAME | RENUMBER | RESTORE | RESUME | RETURN | RGR | RIGHT$ | RLUM | RND | RUN | SAVE | SCALE | SCNCLR | SCRATCH | SGN | SIN | SOUND | SPC | SQR | SSHAPE | STOP | STR$ | SYS | TAB | TAN | TRAP | TROFF | TRON | UNTIL | USR | VAL | VERIFY | VOL | WHILE | WAIT
ABS | AND | APPEND | ASC | ATN | AUTO | BACKUP | BANK | BEGIN | BEND | BLOAD | BOOT | BOX | BSAVE | BUMP | CATALOG | CHAR | CHR$ | CIRCLE | CLOSE | CLR | CMD | COLLECT | COLLISION | COLOR | CONCAT | CONT | COPY | COS | DATA | DCLEAR | DCLOSE | DEC | DEF FN | DELETE | DIM | DIRECTORY | DLOAD | DO | DOPEN | DRAW | DS | DS$ | DSAVE | DVERIFY | EL | ELSE | END | ENVELOPE | ER | ERR$ | EXIT | EXP | FAST | FETCH | FILTER | FN | FOR | FRE | GET | GET# | GETKEY | GO64 | GOSUB | GOTO | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | IF | INPUT | INPUT# | INSTR | INT | JOY | KEY | LEFT$ | LEN | LET | LIST | LOAD | LOCATE | LOG | LOOP | MID$ | MONITOR | MOVSPR | NEW | NEXT | NOT | (OFF) | ON | OPEN | OR | PAINT | PEEK | PEN | (PI) | PLAY | POINTER | POKE | POS | POT | PRINT | PRINT USING | PRINT# | PUDEF | (QUIT) | RCLR | RDOT | READ | RECORD | REM | RENAME | RENUMBER | RESTORE | RESUME | RETURN | RGR | RIGHT$ | RND | RREG | RSPCOLOR | RSPPOS | RSPRITE | RUN | RWINDOW | SAVE | SCALE | SCNCLR | SCRATCH | SGN | SIN | SLEEP | SLOW | SOUND | SPC( | SPRCOLOR | SPRDEF | SPRITE | SPRSAV | SQR | SSHAPE | ST | STASH | STEP | STOP | STR$ | SWAP | SYS | TAB( | TAN | TEMPO | THEN | TI | TI$ | TO | TRAP | TROFF | TRON | USR | VAL | VERIFY | VOL | WAIT | WHILE | WINDOW | WIDTH | XOR