AC1-2010, FDC, Stand: 27.09.2021

EAGLE-Projekt


Schaltplan als PDF
Stückliste als Text
Sprintlayout 4.0 - Projekt


Lötseite als PDF
Bauteilseite als PDF
Bestückungsplan als PDF
Beschreibung des Dateisystems als PDF

Beschreibung für FDC als PDF

Hier das Programm mit EDAS-Quelle als ZIP-Datei

mit erweitertem DIR-Kommando, mit EDAS-Quelle als ZIP-Datei

Beschreibung dazu als PDF
Das Programm ist keine "Eigenerfindung". Alte Veröffentlichungen von Heyder, Reul, Zellner, Schiller und Kramer standen Pate. Der RAM-Disk-Teil wurde von "DRAMisldk" (©J.Sp.) übernommen. Es sollte ein kompaktes Diskettenbedienungstool entstehen, welches 2 "echte" Floppys sowie eine RAM-Disk ( nach MP 3/88 ) bedient. In Abhängigkeit vom Laufwerksbuchstaben ( NRLW in der Quelle ) werden die verschiedenen Programmpfade abgearbeitet. Das Programm belegt den Speicher von 2000H - 27FFH und benötigt RAM von 2800H - 2FFFH. Start mit Kennbuchstaben siehe Anleitung.
Das Programm ist nicht an einen speziellen Monitor gebunden. Es funktioniert ab Monitor V3.1. Es werden nur die dort definierten Systemzellen, I/O-Adressen und Unterprogramme benutzt. Da die Quelle vom Programm mitgegeben wird, kann es mit Bordmitteln ( EDAS ) an andere Hardware angepasst und für andere Speicherpositionen selbst modifiziert werden. Die betreffenden Stellen sind im Quelltext hervorgehoben ( z.B. für nur 40 Spuren und oder nur einseitige Laufwerke ). Es ist damit nicht nur auf die FDC-AC1-2010-Platine festgelegt.

Es folgen die "alten" Quellen damit man sich ein Bild von der Weiterentwicklung machen kann. Die .BIN-Dateien und EDAS-Quellen sind auch als .WAV-Files mit abgelegt. Damit steht einem sofortigen Test auf dem AC1 Nichts im Wege. Wer nur mal einen Blick auf die Quellen werfen will, für den eignet sich EDASVIEW von Rolf Weidlich.
Rückmeldung über auftretende Fehler oder Hinweise auf Verbesserungen sind hier immer erwünscht. Auch selbstgeschriebene Erweiterungen oder noch unbekannte Quellen können hier veröffentlicht werden.

Hier noch eine Experimentalanwendung. Sie zeigt, mit wie wenig Aufwand eigene Hilfsprogramme erstellt werden können.

DISKTEST ( J 2000 )
Mit diesem Programm werden nacheinander alle Sektoren auf der Diskette gelesen und wieder rückgeschrieben ( zum Prüfen der Oberfläche auf Dropouts ).
Leiterplatte:



Aufbauhinweise:
September 2021, Hinweise von Frieder Tonn

In den letzten Wochen habe ich viel Zeit damit verbracht, meinen AC1-2010 mit 4 MHz CPU-Taktfrequenz zum Laufen zu bringen. Eine besondere Herausforderung war dabei der Floppy-Disk-Controller, der sich lange gegen 4 MHz gesträubt hat...

Der Floppy-Disk-Controller des AC1-2010 ist für eine CPU-Taktfrequenz von 2 MHz dimensioniert. Um ihn auch mit 4 MHz betreiben zu können, muss der Widerstand R1 am 74LS123 auf 68K vergrößert werden:

Beim Betrieb eines Diskettenlaufwerks mit MFM beträgt die Übertragungsrate 250 Kbit/s, d. h. alle ca. 32 μs muss ein Byte vom FDC gelesen/geschrieben werden.
Bei einer CPU-Taktfrequenz von 2 MHz stehen dafür 64 Prozessortakte zur Verfügung. Das reicht zur Statusabfrage am FDC und zum Daten lesen/schreiben im Polling-Mode nicht aus.
Deshalb wird beim AC1 nach dem Lesen/Schreiben der Daten vom/zum FDC (je nach verwendeter Software ca. 50 CPU-Takte, das entspricht 25 μs) über das Monoflop 74LS123 ein Impuls mit einer Länge von 20 μs erzeugt, der die CPU in den WAIT-Zustand versetzt.
Der FDC signalisiert durch einen Interrupt, wenn das nächste Byte gelesen/geschrieben werden kann.
Dieser Interrupt setzt das Monoflop 74LS123 zurück und hebt damit den WAIT-Status auf.

Beim Betrieb des Floppy-Disk-Controllers mit einer CPU-Taktfrequenz von 4 MHz ist bei gleicher Schaltung und gleicher Software die Bearbeitungszeit um die Hälfte verkürzt, d. h. nach ca. 12 μs sind die Daten vom FDC gelesen/geschrieben.
Das Monoflop schaltet die CPU für 20 μs in den WAIT-Zustand.
Wenn dann nach insgesamt ca. 32 μs die Haltezeit des Monoflops abgelaufen ist, können teilweise Daten geschrieben/gelesen werden, ohne dass der FDC die Datenbereitschaft signalisiert hat.
Im Ergebnis erhält man fehlerhafte Datensätze.

Abhilfe schafft hier die Vergrößerung des Widerstands R1 von 22K auf 68K. Die Haltezeit des Monoflops wird damit auf 60 μs vergrößert.
Für die Laufzeit ist dies ohne Belang, da das Monoflop in jedem Zyklus durch einen Interrupt vom FDC zurückgesetzt wird.
In den ursprünglichen Schaltungen für AC1-Floppy-Disk-Controller vom ACC war dieser Widerstand mit 68K angegeben bzw. eine Mindesthaltezeit des Monoflops von 50 μs festgelegt.

Ich hoffe das dieser Tip auch für andere AC1-Freunde interessant ist.

Viele Grüße aus dem Harz
Frieder Tonn
zurück zu AC1-2010, Baugruppen