SAMCONV 2.0: Konvertierung CP/M Disketten-Images zu DOS und zurück

  • @Toshi


    Zitat

    Ich habs trotzdem mal versucht mit der UCSD PC VOL Einstellung - die Software verlangt auch bei VOL Files, daß diese eingepackt sind in einem DSK?

    Habe mir angesehen, warum SAMCONV die Datei vom AMIGA nicht lesen kann.


    Der Grund liegt darin, dass SAMCONV für INTEL-ähnliche CPUs (Z80, 8086, ...) programmiert ist, d.h. bei 16-Bit Daten wird das niedrige Byte zuerst und dann das höhere Byte gespeichert (Big Endian). Dies schlägt sich auch im UCSD-Directory nieder.


    Beim AMIGA UCSD wird Little Endian verwendet, d.h. das höhere Byte wird zuerst gespeichert. Dadurch stimmen die Positionen und Längenangaben nicht mehr!


    Fazit: Nicht alle UCSD-VOL-Files sind miteinander kompatibel.


    Grüße, PAW

    • Offizieller Beitrag

    Habe gerade mal versucht psystem.vol mit ucsd-psystem-fs

    Interessant. Hab es nun auch mal gebaut und ausprobiert. Auspacken geht gut, aber files in den vols platzieren geht nicht, nicht mit _disk und auch nicht mit _mount. Hast Du die Option -p(ut) auch mal probiert? Achso, meine Festplatte ist nicht zu voll...


    Code
    -rw-rw-rw- 1 stephan stephan 550K Mai 25 22:50 psystem.vol
    -rw-r--r-- 1 root    root      19 Mai 25 22:40 test.asc
    
    $ sudo ucsdpsys_disk -f psystem.vol -p test.asc 
    
    ucsdpsys_disk: write "PSYSFOR:TEST.ASC": No space left on device


    EDIT: Ist auch klar! Das .vol File hat nur eine vordefiniert Größe und war voll! Wenn ich ein paar Files lösche, geht es.

    Großartig. Danke für den Hinweis.


    • Offizieller Beitrag

    @Toshi

    Der Grund liegt darin, dass SAMCONV für INTEL-ähnliche CPUs (Z80, 8086, ...) programmiert ist, d.h. bei 16-Bit Daten wird das niedrige Byte zuerst und dann das höhere Byte gespeichert (Big Endian). Dies schlägt sich auch im UCSD-Directory nieder.

    Aha!

    Das heißt, es geht bei BU.EXE und ucsd-fs zufällig für die beiden getesteten für SAGE und AMIGA P-Systeme, weil beide MC68000er CPUs haben?

  • Toshi


    Hallo,


    habe eine Testversion von SAMCONV erstellt, die jetzt UCSD-VOL-Dateien lesen und schreiben kann, sowohl für BIG- als auch LITTLE-ENDIAN. Diese ist noch ungetestet und wird noch nicht veröffentlicht. UCSD-Disketten für SAGE II konnte ich damit über eine Zwischenlösung auch einlesen (nicht schreiben). Die Zwischenlösung funktioniert so: Es wird eine Zeile in DISKDEF mit einem CP/M-Format für SAGE II angegeben und mit der Option "LIN-File ausgeben" eingelesen. Der Vorgang bringt eine Fehlermeldung, weil es ja keine CP/M-Diskette ist. Hier wird abgebrochen und dann die LIN-Datei auf eine VOL-Datei umbenannt. Diese kann dann mit BIG-ENDIAN eingelesen werden. (Gibt vielleicht Tools, die aus der Diskette direkt eine VOL erzeugen können.)


    Also die AMIGA-psystem.VOL konnte direkt konvertieret werden:


    psystem ###DOS### AMIGA.zip


    Die SAGE-Images habe ich über die Zwischenlösung konvertiert:


    s_fr100 ###DOS###.zip


    s_musys1 ###DOS###.zip


    s_system ###DOS###.zip


    s_util1 ###DOS###.zip


    Wer vorab die ungetestete Version benötigt, dem kann ich gerne eine Kopie mit PN zusenden.


    Schönen Abend!


    PAW

  • Eine Standard-Testdisk nun auch für UCSD-Formate



    Wie zuletzt für CP/M, habe ich nun eine Standard-Testdisk für UCSD definiert. Sie ist ähnlich der CP/M-Standard-Testdisk aufgebaut und beinhaltet alle zur Analyse nötigen Daten. Um diese Möglichkeit nutzen zu können benötigt man ein laufendes Zielsystem (Alien-System) mit UCSD und dem dazugehörigen PASCAL-Compiler.


    Die Test-Diskette muss am Alien-UCSD-System erstellt werden. Ich habe dafür ein PASCAL-Programm vorbereitet, welches auf einer Philips P2500 getestet wurde. Das Programm liegt als Quellcode vor und muss auf dem Alien-System kompiliert und ausgeführt werden.


    S100 - CREATE UCSD STANDARD TESTDISK.zip


    Sollte es keine Möglichkeit geben das Programm auf den Alien-PC zu übertragen, kann das Programm auch auf dem Zielgerät mittels Editor eingetippt werden. Dazu gibt es hier eine etwas verkürzte Version ohne Kommentare:


    Da bei der verkürzten Version nicht nach dem Laufwerk gefragt wird, muss dieses in der Zeile: Const Drive = '#9:'; eventuell geändert werden z.B. auf: '#5:'

    Das jeweilige Laufwerk kann im Feiler mittels V-Befehl ermittlet werden.



    Beschreibung zum Programm:

    Das PASCAL-Programm besteht im Prinzip aus zwei Teilen.


    Teil1:  Es werden 76 kleine Dateien mit jeweils nur einem Block (512 Byte) erstellt. Dateinamen von UCSD_001.DATA bis UCSD_076.DATA


    Teil2:  Danach werden viele Datenblöcke in die Datei UCSD_077.DATA geschrieben, bis die Diskette voll ist. Es kommt dann zu einer Fehlermeldung. Damit sollte die Erstellung abgeschlossen sein. Eventuell noch prüfen, ob die angezeigte Anzahl von Datenblöcken mit der Kapazität der Diskette überstimmen kann. Es sollten ungefähr doppelt so viele Blöcke geschrieben werden, wie das Laufwerk Kapazität in Kilobyte hat.


    WICHTIG vor dem Start:

    Die zu erstellende Diskette sollte zuvor mit einem starken Magneten gründlich gelöscht werden, damit nicht Fragmente von vorherigen Daten darauf stehen bleiben. Der Image-Scanner erkennt teilweise auch Reste von Daten, was zu unerwünschten Ergebnissen führen kann!

    Anschließend muss die Diskette am Alien-System neu formatiert werden. Ist keine Formatierungsmöglichkeit vorhanden, kann notfalls auch eine Kopie einer Aliendiskette herangezogen werden. Diese ist dann nicht mit dem Magneten zu löschen!

    Weiter muss die Diskette mittels FILER Befehl Z initialisiert wird. Dazu ist es sinnvoll, vorher mit dem FILER E ein Directory anzeigen zu lassen, um die übliche Größe der Diskette zu erfahren. Dabei sind die am Ende angezeigten benutzten und unbenutzten Blöcke zu addieren. Dieser Wert wird dann beim Befehl Z eingegeben. Ebenso darf kein Duplicate Directory angelegt werden! Der Diskette ist der Name „STDTEST“ zu geben.


    Die so erstellte Diskette kann dann mit SAMdisk auf dem PC eingelesen werden.


    Hier das Beispiel mit der P2500:


    SamImage P2500 UCSD Standard Testdisk.zip



    Mit einem Hex-Editor sieht das Inhaltsverzeichnis so, oder so ähnlich aus (abhängig vom Endian):


    Adresse   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F    0123456789ABCDEF

    0000.1B00  00 00 06 00 00 00 07 53 54 44 54 45 53 54 60 02   │.......STDTEST`.│

    0000.1B10  4D 00 00 00 E6 28 00 00 00 00 06 00 07 00 05 00   │M....(..........│

    0000.1B20  0B 55 43 53 44 5F 31 2E 44 41 54 41 F4 09 B6 E6   │.UCSD_1.DATA....│

    0000.1B30  00 02 E6 28 07 00 08 00 05 00 0B 55 43 53 44 5F   │...(.......UCSD_│

    0000.1B40  32 2E 44 41 54 41 F4 09 B6 E6 00 02 E6 28 08 00   │2.DATA.......(..│

    0000.1B50  09 00 05 00 0B 55 43 53 44 5F 33 2E 44 41 54 41   │.....UCSD_3.DATA│

    0000.1B60  F4 09 B6 E6 00 02 E6 28 09 00 0A 00 05 00 0B 55   │.......(.......U│

    0000.1B70  43 53 44 5F 34 2E 44 41 54 41 F4 09 B6 E6 00 02   │CSD_4.DATA......│

    0000.1B80  E6 28 0A 00 0B 00 05 00 0B 55 43 53 44 5F 35 2E   │.(.......UCSD_5.│

    0000.1B90  44 41 54 41 F4 09 B6 E6 00 02 E6 28 0B 00 0C 00   │DATA.......(....│

    0000.1BA0  05 00 0B 55 43 53 44 5F 36 2E 44 41 54 41 F4 09   │...UCSD_6.DATA..│

    0000.1BB0  B6 E6 00 02 E6 28 0C 00 0D 00 05 00 0B 55 43 53   │.....(.......UCS│

    0000.1BC0  44 5F 37 2E 44 41 54 41 F4 09 B6 E6 00 02 E6 28   │D_7.DATA.......(│

    0000.1BD0  0D 00 0E 00 05 00 0B 55 43 53 44 5F 38 2E 44 41   │.......UCSD_8.DA│

    0000.1BE0  54 41 F4 09 B6 E6 00 02 E6 28 0E 00 0F 00 05 00   │TA.......(......│

    0000.1BF0  0B 55 43 53 44 5F 39 2E 44 41 54 41 F4 09 B6 E6   │.UCSD_9.DATA....│


    Die Daten sehen dann so aus:

    Adresse   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F    0123456789ABCDEF

    0000.1C00  31 2A 2A 2A 2A 2A 2A 2A 20 2D 2D 31 2D 2D 20 20   │1******* --1-- 

    0000.1C10  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C20  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C30  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C40  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C50  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C60  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1C70  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0A   │**************..│

    0000.1C80  31 2A 2A 2A 2A 2A 2A 2A 20 2D 2D 32 2D 2D 20 20   │1******* --2-- 

    0000.1C90  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CA0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CB0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CC0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CD0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CE0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A   │****************│

    0000.1CF0  2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0A   │**************..│


    Da ich die Anzahl der Seiten und Spuren schon kannte, habe ich dies beim Einlesen mit SAMdisk berücksichtigt. SAMdisk ist dann etwas schneller, da es den Rest nicht analysiert.


    TIPP:

    Falls die Geometrie der Diskette völlig unbekannt ist, kann man mit der SCAN-Funktion von SAMdisk ein paar Spuren (z.B. 6) beidseitig einlesen. Daraus ist ersichtlich, ob die Diskette einseitig ist (Rückseite beim Scannen leer), oder ob 48 bzw. 96-tpi verwendet werden. Bei 48tpi ist jede zweite Spur leer. Hat man das herausgefunden, kann man die komplette Diskette mit der richtigen Einstellung in eine DSK-Datei einlesen.


    Dies Datei UCSD_077.DATA kann später als Testdatei dienen, um das Ergebnis einer Konvertierung zu überprüfen. Sie ist als Textdatei aufgebaut und hat 128 Zeichen pro Zeile. Sie lässt sich mit Notepad oder Editor am PC ansehen.



    BITTE UM DIVERSE UCSD-IMAGES:


    Da ich vorhabe SAMCONV.xls auch für UCSD-Images anderer Hersteller zu erweitern (Philips und IBM-PC gibt es ja schon von Anfang an), wäre es sehr hilfreich Images von anderen Rechnern zu bekommen.


    Die Images können mit Image Disk als IMD, mit TeleDisk als TD0 oder mit SAMdisk als DSK erstellt werden. Bei Disketten die FM-Spuren enthalten, ist es empfehlenswert eher IMD zu verwenden, da SAMdisk auf manchen Systemen damit Probleme hat.


    Dabei sollte die genaue Typenbezeichnung des Rechners, sowie die Laufwerksart (inkl. Größe 8“, 5.25“, SS, DS, etc.) angegeben werden, damit ich die Formate entsprechend zuordnen kann.


    Es werden folgende Images benötigt:

    1.) eine UCSD-Standard-Testdisk mit obigem Programm erstellt

    2.) eine UCSD-SystemDiskette

    3.) eine Diskette mit einigen Textdateien darauf, falls keine auf Systemdiskette vorhanden


    Vielen Dank im Voraus!


    Grüße


    PAW

    • Offizieller Beitrag

    Hallo Toshi


    habe versuchsweise eine Sage II UCSD Diskette mit dem Testprogramm erstellt.

    Hallo PAW!

    Die Diskette mochte die SAGE leider nicht. Aber das Programm war ja schnell eingetippt.

    Es erzeugt, ich offe wie es soll eine Menge Files auf der Diskette



  • Hallo Toshi


    Danke für die Mühe!


    UCSD-seitig dürfte alles richtig gelaufen sein (Bilder OK).


    Beim Einscannen der Diskette ist allerdings was passiert. Im Image ist nur die Rückseite gespeichert. Vorderseite fehlt komplett! (Eventuell bei SAMdisk den Parameter -h1 angegeben ? Würde dann nur Seite 2 lesen.) Muss ohne h-Parameter ausgeführt werden.


    Bitte um nochmaliges Scannen.


    Danke!

  • Hallo Toshi


    Danke für die erste, nicht von mir selbst erstellte, UCSD-Standard-Testdisk.


    Ich habe das Image ausgewertet und in meiner Testversion von SAMconv ausprobiert. Sie läßt sich einwandfrei lesen und auch wieder ausgeben. War eine leichte Übung, da das Format keinerlei Interleave aufweist. (Interleave ist bei UCSD besonders kompliziert, da dieser meist abhängig von der Tracknummer ist, nicht wie bei CP/M, wo er auf jedem Cylinder gleich ist. Dazu auch die Standardtestdisk, um den Interleave exakt festlegen zu können.)


    Zitat von Toshi

    Die Diskette mochte die SAGE leider nicht. Aber das Programm war ja schnell eingetippt.Toshi

    Ich habe das Image dieser Disk ebenfalls nochmal eingelesen und es ist lesbar.

    Wäre interessant, warum die SAGE sie nicht lesen konnte? Vielleicht haben die Parameter bei SAMdisk beim Schreiben nicht gestimmt?



    Mit der Veröffentlichung der neuen Testversion werde ich noch warten, bis ich genügend UCSD-Standard-Testdisks bekommen habe, damit ich verschiedene Fabrikate implementieren kann. Vermutlich nicht vor August.


    Interessierten SAMCONV-Usern kann ich die ungetestete Version 2.20 gerne per PN zukommen lassen.


    Neue Features:

    +++ UCSD-VOL-Files lesen und schreiben

    +++ UCSD-Disketten-Images von SAGE II lesen und schreiben

    +++ UCSD-Disketten-Images von Altos (8" FM-Disketten von Don Maslin Sammlung) lesen und schreiben

    +++ Mehr Fehlertoleanz beim Lesen von Images hinsichtlich Sektorfehler, etc. (wie zuletzt bei TA P2-Disketten)

    +++ Undelete beim Lesen von CP/M-Files auf Images (werden in ein eigenes Verzeichnis kopiert). Ist manchmal sinnvoll, wenn gelöschte Dateien, die noch nicht überschrieben wurden, sichtbar gemacht werden sollen.


    gpospi

    wie sieht es mit der UCSD-Testdisk auf dem TA P2 aus?


    Schönen Abend!


    PAW

  • NEUES ZUM THEMA: SICHERHEIT BEI EXCEL-MAKROS



    Wie schon in meinem Beitrag #8 beschrieben, gibt es verschiedene Möglichkeiten EXCEL-Makros zu nutzen.


    Zitat von PAW

    Steht die Einstellung auf „Sehr hoch“, dann "geht gar nichts"! Es können nur speziell signierte Makros ausgeführt werden.


    Diese Aussage muss ich zurücknehemen!


    Es geht auch was bei der Einstellung "Sehr hoch"!


    Zuvor möchte ich noch darauf hinweisen, dass die aktuelle Version von SAMCONV nur in einer 32-Bit Office-Umgebung läuft. Ich arbeite aber gerade an einer Version, die auch unter 64-Bit laufen wird.


    Weiters habe ich einige Tests mit neueren Versionen von Windows und Office durchgeführt. (SAMCONV wurde ursprünglich unter WIN XP und Office 2003 entwickelt.)


    SAMCONV läuft auch unter WIN 7 und WIN 10, mit Office 2010, 2016 und 2019 (derzeit nur 32-Bit).


    WIE KANN MAN EXCEL-MAKROS NUTZEN, OHNE DIE SICHERHEITSSTUFE RUNTER ZU SETZEN?


    Indem man SAMCONV.xls mittels SAMCONV-START.exe aufruft:


    SAMCONV-START.zip


    SAMCONV-START.exe ist ein kleines Visual Basic (6.0) Programm, welches SAMCONV.xls startet. Die beiden müssen sich im gleichen Ordner befinden. SAMCONV-START.exe beendet sich unmittelbar nach dem Start von EXCEL. Vor dem Start sollten alle anderen EXCEL-Sheets geschlossen werden!


    SAMCONV läßt sich nun so bedienen, als ob der Makroschutz nicht eingeschaltet wäre.


    Das Startprogramm besteht im wesentlichen aus folgenden Statements:


    Public appEXCEL As Excel.Application
    Public wbEXCEL As Excel.Workbook

    Set appEXCEL = CreateObject("Excel.Application")

    Set wbEXCEL = appEXCEL.Workbooks.Open(PfadUndNameDesExcels)


    Es wird also nicht getrickst!


    EXCEL (auf 2003, 2010, 2016 und 2019 getestet) blockiert also nur die Makros, wenn das EXCEL-Sheet direkt aufgerufen wird, also z.B.: über den Windows-Explorer.



    Wie geschrieben, dein Tool ist voll interessant, aber ich sehe hier Fensterrahmen von Windows XP und ich weiß dass du Office 2003 (oder noch älter) nutzt, mit Makros. Excel steht bei mir nur noch unter Win 10 in der Version 365 zur Verfügung und Makros sind ausgeschaltet. Ich kann das also nicht verwenden.

    Ob das Programm auf Office 365 läuft, weiß ich nicht, da ich über keine solche Version verfüge. Wäre aber interessant, ob es auch dort läuft und wie es sich verhält. Sollte dieses Office eine 64-Bit Version sein, dann bitte ich noch um etwas Geduld!



    UCSD habe ich im Moment zurückgestellt, da bisher keine neuen UCSD-Testdisks eingelangt sind.


    Grüße, PAW

  • Gestern hatte ich kurz Gelegenheit auf einem OFFICE365 zu testen (Office 32Bit)-Version.


    Hier hat Microsoft den Makroschutz (endlich) richtig implementiert, im Gegensatz zu Office 2010 bis 2019. Auch wenn man ein EXCEL-Sheet über ein externes Startprogramm aufruft, lassen sich die Makros nur starten, wenn dies beim Makroschutz im EXCEL erlaubt wurde.


    Grüße, PAW

  • Leider hat Office 365 (aka Microsoft 365) andere Nachteile... Ich finde ein Abo-Zwang (1 Jahr und dann immer verlängern) zwar kaufmännisch sehr geschickt und das erhöht sicherlich den Gewinn bei Microsoft, aber ich bevorzuge einmalige Zahlung und dann "unbegrenzte" Nutzung, mal vom in die Cloud speichern ganz abgesehen.

    Daher bin ich schon längere Zeit auf Softmaker Office 2018 (und jetzt 2021) umgestiegen... tut's auch und kostet nur ein Bruchteil von Microsoft's Software (nur als Student/Schüler kostet die einen angemessenen Preis).

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Ich bin jetzt nicht von geteilten Lizenzen ausgegangen. Allerdings ist Softmaker Office für 35 Euro und auch für mehrere Benutzer nutzbar bestimmt günstiger.

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Office (bzw. Microsoft) 365 ist ja nicht nur Word und Excel, sondern noch viel mehr, es ist eine ineinander integrierte Landschaft, die sich auch auf dem Tablet und Smartphone nutzen lässt, mit Zusammenarbeit an einem Dokument mit mehreren Personen gleichzeitig. Aber mir war aber vor allem wichtig, dass es mit den Microsoft-Formaten gut umgehen kann, da ich da Sachen auch privat mit anderen Leuten teile, da hat nämlich zumindestens LibeOffice durchaus seine Grenzen und Fehler, was ständig Nacharbeiten und Korrekturen erfordert. Da bleibe ich lieber beim "Original".


    Das ist aber jedem seine eigene Entscheidung. Much muss niemand überzeugen, und ich will auch niemanden bekehren. Früher hätte ich auch Libre bevorzugt, ist ja auch nicht schlecht, aber bei dem Abopreis musste ich nicht lange überlegen.

    1ST1

  • SAMCONV nun auch als 64-Bit Version verfügbar!



    SAMCONV 2.30 - 32 and 64 Bit.zip


    Older versions of SAMCONV running only on 32 bit platforms. Now you can use also 64 bit EXCEL. In addition it has been tested on MICROSOFT OFFICE 2003, 2010, 2016 and 2019.



    NEW FEATURES OF VERSION 2.30:

    Running on 32 and 64 Bit EXCEL platforms under Windows (not on MAC!)

    CP/M option for reading deleted files (if possible)

    Converts some “new” UCSD formats like ALTOS (8”) and SAGE2

    Definable character translation tables for UCSD textfiles (max. 10 tables)

    UCSD volume files for BIG (Motorola CPUs) or LITTLE ENDIAN (Intel CPUs)

    Option for creating a duplicate directory on UCSD



    ADD ON:

    SAMCONV-START.exe is a small program for starting the EXCEL sheet, even when macro security options on a very high level. This works only till OFFICE VERSION 2019.



    Ich wünsche viel Erfolg!


    PAW



  • Hallo PAW,

    ist eine super Leistung was du da gezaubert hast. Ich habe schon einige Floppys meiner "Querbeet" Sammlung damit bearbeitet. Das Format zu ermitteln war nicht immer einfach aber etwas tüfteln hält ja jung ;-).

    Neben der kurzen aus 22disk extrahierten Liste (habe leider nur die free Version) hat mir auch die "Formate aus pdrivesys.txt" für einige europäische Formate weiter geholfen.


    Anmerkungen:

    1) auf dem raw_dir sheet ist es etwas verwirrend, dass die Block-Nummerierung in der ersten Spalte im Gegensatz zur Nummerierung in den Links nicht mit 0 beginnt, die Verlinkung also immer um eins daneben geht.

    2) im Format Definitions sheet ist in der Spalte für Directory size keine CP/M Formel hinterlegt, obwohl das einfach zu berechnen wäre da ein Dir-Eintrag immer 32 Byte groß und die Anzahl ja bekannt ist.


    Frage:

    1) Einige Floppys machen Probleme, da entweder ein Sektor fehlt, zu lang ist oder gar mehrfach vorzukommen scheint. Damit kommt deine Soft nicht immer klar. Gibt es eine Möglichkeit SAMdisk anzuweisen Sektoren einfach nach "best effort" auszulesen und im Fehlerfall (zu groß, nicht lesbar, fehlend) einfach durch einen "leeren" zu ersetzen, also keinen Kopierschutz zu vermuten? Habe es schon ohne Option, mit --fix, --rescans=3 --no-duplicates versucht aber an der größeren Imagedatei (gemessen an einer funktionierenden) erkenne ich sofort einen "Fehlversuch". Gibt es ein Tool um die .dsk nachzubearbeiten?


    2) deine Einstellungen und Ausgaben zu Skew sind mir nicht ganz klar. In der Literatur wird da auch i.A. zwischen Interleave und Skew unterschieden. Auch habe ich Disketten wo der Sektorversatz schon beim Formatieren aufgebracht wurde (also physikalisch) - das muss man dann bei der log. Definition für das CP/M Format ja nicht mehr berücksichtigen - es kommt aber schon mal die Meldung, dass ein Skew gefunden wurde etc.


    Gruß,

    schufti

  • Hallo schufti


    Zitat von schufti

    1) auf dem raw_dir sheet ist es etwas verwirrend, dass die Block-Nummerierung in der ersten Spalte im Gegensatz zur Nummerierung in den Links nicht mit 0 beginnt, die Verlinkung also immer um eins daneben geht.

    Dieses sheet ist eigentlich nur ein Hilfsblatt für die Verarbeitung und weniger für den User gedacht.


    Zitat von schufti

    2) im Format Definitions sheet ist in der Spalte für Directory size keine CP/M Formel hinterlegt, obwohl das einfach zu berechnen wäre da ein Dir-Eintrag immer 32 Byte groß und die Anzahl ja bekannt ist.

    So weit ich mich erinnere wird dieses Feld per Makro befüllt. Button "OVERWRITE ALL CP/M FORMULAS".


    Zitat von schufti

    1) Gibt es ein Tool um die .dsk nachzubearbeiten?

    Ist mit einem Hexeditor möglich, z.B. UltraEdit. Dafür ist aber Kenntnis der Dateistruktur von dsk-Files nötig. Findest du im Netz beim Autor von SAMdisk Simon Owen.


    Zitat von schufti

    2) deine Einstellungen und Ausgaben zu Skew sind mir nicht ganz klar. In der Literatur wird da auch i.A. zwischen Interleave und Skew unterschieden. Auch habe ich Disketten wo der Sektorversatz schon beim Formatieren aufgebracht wurde (also physikalisch) - das muss man dann bei der log. Definition für das CP/M Format ja nicht mehr berücksichtigen - es kommt aber schon mal die Meldung, dass ein Skew gefunden wurde etc.

    Wie du schon bemerkt hast, gibt es einen physikalischen Versatz, den ich in SAMCONV als SKEW bezeichnet habe. Diese Reihenfolge sieht man in der Scanfunktion von SAMdisk. Alternativ dazu gibt es beim CP/M den Interleave, der die Reihenfolge der Sektoren umdefiniert. Beide Mechanismen gleichzeitg einzusetzen ist meiner Meinung nach nicht sehr sinnvoll, obwohl es vermutlich technisch möglich wäre. Ziel der Mechanismen ist es ja dem Betriebssystem Zeit zu geben, die gerade gelesenen Daten zu verabeiten, bevor der nächste Sektor gelesen wird. Ist der nächste zu lesende Sektor zu früh da, muss das System fast eine ganze Umdrehung (ca. 200msec) abwarten, bis er wieder vorbeikommt. Gleiches gilt für's Schreiben.


    Die Meldung, dass ein Skew gefunden wurde ist nur eine Info. Kommt dann, wenn sich die Angabe in der Definition nicht mit der Disk deckt. Da aber der Floppycontroller die Sektornummern selbstständig findet, unabhängig vom Skew, sollte das nicht stören. Es kann allerdings sein, dass die Zugriffe langsamer werden, wenn die Diskette nicht mit dem richtigen Skew formatiert wurde.


    Gruß


    PAW

  • Hi PAW,

    danke für deine rasche Antwort.

    Ok, die Interleave Felder bezeichnen also den logischen Interleave, wie auch im CP/M DPH angegeben, SKEW bezeichnet dann einen physikalischen (hw) Interleave in der Spur, der beim Formatieren aufgebracht wurde und dient eigentlich nur zur Info. Ich habe auch Disketten wo der physikalischer Sektorversatz zwischen vorne und hinten einen "Offset" hat.

    In mancher Literatur ist mit Skew ein Sektorversatz zwischen den Spuren beschrieben, daher meine Nachfrage. Beides allerdings für Zugriffe auf das DS kein notwendiger Faktor (ausser Speed).

    Den "OVERWRITE ALL CP/M FORMULAS" Button habe ich mich aus Ehrfurcht nicht zu drücken getraut ... jetzt weiß ich wofür er gut ist. Wollte eben nicht, dass alle hinterlegten Zellenformeln verschwinden (in einer war ja schon keine mehr ;) )


    Gruß,

    schufti


    p.s.: bezüglich speziellem SAMdisk CP/M-dump Mode werde ich dann mal beim Author nachfragen

    p.s.2: wäre es möglich zu versuchen bei Konvertierung CP/M->DOS die exakte Filelänge zu ermitteln? Für CP/M3/+ sollte es ja nach https://www.seasip.info/Cpm/format31.html zumindest experimentell möglich sein.

    Einmal editiert, zuletzt von schufti ()

  • Zitat von schufti

    p.s.2: wäre es möglich zu versuchen bei Konvertierung CP/M->DOS die exakte Filelänge zu ermitteln? Für CP/M3/+ sollte es ja nach https://www.seasip.info/Cpm/format31.html zumindest experimentell möglich sein.

    Hallo schufti,


    ich habe SAMCONV für CP/M 2.2 entwickelt. Da ich auch keine Maschine mit CP/M3 habe, hat sich das Problem für mich nicht gestellt. Wäre außerdem einiger Aufwand, zumal dann Wünsche für Turbo DOS, etc. kämen. Im Moment ist SAMCONV für mich kein Thema, da ich mit FLUXCOPY ziemlich ausgelastet bin.


    Gruß


    PAW

  • Hi,

    gerade in CP/M3 Sourcen (cpm3.lib) gestöbert: dort heißt das Makro für den logische Sektorversatz ja SKEW, also müßte kompatibler Weise dann der Sektorversatz zwischen den Spuren dann INTERLEAVE sein ...


    correct file size: keine Dringlichkeit - ev. bei Gelegenheit eine Testversion, stelle gerne ein .dsk zur Verfügung.

    Werde mal schauen wie es auf den original DRI Images damit aussieht ...