Ich stehe mal wieder auf dem Schlauch.
Ich will eine Routine schreiben, die mir Text an einer definierten Stelle ausgibt.
Dazu will ich die Position auf dem Screen und den Text übergeben.
Die Routine will ich möglichst modular halten und nur sowas aufrufen wie
Die eigentliche Routine sieht dann etwa so aus (gekürzt)
Code
- txt_store : !word $0000 ; the address of the text to display will be stored here
- display_text
- lda txt_store ; read the address where the text is stored
- sta setcontent + 1 ; and selfmod write it to the loop
- lda txt_store + 1
- sta setcontent + 2
- ldx #$2
- -
- setcontent
- lda $0000,x ; selfmod
- cmp #$23 ; check for $23 = #
- beq end_routine
- setposition
- sta SCRRAM,x ; will be replaced by selfmod
- inx
- jmp -
- end_routine
- rts
Ich scheitere daran, die hinterlegte Screenposition auszulesen und Zeile 18 über selfmod zu schreiben.
Vermutlich denke ich wieder zu kompliziert?
Der gewünschte Zustand sollte sein, dass ich eine "Textdatei" habe, in der jeglicher Text sowie Konfiguration (Position, Farbe, Anzeigedauer etc.) stehen:
Code
Und ich diese einfach an meinen Text Display Code übergebe.
Bin für jeden Tipp dankbar.