Python/C Programme nach VB.net

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von oobdoo.

    Python/C Programme nach VB.net

    Für meinen Z80 Disassembler (speziell auf Amstrad CPC ausgelegt) benötige ich die Möglichkeit den Inhalt einer Floppy, vorliegend als DSK-Image, einzulesen.

    Leider sind alle Informationen dazu in Ausländisch geschrieben bzw. alle Sourcen die ich dazu finden konnte in chinesisch programmiert >>> (C, C++, C#; Python, Java)


    github.com/cpcsdk/cpctools in Python

    Visual Basic-Quellcode

    1. DSK_ID_EXT = b'\x45\x58\x54\x45\x4e\x44\x45\x44\x20\x43\x50\x43\x20\x44\x53\x4b' + \
    2. b'\x20\x46\x69\x6c\x65\x0d\x0a\x44\x69\x73\x6b\x2d\x49\x6e\x66\x6f\x0d\x0a'



    github.com/cpcitor/dsktools/tree/master/dsktools in C

    Visual Basic-Quellcode

    1. /* Boolean values
    2. */
    3. #define TRUE -1
    4. #define FALSE 0


    Zwei Beispiele aus den Sourcen. Ich dachte die könnte ich als Hilfe verwenden weil sie recht kurz
    und daher auch übersichtlicher sind als alles andere was ich bisher gesehen hatte.

    Ich habe aber überhaupt keinen Plan wie man sowas in VB.net formulieren soll. Auch mit Hilfe von
    Google usw. bin ich nicht ein Stückchen schlauer als vorher. :(

    Wer kann mir da weiterhelfen?
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    Wenn du Beispiele in C# gefunden hast sollte das ja kein all zu großes problem sein, davon sollte man das ganze ableiten können.
    Ich persönlich würde TRUE & False als const definieren. Die Bytefolge kannst du als string behandeln.
    Bilder
    • example.png

      23,01 kB, 1.151×360, 94 mal angesehen
    Hi. @oobdoo

    Ich schiesse mal ins Blaue... kann ja nur VB und Kaffee trinken, und sonst gar nichts. (Der blaue VB-Engel. Mit Emil Jahehnix, und Marlene Tadderrich. Jetzt im Kino!)

    DSK_ID_EXT ist ja ne Variable, der scheinbar ein Binärwert, genauer ein Array zugewiesen wird.

    \xNN sieht sehr verdächtig nach Char(s) aus und könnte ein String ergeben. Könnte aber acuh nur Binär sein.

    Wäre es ASCII dann ist "\x45" = "E" und "\x58" = "X" dann kommt "\x54" = "T"

    Dann steht dann "EXTENSION CPC DSK File<CR><LF>Disk-Info<CR><LF>".

    Quellcode

    1. EXTENSION CPC DSK File
    2. Disk-Info


    Ich habe eine ASCII-Tabelle online geDuckt, und manuell übersetzt.
    Das sollte also Text sein.

    Zum zweiten Teil.

    Das sieht sehr Verdächtig nach einer Konstanten definition aus.

    Hier wird True auf -1 festgelegt und 0 auf False.

    Formuliern würde ich folgend:

    VB.NET-Quellcode

    1. Dim DSK_ID_EXT as String = "EXTENSION CPC DSK File" & Environment.NewLine & "Disk-Info" & Environment.NewLine


    Und die Konstanten garnicht setzen, die sind in VB/.NET eingebaut und sind halt anders.
    True = 1
    False = 0

    In deinem Beispiel wird also einfach der Wert True umgewandelt in 1 statt -1.
    Dazu gibt es mehrere Mehtoden, aber es sollte einfach der Wert True und False genutz werden, und nicht der Wert -1.
    Es könnte sein das der Emulator/Diskettenleser/CPC-Computer das -1 als True interpretiert, und dann muss der Wert vor der Verwednung einfach geändert werden.

    Das kann ich nicht aus deinem Beitrag ersehen, aber ich bin richtig, ich schwör, RICHTIG gut im falsch raten. :)

    c.u. Joshi
    Erstmal Danke euch beiden.

    @Fakiz
    Du hast nicht ganz unrecht. Leider gibts hier auch ein paar Probleme. Das C# Projekt was ich gefunden habe github.com/gavinpugh/xnacpc arbeitet mit dem MS XNA zusammen.
    Das habe ich auch als Download gefunden (XNAGS40_setup.exe). Aber ich kann es nicht vollständig installieren.



    Weder die Windows Phone Developer Tools noch das Visual C# 2010 Express kann ich als Download finden. Daher klappt auch der Import des Projektes in VS2019 nicht richtig.



    Ich bekomme natürlich die Dateien ins VS rein, habe aber bisher nichts darin gefunden was mir weiterhelfen könnte.

    @Joshi
    Das werde ich mir genauer anschauen.

    Mittlerweile habe ich auch noch einen PASCAL Source gefunden. Und obwohl ich vor 30 Jahren in AMIGA OBERON programmiert hatte, ist so ein PASCAL Source für mich heute nur noch ein böhmisches Dorf. :(



    Ich werde mal schauen wie weit ich da komme. Möglich das ich die Funktion zum DSK-Einlesen erst einmal weglassen muss. Dann könnte ich mit dem Tool CPCDiskXP zumindest von Hand an die nötigen Files rankommen.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    Ich habe mich entschlossen keine fremden Sourcen mehr zu verstehen, sondern die Auswertung von einem DSK komplett selbst zu erarbeiten.
    Im Forum64 macht ein anderer User das gleiche, allerdings mit Java. Das ist für mich ganz praktisch wenn ich mal nicht weiterkommen sollte. :)

    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love: