Forsetzung IRQ-Kurs (Teil9)
----------------------------------------
SPR09: pha ;Prozessor-Regs.
txa ; retten (dieser Teil
pha ; wird bei einem IRQ
tya ; abgearbeitet!)
pha
direct9:ldx $F9 ;Setzen der Werte für
lda $99,x ;Spr9 in VIC-Spr1
...
Wie Sie sehen, wird durch den Sprung auf
"direct9" lediglich der IRQ-Teil der
Routine übersprungen. Ansonsten ist die
Routine identisch mit "SPR8". Ebenso
existieren jeweils eigene Routinen für
die Sprites von 9 bis 15. Sollten weni-
ger als 15 Sprites dargestellt werden,
so wird, wie bei SPR8 auch schon er-
sichtlich, auf die Routine "BORDIRQ"
gesprungen. Sie steht ganz am Ende des
Programms und setzt "BORD" wieder als
nächste IRQ-Routine und beendet den ak-
tuellen IRQ. Sie wird ebenfalls abgear-
beitet, wenn das fünfzehnte, virtuelle
Sprite initialisiert wurde, so daß der
gesamte Multiplex-Vorgang nocheinmal von
vorne beginnen kann.
Dies wäre es dann wieder einmal für die-
sen Monat. Ich möchte Sie noch dazu ani-
mieren, ein wenig mit den Multiplex-
Routinen herumzuexperimentieren. Versu-
chen Sie doch einmal 24 Sprites auf den
Bildschirm zu bringen! Im übrigen sind
nicht immer alle 16 Sprites auf dem
Bildschirm darstellbar. Ist der Abstand
zwischen zwei virtuellen Sprites, die
durch das selbe "echte" Sprite darge-
stellt werden, kleiner als 22 Rasterzei-
len, so erscheint das zweite Sprite
nicht auf dem Bildschirm. Desweiteren
ist aus dem Multiplex-Demo2 ersichtlich,
daß es auch Probleme mit der Sprite-
Priorität gibt. Dadurch, daß die Sprites
umsortiert werden müssen, kann es pas-
sieren, daß manche zunächst Sprites vor,
und beim nächsten Bildaufbau hinter an-
deren Sprites liegen. Da man die Sprite-
Priorität nicht beeinflussen kann, und
Sprites mit kleinen Spritenummern Prio-
riät vor Sprites mit großen Spritenum-
mern haben, kommt es hier zu kleinen
Darstellungsfehlern, die leider nicht
behoben, sondern lediglich unsichtbar
gemacht werden können, indem man allen
Sprites dieselbe Farbe gibt. In einem
Spiel, in dem es wichtig ist, daß die
Spielfigur immer vor allen anderen Ob-
jekten zu sehen ist, kann man aber auch
nur die Sprites von 1-7 multiplexen, und
Sprite 0 unberührt von den restlichen
lassen. Die Routine kann dann zwar nur
15 Sprites darstellen, korrigiert jedoch
den obigen Fehler. Wie Sie sehen ist
auch dieser Raster-Effekt in vielfachen
anwendeungsspezifischen Kombinationsmö-
glichkeiten umsetzbar.
(ub)