CP/M-Disketten am PC Formatieren/Schreiben/Lesen. Erfahrungen mit den Tools 22DISK und SCopy

  • Hallo,


    ich befasse mich mit der Konvertierung von CP/M-Programm-Disketten. Dazu teste ich gerade die Programme 22DISK (Vers. 1.44) und SCopy (Supercopy Vers. 3.40) unter einer DOS-Umgebung (DOS 98 von Windows 98) auf einem Pentium II (500MHz) mit einem 5.25“ / 1.2MB HD  Diskettenlaufwerk


    Andere Programme, wie Xenocopy oder PC Alien funktionieren bei mir überhaupt nicht. Xenocopy braucht meines Wissens nach einen PC/XT und läuft nicht auf AT-Maschinen. PC Alien lässt sich zwar starten und zeigt das Auswahlmenü, sobald ich aber eine Diskette lesen oder formatieren will, kommt eine Fehlermeldung. Vermutlich ist der Kontroller oder das HD-Laufwerk nicht mit dem Programm kompatibel.


    Mit 22DISK habe ich bisher gute Erfahrungen gemacht, da es auch selbst erstellte Formate möglich macht. Auch mit SCopy konnte ich einige Disketten formatieren und beschreiben. Hier gibt es aber nur die vorgefertigten Formate.


    Da ich aber über fast keine Originaldisketten (ausgenommen Philips P2xxx) bzw. Images verfüge, erstelle ich selbst mit den beiden Programmen Disketten im gewünschten Format, und vergleiche diese anschließend.


    Es gibt einige Formate, die sowohl in 22DISK, als auch in SCopy, definiert sind.

    Z.B. zwei Formate von Bondwell


    Definitionen in 22DISK:


    BEGIN BON1  Bondwell 12 - SSDD 48 tpi 5.25"

    DENSITY MFM ,LOW

    CYLINDERS 40

    SIDES 1

    SECTORS 18,256

    SKEW 2

    SIDE1 0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

    BSH 4 BLM 15 EXM 1 DSM 84 DRM 127 AL0 0C0H AL1 0 OFS 2

    END


    BEGIN BON2  Bondwell 14 - DSDD 48 tpi 5.25"

    DENSITY MFM ,LOW

    CYLINDERS 40

    SIDES 2

    SECTORS 18,256

    SKEW 2

    SIDE1 0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

    SIDE2 1 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

    ORDER CYLINDERS

    BSH 4 BLM 15 EXM 1 DSM 174 DRM 127 AL0 0C0H AL1 0 OFS 2

    END




    Bezeichnung in SCopy:


    BONDW-12   Bondwell – 12             48tpi  DD SS 18 x 256

    BONDW-14   Bondwell – 14             48tpi  DD DS 18 x 256



    Erwartung: Es sollten die Disketten gleichen Typs vom jeweils anderen Programm fehlerfrei gelesen werden können.


    Bei meinen Versuchen habe ich vier Disketten erstellt (formatiert und dann mit jeweils einer großen, durchnummerierten Textdatei, welche ca. zwei Drittel der Diskettenkapazität umfasst, sowie mit einigen, kleinen Basicprogrammen im Textformat beschrieben). Je zwei Disketten mit 22DISK und zwei mit SCopy. Danach habe ich diese mit dem jeweils anderen Programm eingelesen. (Einlesen mit dem gleichen Programm funktionierte, wie erwartet, sowieso.)


    Ergebnis meines Tests:


    Die Single Side Disketten von Bondwell-12 waren einwandfrei von beiden Programmen gegenseitig lesbar!


    Bei den Double Side Disketten von Bondwell-14 sah es anfangs auch so aus. Es hab keinerlei Hinweise, dass etwas nicht stimmen könnte. Bei näherem Vergleich der 250KB großen Testdatei stellte ich fest, dass nur der erste Teil des Textes lesbar war. Der Rest der Datei war mit irgendwelchen nicht druckbaren Zeichen gefüllt. Das galt sowohl für 22DISK als auch für SCopy. Nach näherer Analyse stellt sich heraus, dass SCopy einen Füllmodus ORDER = EAGLE verwendet und nicht wie 22DISK ORDER = CYLINDERS. Das heißt, dass die Reihenfolge beim Beschreiben der Rückseite der Diskette unterschiedlich ist. Bei beiden Modi wird zuerst die Vorderseite befüllt und danach wird bei EAGLE beim ersten Track auf der Rückseite begonnen, wohingegen bei CYLINDERS beim letzten Track auf der Rückseite begonnen wird. Dadurch ist der Datenverlust bedingt.


    Stellt sich nun die Frage, welche Definition die richtige ist: CYLINDERS oder EAGLE?

    (Hinweis: Diese und andere Begriffe werden in der Dokumentation von 22DISK gut erklärt.)


    Hat wer ein Image von einer doppelseitigen Bondwell-Original-Diskette (oder hat einen Link zum Downloaden), welche auch über die Hälfte gefüllt ist? (Images von Teledisk, ImageDisk oder SAMdisk wären hilfreich.)


    Weiters ist mir aufgefallen, dass SCopy das Format ELTRON2 wohl formatieren, aber die selbst erstellte Diskette nicht beschreiben kann!!! Sehr seltsam!


    Noch ein Wort zum SKEW (Sektorenversatz, damit die Zugriffe schneller erfolgen können). Bei 22DISK wird in den Parametern darauf Rücksicht genommen. SCopy scheint diesen Parameter überhaupt nicht zu kennen. Alle Sektoren werden der Reihe nach raus geschrieben. Das sieht man schön in einer Imagedatei oder in den Analysetools. Bei SKEW = 1 (kein Skew) sind die Sektoren 1,2,3,4,… Bei höherem SKEW sind die Sektoren nicht lückenlos aneinander gereiht, sodass genügend Zeit bleibt um den nächsten Sektor lesen zu können, ohne eine ganze Umdrehung abzuwarten zu müssen. (SKEW ist nicht mit dem CP/M-mäßigen Interleave zu verwechseln, welcher natürlich in beiden Programmen funktioniert und die gleiche Funktion erfüllt. Es gibt sogar Formate die beides verwenden, warum auch immer.) Die Auswirkungen sind bei vielen mit SCopy erstellten Disketten, dass das Lesen und Schreiben solcher Formate extrem langsam wird, egal ob mit SCopy oder 22DISK darauf zugegriffen wird (meist ein Vielfaches der „normalen“ Zeit). Wurde die Diskette hingegen mit 22DISK (richtiger SKEW) erstellt, lässt sie sich von beiden Programmen flott beschreiben.



    Grüße


    PAW

  • Ich habe inzwischen passende Images für den Bondwell-Test gefunden und analysiert:


    http://www.retroarchive.org/hardware/bondwell/index.html


    Hier ein Ausschnitt der Tracks mittels SAMdisk SCAN (jeweils nur 4 angezeigt, wären sonst jeweils 40):



    Daraus geht hervor, dass bei den IMG-Dateien ein SKEW von 3 verwendet wird.

    Das erkennt man daran, dass zwischen den Sektoren 0 und 1 noch zwei andere liegen.


    Beim Einlesen hat ORDER = EAGLE die richtigen Daten geliefert.


    Somit führt SCopy BONDW-14 zu richtigen Ergebnissen!


    22DISK muss erst entsprechend angepasst werden, dann funktioniert es auch:


    BEGIN BON2  Bondwell 14 - DSDD 48 tpi 5.25"

    DENSITY MFM ,LOW

    CYLINDERS 40

    SIDES 2

    SECTORS 18,256

    SKEW 2

    SIDE1 0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

    SIDE2 1 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

    ORDER EAGLE

    BSH 4 BLM 15 EXM 1 DSM 174 DRM 127 AL0 0C0H AL1 0 OFS 2

    END


    Hier habe ich noch ein anderes Bondwell14-Image, diesmal vom Typ td0, gefunden


    http://www.classiccmp.org/cpma…maslin/index_dirHTML.html


    Es ist leider zu klein (zu wenig Daten auf der Disk), um den ORDER-Parameter testen zu können, aber der SKEW ist hier eindeutig 2: zwischen Sektor 0 und 1 liegt ein anderer.



    Im Prinzip wirkt sich der SKEW nur auf die Geschwindigkeit, nicht aber auf den Dateninhalt aus. Beim Schreiben sollte aber ein „guter“ Skew verwendet werden, damit beim zukünftigen Lesen optimale Geschwindigkeiten erzielt werden. Ich habe als Test Disketten für die Philips P2500 mit unterschiedlichen Skews erstellt (Standard für P2500 ist ohne Skew, d.h. Skew=1, zusätzlich eine mit Skew = 2 und eine mit 3). Alle Disketten waren auf der P2500 einwandfrei les- und beschreibbar.



    Ich habe schon des Öfteren die Frage nach einer Erweiterbarkeit der Formate für SCopy gehört. SCopy verwendet eine Formatdatei SELECT.DAT für die diversen CP/M-Formate. Für jedes Format ist darin ein 128 Byte langer Satz gespeichert. Es ist dabei technisch ohne weiteres möglich mit einem HEX-Editor, einen Satz an die Datei anzuhängen und diesen entsprechend zu präparieren. Dabei sollten auch Variationen der bestehenden Formate möglich sein (Bezeichnung, Single Side oder DS, Anzahl Tracks, Sektoren, Interleave, Order, etc.). Allerdings nur im Rahmen der vorhandenen Möglichkeiten der schon bestehenden Formate. Also der Einbau von einem Skew dürfte wohl nicht möglich sein, da dieses Feature nicht vorgesehen ist.


    Grüße


    PAW

    Einmal editiert, zuletzt von PAW ()

  • Ja das stimmt!


    Die AUTOCPM.SYS dient dazu, um aus bis zu 10 vorher ausgewählten Formaten, das jeweils aktuelle automatisch zu erkennen und auszuwählen. Das bedeutet aber, dass auch nur die in SELECT.DAT vorhandenen Formate zur Verfügung stehen. Deshalb habe ich diesen Weg nicht weiter verfolgt.


    Das Programm SELECT.EXE benutzt ebenfalls die Datei SELECT.DAT und kann jeweils ein Format einem Laufwerk zuordnen. Will man auf ein anderes Format zugreifen, muss man SELECT.EXE erneut aufrufen. SELECT.EXE kann jedenfalls keine neuen Formate erstellen oder bestehende ändern!


    Grüße


    PAW

  • Bei mir auf der Olivetti M24 habe ich die besten Erfahrungen mit PC-Alien gemacht, um Olivetti ETV 300 Disketten zu lesen und schreiben. 22disk meldet auf der M24 einen Floppy-IRQ-Fehler. Allerdings habe ich 22disk schon dazu benutzt, um ETV 250 Disketten auf meiner TA Walkstatio 386 zu beschreiben, das klappt wunderbar.

    1ST1

  • @1ST1


    PC-Alien läuft auf meiner Maschine nicht. Bringt immer wieder eine Fehlermeldung sobald es auf die Diskette zugreift. Welche Laufwerke hat der M24? Wenn ich mich richtig erinnere waren das 720KB 96tpi Laufwerke?

  • Frage an @helwie44


    Ich teste gerade Super Copy. Dabei bin ich auf das Format Alphatronic P2-RS (Rückseite) gestoßen.


    Ich würde gerne dieses Format für CP/M näher analysieren. Leider läßt sich mit SC keine brauchbare Diskette erstellen. Man kann zwar mit CPMFORM eine Diskette formatieren, aber SC kann diese dann nicht lesen oder beschreiben.


    gpospi hat mir schon die Funktionsweise (zwei getrennte logische Laufwerke auf einer physischen Diskette) näher erläutert.


    Frage: Hättest Du vielleicht ein Image (mit ein paar Dateien, idealerweise Textfiles) von einer solchen Diskette für mich? Würde das gerne mit SC zu Lesen versuchen.


    Grüße


    PAW


    P.S.: habe selbst keine Alphatronic, bin nur mit Philips ausgerüstet.

  • Nachtrag zur Definition von Bondwell-14 Format in 22DISK. (siehe Eintrag #2 in diesem Thread).


    Von 22DISK Vers. 1.44 gibt es eine registrierte und eine unregistrierte Version. In der unregistrierten Version sind wesentlich weniger Formatdefinitionen enthalten. Außerdem sind offenbar Fehler enthalten, die in der registrierten Version bereits bereinigt wurden.


    Dies ist am Beispiel BON2 Bondwell-14 ersichtlich. In der unregistrierten Version stand ORDER CYLINDERS, was wie festgestellt, falsch war. In der registrierten Version steht nun richtigerweise ORDER EAGLE.


    Fazit: Man sollte bei Verwendung der unregistrierten Version die Parameter hinterfragen.


    Tipp: Ein einfacher Check. Um festzustellen ob Order CYLINDERS oder EAGLE richtig ist, kann man mit einem Hexeditor das Disketten Image ansehen. Ist die Diskette über die Hälfte mit Daten befüllt, dann sollten bei Order EAGLE auf der zweiten Seite bereits am Anfang Daten stehen, wohingegen bei CYLINDERS diese mit dem Initialmuster (meist hex E5) befüllt sind. Am Ende der Diskette ist es genau umgekehrt.


    Grüße, PAW

  • Muss ich mir mal anschauen…


    xesrjb

    "Der Wein mit der Pille ist im Becher mit dem Fächer. Im Pokal mit dem Portal ist der Wein gut und fein

  • Hallo @xesrjb


    welche Diskettenformate suchst du genau?


    Jedenfalls hast du bei 22DISK die Möglichkeit, selber Formate zu definieren, was bei SuperCopy nicht geht.


    Falls du über einen Windows-Rechner (ab Win XP) mit Diskettenlaufwerk und Microsoft EXCEL verfügst, kannst du es auch mit SAMdisk und SAMCONV versuchen: SAMCONV

    Da lassen sich ebenfalls CP/M-Formate für verschiedene Diskettengrößen definieren.


    Grüße


    PAW

  • PAW


    Ich habe bis jetzt immer mit MForm aus dem Chip Sonderheft gearbeitet.


    Habe aber jetzt oben gesehen, das SDisk auch CPC Formate anbietet.


    Die interessieren mich…


    xesrjb

    "Der Wein mit der Pille ist im Becher mit dem Fächer. Im Pokal mit dem Portal ist der Wein gut und fein

  • Bei Fremdformaten empfehle ich auch SDisk, das liest CPC format, Atari Formate, alle VgaCopy Formate, die dort erstellt wurden und auch alte CP/M Diskformate.

    Eine tolles Tool, um Diskformate zu analysieren, wie pro Spur die einzelnen Sektoren beschrieben worden sind.

    Skew denke ich, ist damit Gaph3-Format oder die Gaph3-Länge gemeint?

    Oder ist Skew die Länge des einzelnen Sektors gemeint?

    512Byte pro Sektor wäre Standard, hier vielleicht 256 Bytes oder?

    Ich beschäftige mich auch mit verschiedenen Formaten und habe auch festgestellt im Windows 7 64Bit, das eben das alte 820KB Format nicht einlesbar ist, sondern er konsequent von 10 Sektoren nur 9 einliest, wenn man dort eine Datei mit Textdokument speichert.

    SDisk liest diese genau aus, aber mit Einladen, die man im DOS zu vor gespeichert hat, ist das im Win nicht korrekt.

    Ob man dazu eine andere Treiberdatei benötigt und machbar ist, weiß ich nicht.

    Wäre aber auch mal interessant, ob das Win machen würde?!