Mal wieder eine Frage zum ACME und 65816

  • Nicht, dass ich zu Faul zu Lesen bin. Ich habe einiges gelesen und getestet. Es funktionierte leider nicht.


    Wenn ich für die SCPU code, kommt es häufig vor das Bankbyte zu setzen. Wie mache ich das im Quellcode?


    #< low byte ; ist klar
    #> high byte ; auch klar
    #^ bank byte ; funktioniert leider nicht


    Danke im voraus. :)

  • #^ bank byte ; funktioniert leider nicht

    Doch, genau so funktioniert das. Ich hab es gerade noch mal getestet, und dieser Operator ist auch seit Ewigkeiten unverändert, also wird es nicht an der von Dir verwendeten ACME-Version liegen.


    Häng mal ein kleines Beispiel an, mit allen nötigen Informationen:
    -Was Du erreichen willst
    -Wie Du das im Source aussieht
    -Welches Ergebnis Du erwartet hast
    -Welches Ergebnis Du stattdessen bekommen hast (bzw. die Fehlermeldung)


    EDIT:
    Schreibt man z.B.

    Code
    1. WERT=$123456
    2. !by ^WERT

    so steht danach der Wert $12 in der Ausgabedatei.

  • OK, vielen Dank auch. Ich werde den Quellcode raussuchen und hier posten.
    Es ging darum, SID-Sounds ab Bank $02 bis Bank $04 zu laden und diese dort auch abzuspielen, ohne die Bank $00, bis auf die SID-Register zu nutzen.
    Wie ich das auf die Schnelle sehe, habe ich mindestens eine Fehler gemacht. :schande:


    Das war mein erster Versuch, in einem Quellcode das Bankbyte auf dieser Art und Weise zu nutzen.
    Vorher hatte ich immer Festwerte genutzt.


    Beispiel ohne Bankbyte
    So hatte ich es vor langer Zeit gemacht, nur high- und lowbyte
    -------------
    lda #$04
    ldx #$00
    ldy #$c1
    jsr $ffbd


    so wird es gemacht
    ----------------------
    lda #nam01-ende
    ldx #<nam01
    ldy #>nam01
    jsr rom_setnam


    nam01 !byte "TEST"
    ende