Kaum hat man mal zwei Jahre keinen Code angefasst fängt man wieder bei Null an.... ![]()
Ich verzweifle gerade an Folgendem: ich habe eine kleine Routine zum anzeigen von PETSCII. Diese hat die Adresse, wo die PETSCII Daten liegen "hart verdrahtet" -> frame0000.
Code
petscii_init
ldx #0
ldy #250
petsciiloop
lda frame0000+0*$100,x
sta $0400+0*$100,x
lda frame0000+25*40+0*$100,x
sta $d800+0*$100,x
lda frame0000+1*$100,x
sta $0400+1*$100,x
lda frame0000+25*40+1*$100,x
sta $d800+1*$100,x
lda frame0000+2*$100,x
sta $0400+2*$100,x
lda frame0000+25*40+2*$100,x
sta $d800+2*$100,x
lda frame0000+$2e8,x
sta $0400+$2e8,x
lda frame0000+25*40+$2e8,x
sta $d800+$2e8,x
inx
bne petsciiloop
rts
Alles anzeigen
Funktioniert auch alles. Ich möchte die Routine aber flexibel halten und unterschiedliche Screens übergeben.
Also dachte ich irgend sowas wie dieser Aufruf:
Und dann im Code die Adresse aus der ZP holen
Aber das ist alles totaler Blödsinn und ich mische Äpfel mit Birnen.
Kurzum: wie muss meine Routine aussehen, damit ich sie für mehrere Screens nutzen kann?
Ist Selfmod-Code die Lösung?
Ich danke Euch.