DLIs unter Turbo Basic
von VD_Tonic » Sa 10. Jun 2017, 13:27Hallo Zusammen,
ich arbeite gerade an einem Spieleprojekt für den SW Contest und habe auf den letzten Metern leider ein Problem, das ich nicht in den Griff bekomme, weil es sporadisch auftritt. Ich hoffe jemand hat eine gute Idee.
Folgende Situation unter Turbo Basic:
Ich habe ein Titelbild mit einem DLI für eine nachfolgende GR.0 Zeile und im Game zwei weitere DLIs, für zwei nachfolgende Gr.0-Zeilen und drei nachfolgende GR. 12 Zeilen. Das Titlebild hat eine eigene DLI-Routine, im Game wird dann eine andere DLI-Routine aufgerufen, die aus zwei Programmteilen besteht, die je nach Grafikzeile aufgerufen werden.
Soweit hoffe ich alles verständlich.
Beide DLI-Routinen funktionieren in 80% aller Fälle sauber, nur ab und zu eben leider nicht . Manchmal wird die DLI-Routine im Game nicht ausgeführt, und zwar erst, seitdem ich die zweite Routine im Titelbild ergänzt habe, also zwischen den beiden Umschalte. Wenn ich mir dann anschaue, was im Register 54286 steht, muss ich feststellen, dass hier trotz vorherigem poken einer 192 wieder eine 255 steht, aber eben nur manchmal. Habe die Vermutung, dass das OS hier in einem bestimmten Fall die Interrupts selbst wieder deaktiviert. Aber warum? Vermute das es passiert, wenn ich den DLI-Zeiger auf die andere Routine umbiege. Natürlich schalte ich ich den Interrupt vor dem Umbiegen selbst aus, und dann erst wieder an, aber irgendwas scheint da gelegentlich nicht zu klappen.
Hat jemand eine Idee?
Gruß
Jan
ich arbeite gerade an einem Spieleprojekt für den SW Contest und habe auf den letzten Metern leider ein Problem, das ich nicht in den Griff bekomme, weil es sporadisch auftritt. Ich hoffe jemand hat eine gute Idee.
Folgende Situation unter Turbo Basic:
Ich habe ein Titelbild mit einem DLI für eine nachfolgende GR.0 Zeile und im Game zwei weitere DLIs, für zwei nachfolgende Gr.0-Zeilen und drei nachfolgende GR. 12 Zeilen. Das Titlebild hat eine eigene DLI-Routine, im Game wird dann eine andere DLI-Routine aufgerufen, die aus zwei Programmteilen besteht, die je nach Grafikzeile aufgerufen werden.
Soweit hoffe ich alles verständlich.
Beide DLI-Routinen funktionieren in 80% aller Fälle sauber, nur ab und zu eben leider nicht . Manchmal wird die DLI-Routine im Game nicht ausgeführt, und zwar erst, seitdem ich die zweite Routine im Titelbild ergänzt habe, also zwischen den beiden Umschalte. Wenn ich mir dann anschaue, was im Register 54286 steht, muss ich feststellen, dass hier trotz vorherigem poken einer 192 wieder eine 255 steht, aber eben nur manchmal. Habe die Vermutung, dass das OS hier in einem bestimmten Fall die Interrupts selbst wieder deaktiviert. Aber warum? Vermute das es passiert, wenn ich den DLI-Zeiger auf die andere Routine umbiege. Natürlich schalte ich ich den Interrupt vor dem Umbiegen selbst aus, und dann erst wieder an, aber irgendwas scheint da gelegentlich nicht zu klappen.
Hat jemand eine Idee?
Gruß
Jan