Eduardo Robsy Petrus <robsypetrus(_en_)hotmail(_punto_)com> wrote:
Hola. A alguien se le ocurre una rutina más rápida para copiar datos de la
RAM a la VRAM en bloques de 8 bytes en un MSX1 (TMS9918 o asÃ)???
Os pongo mi rutinilla, a ver si le encontráis las cosquillas:
; Parametros:
; HL: dirección de origen (RAM)
; DE: dirección de destino (VRAM)
; B: número de bloques de 8 bytes a copiar
RAM2VRAM:
ld a,e
di
out (99h),a
ld a,d
or a,40h
out (99h),a
ei
ld c,98h
LOOP:
ld d,b
outi
outi
outi
outi
outi
outi
outi
outi
ld b,d
djnz LOOP
ret
Buenas:
Se me ocurre que si:
LOOP:
ld d,b
7*(outi)
ld b,d
outi ;b=b-1 si b=0 => flag Z=1
jr nz,LOOP ;12,7 T-estates
ret
ahorras 1T en cada vuelta.
---------------------------------
Yahoo! Sorteos
Juega a la LoterÃa Primitiva sin salir de casa
[Se han eliminado los trozos de este mensaje que no contenÃan texto]