CBM DOS: Floppy Fehlermeldungen
Die Fehlermeldungen der CBM Laufwerke für:
- CBM 1540, CBM 1541, CBM 1541-II, CBM 1541 C, CBM 1551, CBM 1570, CBM 1571, CBM 1581
- CBM 2020, CBM 2031, CBM 2040, CBM 3040, CBM 4031, CBM 4040
- CBM 8050, CBM 8060, CBM 8061, CBM 8062, CBM 8250, CBM 8280
- Enhancer 2000, FD-200, OC-118N, SFD-1001
Fehlererkennung
Am Blinken der Kontroll-LED (z.B. bei einem 1541-Laufwerk) kann man erkennen, dass bei einer Diskettenoperation eine Fehlersituation aufgetreten ist. Das CBM-DOS gibt eine entsprechende Statusmeldung über den Fehlerkanal aus. Beim BASIC werden Fehlermeldungen direkt auf dem Bildschirm ausgegeben. Leider ist die Anzeige von Laufwerksfehlern nur über das Auslesen des Fehlerkanals möglich.
Auslesen des Fehlerkanals
BASIC-Programm
Da der INPUT#-Befehl nur innerhalb eines Programms funktioniert ist ein kleines Programm zum Auslesen des Fehlerkanals nötig.
10 OPEN 1,8,15 20 INPUT# 1,A,B$,C,D 30 PRINT A,B$,C,D 40 CLOSE 1
Legende:
A : Nummer des Fehlers
B$ : Fehlerbezeichnung im Klartext
C : Track (Spur)
D : Sektor (Block)
Direktmodus
Man kann den Fehlerkanal auch ohne ein BASIC-Programm im Direktmodus auslesen.
Option A
OPEN 1,8,15:FOR I=0 TO 2:POKE 58,1:GET#1,F$:PRINT F$;:I=255 AND ST:NEXT:CLOSE 1
Option B
OPEN 1,8,15:FOR I=1 TO 40:POKE 781,1:SYS 65478:SYS 65487:SYS 65490:SYS 65484:IF ST=0 THEN NEXT:CLOSE 1
Tabelle CBM Floppy-Fehlermeldungen (deutsch)
Fehlermeldung | Beschreibung |
---|---|
00,OK,00,00 | OK, es liegt kein Fehler vor. |
01,FILES SCRATCHED,XX,00 | Kein Fehler. Rückmeldung nach SCRATCH-Befehl, wobei XX die Anzahl der gelöschten Dateien darstellt. |
20,READ ERROR,TT,SS | LESE-FEHLER: Blockheader nicht gefunden - Der Festplattencontroller kann den Header des angeforderten Datenblocks nicht finden. Verursacht durch eine unzulässige Blocknummer oder der Header wurde zerstört. |
21,READ ERROR,TT,SS | LESE-FEHLER: Keine SYNC-Markierung - Der Laufwerkscontroller kann keine Sync-Markierung auf dem gewünschten Track erkennen. Verursacht durch Fehlausrichtung des Lese-/Schreibkopfes, keine Diskette vorhanden oder unformatiert oder falsch sitzende Diskette. Kann auch auf einen Hardwarefehler hinweisen. |
22,READ ERROR,TT,SS | LESE-FEHLER: Datenblock nicht vorhanden - Der Laufwerkscontroller wurde aufgefordert, einen Datenblock zu lesen oder zu überprüfen der nicht ordnungsgemäß geschrieben wurde. Diese Fehlermeldung tritt in Verbindung mit den BLOCK-Befehlen auf und zeigt eine unzulässige Spur- und/oder Blockanforderung an. |
23,READ ERROR,TT,SS | LESE-FEHLER: Prüfsummenfehler im Datenblock - Diese Fehlermeldung zeigt an, dass in einem oder mehreren der Datenbytes ein Fehler vorliegt. Die Daten wurden in den DOS-Speicher eingelesen, aber die Prüfsumme der Daten ist falsch. Diese Meldung kann auch auf Erdungsprobleme hinweisen. |
24,READ ERROR,TT,SS | LESE-FEHLER: Byte-Dekodierungsfehler - Die Daten oder der Header wurden in den DOS-Speicher gelesen, aber es wurde ein Hardwarefehler wegen einen ungültigen Bitmuster im Datenbyte erzeugt. Diese Meldung kann auch auf Erdungsprobleme hinweisen. |
25,WRITE ERROR,TT,SS | SCHREIB-FEHLER: Schreib-Verifizierungsfehler - Diese Nachricht wird generiert, wenn der Laufwerkscontroller eine Diskrepanz zwischen den geschriebenen Daten und den Daten im DOS-Speicher erkennt. |
26,WRITE PROTECT ON,TT,SS | SCHREIBSCHUTZ EIN - Diese Meldung wird generiert, wenn der Laufwerkscontroller aufgefordert wurde einen Datenblock zu Schreiben während der Schreibschutz aktiviert ist. Normalerweise wird dies durch die Verwendung einer Diskette verursacht die mit einer Schreibschutzlasche über der Kerbe versehen ist. |
27,READ ERROR,TT,SS | LESE-FEHLER: Prüfsummenfehler im Header - Der Laufwerkscontroller hat einen Fehler im Header des angeforderten Datenblocks festgestellt. Der Block wurde nicht in den DOS-Speicher eingelesen. Diese Meldung kann auch auf Erdungsprobleme hinweisen. |
28,WRITE ERROR,TT,SS | SCHREIB-FEHLER: Langer Datenblock - Der Laufwerkscontroller versucht, die SYNC-Markierung des nächsten Headers nach dem Schreiben eines Datenblocks zu lesen. Wenn die SYNC-Markierung nicht innerhalb einer vorgegebenen Zeit erscheint, wird diese Fehlermeldung generiert. Der Fehler wird durch ein falsches Diskettenformat verursacht (die Daten erstrecken sich in den nächsten Block) oder durch Hardwarefehler. |
29,DISK ID MISMATCH,TT,SS | DISK ID NICHTÜBEREINSTIMMUNG: - Diese Nachricht wird generiert, wenn der Laufwerkscontroller aufgefordert wurde, auf eine nicht initialisierte Diskette zuzugreifen. Die Meldung kann auch auftreten, wenn eine Diskette einen fehlerhaften Header hat. |
30,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: Allgemeine Syntax - Das DOS kann den Befehl der an den Befehlskanal gesendet wurde nicht interpretieren. Typischerweise wird dies durch eine unzulässige Anzahl von Dateinamen oder Mustern die illegal verwendet werden ausgelöst. Beispiel: Beim COPY-Befehl werden zwei Dateinamen auf der linken Seite verwendet. |
31,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: Ungültiger Befehl - Das DOS erkennt den Befehl nicht. Der Befehl muss an erster Stelle stehen. |
32,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: Ungültiger Befehl - Der gesendete Befehl ist länger als 40 Zeichen. |
33,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: Ungültiger Dateiname - Musterabgleich der beim Befehl OPEN-oder SAVE-Befehl verwendet wird ist ungültig. |
34,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: Keine Datei angegeben - Der Dateiname wurde bei einem Befehl weggelassen oder das DOS erkennt es nicht als solches. Typischerweise wurde ein Doppelpunkt (:) bei dem Befehl weggelassen. |
39,SYNTAX ERROR,00,00 | SYNTAX-FEHLER: - Ungültiger Befehl - Dieser Fehler kann auftreten, wenn der Befehl an den Befehlskanal (Sekundäradresse 15) vom DOS nicht erkannt wird. |
50,RECORD NOT PRESENT,00,00 | EINTRAG NICHT VORHANDEN: - Ergebnis des Lesens der Diskette über den letzten Datensatz hinaus durch INPUT#- oder GET#-Befehle. Diese Meldung wird auch dann erscheinen wenn die Positionierung auf einen Datensatz bei einer relativen Datei über das Dateiende hinausgeht. Wenn die Absicht darin besteht, die Datei zu erweitern, indem der neue Datensatz hinzugefügt wird (mit einem PRINT# Befehl) kann die Fehlermeldung ignoriert werden. INPUT oder GET sollten nicht versucht werden, nachdem dieser Fehler ohne vorherige Neupositionierung erkannt wurde. |
51,OVERFLOW IN RECORD,00,00 | ÜBERLAUF IM EINTRAG: - Die PRINT#-Anweisung überschreitet die Datensatzgrenze. Informationen sind abgeschnitten. Da der Wagenrücklauf (RETURN) als Datensatz gesendet wird und der Eintragsabschluss in der Datensatzgröße mitgezählt wird. Diese Meldung wird angezeigt, wenn die Gesamtzahl der Zeichen im Datensatz (einschließlich des letzten RETUNRs) die definierte Größe überschreitet. |
52,FILE TOO LARGE,00,00 | DATEI ZU GROSS: - Die Aufnahmeposition innerhalb einer relativen Datei zeigt an, dass ein Disküberlauf zur Folge hat. |
60,WRITE FILE OPEN,00,00 | SCHREIBDATEI OFFEN: - Diese Nachricht wird generiert, wenn eine Schreibdatei die nicht geschlossen wurde, zum Lesen geöffnet wird. |
61,FILE NOT OPEN,00,00 | DATEI NICHT GEÖFFNET: - Diese Meldung wird generiert, wenn auf eine Datei ein Zugriff erfolgt, die nicht im DOS geöffnet wurde. Manchmal, in diesem Fall, wird eine Nachricht nicht generiert; die Anfrage wird einfach ignoriert. |
62,FILE NOT FOUND,00,00 | DATEI NICHT GEFUNDEN: - Die angeforderte Datei existiert nicht auf dem angegebenen Laufwerk. |
63,FILE EXISTS,00,00 | DATEI EXISTIERT: - Der Dateiname der Datei, die erstellt erstellt werden soll, ist auf der Diskette bereits vorhanden. |
64,FILE TYPE MISMATCH,00,00 | DATEITYP NICHTÜBEREINSTIMMUNG: - Der Dateityp stimmt nicht mit dem Dateityp im Verzeichniseintrag für die angeforderte Datei überein. |
65,NO BLOCK,TT,SS | KEIN BLOCK: - Diese Meldung tritt in Verbindung mit dem B-A Befehl auf. Es zeigt an, dass der zuzuweisende Block zuvor vergeben wurde. Die Parameter geben die Spur und den Sektor an mit der nächsthöheren Nummer der verfügbar ist. Wenn die Parameter null sind (0), dann werden alle Blöcke mit höherer Nummer verwendet. |
66,ILLEGAL TRACK OR SECTOR,TT,SS | ILLEGALER TRACK ODER SEKTOR: - Das DOS hat versucht, auf eine Spur oder Block zuzugreifen, der im verwendeten Format nicht vorhanden ist. Dies kann auf ein Problem beim Lesen des Zeigers auf den nächsten Block hinweisen. |
67,ILLEGAL TRACK OR SECTOR,TT,SS | ILLEGALER SYSTEM T ODER S: - Diese spezielle Fehlermeldung weist auf einen illegalen Track (Spur) oder Sector (Block) hin. |
70,NO CHANNEL,00,00 | KEIN KANAL: - Der angeforderte Kanal ist nicht verfügbar, oder alle Kanäle sind belegt. Es dürfen maximal fünf sequentielle Dateien auf einmal für das DOS geöffnet sein. Direktzugriffskanäle können sechs geöffnete Dateien haben. |
71,DIR ERROR,TT,SS | VERZEICHNIS-FEHLER: - Die BAM stimmt nicht mit dem internen Zähler überein. Es liegt ein Problem bei der BAM-Zuordnung vor oder die BAM wurde im DOS-Speicher überschrieben. Um dieses Problem zu beheben, initialisieren Sie die Diskette, um die BAM im Speicher wiederherzustellen. Einige aktive Dateien werden möglicherweise durch die Korrekturmaßnahme beendet. HINWEIS: BAM = Blockverfügbarkeit Karte |
72,DISK FULL,00,00 | DISKETTE VOLL: - Entweder werden die Blöcke auf der Diskette alle verwendet oder das Verzeichnis ist an der Eintragsgrenze angekommen. DISK FULL wird gesendet, wenn nur noch zwei Blöcke auf dem 1541 Laufwerk verfügbar sind, damit die aktuelle Datei geschlossen werden kann. |
73,CBM DOS V2.6 1541,00,00 | DOS MISMATCH (73, CBM DOS V2.6 1541): - DOS 1 und DOS 2 werden kompatibel gelesen, sind aber nicht schreibkompatibel. Disketten können zwischen den DOS-Versionen austauschbar sein und mit DOS gelesen werden, aber eine Diskette, die auf einer Version formatiert ist, kann nicht mit der anderen Version geschrieben, weil das Format anders ist. Dieser Fehler wird immer angezeigt, wenn versucht wird, auf einen Datenträger zu schreiben, der in einem nicht kompatiblen Format formatiert wurde. (Ein Dienstprogramm ist verfügbar, um bei der Konvertierung von einem Format in das andere zu helfen.) Diese Meldung kann auch nach dem Einschalten des Laufwerks erscheinen. |
74,DRIVE NOT READY,00,00 | LAUFWERK NICHT BEREIT: - Es wurde versucht, auf ein 1541 Laufwerk zuzugreifen ohne Diskette in einem Laufwerk. |
Tabelle CBM Floppy-Fehlermeldungen (englisch)
CBM FLOPPY ERROR MESSAGES 0 OK, no error exists. 1 Files scratched response. Not an error condition. 2-19 Unused error messages: should be ignored. 20 Block header not found on disk. 21 Sync character not found. 22 Data block not present. 23 Checksum error in data. 24 Byte decoding error. 25 Write-verify error. 26 Attempt to write with write protect on. 27 Checksum error in header. 28 Data extends into next block. 29 Disk id mismatch. 30 General syntax error 31 Invalid command. 32 Long line. 33 Invalid filename. 34 No file given. 39 Command file not found. 50 Record not present. 51 Overflow in record. 52 File too large. 60 File open for write. 61 File not open. 62 File not found. 63 File exists. 64 File type mismatch. 65 No block. 66 Illegal track or sector. 67 Illegal system track or sector. 70 No channels available. 71 Directory error. 72 Disk full or directory full. 73 Power up message, or write attempt with DOS Mismatch. 74 Drive not ready. DESCRIPTION OF DOS ERROR MESSAGES NOTE: Error message numbers less than 20 should be ignored with the exception of 01 which gives information about the number of files scratched with the SCRATCH command. 20: READ ERROR (block header not found) -- The disk controller is unable to locate the header of the requested data block. Caused by an illegal block number, or the header has been destroyed. 21: READ ERROR (no sync character) -- The disk controller is unable to detect a sync mark on the desired track. Caused by misalignment of the read/writer head, no diskette is present, or unformatted or improperly seated diskette. Can also indicate a hardware failure. 22: READ ERROR (data block not present) -- The disk controller has been requested to read or verify a data block that was not properly written. This error message occurs in conjunction with the BLOCK commands and indicates an illegal track and/or block request. 23: READ ERROR (checksum error in data block) -- This error message indicates that there is an error in one or more of the data bytes. The data has been read into the DOS memory, but the checksum over the data is in error. This message may also indicate grounding problems. 24: READ ERROR (byte decoding error) -- The data or header as been read into the DOS memory, but a hardware error has been created due to an invalid bit pattern in the data byte. This message may also indicate grounding problems. 25: WRITE ERROR (write-verify error) -- This message is generated if the controller detects a mismatch between the written data and the data in the DOS memory. 26: WRITE PROTECT ON -- This message is generated when the controller has been requested to write a data block while the write protect switch is depressed. Typically, this is caused by using a diskette with a write a protect tab over the notch. 27: READ ERROR (checksum error in header) -- The controller has detected an error in the header of the requested data block. The block has not been read into the DOS memory. This message may also indicate grounding problems. 28: WRITE ERROR (long data block) -- The controller attempts to detect the sync mark of the next header after writing a data block. If the sync mark does not appear within a predetermined time, the error message is generated. The error is caused by a bad diskette format (the data extends into the next block), or by hardware failure. 29: DISK ID MISMATCH -- This message is generated when the controller has been requested to access a diskette which has not been initialized. The message can also occur if a diskette has a bad header. 30: SYNTAX ERROR (general syntax) -- The DOS cannot interpret the command sent to the command channel. Typically, this is caused by an illegal number of file names, or pattems are illegally used. For example, two file names may appear on the left side of the COPY command. 31: SYNTAX ERROR (invalid command) -- The DOS does not recognize the command. The command must start in the first position. 32: SYNTAX ERROR (invalid command) -- The command sent is longer than 58 characters. 33: SYNTAX ERROR (invalid file name) -- Pattem matching is invalidly used in the OPEN or SAVE command. 34: SYNTAX ERROR (no file given) -- the file name was left out of a command or the DOS does not recognize it as such. Typically, a colon (:) has been left out of the command, 39: SYNTAX ERROR (invalid command) -- This error may result if the command sent to command channel (secondary address 15) is unrecognized by the DOS. 50: RECORD NOT PRESENT -- Result of disk reading past the last record through INPUT#, or GET# commands. This message will also occur after positioning to a record beyond end of file in a relative file. If the intent is to expand the file by adding the new record (with a PRINT# command), the error message may be ignored. INPUT or GET should not be attempted after this error is detected without first repositioning. 51: OVERFLOW IN RECORD -- PRINT# statement exceeds record boundary. Information is cut off. Since the carriage return is sent as a record terminator is counted in the record size. This message will occur if the total characters in the record (including the final carriage return) exceeds the defined size. 52: FILE TOO LARGE -- Record position within a relative file indicates that disk overflow will result. 60: WRITE FILE OPEN -- This message is generated when a write file that has not been closed is being opened for reading. 61: FILE NOT OPEN -- This message is generated when a file is being accessed that has not been opened in the DOS. Sometimes, in this case, a message is not generated; the request is simply ignored. 62: FILE NOT FOUND -- The requested file does not exist on the indicated drive. 63: FILE EXISTS -- The file name of the file being created already exists on the diskette. 64: FILE TYPE MISMATCH -- The file type does not match the file type in the directory entry for the requested file. 65: NO BLOCK -- This message occurs in conjunction with the B-A command. It indicates that the block to be allocated has been previously allocated. The parameters indicate the track and sector available with the next highest number. If the parameters are zero (0), then all blocks higher in number are in use. 66: ILLEGAL TRACK AND SECTOR -- The DOS has attempted to access a track or block which does not exist in the format being used. This may indicate a problem reading the pointer to the next block. 67: ILLEGAL SYSTEM T OR S -- This special error message indicates an illegal system track or block. 70: NO CHANNEL (available) -- The requested channel is not available, or all channels are in use. A maximum of five sequential files may be opened at one time to the DOS. Direct access channels may have six opened files. 71: DIRECTORY ERROR -- The BAM does not match the internal count. There is a problem in the BAM allocation or the BAM has been overwritten in DOS memory. To correct this problem, reinitialize the diskette to restore the BAM in memory. Some active files may be terminated by the corrective action. NOTE: BAM = Block Availability Map 72: DISK FULL -- Either the blocks on the diskette are used or the directory is at its entry limit. DISK FULL is sent when two blocks are available on the 1541 to allow the current file to be closed. 73: DOS MISMATCH (73, CBM DOS V2.6 1541) -- DOS 1 and 2 are read compatible but not write compatible. Disks may be interchangeably read with either DOS, but a disk formatted on one version cannot be written upon with the other version because the format is different. This error is displayed whenever an attempt is made to write upon a disk which has been formatted in a non-compatible format. (A utility routine is available to assist in converting from one format to another.) This message may also appear after power up. 74: DRIVE NOT READY -- An attempt has been made to access the 1541 Single Drive Floppy Disk without any diskettes present in either drive.