CP/M für C64

Es gibt 295 Antworten in diesem Thema, welches 80.970 mal aufgerufen wurde. Der letzte Beitrag (24. Dezember 2021 um 01:35) ist von Ruudi.

  • Lt. C128-Handbuch (Kapitel 7 CP/M) geht das:

    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!

  • Bei Mirkosofts Seite steht schon einiges dazu, wichtig imho ist der Zusammenschluss von jeweiles 4 physischen Sektoren zu einem logischen Sektor unter Berücksichtigung des Skews von 5.


    Zusatzinfo von der Seite: Unterschied doppelseitig zu einseitig besteht im letzten Byte von Track 1, Sektor 0. Wert 0 ist einseitig, 255 doppelseitig.

    Nachtrag: beim dortigen Beispiel für doppelseitig sieht man auch, dass in einem logischen Sektor auch physisch ein Spurwechsel erfolgen kann.

    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!

  • Und die physikalischen Sektoren pro Spur wie beim normalen c64 Format?
    Hast Du so eine Diskette? Das wir mal probieren, ob wir die gelesen bekommen?
    Kann cp/m mit solchen 1k Sektoren umgehen?

  • Physikalisch ist's ne stinknormale C64-Diskette. Die CP/M 3.0-Systemdiskette sollte in diesem Format sein, damit kannst Du mit Vice experimentieren (CP/M zeigt netterweise unten rechts auch immer Spur und Sektor an, da kann man nachvollziehen, was passiert).

    CP/M 2.2 muss dafür dennoch erst umgestrickt werden, aber das muss es eh, wenn es noch ein anderes Format als das bisherige ineffiziente verstehen soll. Vielleicht gab's auch mal ein Update (bei 3.0 gab's eines für die 1581-Unterstützung), wo sowas nachgeschoben wurde. Ob Asklia da was zu weiß - die 8MHz-Karte kam ja ziemlich spät.

    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!

  • Gibt es ein d64 von dieser Systemdiskette? Anscheinend eher nicht?

    Bitte melde dich an, um diesen Link zu sehen.

  • Doch: Bitte melde dich an, um diesen Link zu sehen.

    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!

  • Und nicht wundern wenn der eigene Dump einer CP/M-Systemdiskette nicht völlig identisch damit ist. Die haben eingebaute Seriennummern, sind also tatsächlich immer leicht unterschiedlich zueinander auch wenn der Dateninhalt an sich unverändert und gleich "jungfräulich" ist.

  • Ich habe beide Platinen lauffähig huer liegen. Von der Z80 8 MHz liegt ein Schaltplan vor. Von bieden Platinen habe ich das Layout auf Papier.
    Für die 80Z ist allerdings reengineering erforlderlich: Bauteilverbindungen anhand des Layouts rückverfolgen; Gegenkontrolle mit Messungen. Dafür biete ich ja auch eine Bezahlung. Werft doch mal einen blick auf die Platinenbilder weiter oben.


    Im C64 würde ich dringend einen 6596 R3 empfehlen. Schau da mal in deinen hinein. R4 und R5 sowie die 5 Volt 85xx VIC Varianten gehen NICHT.


    Die 1571 läuft im CP/M Mode als MFM Laufwerk über den WDC Floppy-Controllerchip. Das ist ein Kaypro- oder Epson CP/M Format. Damit kann man am C64 CP/M mit dem vorhandenen BIOS nix anfangen. Gewiss, man kann ALLES neu programmieren. Aber die vorhandene Lösung unterstützt 1-2 1541 oder SFD resp 8250.

    CP/M unterstützt ürigens nur feste Sekrorenzahlen pro Track. Wurde im C64 BIOS mit der kleinsten Sektorzahl gelöst. Klar, Darauf basieren die C64 CP/M Disketten. Auch meine.

  • Der einzige VIC-2 R3, den ich hatte, ging kaputt. Als Ersatz konnte ich nur nen R5 zu bezahlbaren Preisen auftreiben... :(

    Wo willst heute noch günstige R3 auftun?

    Könnte man diese Einschränkung mit vertretbarem Aufwand umgehen?

    Das mit der minimalen Sektoranzahl muss man halt durch ne Übersetzungstabelle umgehen. Die Floppy kriegt ne virtuelle Spur/Sektor-Anzahl und rechnet das bei Zugriffen auf die physikalischen Sektoren um. Ich hab da mal nen Algorithmus gebastelt, der recht klein und leidlich schnell war. M.J. hatte da auch paar gute Ideen zu. Aber C= das selbst schon implementiert hat, sollte man sich wohl besser daran halten.

  • C hat das eben nicht im C64 CP/M BIOS implementiert.

    Und ich möchte wetten, dass auch die 1571 im CP/M sprich MFM Modus mit fester Sektorzahl läuft. Das ist ein Fremd-Format von Kaypro und EPSON - das war damals weit verbreitet.

  • C hat das eben nicht im C64 CP/M BIOS implementiert.

    Nein, aber beim 128er.

    Und ich möchte wetten, dass auch die 1571 im CP/M sprich MFM Modus mit fester Sektorzahl läuft.

    Im MFM-Modus natürlich schon, aber das 128er-CP/M erlaubt auch die Benutzung einer 1541. Deshalb ist das Default-Diskettenformat des 128er-CP/Ms eben kein MFM- sondern ein GCR-Format, und das auch bei Benutzung einer 1571. MFM-Formate sind damit möglich, aber nicht zwingend.
    Beweis: Versuch die 128er-CP/M-Systemdiskette mit einem stinknormalen C64-Diskcopy zu kopieren - es wird klappen.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Mein 128er ist zerlegt; noch von der Streifenfix-Aktion. Habe erst vor wenigen Tagen meine Systemdisketten erhalten. Werde aber mal nachsehen!

    Dann müste ein C64 CP/M aber auch die C128er Systemdiskette lesen können?

  • EDIT: Mist, zu spät.

    Die Diskette schon, aber nicht das Dateisystem, eben da es nichts von dem Sektor-Remapping weiß.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Was mir noch einfällt - man möge mich ggf. korrigieren: die Boot-Diskette muss auch beim 128er zwingend eine GCR-Kodierte sein. MFM kann mit der 1570/71 erst gelesen werden, wenn CP/M 3.0 läuft. MFM wird aber auch dann erst dann verwendet, wenn man entweder das mehr an Platz nutzen will oder mit nem anderen nicht-Commodore-CP/M-System kommuniziert. Sonst bleibt's bei GCR...

    Wissen ist das einzige Gut, das sich beim Teilen vermehrt. Also seid vorsichtig damit!

  • So, hab noch ne Lib mit c64 Anschlüssen gestartet und den Expansionport erstellt. Ich hab die Padgrösse mit der Schieblehre von Gartenzwerg's Lochrasterplatine für den Expansionport genommen (so 1,8x9mm). Muss man im Layout noch mal schauen, ob das so passt, weil da die Platine wohl noch 1mm überstehen muss.