Beiträge von flashback im Thema „Frage zu Kick Assembler“

    Vielen Dank an alle für die Denkanstöße, die Idee mit den Pointern hat mir weitergeholfen. :thumbsup:

    Ich habe jetzt die Pointer auf die Farben in einer Tabelle abgelegt, auf die ich dann über einen Index zugreife. Dieser Index wird dann einfach alle paar Frames hochgezählt:


    Mal noch eine weitere Frage: Liefert der Kick Assembler die Größe eines Speicherbereichs auch als Variable zurück und nicht nur im Ausgabebereich? Dann könnte man die Länge der Tabelle noch dynamisch bestimmen, bis jetzt definiere ich den Wert für "rasterPointerTableLength" selbst. Die Tabelle ist mit .pc = $c000 direkt am Anfang einer Page abgelegt.

    Die Variablen eines Assemblers werden nur zum Zeitpunkt des assemblierens ausgewertet.

    Stimmt, das hatte ich nicht bedacht, ist ja auch logisch. Aber man hat ja einfach manchmal ein Brett vorm Kopp. :whistling:

    Es soll anhand eines Tabellenwerts eine Rasterbar anders eingefärbt werden. Die Bars sind mit Variablenwerten definiert, also z.B. so:

    Die Bars werden dann wie folgt angezeigt, das habe ich so eingerichtet, um schneller verschiedenfarbige Bars ausprobieren zu können.

    Code
    .var colsrc = col1 // col2
    
    
    ...
    
    
    lda colsrc
    sta $d020
    sta $d021

    Dabei kam mir die Idee, auch während des Ablaufs so die angezeigten Farben schnell wechseln zu können. Aber wie's aussieht muß ich mir da was anderes einfallen lassen.
    ;)

    Moin,

    ich hoffe, daß meine Frage in diesem Unterforum richtig aufgehoben ist.

    Mir ist bekannt, daß man Variablen definieren und die dann im Quelltext verwenden kann, also z.B. so:

    .var myColor = 1

    ...

    lda #myColor
    sta $d020


    Soweit so gut. Geht denn auch der umgekehrte Weg? Ich habe z.B. einen Wert im Akku oder in einer bestimmten Speicherstelle, und möchte den direkt einer Variable zuweisen. Also sowas hier in der Art:

    lda flag // flag ist ein label, der Inhalt der Flag soll in einer Variable weiterverarbeitet werden

    Sowas hier klappte nicht:

    .var myFlag = lda flag
    .eval myFlag = flag

    Gibt's diese Möglichkeit überhaupt, oder ist das gar nicht vorgesehen? ;)