HispaMSX

Re: [hispamsx] Pregunta técnica sobre VDP

2003-06-22 18:09:43


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]


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>