Image D64 einlesen

Es gibt 12 Antworten in diesem Thema, welches 3.735 mal aufgerufen wurde. Der letzte Beitrag (25. April 2018 um 07:15) ist von Drachen.

  • Hi Leute

    Mal eine frage, ich möchte für mich ein kleines Tool schreiben mit VBA, das Image D64 Dateinen einlesen kann. Ich habe mich im Netzt umgeschaut wie denn die Datei aufgebaut ist, damit ich sie einlesen kann. Habe nur nichts gefunden. Oder ich habe die falschen Frage an Tante Google gestellt. :D
    Hat einer von euch eine Idee wo ich Info dafür bekomme, oder gibt es eine Fertig Programmbibliothekt die das schon kann. Man muss ja das Rad nicht zweimal erfinden.


    Gruß Drachen

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

    Eigentlich ganz einfach: Alle 683 Sektoren der Diskette sind hintereinander einfach in eine Datei gelegt.

    ---
    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.

  • Was genau verstehst du den unter „einlesen“? Willst du auf die Sektoren zugreifen, und musst dafür lediglich das Layout der d64 wissen? Das wäre ja mit Markus Post geklärt. Oder verstehst du unter „einlesen“, dass der Inhalt des Images angezeigt wird, und du Dateien aus dem Image extrahieren und hinzufügen kannst?


    Bitte melde dich an, um diesen Link zu sehen.
    10.06.2023 - DoReCo Bitte melde dich an, um diesen Link zu sehen.
    14.09.2023 bis 17.09.2023 - DoReCo-Party 2023

  • Hi

    Vielen Dank für eure Antworten.

    Bitte melde dich an, um diesen Link zu sehen.

    Die Seite kannte ich schon, bloss konnte ich damit nichts richtiges anfangen.
    Was ich genau möchte, ist ein Directory wie die von den Emus, wenn man ein D64-Image einlegt um ein Programm zu laden. Ich möchte es für mich als Übung ansehen, wie man sowas programmiert. Denn eigentlich gibt es schon genügend Tools um D64-Image anzeigen zu lassen. z.B Dir-Master, oder für den Total Comander. Dafür gibt es ein Plug-In.

    Ich habe mir sogar den Quellcode für den Emu64 von Thorsten angeschaut. Aber mit C/++ kenne ich mich so gar nicht aus.

    Gruß Drachen

  • Dann wäre zu klären welche Sprachen Du beherrschst (vielleicht finden sich ja Beispiele die dir da entgegenkommen) und woran dein Verständnis des auf Unusedino geposteten hapert, denn dort steht in der Tat genau drin was wo gespeichert wird. Die Erläuterungen sind mehr als ausführlich und auch Dinge wie Directory und BAM sind explizit erklärt.
    Also: Was GENAU verstehst Du nicht? Je konkreter Du wirst desto leichter kann man dir helfen.

    Ich habe hier auf meiner Platte irgendwo einen in Blitzmax verfassten D64 Reader sowie einen D64-> G64 Konverter. Müsste allerdings suchen.

    GREETINGS PROFESSOR FALKEN
    A STRANGE GAME.
    THE ONLY WINNING MOVE IS NOT TO PLAY.
    HOW ABOUT A NICE GAME OF CHESS?

  • Von dem von mir verlinkten Dokument kannst Du auf jeden Fall schon mal die Tabelle gebrauchen, wo im D64 welcher Track anfängt. Darauf 256 * Sektornummer addieren und Du hast den Anfang des Sektors in der Datei.

    Details zum Aufbau des Dateisystems würde ich eher aus Literatur von damals holen, wie bspw. das Floppy-Buch von Markt & Technik oder von Data Becker. Findet sich in der Wolke.

    ---
    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.

  • Hi,

    im C64 Wiki gibt es eine Seite mit einer Liste von Disk-Image-Tools. (siehe Bitte melde dich an, um diesen Link zu sehen.)
    Diese Seite habe ich mal erstellt. In der Liste ist zu fast jedem Tool die Programmiersprache angeben und bei vielen dieser Tools ist der Quellcode öffentlich verfügbar.

    Z.B. der D64 Editor ist in Visual Basic geschrieben und der Quellcode kann von der Seite Bitte melde dich an, um diesen Link zu sehen.heruntergeladen werden. Visual Basic kommt VBA schon recht nahe.

    Gruß
    Hans

    >>> 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. <<<

  • Hi Drachen,

    ich weiss nicht wo du programmiertechnisch stehst und ich selbst arbeite nicht mit VB, hab aber vor ein paar Jahren Delphi gelernt und ein paar Programme geschrieben.

    Was du dafür können musst ist folgendes:
    - Binärdateien in einen Buffer einlesen
    - wissen wie du mit dem Buffer arbeitest (Bytes lesen, auswerten)
    - mit Memos, Buttons und ähnlichem umgehen

    Statt lange fremde Quellcodes zu lesen würde ich selbst mit kleinen Schritten anfangen.
    Und zwar so:

    Erstelle -Schritt für Schritt - in ansteigender Schwierigkeit- ein Programm:
    - das eine Binärdatei einliest
    - entweder per Menü, oder mit Drag&Drop (komfortabler)
    - das die Länge der Datei anzeigt
    - das die ersten paar Bytes zB in einem Memo anzeigt
    - das die Bytes ab Offset x anzeigt
    - das die Bam vom d64 anzeigt
    Dazu musst du die Bytes vom Track 18 Sector 0 nehmen und passend, zb in einem Memo anzeigen.
    Ab welchem Offset du diese Bytes findest steht ja auf der unusedinode Webseite.
    - das den Inhalt von Track 18 Sector 1 anzeigt, (erster Sector vom Directory)
    - das daraus die ersten paar Filenames lesen kann und ausgibt
    - das alle Filenames des Dir lesen kann und ausgibt

    Der Knackpunkt ist sicherlich: wie lese ich in VB ein Binary-File in einen Buffer und wie arbeite ich dann mit dem Buffer. Das lässt sich aber leicht gugeln.

    Hoffe das hilft ^^
    Stefan

    Die Nostalgie ist auch nicht mehr das, was sie mal war.

    Seit 2015 wieder auf C64 und Amiga.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • Hallo Leute

    Mensch das sind genügend Info wo ich alle verwerden kann. Klasse
    Jetzt kann ich mal loslegen.

    Hi Drachen,

    ich weiss nicht wo du programmiertechnisch stehst ..

    Programmiertechnisch kann ich ein wenig VBA. Leider gibt es dort soviele Belfehle was VBA so kann. Und ich ich kenne nur einen bruchteil davon. Das was ich halt von Basic her kenne, und von der Scriptsprache Game Maker.
    Mit VBA programmier ich immer nur mal ab und zu wenn mir danach ist, oder wie jetzt als mir in den Sinn kam ein Tool zu schreiben das mir die Image D64 auslist.

    Aber mit eure Hilfe geht es voran. Ihr seit hier die Besten :thumbsup:

    Gruß Drachen

  • VBA ist schon ganz ok für Scripts und so innerhalb Excel und Word, aber für selbstständig laufende Tools nicht so prickelnd das innerhalb dieser Applikationen laufen zu müssen.
    Oder meinst Du VBS (VB Script)?
    Beides VBA und VBS ist zum Debuggen ziemlich Mist. VBS kannst du mit modernen Visual Studio Varianten einigermasssen debuggen, aber toll ist das nicht.

    Ich würde Dir, wenn Du keine neue Sprache wie VB.NET lernen willst, dann Visual Basic 6 (oder auch VB Classic genannt) nehmen. Sollte auch sehr günstig auf eBay zu kaufen sein.
    Da ist die Sprachsyntax fast 1:1 und Du hast eine brauchbare IDE mit GUI Editor und damit lassen sich relativ einfach solche Tools einfach erstellen.
    Unterschätz die Debugging Möglichkeiten bzw. Notwendigkeit nicht, das wirst Du brauchen, erst recht wenn Du wenig Ahnung von Programmierung hast. Hier hilft Dir VB6 IDE sehr gut, um Deinen Code durchzusteppen.

    Ansonsten: Ich hatte mal irgendwo eine Bibliothek für D64 Dateien gefunden. Müsste mal suchen, wo die war. Aber die Erfahrung, die Du aufbaust wenn du das selbst programmierst, ist sicherlich viel interessanter.

    ___________________________________________________________
    Meine Kreationen: 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.
    Avatar: Copyright 2017 by Saiki

  • Jetzt, wo ich direkt am PC sitze, vielleicht hier noch ein Nachtrag:
    Ich bin keineswegs der Meinung, dass man heute mit VB6 anfangen sollte, wenn man Programmieren lernen will. Das ist wirklich, wirklich, wirklich OLD und Null zukunftssicher.
    VB6 war eher darauf bezogen, dass Du nur VBA kannst und wenn Du nichts anderes willst.

    Da würde ich eher zu Python oder VB.NET oder C# raten auf der Windows Welt.
    Für Python gibt es z.B. der CBMDisk Wrapper, um die Disk Image Operationen aus DirMaster zu verwenden:
    Bitte melde dich an, um diesen Link zu sehen.
    Das sieht sehr gut aus und ist einfach, wenn ich das mal so durchlese. Schneller als eigene Lösung zu coden, bist Du damit sicher. Genug coden wirst Du auch damit zu tun haben.


    Hier eine andere Python library, die selbstständig läuft (also ohne DirMaster):
    Bitte melde dich an, um diesen Link zu sehen.
    Code Fragmente dazu, die man online lesen kann, hier: Bitte melde dich an, um diesen Link zu sehen.

    Alles was Du dazu brauchst unter Windows ist Python und einen brauchbaren Texteditor wie z.B. Notepad++, der die Syntax-Highlighting beherrscht.

    ___________________________________________________________
    Meine Kreationen: 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.
    Avatar: Copyright 2017 by Saiki

  • Hi

    Ich habe mich bezüglich der Bezeichnung der Programmiersprach falsch aus gedrückt. Ich meinte nicht VBA unter Excel oder Word. Die ist tatsächlich für sowas völlig falsch.
    Sondern ich arbeite mit Visual Studio Express 2015. Das bietet Microsoft kostenlos an. Vorher hatte ich Visual Studio Express 2013. Hatte damit schon winzige Tools für unser Geschäft geschrieben.
    Mit Python hatte ich auch mal ein wenig programmiert. Aber irgentwie bin ich da nicht hängen geblieben. Und mit C/# oder C/++ hatte ich mich noch nie auseinander gesetzt. Die Scriptsprach vom Game Maker lehnt sich glaube ich an C/++ an. Hat aber seine eigene Syntax.

    Da würde ich eher zu Python oder VB.NET oder C# raten auf der Windows Welt.
    Für Python gibt es z.B. der CBMDisk Wrapper, um die Disk Image Operationen aus DirMaster zu verwenden:
    Bitte melde dich an, um diesen Link zu sehen.
    Das sieht sehr gut aus und ist einfach, wenn ich das mal so durchlese. Schneller als eigene Lösung zu coden, bist Du damit sicher. Genug coden wirst Du auch damit zu tun haben.

    Hier eine andere Python library, die selbstständig läuft (also ohne DirMaster):
    Bitte melde dich an, um diesen Link zu sehen.
    Code Fragmente dazu, die man online lesen kann, hier: Bitte melde dich an, um diesen Link zu sehen.


    Gefällt mir, muss wohl Python wieder reanimieren. Hatte es erst neulich deinstalliert, weil ich gedacht habe das ich darauf nicht mehr programmiere. War wohl ein Fehler :)

    Weiß nicht, ob es vollständig ist - ist ein VB6 Projekt dass ich im Rahmen meiner BT Recherchen gemacht habe, dass neben der Klasse auch ein OCX enthält

    Werde ich mir anschauen.

    Ich Danke euch allen für die tollen Infos. Jetzt kann gar nichts mehr schief gehen.

    Gruß Drachen