Aufbau von Disketten

  • Hallo,


    wie bereits in meinem Thread über die geplanten Aktivitäten für 2023 geschrieben möchte ich mich wieder mehr der Programmierung zuwenden.


    Im Speziellen möchte ich mich als nächstes mit Disketten und später dann mit Festplatten befassen bzw. diverse Utilities programmieren.


    Doch zunächst mal zu den Grundlagen, hier ein schematisches Bild einer Diskette:



    Nachfolgend mein aktuelles Verständnis der Sache, bitte um Korrektur wenn was falsch ist.


    Die Diskette ist in kreisförmige Bänder eingeteilt, das sind die Spuren, die äusserste Spur hat immer die Nummer 0 (im Bild grau gefärbt) und die Nummerierung setzt sich fort bis zur innersten Spur. Die Spuren werden in eine Anzahl an Sektoren unterteilt, im Bild habe ich zwei davon mit Sektor 1 und Sektor 2 markiert, das geht weiter bis man rundherum ist.


    Frage 1:


    Mit Sektor ist so ein trichterförmiger Bereich gemeint oder? Also nicht nur einer dieser mit einem Punkt markierten Bereiche innerhalb dieses trichterförmigen Ausschnitts sondern die Gesamtheit dieser punktmarkierten Bereiche.


    Frage 2:


    Soweit ich weiß fasst jeder Sektor 512 Bytes. Dann verteilen sich diese 512 Bytes über diese punktmarkierten Bereiche oder? Allerdings ja ungleichmäßig vermute ich mal, da sie ja von innen nach außen größer werden.

    Oder ist es so dass man von der möglichen Menge an Bytes ausgeht die man auf dem innersten (kleinsten) Bereich unterbringen kann und diese Menge auch bei den anderen verwendet obwohl aufgrund der nach außen hin steigenden Größe mehr möglich wären?


    lg, Markus

  • Hi markusk


    Ja, So weit richtig. Auf deinem Bild sieht man das IBM MFM Format. In allen Sektoren sind 512 Bytes. Das hängt mit der Rotation zusammen. Die inneren Sektoren 'rasen' am Scheib-/Lesekopf langsamer vorbei als die äußeren. Es gibt aber auch noch andere Formate, bei Commodore Beispielsweise.


    Ich finde den Artikel auf Wikipedia zum Tjema Disketten und den auf https://retrocmp.de/hardware/kryoflux/track-mfm-format.htm ziemlich informativ. Zum Format einer Commodore 1541 hab ich das hier gefunden: https://www.pagetable.com/?p=1070


    LG

    Georg

    Er ist ein Informatiker!

    FORMATIERT IHN!

  • Unser guter SuperIlu hat einen Mastodon Bot geschrieben, der Bilder aus C64 Images macht, da sieht man gut, dass die Tracks unterschiedlich viele Sektoren haben:


    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • Hallo Georg,


    „Innere Sektoren“ gibt es streng genommen aber eigentlich gar nicht oder? Denn die Diskettenseite ist ja beispielsweise in 9 gleich große Sektoren unterteilt.


    Das was Du damit gemeint hast sind die nach innen hin kleiner werdenden Teile der Spuren innerhalb des Sektors oder? Also das was ich mit Punkten gekennzeichnet habe.


    Und diejenigen dieser Teile die weiter innen liegen rasen langsamer am Schreib / Lesekopf vorbei als die anderen die immer weiter außen liegen wenn ich das richtig verstanden hab.


    Lg, Markus

  • Eigentlich gibt es Spuren, die in Sektoren unterteilt sind. Bei IBM MFM sehen diese Sektoren halt linear, wie bei einem Kuchen aus, wenn man sie verbindet. Die Darstellung ist also nicht ganz korrekt. Bei Commodore Floppies nicht. Da gibt es 4 unterschiedliche Sektorenaufteilungen.

    Er ist ein Informatiker!

    FORMATIERT IHN!

  • Ok, dann war meine anfängliche Sichtweise offenbar falsch.


    Nach Deiner Darstellung sehe ich das nun (hoffentlich richtig) so:


    Angenommen eine Diskettenseite hat 40 Spuren wobei jede Spur in 9 Sektoren unterteilt ist und die Diskette beidseitig beschrieben wird.


    Dann sieht Spur 0 (so wie die anderen 39) so aus:


    Sektor 1: 512 Bytes

    Sektor 2: 512 Bytes

    .

    .

    .

    Sektor 9: 512 Bytes


    Insgesamt sind das dann also 40 Spuren x 9 Sektoren, also 360 Sektoren.

    Wir haben 512 Bytes pro Sektor was eine Kapazität von 184320 Bytes ergibt und bei zwei Seiten wären wir dann bei 368640 Bytes Speicherplatz auf der ganzen Diskette.


    Korrekt?


    Das heißt jedoch dass auf den inneren Sektoren weniger Platz ist als auf den weiter außen liegenden.


    Und wenn jeder Sektor 512 Bytes enthält dann sind die innersten Sektoren also immer voll ausgenutzt während die Sektoren nach außen hin mit den 512 Bytes immer nur teilweise belegt sind (also theoretisch durchaus mehr Bytes speichern könnten) oder?


    Ich beziehe mich hier wohlgemerkt auf das angemerkte IBM Format. In diesem Fall auf eine 5.25“ Double Density Diskette von der Anzahl der Spuren bzw. der Anzahl der Sektoren pro Spur her gesehen.


    Lg, Markus

  • Das heißt jedoch dass auf den inneren Sektoren weniger Platz ist als auf den weiter außen liegenden.


    Und wenn jeder Sektor 512 Bytes enthält dann sind die innersten Sektoren also immer voll ausgenutzt während die Sektoren nach außen hin mit den 512 Bytes immer nur teilweise belegt sind (also theoretisch durchaus mehr Bytes speichern könnten) oder?

    Es ist auf den inneren Sektoren PHYSISCH weniger Platz. Rein aus geometrischen Gründen. Da sich aber die weiter außen liegenden Spuren schneller drehen wird jeder Codierungseinheit einfach auf mehr Platz gestreckt und ist somit vielleicht sogar resilienter, da mehr Medium vorhanden ist und Defekte nicht so schnell ins Gewicht fallen. Die Aufzeichnungsgeschwindigkeit der Modulation ist bei IBM/MFM glaube ich immer gleich. Daher ist kein "freier" Platz in den Sektoren.


    Beim C64 gibt es wie oben erwähnt vier verschiedene Bereiche, bei denen die Geschwindigkeit der GCR Kodierung angepasst wird, so dass die Sektoren entsprechend weniger Platz einnehmen. Die Clockrate der Kodierung wird inkrementell angehoben um entsprechend mehr Sektoren auf eine Spur zu bekommen.

    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • Und wo wir bei unterschiedlichen Ansätzen für das Problem sind: Bei alten Mac-Disketten (400 und 800KB, nicht 1440KB) verändert der Antriebsmotor die Geschwindigkeit, damit die Datenrate gleich bleibt.


    Übrigens wird das 512Byte-Format als "IBM-Format" bezeichnet. :) Wurde erstmals für das 8"-Diskettenformat des IBM 3470 verwendet und bei IBM seitdem gern wiederholt. Während der CP/M-Zeit wurden von anderen Herstellern auch andere Formate verwendet, was dazu führte, dass jeder sein Hausformat führte … unpraktisch. Als es dann schließlichlich beim PC wieder eingesetzt wurde, und auch bei Atari und MSX, hat es so viel an Bedeutung gewonnen, dass es spätestens mit dem Sprung zu HD-Disketten ab 1987 von praktisch allen Herstellern verwendet wurde.


    Schau dir doch auch mal Fluxengine an, das Projekt eines Bekannten. Er kann mit seinem Controller diverseste Formate lesen/schreiben und sie auch in der Software darstellen. Auf seiner Website, im Menü links, schreibt er interessantes zu sehr vielen Formaten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!