(KoalaPlugin) - Source Problem

Es gibt 20 Antworten in diesem Thema, welches 4.110 mal aufgerufen wurde. Der letzte Beitrag (14. September 2007 um 19:10) ist von hoogo.

  • Ich habe das Koala-Plugin mal an den ACME-Compiler angepasst : Bitte melde dich an, um diesen Link zu sehen. .

    Nun habe ich diverse Probleme :

    1. Das funktioniert nur nachdem ich eine Datei aus dem gleichen Verzeichnis geladen habe. Das ist eine Intro : Bitte melde dich an, um diesen Link zu sehen. : Galactica_Into .
    Wenn ich eine andere Datei vorab lade, funktioniert das Plugin weiterhin nicht. :)

    2. Mit der originalen Addresse $c000 geht es ueberhaupt nicht. Ich habe mal nach $1000 compiliert und da ging es mit schon genannter Prozedur.

    Habe ich in dem Source etwas vermurkst ?

    Das originale Plugin funktioniert einwandfrei. Habe das aktuellste Bios drin und ansonsten funktioniert alles wie erwartet. Die beiden Koala-Bilder ( Bitte melde dich an, um diesen Link zu sehen. ) verwende ich im gleichen Verzeichnis "/eigenes" zum Testen.

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Zitat

    Original von Oliver_A
    Ich glaube dass der Fehler sich besser feststellen ließe, indem man die Binaries vergleicht.

    Ja, bin schon dabei. Ich nehme zwei Re-Assemblierte Versionen. Ich habe scheinbar in den Zero-Page Adressen etwas verbockt.

    LDA $4710
    STA $D021

    Ist ebenfalls noch ein kleiner Unterschied zwischen Source und dem Plugin.bin im Archiv. Hat aber nichts mit dem Fehler zu tun.

    Irgendwie habe ich ab $12 einen Fehler drin : aus $12 wurde $13 usw ...

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

    Einmal editiert, zuletzt von cbmhardware (10. September 2007 um 15:48)

  • Muss man beim Acme wirklich explizit die ZP Adressen angeben? Was fürn'n Schrott, sorry. :)

  • Zitat

    Original von Oliver_A
    Muss man beim Acme wirklich explizit die ZP Adressen angeben? Was fürn'n Schrott, sorry. :)


    Was genau meinst du damit? :roll:
    Und wie sieht es anders aus?

    8 Bit sind genug, sonst komme ich morgens nicht aus dem Bett. %)

    „Nous sommes dans un pot de chambre et nous y serons emmerdés.“
    („Wir sitzen in einem Nachttopf und wir werden darin zugeschissen werden“)
    2.9.1870, Auguste-Alexandre Ducrot

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. The home of ACME win32 compile.

  • Ist zwar etwas herumgehacke, aber du kannst das mit !pseudopc lösen.

  • Zitat

    Original von hoeppie


    Was genau meinst du damit? :roll:
    Und wie sieht es anders aus?

    Beim DASM kann ich Variablen über ihre Größen definieren,

    Code
    SEG.U   variables
        ORG     $02
    
    
    secperclustbuf .byte
    length .word
    clusterlength .word
    
    
    (...)

    und der DASM ordnet die Zeropage Adressen dann beim Assemblieren automatisch zu.

  • Hier, so ordnet der DASM die Variablen zu:

  • Das sieht nicht schlecht aus. ACME ist wohl eher was fuer den Gelegenheitstaeter.

    Waren die ZP-Adressen und irgendwie war mir ein $60 also RTS am Ende des Listings entlaufen.

    Bitte melde dich an, um diesen Link zu sehen.

    Wenn man die Labels einmal passend im Header hat, dann geht es auch mit ACME. :)

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Hä? Was verbockt Ihr denn da mit dem Acme?
    Die Schreibweise der Label-Dekalrationen im DASM ist nach dem Beispiel allerdings wirklich schön :)

  • Zitat

    Original von hoogo
    Hä? Was verbockt Ihr denn da mit dem Acme?
    Die Schreibweise der Label-Dekalrationen im DASM ist nach dem Beispiel allerdings wirklich schön :)


    Das habe ich dem ACME angepasst. Kennst Du eine bessere Loesung ?

    Sorry, habe die fehlerhaften Dateien schon wieder vom Server geloescht. Muss ja nicht in Umlauf kommen.

    Falls noch jemand Sources hat : Bitte melde dich an, um diesen Link zu sehen. .Ich sammle alle moeglichen Informationen. Auch Infos zur FAT32-Kompatibilitaet. Habe leider nur 2 FAT16-Karten und kann es selbst nicht testen.

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Zitat

    Das habe ich dem ACME angepasst. Kennst Du eine bessere Loesung ?

    erstmal solltest du zeigen was du denn dadraus gemacht hast =)

  • Zitat

    Original von sauhund

    erstmal solltest du zeigen was du denn dadraus gemacht hast =)

    In meinem Posting "Gestern, 16:37" .

    Bitte melde dich an, um diesen Link zu sehen.

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • mmmh, bei mir steht da immer noch ein !cpu 6502 oben drüber, aber das sollte eigentlich keinen unterschied machen.....ansonsten sieht das aber ok aus, da hilft wirklich nur mal binaries vergleichen, wird halt irgendwo ein tippfehler sein.

  • Die jetzt genannte Version in dem Link ist ok. Ich hatte gestern einem Word (fatptr) nur ein Byte reserviert.

    Es ging nun nur noch darum, ob man diese Variablen auch irgendwie mit ACME im Segment deklarieren kann. Ich kenne nur die Loesung mit Labels. :nixwiss:

    Aus dem Word wird im Source sowieso wieder 2 Byte. Ist halt ein 8-Bit-Computer. Mit den Variablen ist es natuerlich etwas uebersichtlicher und einfacher beim Deklarieren.

    Michael

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • grad nochmal durch die acme doku geguckt... der scheint tatsächlich keine nicht initialisierten variablen zu kennen ... lustig, ist mir nie aufgefallen :) auf die schnelle fällt mir jetzt auch keine lösung ein (pseudopc wird auch nicht helfen). eine ganz dreckige gäbe es:

    ... und dann vom resultierenden binary die ersten 2k wieder abschneiden. ich persönlich würde in dem fall dann allerdings doch einen anderen assembler benutzen der richtige segmentbehandlung hat :)

    Einmal editiert, zuletzt von sauhund (11. September 2007 um 13:44)

  • Doch, das geht mit !pseudopc, ungefähr so:

    Code
    *=$1000
    !pseudopc $02 {
     ...
    }
    
    
    *=$1000
    ; Hier geht das eigentliche Programm los und überschreibt die ZP-Variablen

    Naja, aber ist irgendwie schon ein fieser Hack.

    Einmal editiert, zuletzt von greg (11. September 2007 um 18:38)

  • Ich wüsste jetzt auch keinen Weg, den Speicher so schön zu definieren, ohne ihn auch zu initialisieren. Aber ich glaub ich bin gerade sowieso was verwirrt... Welcher Assembler war denn das mit dem .setpc? Und war da nciht auch immer ein !skip?

  • Zitat

    Doch, das geht mit !pseudopc, ungefähr so:

    urks....von hinten durch die brust ins auge =)