Dieser Teil der Elektronik in der 1541 Floppy beschäftigt mich gerade sehr.
Für mich als Hobby Elektroniker ist es teilweise nur schwer zu verstehen, was da ganz exakt im detail abgeht.
Das verstehe ich nur rudimentär, speziell der analog Teil ist mir ziemlich rätselhaft ...
Besonders interessant finde ich das Schaltbild der Ur 1541, denn da sieht man die Funktionsweise noch ganz gut.
In jeder neuen Version der 1541 wurde höher intergriert, neue Bausteine eingeführt die Hardwaregruppen zusammen fassen.
Ich würde gerne das Thema diskutieren.
Und dazu einfach mal ein paar Punkte in den Raum werden.
Meine aktuelle Sichtweise darstellen, um Fehlerhaftes zu korrigieren und Vermutungen zu zementieren ...
Also bitte korrigiert mich, ergänzt es oder dementiert es ... ![]()
============
(1) Daten Block lesen
Das DOS wartet auf das SYNC Signal.
Das SYNC Signal wird per Hardware erzeugt wenn mehr als 10 Einser kommen.
Nun pollt das DOS das ByteReady Signal.
Das ByteReady Signal wird direkt am Prozessor Status Register abgebildet (V Flag)
Dann holt sie das Datenbyte aus dem Schieberegister.
CLV
BVC *
LDA $1C01
============
(2) Das ByteReady Signal
Lesen:
Die bits von der Leseelektronik werden in ein Schieberegister geschoben.
Ein Zähler zählt bis 8, und bei 8 wird ein "ByteReady" ausgelöst.
Schreiben:
Das Datenbyte wird in das Schieberegister geschrieben.
Das Schieberegister schiebt Bit für Bit raus in die Schreibelektronik.
Ein Zähler zählt bis 8, und bei 8 wird ein "ByteReady" ausgelöst.
============
(3) Taktung der Bitrate
Schreiben:
Der 16MHz Takt wird geteilt, je nach Spurbereich ergeben sich 4 fixe Frequenzen.
Lesen:
Der Takt ist nur rudimentär vorgegeben.
Die bits von der Leseelektronik synchronisieren irgendwie den Takt, sodass quasi der Bitstrom die Frequenz bestimmt.
============
(4) Byte Ready Timing
Ganz grob, natürlich abhängig von der Bitrate, kommt ca. alle 24µs ein Byte an.
Das ByteReady Signal liegt dabei an, wenn der Zähler auf 7 (achter Schrit) steht, also für ca. 3µs.
Deswegen auch die Lösung über das V Flag, denn der 6502 mit 1MHz könnte sonst nicht schnell genug reagieren.
============
(5) Unterschied 1541 und 1541-II --- Datenbyte Latch
Aufgrund meiner Versuche vermute ich, dass Commodore bei der 1541-II das Timing entschärft hat über ein Datenbyte Latch.
Eine Ur-1541 sieht am VIA Port direkt das Schieberegister.
Alle 3µs ändert sich das Bitmuster.
Das Datenbyte steht nur für die Dauer des ByteReady (ca. 3µs) an.
Eine 1541-II scheint das Datenbyte zwischen zu speichern.
Nach der ByteReady Flanke hat man fast 24µs Zeit das Datenbyte zu holen.
Das wäre potentiell eine Möglichkeit, per Software zu ermitteln welche Schreiblektronik verwendet wird.