A. Während ich den Kernal ausschalte, dann muß ich für den CIA-Interrupt gewollte Startadresse ans Ende des Speichers legen? Funktioniert dann überhaupt noch ein VIC-Interrupt?
B. Was passiert, wenn ich in einem CIA-Interrupt stecke, beispielsweise Musik und Sound wegen, und nun der VIC-Interrupt will. Wird dann ein Frame geschluckt und es ruckelt?
C. Wäre es nicht vielleicht sogar vernünftig, das Teasing während des Spritesaufbaus komplett zu vernachlässigen und nur mit dem CIA-Interrupt zu arbeiten?
Zu A: Ja, wenn der Kernal ausgeblendet ist und an $fffe RAM statt ROM liegt musst du dafür sorgen dass der Interruptvektor dort auf etwas sinnvolles zeigt (oder du sperrst alle IRQs per SEI, aber dann gib's bis zum erlösenden CLI auch keinen Rasterinterrupt mehr)
Zu B: Es wird kein Frame geschluckt, aber es kann sein, dass dein Rasterinterrupt verzögert bei dir ankommt. Grundsätzlich würde ich mich nur um eine Art Interrupt kümmern und Musik und Sound im Rasterinterrupt anstatt an einem CIA-Timer auszuführen. CIA-Interrupts lassen sich auch einfach abschalten allerdings werden dann solange du nicht $ea31 weiter im Rasterinterrupt bedienst einige Kernal-Funktionen nicht mehr funktionieren. Gilt natürlich nicht, wenn du den Kernal sowieso abschaltest.
Zu C: Du meinst vermutlich Bitte melde dich an, um diesen Link zu sehen.? Das würde ich bei Sprites nicht vernachlässigen, gerade bei schneller bewegten Sprites fällt das dann schnell auf. Also besser die Sprites im Rasterinterrupt bewegen und den CIA-Interrupt komplett ignorieren oder gleich abschalten.
Aber ganz ehrlich, ich glaube du übernimmst dich gerade wieder. Ich würde empfehlen sich erstmal leichteren Fingerübungen zuzuwenden und z.B. die Sternendemo so umschreiben, so dass sie per Joystick gesteuert in alle vier Richtungen scrollt, vielleicht auch mal mit unterschiedlichen Geschwindigkeiten und Beschleunigung oder sowas. Ein nächster Schritt wäre dann mal einen frei erstellbaren Hintergrund statt dem Sternchenpattern zu scrollen, hierfür musst du dann umkopieren. Dann mal ein paar Sprites hinzufügen und versuchen die mit dem Hintergrund mitbewegen zu lassen. Und dann mal schauen wie es mit Kollisionsabfrage derselben untereinander und mit dem Hintergrund aussieht.
Das sind alles Dinge die ich wärmstens empfehlen würde anzugehen bevor man überhaupt an sowas wie Interrupts ohne Kernel und Musik und Sound oder gar komplette Spieleengines denkt. Wenn du dagegen sowas in kleinen Schritten angehst prophezeie ich dir eine ziemlich steile Lernkurve und gerade so Dinge wie Scrolling und Spritehandling wirst du vermutlich noch 769576 mal schreiben, zum einen weil du immer dazulernst und es besser machen willst und zum anderen weil man auf einem C64 mit seinen arg begrenzten Ressourcen die Idee einer alleskönnenden Spieleengine mit arger Vorsicht genießen sollte. Die meisten Spiele sind ziemlich exakt auf ihre eigenen Bedürfnisse zurechtgeschrieben.