Der gemeine VBI.... oder meine schlaflose Nacht...
Verfasst: 30.12.2023 04:12
Hallo!
Die Profi-Progammierer werden es wissen, aber mir hat es jetzt mehrere Tage den Nerv geraubt und heute auch noch den Schlaf...
Ich habe bei Schränker 1 ein paar Funktionen geändert gehabt und die V1.1 dann veröffentlicht. Mir schien diese Version stabil zu laufen.
Auf dem A8 habe ich auch keinen Fehler "sehen" können. Weder unter PAL noch unter NTSC... vllt. habe ich auch nur Glück gehabt.
Nun kam die Frage im AA-Forum, ob ich Schränker 1 auch für den ATARI 5200 umsetze. Da es "eigentlich" nicht schwer sein sollte, da Schränker 1 sowieso schon als Modul lauffähig ist, habe ich mich ans Werk gemacht.
Leider kam im dritten Level immer ein sporadischer Fehler, der tlw. das ganze Spiel abstürzen lief. Ich habe gesucht und gesucht und verglichen und debuggt... kein Fehler im Programm aufzufinden. Obwohl alles richtig schien und unterm A8 auch funktioniert, hat er manchmal die Addition von 40 im VBI nicht korrekt berechnet.
Ich wollte schon aufgeben, da purzelte das RTI in mein Blickfeld. Auf dem 5200 beende ich den VBI per RTI, anders als beim XL.
RTI... ein RTI holt vom Stack den gespeicherten Status und anschließend die Rücksprungadresse. Im Status steht z.B. drin, ob der Prozessor Binär oder Dezimal rechnen soll. Oh manno... Ich berechne bei Schränker 1 die Zahlen von Binär in Dezimal um, damit ich diese darstellen kann. Und genau zu diesem Zeitpunkt scheint zufällig der VBI zu starten. Natürlich rette der VBI den Akkumulator und die Register X und Y... aber ich stelle die CPU nicht auf Binär um. Das muss man aber machen, wenn man sicherstellen möchte, dass im VBI die CPU genau diesen Modus hat.
Also sollte man im VBI etwas addieren wollen, sollte man tunlichst ein CLD nutzen.
Nun läuft das Spiel und ich kann V1.2 für den A8 und den A5200 rausbringen
Grüße
Janko
Die Profi-Progammierer werden es wissen, aber mir hat es jetzt mehrere Tage den Nerv geraubt und heute auch noch den Schlaf...
Ich habe bei Schränker 1 ein paar Funktionen geändert gehabt und die V1.1 dann veröffentlicht. Mir schien diese Version stabil zu laufen.
Auf dem A8 habe ich auch keinen Fehler "sehen" können. Weder unter PAL noch unter NTSC... vllt. habe ich auch nur Glück gehabt.
Nun kam die Frage im AA-Forum, ob ich Schränker 1 auch für den ATARI 5200 umsetze. Da es "eigentlich" nicht schwer sein sollte, da Schränker 1 sowieso schon als Modul lauffähig ist, habe ich mich ans Werk gemacht.
Leider kam im dritten Level immer ein sporadischer Fehler, der tlw. das ganze Spiel abstürzen lief. Ich habe gesucht und gesucht und verglichen und debuggt... kein Fehler im Programm aufzufinden. Obwohl alles richtig schien und unterm A8 auch funktioniert, hat er manchmal die Addition von 40 im VBI nicht korrekt berechnet.
Ich wollte schon aufgeben, da purzelte das RTI in mein Blickfeld. Auf dem 5200 beende ich den VBI per RTI, anders als beim XL.
RTI... ein RTI holt vom Stack den gespeicherten Status und anschließend die Rücksprungadresse. Im Status steht z.B. drin, ob der Prozessor Binär oder Dezimal rechnen soll. Oh manno... Ich berechne bei Schränker 1 die Zahlen von Binär in Dezimal um, damit ich diese darstellen kann. Und genau zu diesem Zeitpunkt scheint zufällig der VBI zu starten. Natürlich rette der VBI den Akkumulator und die Register X und Y... aber ich stelle die CPU nicht auf Binär um. Das muss man aber machen, wenn man sicherstellen möchte, dass im VBI die CPU genau diesen Modus hat.
Also sollte man im VBI etwas addieren wollen, sollte man tunlichst ein CLD nutzen.
Nun läuft das Spiel und ich kann V1.2 für den A8 und den A5200 rausbringen
Grüße
Janko