Ich habe schon wieder so ein "mysterioeses" Problem. Das schlimmste dabei ist, dass ich das Gefuehl habe, sowas schonmal gehabt zu haben, weiss aber nicht mehr was die Loesung war.
Und zwar habe ich nun schon mehrfach meinen Code an eine andere Stelle verfrachtet, weil urploetzlich die Interrupts nicht mehr funktioniert haben, wenn der Code ein wenig "zu lang" wurde. Sprich, ich habe ein paar Zeilen hinzuprogrammiert, mein Projekt gestartet, und sehe nur einen eingefrorenen Bildschirm. Nehme ich dann stueckweise Zeilen raus, geht es irgendwann wieder. Ersetze ich diese Zeilen durch einige NOPs, geht es wieder nicht. Habe dann alles insgesamt um $1000 verschoben (also nur den Code, nicht die Daten) und auf einmal ging es wieder. Bis das Problem irgendwann spaeter wieder auftrat und ich durch Rumschieben auf einmal wieder ein funktionierendes Programm hatte.
Natuerlich ist das aber auf Dauer keine Loesung und ich frage mich nun, wo der Fehler liegt. Der Code liegt komplett innerhalb des BASIC-Speichers, sollte also von daher kein Problem sein.
Dazu kommt noch, dass ich das Programm gerade auf dem echten C64 getestet habe, und dort fror es mal ein, und mal nicht. Nach Beenden durch RUN/STOP+RESTORE und anschliessendes RUN ging es z.B. mal und mal nicht. Sieht fuer mich nach ner Race Condition aus.
Hat jemand eine Ahnung, woran dies liegen koennte? Ich habe gerade auch im Hinterkopf etwas mit einem Sprungadressen-Bug beim 6502? Kann es so etwas sein? Aber muesste mich da der ACME Assembler nicht warnen?
EDIT: Auf dem Emulator kann ich dieses "Random-Verhalten" inzwischen auch nachstellen