Beiträge von Wiesel im Thema „1541- die (elektro-)mechanische Seite“

    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:

    Code
    loop:
      BIT IO-Port
      Bxx loop

    ...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

    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

    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

    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