Fluxengine liest und schreibt D81-Images für die VC 1581 via PC-Floppy-Laufwerk

Es gibt 99 Antworten in diesem Thema, welches 13.565 mal aufgerufen wurde. Der letzte Beitrag (16. September 2022 um 21:04) ist von markusC64.

  • öhm - etwas den Überblick verloren - braucht ihr noch was bei dem ich helfen könnte?

    Die Erstellung von Disketten-Fluxstreams die von einer FD-2000 stammen, scheint soweit zu klappen. Den oben erwähnten Ansatz von markusC64, dass sich ggf. auch mit dem PC ED-Floppylaufwerk bereits Fluxaufzeichnungen von ED-Disketten erzeugen lassen, werde ich auch versuchen. Soweit würde es passen und wäre auf meiner Seite also noch etwas zu tun.

    Offen bleibt noch FD-4000. Da kann man zu gegebener Zeit mal schauen, welche Möglichkeiten im Raum stehen würden. Du hast ja mit deiner Arbeit an den proof-of-concept Geräten bereits bestens vorgelegt, dafür allerbesten Dank!

  • Offen bleibt noch FD-4000. Da kann man zu gegebener Zeit mal schauen, welche Möglichkeiten im Raum stehen würden.

    toms01 Wobei es ggf. auch ohne Kryoflux, GreaseWeazle und wie die alle heißen geht. Da Du ja in Hardwaresachen sehr bewandert bist, könnte es eine Option sein, statt dessen per Logikanalyzer abzugreifen, was beim Formatieren zum Schreib-Lesekopf geschickt wird über das Shugart-Interface. Da muss ja eigentlich exakt das selbe drinstehen :smile:

    So eine Logik-Analyzer-Lösung kann man im Internet mit einer 1541 finden, das geht also wirklich.

    Im Idealfall will man dann auch die Spurwechsel mitbekommen.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Ich hatte mir damals einen LA-Adapter für die Amiga/1581-Geschichte gebaut, müsste den nur wiederfinden. Momentan bin ich auch ziemlich eingespannt, daher wäre mir eine Fertiglösung wie das GreaseWeazle lieber. Damals™ hatte ich mir ein GW auf Basis Bluepill aufgebaut, aber das scheint ja schon wieder veraltet zu sein, schaue mir deshalb mal die neueren Lösungen an.

    ?SYNTAX ERROR
    READY.
    Bitte melde dich an, um dieses Bild zu sehen.

    Letzte Projekte:

    Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen. / Bitte melde dich an, um diesen Link zu sehen.

  • Hm, ja, mit GreaseWeazle V4 sollte das auch gehen - zumindest deuten meine Tests ja in die Richtung.

    GreaseWeazle V1 weiß ich nicht, ob die höheren Datenraten von ED passen... das wäre das einzige, was dabei schiefgehen kann.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Zeit für erste Ergebnisse:

    Die Flashfloppy kann .d2m im Wesentlichen. Einschänkung zumindest derzeit: Man muss die Datei umbenennen und eine Config Datei hinterlegen, die das Format beschreibt.

    Also konkret: Statt ».d2m« die Doppelendung ».cmdfd2000.img«. Man kann auch eine andere wählen, dann muss man die Konfigurationsdatei entsprechend anpassen.

    Und folgenede »img.cfg« ablegen:

    Damit verhält sich die Flashfloppy dann genauso wie im per Kryoflux von hexfile erzeugten Fluxstream.

    Für CMD FD-4000 müsste man vermutlich "secs = 20", "rate = 1000" nehmen und "gap2" sowie "gap3" neu ermitteln.

    Nachtrag: Wenn Keir das natürlich in die Firmware direkt aufnimmt, dann würden auch .d2m Endung direkt gehen...

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von markusC64 (16. Januar 2022 um 13:51)

  • Beim Einlesen von FD-2000 Disketten ist bei der Trackanzahl noch was wichtiges zu beachten. Beim Lesen der gleichen physischen Diskette, die in den Beiträgen Bitte melde dich an, um diesen Link zu sehen. und Bitte melde dich an, um diesen Link zu sehen. erwähnt ist, verhalten sich KryoFlux und FluxEngine etwas unterschiedlich, was die Trackanzahl angeht:

    • KryoFlux liest standardmäßig offenbar alle Tracks, die das zum Lesen der Diskette verwendete PC-Floppylaufwerk ermöglicht. Im Fall von Bitte melde dich an, um diesen Link zu sehen. werden von KryoFlux die Tracks 0 bis 83 gelesen.
    • FluxEngine liest in der vorliegenden Version wohl standardmäßig nur die Tracks 0 bis 79 (FluxEngine nennt sie Cylinders). Auch wenn das einlesende PC-Floppylaufwerk mehr Tracks lesen könnte.

    Wichtig ist für FD-2000 Disketten die Tracks von 0 bis 80 aufzuzeichnen:

    There are several different ways to view the layout of FD2000 floppies. At the controller level, the disk has 81 tracks (physically numbered 0 to 80), ...

    Bei FluxEngine muss dafür die Option --cylinders.end 80 angegeben werden. Oder wenn das Laufwerk, wie in meinem Fall auch weitere Tracks lesen kann, dann besser gleich den gesamten Trackbereich von 0 bis 83 erfassen, also --cylinders.end 83. Die FluxEngine-Befehlszeilen aus dem Beitrag Bitte melde dich an, um diesen Link zu sehen. sind für FD-2000 Disketten also unvollständig. Um die erforderlichen Tracks 0 bis 80 zu erfassen und auch die zusätzlichen Tracks 81, 82 und 83 gleich mit (schaden tut es ja nicht), ist bei FluxEngine beispielsweise etwas in der Art des folgenden Aufrufs zu verwenden:

    • ./fluxengine.exe rawread -s drive:0 -d fluxengine_sample_fd-2000_hdn-formated_empty.flux --cylinders.end 83
  • braucht ihr noch was bei dem ich helfen könnte?

    Da wäre noch was: Wenn Du Bitte melde dich an, um diesen Link zu sehen. in Deiner CMD FD-2000 [Replik] mit Gotek ausprobieren könntest - bei Gelegenheit. Muss jetzt nicht sofort sein.

    Das Format unter der richtigen Endung rein zu nehmen, dürfte für Keir zwar ein Leichtes sein, wo das Format mit einer anderen Endung und einer IMG.CFG als solches bereits geht. Jedoch möchte Keir es dann auch anwendbar wissen - da würde ein solcher Proove Of Conecpt sehr helfen. Es könnte ja sein, dass sich beide Teile (CMD FD & Gotek) auf anderer elektrischer Ebene nicht so gut sind.

    Selbiges würde eigentlich auch für die CMF FD-4000 gelten, da kann man fürs Erste mit geschätzten GAP-Werten arbeiten... Eine erste Schätzung wäre, die Gaps der FD-2000 einfach zu übernehmen.

    An der Stelle braucht es nämlich wen, der wenn es nicht geht auch was dazu sagen kann, warum...

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Es scheint einen Bug in FluxEngine (Development build 2022-01-10 aus dem offiziellen git repository) bei der scp-Dateierzeugung zu geben. Beim Ausgabeformat .scp (Ausgabe soll im SuperCard Pro Dateiformat erfolgen) scheint die Verwendung von --cylinders.end 83 oder auch --cylinders.end 82 das Programm abstürzen zu lassen:

    Es wird auch keine Ausgabedatei erzeugt.

    Das FluxEngine-eigene .flux Dateiformat geht mit --cylinders.end 83 aber:

    Hier wird auch die Ausgabedatei erzeugt.

    Mit --cylinders.end 81 geht es erfreulicherweise aber auch fürs .scp Dateiformat:

    Anbei die zugehörigen Dateien, bei denen es sich um mit zusätzlichen Tracks erweiterten und daher korrigierten Versionen aus Beitrag Bitte melde dich an, um diesen Link zu sehen. handelt. Bei den in Beitrag Bitte melde dich an, um diesen Link zu sehen. angehängten Daten fehlt der Track 80, wie etwas weiter oben bereits erläutert.

    3.5" HD-Diskette:

    • Formatiert mit CMD FD-2000 Laufwerk als native CMD HD-Disk Partition: @"N:FD-2000 HDN EMPT,00,HDN"
    • Extension: HDN
    • Dichte: 1.6M
    • SYSTEM, 1 CMD NATIV
    • Ohne weitere Dateien

    Flux-Aufzeichnung:

    • FluxEngine (Software/Firmware Versionen vom 10. Januar 2022) in den Formaten .flux und .scp
    • ./fluxengine.exe rawread -s drive:0 -d fluxengine_sample_fd-2000_hdn-formated_empty.flux --cylinders.end 83 --flux_source.drive.high_density=1
    • ./fluxengine.exe rawread -s drive:0 -d fluxengine_sample_fd-2000_hdn-formated_empty.scp --cylinders.end 81 --flux_source.drive.high_density=1
    • Siehe Dateien im Anhang (Archiv enthält nach entpacken auch die log-Dateien)
  • Ach, die Fluxenginesoftware. Als ich die diese Woche getestet habe, kam die mir mit einem GreaseWeazle V4 auch instabil vor... wie auch immer. ".scp" ist entbehrlich. Notfalls macht man ein beherztes

    gw convert rawfilename.raw sample.scp --track c=0-83

    um mittels Greaseweazle Tools V0.37 die Kryoflux Streamfiles nach .scp zu konvertieren. Dann hat man das .scp, welches man für welche Tests auch immer haben will.

    Wie auch immer, ich habe das obige Beispiel der leeren Diskette mal etwas optimiert, so dass es hochkomprimierbar ist und somit für Issuereports jedlicher Art geeignet ist. "gw convert" mit umgekehrten Parametern macht daraus auch wieder brauchbare Kryoflux Streamfiles. :smile:


    Ich denke, mit der teilgefüllten Diskette wäre ähnliches gut - wenn Du die mal fertig hast. Eilt nicht.

    Dateien

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Das selbe als .flux Datei erhält man mit: fluxengine rawread -s cmd-fd2000.scp -d cmd-fd2000.flux

    Das hänge ich daher hier nicht dran.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Ich denke, mit der teilgefüllten Diskette wäre ähnliches gut - wenn Du die mal fertig hast. Eilt nicht.

    Hast du eine Wunschdatei oder mehrere, die ich auf die Diskette kopieren soll oder reicht es aus eine Datei mit zufällgem Inhalt (eine Besipieldatei mit 65.536 Bytes anbei, erzeugt mit Bitte melde dich an, um diesen Link zu sehen.) zu nehmen?

  • Random ist gut. Da hat wenigstens keiner Copyright drauf. :smile:

    Und wie Du sehen kannst, bekomme ich Kryoflux nach allem konvertiert. Per gw nach .scp und das .scp per fluxengine software nach .flux. Kannst Dir also Arbeit sparen.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Random ist gut. Da hat wenigstens keiner Copyright drauf. :smile:

    Und wie Du sehen kannst, bekomme ich Kryoflux nach allem konvertiert. Per gw nach .scp und das .scp per fluxengine software nach .flux. Kannst Dir also Arbeit sparen.

    Alles klar. Dann nehme ich die Datei mit Zufallsinhalt.

    Da es hier auch um die Weiterentwicklung von FluxEngine geht und unser Threadstarter emulaThor dort mit Beiträgen mitwirkt, erstelle ich auch gerne die FluxEngine Ausgaben - hilft ihm dann hoffentlich auch. Der Mehraufwand hält sich ja sehr gut im Rahmen. Und für mich geht es ja auch ums persönliche dazulernen.

  • Na gut. Anderseits kann er gerne auch meine dann folgende hochoptimierte Version nehmen. Wenn er für "fluxengine" dann einen Mergerequest stellen will, dann sind kurze Beispiele, die David Given dann für einen Regressionstest nehmen kann, sicher auch nicht verkehrt.

    Denen fehlt eigentlich nichts. Was Deinen Originaldump schlecht komprimierbar macht, sind die stochastisch zufällig verteilen Messabweichungen, die beim Schreiben und beim Lesen entstehen. Alle im Nanosekundenbereich (.scp misst auf 25ns genau die Zeiten). Wenn man das auf die theoretisch optimalen Werte normiert, ist das selbe Image auf einmal höchst konprimierbar - aber für praktische Regressionstests und Inhaltsanalysen genauso gut.

    Na gut, emulaThor kann dann ja nehmen, was er will...

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Anbei die Resultate für die mit FD-2000 formatierte/beschriebene Diskette, auf die nun auch die Datei random.bin kopiert wurde.

    3.5" HD-Diskette:

    • Formatiert mit CMD FD-2000 Laufwerk als native CMD HD-Disk Partition: @"N:FD-2000 HDN EMPT,00,HDN"
    • Extension: HDN
    • Dichte: 1.6M
    • SYSTEM, 1 CMD NATIV
    • Mit C64, Ultima II+ und CMD FD-2000 wurde die Datei random.bin auf die Diskette im CMD FD-2000 Laufwerk kopiert

    Flux-Aufzeichnung:

    • KryoFlux (Software Version 3.0) im Format .raw
    • ./dtc.exe -fkryoflux_sample_fd-2000_hdn-formated_64kb-file_ -i0 -i4

    und dann Konvertierung ins .d2m Dateiformat

    • ./dtc -m1 -fkryoflux_sample_fd-2000_hdn-formated_64kb-file_ -i0 -z3 -oo4 -fkryoflux_sample_fd-2000_hdn-formated_64kb-file.d2m -i4

    Siehe Dateien im Anhang (Archiv enthält nach dem Entpacken auch die log-Dateien und die D2M-Datei).

  • Hier die FluxEngine Resultate.

    3.5" HD-Diskette:

    • Formatiert mit CMD FD-2000 Laufwerk als native CMD HD-Disk Partition: @"N:FD-2000 HDN EMPT,00,HDN"
    • Extension: HDN
    • Dichte: 1.6M
    • SYSTEM, 1 CMD NATIV
    • Mit C64, Ultima II+ und CMD FD-2000 wurde die Datei random.bin auf die Diskette im CMD FD-2000 Laufwerk kopiert

    Flux-Aufzeichnung:

    • FluxEngine (Software/Firmware Versionen vom 10. Januar 2022) in den Formaten .flux und .scp
    • ./fluxengine.exe rawread -s drive:0 -d fluxengine_sample_fd-2000_hdn-formated_64kb-file.flux --cylinders.end 83 --flux_source.drive.high_density=1
    • ./fluxengine.exe rawread -s drive:0 -d fluxengine_sample_fd-2000_hdn-formated_64kb-file.scp --cylinders.end 81 --flux_source.drive.high_density=1

    Siehe Dateien im Anhang (Archiv enthält nach dem Entpacken auch die log-Dateien).

  • So weit, so gut. Auch wenn ich DirMaster nicht komplett vertraue, so ist es doch ein sehr gutes Zeichen, dass DirMaster aus dem .d2m die random.bin exakt so herausbekommt, wie Du die hast gepostet.

    Ich lasse das dann mal optimieren, damit wir wieder eine hochkomprimierbare Version erhalten. Währenddessen spiele ich mit ED rum - die schlechte Nachricht aber mal zuerst: Während Kryoflux ED Floppies unterstützt, kann es die ED Datenrate nicht. So schnell bekommen die es über die Hardware nicht rüber. Für dtc.exe gibt es aber einen Workaround, falls die Streams anderweitig erzeugt worden sind: "-v150" hilft.

    GreaseWeazle V4 und SuperCard Pro scheinen mit ED Datenrate klarzukommen. Fluxengine Hardware habe ich nicht, bekommt hier also den Status "unbekannt".

    Wenn man keine ED Floppy hat oder keine bespielte Diskette (oder beides), so kann man sich jenes per Flashfloppy emulieren lassen...

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von markusC64 (16. Januar 2022 um 19:04)

  • So weit, so gut. Auch wenn ich DirMaster nicht komplett vertraue, so ist es doch ein sehr gutes Zeichen, dass DirMaster aus dem .d2m die random.bin exakt so herausbekommt, wie Du die hast gepostet.

    Ich habe aus seinem .raw Stream mit der random.bin ein komplett neues .d2m erstellt und aus diesem neuen .d2m die random.bin extrahiert.

    Kommt die gleiche random.bin raus ... identische CRC.

    P.S.: Anbei eine leere 3200K .d2m ... die Dateiendung .txt einfach löschen.

  • Anbei die Resultate für die mit FD-2000 formatierte/beschriebene Diskette, auf die nun auch die Datei random.bin kopiert wurde.

    Auch das habe ich wieder optimiert. Diesmal habe in die 7z jedoch dowohl die .scp, die .flux als auch die Kryoflux Raw Streams gesteckt. Und natürlich das Referenz-D2M und die Referenz random.bin.

    Dateien

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.

  • Nochmal zu den Fluxdumps von der CMD FD 4000, die uns ja noch fehlen:

    Der Kryoflux kann Dumps von ED Disketten definitiv nicht. Der GreaseWeazle V4 könnte sehr knapp von der Datenwate werden - kann klappen, muss aber nicht. Fluxengine weiß ich nicht, jedoch sind die zuvor genannten Geräte alle an der Grenze, die durch die USB 1.1 Bandbreite gegeben wird.

    Die original SuperCard Pro kann laut Hersteller die ED Datenrate problemlos, weil jene Hardware erst den gesamten Track ins RAM der SuperCard Pro liest und erst dann zum PC überträgt. Da hat man durch dieses spezielle Vorgehen dann nicht mehr die Echtzeitanforderung.

    Der GreaseWeazle F7 Lightning (Plus) - also mit und ohne Plus - sind die einzigen GreaseWeazles, die ED ganz sicher können, ohne dass es verdammt knapp wird.

    Und seit neusten habe ich auch eine 3,5" ED Floppy mit Shugart Anschluss (mit HD und DD bereits getestet, funktioniert). ED Disketten erwarte ich demnächst auch. toms01 wenn Du mir also eine von meinen ED Disketten mit der FD 4000 bespielst, würde ich die Dumpen [mit der SuperCard Pro] und den Dump hier einstellen.

    ---
    Meine Github-Projekte: Bitte melde dich an, um diesen Link zu sehen. Vice 3.2 Improved: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II / Ultimate 64 Firmware Releases: Bitte melde dich an, um diesen Link zu sehen.
    1541 Ultimate II Update instructions: Bitte melde dich an, um diesen Link zu sehen.