Hallo zusammen,
Ich habe hier einen mc-CP/M-Computer, der mir ein paar Sorgen macht. Das Ding ist seit den frühen achtzigern eigentlich dauernd in Betrieb, allerdings ist vor einem Jahr ein Problem aufgetreten, daß ich einfach nicht eingrenzen kann.
Leider ist der Computer nicht exakt nach den mc-Bauvorlagen gebaut, sondern von verschiedenen Herstellern (SYS1 als CPU von GES, FDC3 von Dobert&Bitsch, der
Rest ist eine Eigenentwicklung. 2001 habe ich von Tillmann Reh die GIDE-Platine erworben und dazu gebaut. Das BIOS dazu mußte ich selbst schreiben, um schließlich ZS-DOS zum Laufen zu bringen. Da auf dem EPROM im Monitor natürlich keine Funktion enthalten ist, von der Festplatte zu booten, lädt der Rechner das Betriebssystem
von der Diskette, zusammen mit dem BIOS für die Festplatte. Ab dann kann er den CCP beim Warmstart direkt von der Festplatte laden.
Aber genau diese GIDE-Platine macht jetzt Ärger, vermute ich. Vor einem Jahr habe ich mir nämlich meine Boot-Diskette geschrottet. Die ist wohl einfach nach 10 Jahren an Altersschwäche hops gegangen. Ganz geschickterweise war das tatsächlich die einzige Boot-Diskette, die ich hatte. Ich habe zwar noch mehr, aber die paßten nicht zu dem CCP auf der Festplatte. (Ich habe von den Boot-Disketten natürlich noch den Assembler-Code, das kriege ich alles wieder hin..)
Im Folgenden gelang es mir aber nicht mehr, den CCP auf die Festplatte zu schreiben. Wenn ZS-DOS einmal hochgefahren ist, hängt sich das System nach einem Warmstart
immer auf. Ich habe dann rausgefunden, daß das, was ich von der Festplatte wieder auslese, nicht ganz mit dem, was geschrieben worden ist, übereinstimmt.
Also dachte ich, daß die Festplatte hinüber ist und habe eine andere eingebaut. Interessanterweise zeigt die genau das gleiche Problem. Wenn ich auf die Platte schreibe, ist das nachher gelesene teilweise unterschiedlich.
Die alte Platte, die ich dann wieder eingebaut habe, kann ich übrigens vollständig lesen. Die Fehler scheinen also beim Schreiben zu passieren, nicht beim Lesen.
Jetzt habe ich mir die Fehler mal ganz genau angesehen und ein Programm geschrieben, daß die geschriebenen mit den gelesenen Sektoren vergleicht (siehe Bilder). Das obere
ist das Soll-Feld, das untere das Ist-Feld. Die hellen Stellen sind unterschiedliche Bytes. Interessanterweise sind es immer nur einzelne Bytes, die fehlerhaft sind. Und immer werden sie zu 00! Und sie kommen oft nach C3- oder CD-Bytes! Je nachdem wie oft ich schreibe, werden es auch schonmal unterschiedliche Bytes, die sich ändern. Ca. die Hälfte der Sektoren ist auch vollkommen korrekt.
Kann sich da jemand einen Reim drauf machen? Das IDE-Kabel habe ich schon gewechselt, ansonsten ist an der Kiste seit 10 Jahren nichts geändert worden. Mir ist das höchst
rätselhaft...
Beste Grüße,
Thomas