Hello, Guest the thread was called1.2k times and contains 21 replays

last post from Stefan Both at the

Anpassung von Sonderzeichen ausschalten.

  • Moin Jungs,


    folgendes Problem:


    Ich lade eine CRT Datei für das Easyflash von BBS auf 1581 und kopiere dann mit CBMCommand auf SD2IEC.

    Oder, ich lade direkt von BBS auf SD2IEC.


    Sobald ein Sonderzeichen im Dateinamen des Files vorkommt, wird die Datei von der SD2IEC Firmware in einen ".p00 " Behälter gepackt. Dieser hat dann einen "MsDos Konformen" Namen.


    Auf der C64 Seite taucht dieser p00 Name nicht auf.

    Hier funktioniert das Flashen des EF³ (noch!) prima.


    Allerdings ist die Datei dadurch PC Seitig für das Easyflash³ "unbrauchbar" geworden.

    Die Kombination Easytransfer->USB->EasyProg weigert sich, die Datei zu akzeptieren.

    AUCH wenn ich die Datei innerhalb des Containers mit DirMaster extrahiere, also von Hand umbenannt auf SD / Festplatte kopiere.


    Ist die CRT Datei mittels DirMaster exportiert, funktioniert sie auch nicht mehr auf der C64 Seite.

    Es scheint so, dass jegliche PC seitige Änderung

    zu einer unbrauchbaren CRT Datei führt.


    Gibt es die Möglichkeit, diese automatische Umwandlung der SD2IEC Firmware zu deaktivieren?


    Stefan

  • Gibt es die Möglichkeit, diese automatische Umwandlung der SD2IEC Firmware zu deaktivieren?

    Nein, dafür gibt es keine Option. Aber man könnte als Benutzer einfach einen Dateinamen wählen, der das erst gar nicht triggert.

  • Nein, dafür gibt es keine Option. Aber man könnte als Benutzer einfach einen Dateinamen wählen, der das erst gar nicht triggert.

    Hmmm... das scheint problematisch.

    Wenn ich das richtig nachverfolgt habe, ist selbst ein Punkt ein Problem. Und ohne "plus3" also .d64 oder .crt ist das schon echt nervig. Zumal beim Download mittels (multi)PunterProtokoll der ("vorgegebene") Dateiname von der BBS übernommen wird.


    Stefan

  • Code
    1. static bool is_valid_fat_char(const uint8_t c) {
    2. if (isalnum(c) || c == '!' || c == ' ' ||
    3. (c >= '#' && c <= ')') ||
    4. c == '-' || c == '.')
    5. return true;
    6. else
    7. return false;

    Ist das der Problem-Punkt? (Zeile 4) ... kann ich den im Sourcecode nicht rausschmeißen? Dem Problem auf die Spur zu kommen hat mich knapp ein Jahr gekostet.

  • Dem Problem auf die Spur zu kommen hat mich knapp ein Jahr gekostet.

    Protip: Wenn irgendwas kaputt aussieht nachdem DirMaster es angefasst hat sollte man als allererstes ein anderes Tool für den gleichen Job versuchen (zB cbmconvert). DirMaster ist nicht unbedingt für seine Fehlerfreiheit bekannt.

  • Hast Du mal so eine Datei im Hexeditor betrachtet? Also vorher nachher?

    Da wird doch beim Extrahieren irgendwas im Header verändert, was nicht verändert werden sollte. Am eigentlichen Inhalt sollte es ja nicht liegen.

    Ansonsten hier mal so ein .p00 das am CeVi funktioniert reinhängen...

  • Mach ich mit einem Ausgesuchten File, nach der nächsten DL Session.


    Stefan

  • Protip: Wenn irgendwas kaputt aussieht nachdem DirMaster es angefasst hat sollte man als allererstes ein anderes Tool für den gleichen Job versuchen (zB cbmconvert). DirMaster ist nicht unbedingt für seine Fehlerfreiheit bekannt.

    Danke für den Hinweis betreffs DirMaster.

    Gab es da nicht noch ein anderes (modernes) Programm (mit GUI), als Ersatz für DirMaster?


    Trotzdem bleibt doch die Frage betreffs des Punktes.

    Ich kenne das Sonderzeichenproblem von meiner (frühen) Arbeit als Mediengestalter und vom "Datenretten". Die Lösung ist/war, wie Du

    schon sagst, kein Sonderzeichen zu verwenden.

    Ich würde schon gerne eine CRT Datei auch "xyz123.crt" nennen können. Schon der Übersicht wegen, um die Daten am PC einsortieren/archivieren zu können.


    Der Behälter p00 und dessen Namen scheint zu bleiben, auch wenn ich im Nachhinein auf der C64/128 Seite die BBS Datei umbenenne.

    Das ist im Falle eines "Vertippers/Typos/Irrtum" ganz kurios. C64 Seite nach Korrektur richtig, PC Seite noch falsch.

    Und das nur, weil durch die Nutzung eines Punkts automatisch die Containerdatei angelegt wurde.


    Das SD2IEC ist aus meinem Leben Hobby nicht mehr weg zu denken. Das Teil ist großartig. Ich möchte selbstständig versuchen, das Problem zu lösen. Es geht nicht ums Genörgel, wie schon in einem anderen Thread bemängelt wurde.

    Kann mein beschriebenes Problem gelöst werden, wenn ich im Sourcecode die [ . ] Abfrage rausschmeiße ?


    Stefan

  • Ich würde schon gerne eine CRT Datei auch "xyz123.crt" nennen können.

    Ein einzelner Punkt erzwingt noch keinen P00-Header, ausser wenn er das letzte Zeichen im Dateinamen ist.


    Der Behälter p00 und dessen Namen scheint zu bleiben, auch wenn ich im Nachhinein auf der C64/128 Seite die BBS Datei umbenenne.

    Natürlich bleibt der Header drin wenn er erstmal vorhanden ist. Zum Entfernen müsste ich die Datei einmal umkopieren, was auf dem Mikrocontroller ziemlich lange dauern würde und genug Platz auf der SD-Karte erfordert.

  • Man kann das File mit einem Filecopy Programm (z.B. FCOPY von CMD) von SD2IEC auf Disk / Diskimage kopieren, oder in anderer Richtung von Floppy in ein Image auf SD2IEC.

    Dann hat sich das P00 Header Problem erledigt. Was nicht geht ist, kopieren am PC via USB etc. pp.

    Die Arbeit hatte ich vor kurzem auch, als alle Files im BBS von SD2IEC auf's U64 umgezogen sind.

  • Die Bytes, welche zuviel sind, sind markiert. AAABER: 004C darf stehen bleiben => Ladeadresse.

    Müsste die 00 davor nicht auch stehen bleiben (Lowbyte)?

    Für mich sieht es so aus als ende der Header mit einer Doppelnull...


    Natürlich bleibt der Header drin wenn er erstmal vorhanden ist. Zum Entfernen müsste ich die Datei einmal umkopieren, was auf dem Mikrocontroller ziemlich lange dauern würde und genug Platz auf der SD-Karte erfordert.

    Kann man das File nicht einfach auf den PC ziehen, dort in VICE das p00 nehmen und in ein Disk-Image kopieren? Dabei kann man es gleich umbenennen. Danach extrahieren und auf SD zurückschreiben. Obwohl... da kann man es doch gleich auf die Platte (SD) zurückschreiben. Einfach Byteweise lesen und schreiben.

  • Also Punkte im Dateinamen vermeiden

    ja. Es scheint so zu sein, wie ich es vermutete.

    Selbst ein "name.crt" erzeugt einen Container.

    (Anhang) hab ich mit unterschiedlichen Dateien und Namen probiert.


    Stefan