Hello,
I have send you an interesting routine to you, this routine maid for make one
sprite in two colors.
EXPLANATION:
Varying in the chart of the attributes of the sprites the elements in
relationship with the name and the color of the sprites to every scanning
video, is possible to produce sprite that is in appearance of two colors. You
suggests to follow the method that follows: before all to define in two ways
the sprites, a definition for every color. The definitions must be in the VRAM
one following to the other, in way that the definizonis 0 and 1 define a first
motley sprite, the definition 2 and 3 a second, the definition 4 and 5 a third,
etc.
In according to place to reserve a zone of memory for a chart of exchange,
every element of this last it does reference to a code of color for the
definitions of sprite odd order (in his seeds byte of great order); in the
seeds byte of inferior order finds the code of the color to place for the
definitions of order you protect. This chart must be adjourned every time that
a new sprite is defined.
Finally it is necessary to write a procedure driven from interruption to
change from a definition to the other (and therefore from a color to the other)
to every due interruption to the scanning video.
In this way 2 sprites of different color and definition share the same
entrance in the chart of the attributes of the sprites, every of which is
visualized to every second scanning of the television video. You/he/she can
happen that to every of them rises up a light phenomenon of flicker.
I have digitation the edged assembler with the ZEN, but when I start the
program with USR it doesn't work
EXPLANATION in ITALIAN:
Variando nella tabella degli attributi degli sprite gli elementi in relazione
con il nome ed il colore degli sprite ad ogni scansione video, è possibile
produrre sprite che siano in apparenza di due colori. Si suggerisce di seguire
il metodo che segue: prima di tutto definire in due modi gli sprite, una
definizione per ogni colore. Le definizioni devono essere nella VRAM una di
seguito all'altra, in modo che le definizoni 0 e 1 definiscano un primo sprite
multicolore, la definizione 2 e 3 un secondo, la definizione 4 e 5 un terzo,
ecc.
In secondo luogo riservare una zona di memoria per una tabella di scambio,
ogni elemento di quest'ultima fa riferimento ad un codice di colore per le
definizioni di sprite in ordine dispari (nel suo semi byte di ordine maggiore);
nel semi byte di ordine inferiore trova posto il codice del colore per le
definizioni di ordine pari. Questa tabella va aggiornata ogni volta che viene
definito un nuovo sprite.
Infine è necessario scrivere una procedura guidata da interruzione per
cambiare da un definizione all'altra (e quindi da un colore all'altro) ad ogni
interruzione dovuta alla scansione video.
In questo modo 2 sprite di differente colore e definizione condividono la
medesima entrata nella tabella degli attributi degli sprite, ciascuno dei
quali viene visualizzato ad ogni seconda scansione del video televisivo. Può
succedere che a ciascuna di loro insorga un leggero fenomeno di sfarfallio.
Bye
Andrea from Italy
Here uner there is the assebler list:
SPSWTB: DEFS 32
SPSWIT: LD HL,SATTAB
LD DE,SPSWTB
LD B,32
SPSWLP: CALL 004AH
CP 0D0H
RET Z
INC HL
INC HL
CALL 004AH
XOR 1
LD C,A
CALL 004DH
INC HL
LD A,(DE)
AND A
RR C
JR C,SKP
SLA A
SLA A
SLA A
SLA A
SKP: AND 15
LD C,A
CALL 004AH
AND 80H
OR C
CALL 004DH
INC HL
INC DE
DJNZ SPSWLP
RET
[Se han eliminado los trozos de este mensaje que no contenían texto]