Kickassembler Tabelle mit Referenz auf Texte im Code per .byte. Wie geht das ?

Es gibt 6 Antworten in diesem Thema, welches 943 mal aufgerufen wurde. Der letzte Beitrag (4. Januar 2024 um 23:22) ist von Larry.

  • Hallo Leute,

    ich stehe hier gerade mal wieder auf'n Schlauch.

    Ich habe den Code von einem ML File (Filetransfer Protokoll) in Kickassembler von Hand wieder als Assembler Code mit Kommentaren etc. gebaut.

    In dem Code wird über eine 2 Byte Adress Lookup Tabelle ein Text gesucht und dann auf dem Bildschirm ausgegeben.

    Das ggf. dumme ist nun, dass das Format LO Byte, Hi Byte ist und nicht umgekehrt.

    OK ich könnte jetzt den Code ändern, aber mich interessiert ob und wie das in Kickassembler gemacht werden kann.

    Da ich wahrscheinlich jetzt jeden komplett verwirrt habe, hier der Code, dann wird das hoffentlich etwas verständlicher was ich meine:

    Im ML File waren da natürlich fixe Adressen für die Texte, also stand z.B. für den Text "WXMODEM..." in der Tabelle $e1, $94 für die Adresse $94e1 wo dieser Text im Speicher liegt.

    Will ich das mit Labels flexibel halten, bin ich davon ausgegangen man könnte bei .byte einfach mit #< und #> den Lo-Byte und Hi-Byte Wert der Adresse vorgeben. Das funktioniert aber nicht und gibt Syntax Error.

    Gleiches ohne vorangestelltem "#".

    Würde ich .word nehmen, dann ist die Reihenfolge doch verkehrt herum also erst Hi-Byte, dann Lo-Byte.

    Deswegen stehe ich gerade "auf'n Schlauch".

    Ich nutze Relaunch64 als Editor mit Kickassembler.

    Ich hoffe ihr könnt mir hier helfen ?!

    Vorstellung Raveolution BBS -> Bitte melde dich an, um diesen Link zu sehen.
    Raveolution BBS -> raveolution.hopto.org:64128
    Raveolution Gopher Hole -> gopher://raveolution.hopto.org:70

  • So ganz blick ich das Problem noch nicht, aber wenn mich meine etwas länger in der Vergangenheit liegenden KickAss-Erinnerungen nicht trügen, sollte so etwas wie:

    .byte <label, >label

    label: .text "blabla"

    schon funktionieren. Ein "#" gehört da nicht hin, da es eine Adressierungsart für einen Opcode signalisiert, und .byte ist ja gar keiner.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • .byte <label, >label

    Ja genau so hatte ich mir das auch vorgestellt. Aber das bringt leider nur Syntax Error. Keine Ahnung was daran falsch ist.

    Vorstellung Raveolution BBS -> Bitte melde dich an, um diesen Link zu sehen.
    Raveolution BBS -> raveolution.hopto.org:64128
    Raveolution Gopher Hole -> gopher://raveolution.hopto.org:70

  • Mal ne saublöde Frage, nachdem ich den Kickass nicht kenne.... gibt es nicht evtl. den Pseudo-Opcode .word ? Wäre das nicht die Lösung oder steh ich grad auf dem Schlauch?

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

  • Ja doch klar gibt es. Hatte ich vorhin ja schon erwähnt.

    Ich habe das mal auf .word geändert. Damit lässt sich der Code assemblieren, aber es passiert genau das was ich vermutet hatte.

    In der Tabelle steht dann erst das Hi Byte, dann das Lo Byte. Hier assembliert nach $b900, daher nicht mehr die $e1, $94 Adressen:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Vorstellung Raveolution BBS -> Bitte melde dich an, um diesen Link zu sehen.
    Raveolution BBS -> raveolution.hopto.org:64128
    Raveolution Gopher Hole -> gopher://raveolution.hopto.org:70

  • Würde ich .word nehmen, dann ist die Reihenfolge doch verkehrt herum also erst Hi-Byte, dann Lo-Byte.

    Ein kurzer Blick in die KickAss-Doku sagt eigentlich, dass .word erst low- und dann high-byte schreibt. Das sollte also auch passen. Allerdings bin ich recht sicher, dass es noch woanders ein Problem gibt, denn .byte <label, >label sollte definitiv keinen Syntax-Error ergeben.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Ein kurzer Blick in die KickAss-Doku sagt eigentlich, dass .word erst low- und dann high-byte schreibt. Das sollte also auch passen.

    Oh man ist schon spät.... stimmt. Passt so.

    Danke :schande:

    Vorstellung Raveolution BBS -> Bitte melde dich an, um diesen Link zu sehen.
    Raveolution BBS -> raveolution.hopto.org:64128
    Raveolution Gopher Hole -> gopher://raveolution.hopto.org:70