ADF-Datei (Floppydisk-Rip) auslesen und Inhalt abspeichern...

  • Hallo,
    ich fummel momentan wieder mit dem Amiga-Emulator (WinUAE) rum und habe hier eine Vorgehensweise welche ich mit AU3 gerne automatisieren würde. Und zwar wird am Amiga mit 880Kb Disketten (DD) gearbeitet welche auf dem MS-Dos Standart der 720KB Disks (MS-DOS 3.2) basieren sollen und als *.adf Dateien verfügbar sind. Diese Disketten kann ich manuell entweder innerhalb der Emulation über die Workbench kopieren oder ich nehme ADF-Opus. Jedenfalls muss ich so Diskette für Diskette einzeln mounten und alles händisch kopieren - was sehr Zeitintensiv ist.

    Ich dachte das ich einfach ein wenig im Netz stöbere und irgendein Plugin, ´ne DLL oder sonstwas finden kann womit ich z.B. über einen Consolenbefehl oder einen DLL-Call mir alle Disketten in entsprechende Ordner "entpacken" kann - aber ich finde nichts... OK, jetzt dachte ich mir das ich einen HEX-Editor nehme und einfach mal in den Datensalat nachschaue ob da nicht iwas wie ein Inhaltsverzeichniss (in Klartext :rofl: ) hinterlegt ist - aber auch Banane... Hab mir auch einen HEX-Editor für den Amiga geladen und bei einer Disk dessen erste Datei darin geöffnet und einfach die ersten Zeichenfolgen auf meinem Win Hex-Editor gesucht und auch gefunden, nur leider ohne Dateinamen. <- Update, kann jetzt Disknamen auslesen.

    Hat jemand Info´s für mich wie ich es anstellen könnte das ich mit eigenem Code Vollzugriff auf meine ADF´s habe? Ich müsste eigentlich nur das Inhaltsverzeichniss mit sowas wie "Sprungmarken" und Dateigrößen auslesen können und damit die enthaltenen Dateien auf Platte ablegen. Das war´s eigentlich schon... Und ich weiß das es auf´m Amiga einen haufen No-Dos Disketten gab - um diese geht es hier aber nicht.

    Grüsse von
    Techmix!

    [EDIT]
    Habe jetzt eine ADF erstellt und angehängt:
    Name: Testdisk
    Inhalt: Ordner Dir, Datei Dir.info (Größe 628), Datei Dir/Startup-Sequence (Größe 1274)
    Öffne ich diese jetzt als Hex kann ich an Position 6E1B1 den Diskettennamen auslesen (auch bei anderen Disks) und ich sehe auch den Ordernamen (6E5B1) und dessen .info (6E7B1) sowie die StartUp (6EDB1). Immerhin sind diese Funde bei anderen Disketten ähnlich, aber ich kann keine Kennzeichnug erkennen ob es sich um einen Ordner oder eine Datei handelt auch kann ich keine Größenangaben ausmachen. ...Ich hätte echt erwartet das auf einer Diskette soetwas wie eine "Inhaltsliste" hinterlegt ist :S

    Außerdem mir fiel auf, das wenn ich eine "entpackte" Datei aus einer ADF verändert abspeichere, kann sie vom Emulator nicht mehr geladen werden!! Ich habe schon bereits versucht eine Startup Datei zu schreiben die auch nichts anderes macht als alle eingelegten Disketten in Ordner zu kopieren - klappt nicht wegen der geänderten Kodierung (vermute ich)... Das wird interessant wenn ich an dem Punkt komme wo alle Dateien auf Platte geschrieben werden.

  • Könntest du nicht einfach das Mounten und das anschließende Kopieren der Dateien automatisieren?
    Selbst in den Images rum zu suchen erscheint mir doch etwas umständlich...

    LG
    Christoph :)

  • Hy,
    auf das Total-Comander Addon war ich auch schon gestoßen und hatte auch schon bereits versucht dieses ohne TC anzusprechen, leider ohne Erfolg...

    Aber jetzt hat mich der Ehrgeiz gepackt und offensichtlich gibt es keine Codefetzen im Netz welche sich dem .adf Format widmen. Also werd ich weiterhin die Disketten mit dem Hexedior einsehen und im Netz stöbern. Das kann doch nicht so schwer sein ein Dateiformat aus den 80'ern zu knacken

  • Ich habe auch gerade gesehen das da noch mehr Infos sind! Lese mich grad in die Adf-Lib ein, das sieht schonmal sehr gut aus :thumbup:

    [Edit]
    UnAdf, das wird's sein! Damit werde ich heute Abend mal etwas rumspielen. Danke dafür!

    Einmal editiert, zuletzt von Techmix (6. August 2016 um 10:28)

  • So ich konnte mir eine Funktion schreiben welche mir den Disketteninhalt auflistet und auf Wunsch auch entpackt. Dank des Hinweises von Bitnugger verwende ich das Konsolenprogramm UnAdf welches auf der Vorgeschlagenen AdfLib basiert. UnAdf befindet sich bei mir in @ScriptDir & "\UnAdf". Wie sich die Funktion bei Pfadangaben mit Leerzeichen verhällt ist ungetestet...

    Der Funktionsaufruf ist denkbar einfach lässt map den zweiten Parameter aus wird nur das Inhaltsverzeichniss ausgegeben.

    Spoiler anzeigen


    Vielen Dank nochmal für den Lösungsweg und
    Dicke Grüße :D

    Einmal editiert, zuletzt von Techmix (7. August 2016 um 22:15) aus folgendem Grund: Funktion erkennt jetzt auch NDOS-Disketten und gibt eine entsprechende Meldung aus.