Neulich wieder mal Zeit zum denken gehabt. Schlecht sowas, macht Kopfschmerzen und bringt unseelige Dinge wie Ideen. Im heutigen Fall aber eher Fragezeichen:
Was passiert eigentlich in der 1541 wenn ein Block auf Diskette gespeichert wird- sprich, WIE klappt das mit dem Speichern? Woher weiss die Floppy in welchem Track sie sich befindet? Wird der komplette Track immer neu geschrieben? oder wird auf dem Track nur der Sektor beschrieben? Wenn ja, woher weiss die 1541 wann die Magnetscheibe passend rotiert ist und sie schreiben kann? Der Sektor Null-Anschlag wird ja nur beim Formatieren gemacht- wenn die Floppy normal eingeschaltet wird und die erste Diskette eingelegt wird, woher weiss sie wo der Kopf steht?
Fragen über Fragen. In der
Literatur die ich habe wird zwar ganz toll beschrieben wie Sektoren, Tracks und Co so aufgebaut sind, aber dieser mechanische Aspekt wird nirgends beleuchtet. Hat jemand ein wenig Licht für ins Dunkel?
1541- die (elektro-)mechanische Seite
-
BladeRunner -
19. November 2016 um 18:08 -
Erledigt
Es gibt 14 Antworten in diesem Thema, welches 3.140 mal aufgerufen wurde. Der letzte Beitrag (
-
-
Woher weiss die Floppy in welchem Track sie sich befindet?
Sie liest einen Sektorheader, da steht es drin. Deswegen hängt die Floppy, wenn sie auf Track 36 oder höher ausgeschaltet wurde, und man muss das I-Kommando aufrufen.
woher weiss die 1541 wann die Magnetscheibe passend rotiert ist und sie schreiben kann?
Wieder der Sectorheader.
Der Sektor Null-Anschlag
...ist kein Sector- sondern ein Track-Anschlag. Und Tracks werden bei der 1541 beginnend bei 1 gezählt. Track 0 gibt es nicht.
Jens
-
Danke schonmal für die Antworten - Track und Sektor hab ich da beim letzten verwechselt, meinte aber das Richtige. Und Null-Anschlag, weil damit doch die Nullposition ermittelt wird, so meinte ich das.
Seh ich das also richtig das der Sektorheader für jeden Sektor im Track vorhanden ist und die Floppy solange die GCR-Daten einliest bis sie den passenden Sektorheader erkennt, dann auf schreiben umschaltet und "Blind" die Sektrodaten reinballert?
Was ist dann aber wenn die formatierende Floppy zB ein wenig schneller lief als die schreibende - passt das dann noch vom Platz? Ist das auch mit der Grund für die vorgeschriebene Zahl an $55 bzw. $FF die da als Markierung gelesen werden müssen? Wie lange dauert das bis die Floppy von Read auf Write umschaltet, ist das bei der Sektorkennung schon mit einberechnet?
In der Beschreibung zum G64-Format hab ich wohl die Sektorheader überlesen, da werd ich mal nochmal reingucken.
Wird eigentlich der Sektor erst gelöscht und dann beschrieben oder findet das Löschen nur beim Formatieren statt?Und sorry wenn die Fragen arg unbedarft sind, aber es reizt mich zu verstehen wie aus den Daten was auf der Scheibe wird. Das sind Dinge die gehen im Alltagsgebrauch ienfach völlig unter.
-
Die simple Antwort ist "Header und Nutzdaten haben ausreichend Sicherheitsabstand". Die komplizierte Antwort findest Du im Quelltext der Floppy bei der Formatier-Routine. Da wird recht aufwändig ausgemessen, wie lang die Umdrehungszeit ist, und wo genau man die Sektoren+Header hinschreibt.
Wird eigentlich der Sektor erst gelöscht und dann beschrieben oder findet das Löschen nur beim Formatieren statt?
Es wird nur überschrieben, nicht gelöscht. Ein Löschen im Sinne von Tapes wie viele der älteren Semester sie hier noch kennen, ist nicht nötig. Das liegt daran, dass nicht der Pegel der Magnetisierung, sondern nur der Nulldurchgang Informationen enthält. Da können die Pegel eigentlich liegen wie sie wollen - tun sie aber trotzdem nicht, weil gnadenlos "übersteuert" aufgezeichnet wird, und somit auch ohne "Löschen" immer ausreichender Abstand zum 0-Level erreicht wird.
Bei einem Hifi-Tape will man aber die Elementarmagnete schön durcheinander haben, weswegen ein Löschkopf mit einigen zehn kHz betrieben wird (40 kHz ist ne gute Größe).
Diese Unterschiede kannst Du auch an der Datasette schön erkennen: Es gibt Modelle, die gar keinen richtigen Löschkopf haben, sondern nur einen Dauermagneten. Auch hier wird gnadenlos übersteuert aufgezeichnet, weil nur der Nulldurchgang (bzw. der zeitliche Abstand zwischen den Nulldurchgängen) Information trägt.
Jens
-
Cool,
Nochmals Danke für die ausführliche Antwort.
-
Evtl. ist die zweite Hälfte Bitte melde dich an, um diesen Link zu sehen. für Dich interessant, da geht es allerdings nur um das Finden und Lesen eines Sektors, nicht ums Schreiben.
Beim Schreiben ist noch wichtig, dass immer nur die Nutzdaten neu geschrieben werden - die Sektorheader werden dagegen nur beim Formatieren angelegt und danach nie wieder verändert. Daher ist es auch nicht zielführend, die Daten einer Diskette "aufzufrischen", indem man jeden Block einmal liest und sofort wieder schreibt - die Sektorheader wären weiterhin "alt", und wenn dort ein Bit kippt, findet das Laufwerk den Nutzdatenteil des Sektors nicht mehr.
-
Sehr interessante Ausführungen da, auch hierfür ein Danke. Ich muss feststellen dass der Aufbau eines Diskettenlaufwerkes alles andere als trivial zu sein scheint. Freue mich wieder ein bissel was gelernt zu haben

-
Viel interessanter ist, daß sie das mit einem 1 MHz 6502 stabil betreiben können.
-
Bei einem Hifi-Tape will man aber die Elementarmagnete schön durcheinander haben, weswegen ein Löschkopf mit einigen zehn kHz betrieben wird (40 kHz ist ne gute Größe).
Diese Unterschiede kannst Du auch an der Datasette schön erkennen: Es gibt Modelle, die gar keinen richtigen Löschkopf haben, sondern nur einen Dauermagneten. Auch hier wird gnadenlos übersteuert aufgezeichnet, weil nur der Nulldurchgang (bzw. der zeitliche Abstand zwischen den Nulldurchgängen) Information trägt.
Es gab auch genügend "hochwertigen" Billigschrott mit Dauermagnet als Löschkopf. Die hatten bei Chromdioxid-Kassetten schon echte Problem, dass man bei Neuaufnahmen die alte Aufnahme im Hintergrund noch hören konnte...
-
Viel interessanter ist, daß sie das mit einem 1 MHz 6502 stabil betreiben können.
Das ging auch nur, weil der 6502 einen Pin namens "SO" hat: Set Overflow. Man kann das Overflow-Flag "von draußen" setzen, und das macht die GCR-Sync Erkennung. Ein IRQ oder eine Pollschleife auf einen IO-Pin wären viel zu langsam gewesen. Mit dem SO-Pin aber konnte das Diskettenlaufwerk einen Branch "auf sich selbst" machen, solange das Overflow-flag =0 ist. Die Verzögerung ist im schlimmsten Fall nur 3 Zyklen, also *viel* schneller als jede andere multi-command Konstruktion.
Ohne diesen Trick hätte man tiefer eingreifen müssen, beispielsweise mit clock-stretching des CPU-Taktes.
Überhaupt findet man in der 1541 einige Besonderheiten, die auf den ersten Blick echt Kopfzerbrechen bereiten. Da ist beispielsweise eine RAM-Testroutine, welche ohne RAM (ergo auch ohne Stack) funktionieren muss. AFAIK ist die nicht-destruktiv, was es besonders schwer macht - das müsste aber noch ein Softwerker bestätigen, das ist nur "gerüchteweise" in meinem Kopf.
Jens
-
Ohne diesen Trick hätte man tiefer eingreifen müssen, beispielsweise mit clock-stretching des CPU-Taktes.
Was man ohne diesen Trick tun muss zeigt die 1551, der 6510T dort hat keinen SO-Pin. Als Ausgleich läuft er durchgehend mit 2 MHz.
-
Was man ohne diesen Trick tun muss zeigt die 1551, der 6510T dort hat keinen SO-Pin. Als Ausgleich läuft er durchgehend mit 2 MHz.
Lass' mich raten: Das entsprechende Bit liegt auf BitBitte melde dich an, um diesen Link zu sehen. oder BitBitte melde dich an, um diesen Link zu sehen., und die Software sieht in etwa so aus:
...wobei der Branch je nach verwendetem Bit angepasst wird. Müsste eigentlich auch in der 1571 so sein, denn die hat auch keinen 6502 mehr, doer habe ich das falsch in Erinnerung?
Jens
-
Diese Unterschiede kannst Du auch an der Datasette schön erkennen: Es gibt Modelle, die gar keinen richtigen Löschkopf haben, sondern nur einen Dauermagneten. Auch hier wird gnadenlos übersteuert aufgezeichnet, weil nur der Nulldurchgang (bzw. der zeitliche Abstand zwischen den Nulldurchgängen) Information trägt.
Jens
Hier würde ich gerne noch mal mit Offtopic reingrätschen.
Wir haben damals unsere C16 Tapes mit dem Doppeltape vom Kumpel kopiert.
Allerdings ging es nur mit diesem einen Doppeltape zuverlässig.
Könnte es daran gelegen haben das die anderen Tapedecks an denen es NICHT ging, zu gut die Übersteuerung zurückgeregelt haben auf "Normal" ? -
Müsste eigentlich auch in der 1571 so sein, denn die hat auch keinen 6502 mehr, doer habe ich das falsch in Erinnerung?
Natürlich hat die 1571 einen 6502, die Hardware ist ja ziemlich ähnlich und das ROM lässt sich am ehesten als "gepatchtes und erweitertes 1541-ROM" beschreiben.
-
Die 1571 hat einen 6502 und benutzt im 1-MHz-1541-Modus den SO-Pin, während im 2-MHz-1571-Modus komischerweise ein I/O-Register gepollt wird (wenn ich mich korrekt an das ROM-Listing erinnere). Keine Ahnung, warum das so gemacht wurde.