On Tue, 14 Nov 2000, Antoni Burguera Burguera wrote:
WRVDPREG MACRO REGISTRO
OUT (VP1), A
IF REGISTRO AND 11111000B
LD (RG8SAV+REGISTRO), A
ELSE
LD (RG0SAV+REGISTRO), A
ENDIF
LD A, REGISTRO OR 080H
OUT (VP1), A
ENDM
Estooo... es correcta, no? Si el registro esta entre 0 y 7, REGISTRO AND
11111000 valdr 0 y se optar por la segunda rama, y en caso contrario,
por la primera. Por supuesto, RG8SAV es 00F7H-8.
RG8SAV = *00F7h-8*? No deberia ser 0FFE7h-8? :)
La macro es correcta, pero yo prefiero hacer el 'ld (RGxSAV+reg),a' desde
fuera de la macro, porque hay ocasiones en las que no te interesa guardar
el contenido del registro en la RAM, ya sea por velocidad (dentro de un
bucle o en una interrupcion), o porque no te interesa para nada leer luego
esos valores (al escribir en los registros de comandos del VDP, por
ejemplo).
Saludos,
--
ag0ny(_en_)ag0ny(_punto_)com - http://www.aamsx.org