Hallo Besucher, der Thread wurde 1,9k mal aufgerufen und enthält 5 Antworten

letzter Beitrag von strik am

CP/M disk format (C64, C128, 1541, 1570, 1571, 1581)

  • Hallo,


    kennt jemand eine Dokumentation des Diskettenformats, den der C64 bzw. der C128 im CP/M-Modus auf einer 1541, einer 1570, einer 1571 und einer 1581 benutzen? Gibt es Unterschiede bei den GCR-Varianten (1541, 1570, 1571) vs. den MFM-Varianten (1570, 1571, 1581), oder sind sie bei der 1570 und 1571 einfach nur anders physikalisch geschrieben, aber logisch identisch?


    Ich vermute mal, dass bei den GCR-Versionen die Möglichkeit, mehr Sektoren auf äußere Spuren zu schreiben, nicht genutzt wird. Bei der Beschreibung des CP/M-Moduls in 64er 4/84, S.18, wurde ja auch davon gesprochen, dass die Diskette nur noch für 136 KB Platz hat.


    Gibt es da etwas? Ich meine, vor langer Zeit mal etwas gelesen zu haben, kann es aber nicht mehr finden.


    Viele Grüße
    Spiro

  • kennt jemand eine Dokumentation des Diskettenformats, den der C64 bzw. der C128 im CP/M-Modus auf einer 1541, einer 1570, einer 1571 und einer 1581 benutzen?

    Doku nicht direkt, aber der Quellcode des C128-CP/M-BIOS ist offen, man könnte sich da die Sektor-Translations-Routinen raussuchen.


    Zitat

    Gibt es Unterschiede bei den GCR-Varianten (1541, 1570, 1571) vs. den MFM-Varianten (1570, 1571, 1581), oder sind sie bei der 1570 und 1571 einfach nur anders physikalisch geschrieben, aber logisch identisch?

    Mal die unterstützten Fremdformate ausgelassen: Es gibt meines Wissens zwei 1541-Formate (C64 und C128), ein 1571-Format und ein 1581-Format. Bis auf letzteres sind alle GCR und die 1570 verwendet einfach die 1541-Formate.


    Zitat

    Ich vermute mal, dass bei den GCR-Versionen die Möglichkeit, mehr Sektoren auf äußere Spuren zu schreiben, nicht genutzt wird. Bei der Beschreibung des CP/M-Moduls in 64er 4/84, S.18, wurde ja auch davon gesprochen, dass die Diskette nur noch für 136 KB Platz hat.

    Das gilt für das C64-CP/M-Modul, beim C128-CP/M wird eine Umrechnung vom CP/M-Track/Sektor (dessen "virtuelle" Geometrie weiss ich nicht auswendig) auf den tatsächlichen GCR-T/S vorgenommen, damit die Diskette besser ausgenutzt werden kann.


    Ein Detail fällt mir aber gerade noch ein: Bei der 1581 wird der Commodore-Bootsektor über eine Laufwerks-Autostart-Routine auf Track 40, Sektor 5 umgebogen. Die Sektorumrechnung wird vermutlich (einen Teil von?) Track 40 überspringen und durch den umgebogenen Bootsektor braucht es keine Sonderbehandlung für Track 1.

  • Hallo Spiro,


    stöber mal im CP/M-Bereich des Forums, da sollte einiges zu stehen. Es gibt drei GCR-Formate für "Commodore CP/M":
    C64 CP/M 2.2 mit den 136kb
    C128 CP/M+ Single Sided mit 680 Blöcken
    C128 CP/M+ Double Sided mit 1360 Blöcken


    Der 128er nutzt das GCR-Format fast komplett (3 Blöcke Verlust). Single Sided geht da mit allen Floppies, double Sided nur mit 1571. Der C128 kann das 64er-Format lesen aber nicht umgekehrt.


    Soviel im Stakkato - Viele Grüße
    Tale-X

  • Formate sind imho dokumentiert, ggf. mal ctools (Programm zum importieren/exportieren von Dateien auf D64/D71-Images) holen und dort die Quelltexte lesen. Aufbau des Diskettenformates ist dort gut ableitbar.


    Die 1581 vergesse ich immer wieder...

  • man könnte sich da die Sektor-Translations-Routinen raussuchen.

    Braucht man nicht mal, die Kommentare darin sind schon detailiert genug:


    Und zum besseren Verständnis noch der Kommentar zu den Parametern des dpb-Makros:

    Code
    1. ; dpb physical$sector$size, - disk parameter block
    2. ; physical$sectors$per$track,
    3. ; number$tracks,
    4. ; block$size,
    5. ; number$dir$entries,
    6. ; track$offset,
    7. ; checksum$vec$size (optional)