Der Floppy Adapter ist fertig und die Floppy wird angeschlossen. Im Monitorprogramm lese ich den Status-Port des Floppy Controllers ein und
stelle fest, daß er sich als Double Density Controller meldet.
Ich versuche einen Sektor von der Floppy zu lesen, aber der Controller schaltet den Motor der Floppy nicht ein.
Die komischen Pulse, die ich an Drive Select messe, erklären sich nach dem Studium des uPD765 Floppy Controller Datenblatts.
Der Floppy Controller fragt den Ready Status aller Laufwerke reihum ab.
Die Verbindungen auf dem Floppy Controller bis zum Laufwerk sind OK. Eigentlich müsste der Motor eingeschaltet werden.
Ich versuche es mit Drive Nummer 0 -3, was Double Density Disk sein sollten, nichts. Auch mit Drive Nummer 4 und 5, was den Monitor zum Umprogrammieren auf Single Density veranlassen sollte, tut sich nichts. Am Ende lege ich die Motor-ON-Leitung per Drahtbrücke auf GND und der Motor läuft dauerhaft. Die Motor-On Signale sind eine neue Baustelle, die ich später betrachten will.
Ich habe eine im PC auf 1,44MB formatierte HD-Diskette eingelegt und versuche einen Sektor einzulesen. Das Monitorprogramm macht 16 Read-Versuche und meldet dann einem Address Error. Das war zu erwarten.
Ich versuche die Diskette mit dem im Monitor eingebauten Format Kommando zu formatieren. Der Controller beginnt mit dem Formatieren, bleibt aber immer wieder hängen. BUSAK ist dann dauerhaft aktiv. Dann hilft nur ein RESET.
Irgendwann läuft der Format auf Drive 0 fehlerfrei bis zum Ende durch. Ich habe jetzt eine formatierte Double Density Diskette im 3,5 Zoll Format.
Nun versuche ich, einzelne Sektoren einzulesen.
Solange ich nur einen oder zwei Sektoren einlese funktioniert das ganz gut und ich sehe mir das Format Bytes im Speicher an. Beim implementierten Format Kommando ist das per Default E5.
Ich starte einen Seek Test, der ebenfalls im Monitorprogramm implementiert ist und er funktioniert problemlos. Also, solange keine Daten übertragen werden, funktioniert der Floppy Controller ganz gut.
Ich schreibe einen Ausschnitt des Monitorprogramms auf einen oder zwei Sektoren und kann ihn zurück lesen. Die Daten sind fehlerfrei.
Sobald ich aber über zwei Sektoren hinaus gehe hängt das System in der bekannten Weise. Mehr als 7 Sektoren kann ich fast nie lesen oder schreiben.
Ganz selten kann ich mal einen kompletten Track schreiben. Noch seltener kann ich einen ganzen Track lesen. Schreiben klappt eindeutig besser als lesen.
Ich bin mit meiner 3,5 Zoll Floppy also auf dem gleichen Stand wie mit der 8 Zoll Floppy.
Vielleicht geht es ja besser mit Single Density Floppy Disks. Dummerweise habe ich das Format-Kommando nur für Double Density implementiert.
Auch wenn ich Drive 4 oder 5 wähle wird nicht versucht, den Controller auf Single Density umzuprogrammieren.
Ich hole einen 486 Rechner aus seiner Ecke, den ich zu Anfang des Projekts aufgebaut habe, um ISIS-II oder CP/M Images auf eine 8-Zoll Floppy zu schreiben. Der Rechner ist bereits mit einem Adaptec AHA 1422B Controller ausgerüstet, auf dem ein Floppy Controller Baustein sitzt, mit dem mit Hilfe des Imagedisk Programs von Dave Dunfield ein ISIS-II- oder CP/M Image auf eine 8 Zoll Floppy geschrieben werden kann.
Mir ist das damals leider nicht gelungen.
Nachdem mir Fritz einige Images auf 8 Zoll Disketten geschrieben hatte, habe ich dann das Interesse an dem Projekt verloren und den Rechner zur Seite gestellt.
Jetzt schließe ich das modifizierte 3,5 Zoll Laufwerk an den Rechner an und hole mir ein ISIS-II Ver. 4.3 im Single Density Format aus dem Internet.
Das Image lässt sich ohne Probleme beim ersten Versuch auf die Floppy schreiben.
Ich bin ganz überrascht und schliesse die Floppy wieder am Ziel-Rechner an.
Ich versuche von Drive 4, also Single Density zu lesen, leider ohne Erfolg, Drive not Ready. Warum ?
Ich erinnere mich, daß ich den Drivemode, der festlegt, wie Drive-Select zu Motor-ON und Density gemappt werden von Mode 0 auf
Mode 1 geändert habe. Dieses Feature unterscheidet den Lakosa Floppy Controller vom original Intel Floppy Controller.
Ich dachte, daß ich die handschriftlichen Notizen von Lakosa verstanden hätte und dass Drive-Mode 1 besser auf meinen Rechner passt.
Ich programmiere das Monitor Program um, zurück auf Mode 0. Der Motor der Floppy wird auch mit Mode 0 nicht eingeschaltet. Das Signal muss weiterhin mit einem Jumper auf GND gelegt werden.
Aber jetzt kann ich den ersten Sektor der Single Density Diskette mit Drive Nummer 4 einlesen.
Die Copyright Meldung von Intel ist im Klartext im Speicher zu lesen.
Das fängt schon gut an, aber die Ernüchterung folgt gleich wieder. Auch bei der Single Density Diskette kann ich nur wenige Sektoren lesen.
Ich versuche trotzdem einmal, ISIS-II zu booten.
Der Rechner macht 16 Versuche mit Double Density, schaltet dann auf Single Density Mode um, liest einen Sektor der Floppy auf Adressse 3000h und bleibt hängen, aber anders als zuvor. Die BUSAK-LED leuchtet nicht dauerhaft.
In Sektor 0 ist ein Bootloader, in den verzweigt wird, nachdem er geladen worden ist. Der Bootloader soll dann den Rest des Betriebssystems laden.
Schade! Ich schaue mir den Bootloader, es sind ja nur 128 Bytes, genauer an und entdecke etwas.