HispaMSX

RE: De vuelta On-topic: OPTIMIZACION

2004-05-14 16:06:54
3.-Sólo apto para freaks: rutina de copia super-rápida para
psicópatas y 
demosceners.

no se si ha sido lo de freak, psicopata o demoscener, pero ha activado  
mi interrupcion de atencion XD apunto apunto....


El truco está en que la instrucción OTIR es MUY LENTA y hace muchas 
comparaciones que son innecesarias. Crearemos una nueva versión, más
rígida, 
que ocupa mucha más memoria, pero que se acerca mucho más al límite
teórico 
de transferencia:

RUTINA_RAPIDA:
; Parámetros: HL- origen de datos en RAM
                   DE - destino de datos en
                   C - número de bloques de 256 bytes a copiar
; Vamos allá. El principio es idéntico
DI
LD A,E
OUT [99h],A
LD A,D
OR 40h
OUT [99h],A
; Hacemos algún apaño
LD E,C
LD C,98h
; Empezamos el proceso de copia
BUCLE:
OUTI
OUTI
OUTI
..... (habría que repetir esta misma instrucción 256 veces seguidas!)
DEC E
JR NZ,BUCLE
; Ya está
EI
RET
...
...

Bueno, actuamlente ya uso algo parecido... de 8 en 8 para llenar
patterns de bloque en bloque...


A todos, un saludo. NapalMSX, con esta sabiduría concentrada pueden
hacerse 
demos que se muevan bastante bien en MSX...

pozí :)

Eduardo Robsy

_________________________________________________________________
¿Dónde se esconden l@s solter@s? Encuentra miles de perfiles en MSN
Amor & 
Amistad. http://match.msn.es/


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