ERR$

From C64-Wiki
Jump to navigationJump to search
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

Under Construction Site / Sign
Language German TO Language:english
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]


BASIC V3.5 Commands

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

 
BASIC V7.0 Commands

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