Da würde ich doch mal die Standardtheorien anbringen: Entweder wurde die Ramdisk-Variante aus einem schon existierenden Speedersystem entwickelt welches die 8K Track-Puffer schon hatte oder das System wurde mit dem Ziel entwickelt, das gleiche System einmal mit und einmal ohne Ramdisk auf den Markt zu bringen.
OK, aber dann würde ich doch die Hardware so entwickeln, dass ich nicht an einer Stelle massig Ram verschenke, nur um's an einer anderen Stelle nochmal kaufen zu müssen. Ist aber auch egal, denn ich bin gestern noch davon ausgegangen, dass Nutzdaten im Speicher abgelegt werden. Wenn aber die Disk ohne 2MHz-Mode und ohne hardware-Unterstützung beim GCR-Decoding in den Cache gelesen werden soll, dann bleibt nichts Anderes übrig, als Rohdaten zu speichern. Die Datenmenge wird damit 25% höher, oder anders herum: Die 256K Cache reichen nur für rund 200K Nutzdaten (schließlich müssen Header mit abgelegt werden). Es ist also gut möglich, dass bei Verwendung von 41 Tracks keine 8k mehr frei waren.
Ich hab' noch ein bischen nachgedacht über "GCR-Decoding im CPLD" - das sollte eigentlich problemlos machbar sein, denn um ein Nibble zu dekodieren, braucht man nur drei Gleichungen mit je maximal 8 Produkttermen. Kein Bit wird mehr als 8 mal innerhalb der 16er Tabelle 1 bzw. 0, so dass die Menge der Gleichungen sehr überschaubar ausfällt. Selbst die alten MACHs von Anfang der 90er Jahre können das schon: Jeder Output kann bis zu vier Produktterm-Cluster zu je vier Produkttermen verwenden, man braucht also nur die Hälfte der Kapazität (dadurch entstehen im MACH andere Engstellen weil im Schnitt nur ein Cluster pro Makrozelle da ist, aber da kann man drumherum arbeiten). Damit wäre der Weg frei für die persönliche Herausforderung: "Baue einen Speeder, der so schon möglich gewesen wäre, als Commodore noch im Geschäft war".
Man kann auch auf der mechanischen Seite noch mehr Speed 'rausholen: Die Floppy dreht nur mit 300RPM, also 200ms pro Umdrehung. Das limitiert auf rund 7,5 Sekunden Einlese-Zeit pro Diskette. Vom Catweasel wissen wir aber, dass eine C64-Disk in unter 7 Sekunden gelesen werden kann (wert vom Amiga). Grund dafür ist, dass die PC-Laufwerke mit 360RPM drehen, also nur 167ms pro Umdrehung. Mit Sync-Overhead und Stepping landet man bei rund 6,2 bis 6,3 Sekunden. Das Drehen mit 20% mehr Speed liegt also voll in den Spezifikationen der 5,25"-Scheiben. Wenn wir den Motor der 1541 auf 360RPM aufdrehen, müssen wir nur den 16MHz-Quarz der Floppy gegen einen 19,2MHz-Quarz tauschen, dann ist der Nachteil der 1541 gegenüber dem Catweasel auch aufgeholt. Jetzt sind Quarze dieser Frequenz nicht gerade häufig, deswegen würde ich auf 20MHz gehen. Resultat wäre:
- Diskette dreht bei 375RPM (160ms pro Umdrehung)
- CPU läuft bei 1,25MHz (moderate Übertaktung)
- Einlesezeit einer ganzen Disk mit 35 Tracks reduziert sich auf theoretisch 5,9 Sekunden (gerechnet mit 5% overhead pro Track, was nicht immer ausreicht)
Natürlich würden jede Menge Probleme bei der Kommunikation mit dem C64 auftreten, denn das Timing der IEC-Routinen würde komplett zerschlagen. Aber hey, Diddl wollte doch ohnehin ein neues DOS schreiben, oder
?
Jens