HispaMSX

RE: [hispamsx] Acceso rapido a VDP y otros temas religiosos

2004-03-04 07:29:13
Bueno, bueno, bueno... Me imagino que WYZ estará ya aporreando el teclado para daros una respuesta, pero, por si acaso, allá va:

suponte que hemos puesto en HL la dirección de origen de datos y en DE la dirección de destino en VRAM, y en BC la longitud total a copiar

COPIA_SEMI_RAPIDA:
; Configura la dirección de VDP
  di
  ld a,l
  out (99h),a
  ld a,h
  or 40h
  out (99h),a
; Prepara para copiar salvajemente
  ld c,98h
; Espera un poquito, por si acaso
  nop
  nop
; Copia a lo bruto
  otir
; Se acabo
  ei
  ret

Por supuesto, esta es una aproximación que te dará algo más de velocidad que la BIOS, pero no es óptimo. Además, todos los movimientos de/a VRAM tienes que hacerlos en el v-blank, que es cuando tienes un ancho de banda máximo.

Para los más aventureros, decir que la instrucción OTIR es francamente lenta, y que se gana velocidad haciendo copias de bloques con OUTI. Para más datos, creo que podéis encontrar info en http://map.tni.nl

Comprobad que no he hecho nada mal, que lo he escrito de memoria y a toda velocidad.

Un saludo,

Edu R

P.S: Espero que lo que estéis programando sea para MSXdev'04, eh? ;-)

P.P.S: Y ni se os ocurra tratar de pasar más de 1000 bytes en cada interrupción, que vais a ir muy justos. Considero que 800 bytes se pueden mover bien (esto es, 768 de la tabla de patrones y lo que queda para atributos de sprites). WYZ puede hacer caso omiso de esta recomendación, porque sabe lo que se hace.



From: "napalmsx" <napalm(_en_)demoscener(_punto_)org>
Reply-To: hispamsx(_en_)yahoogroups(_punto_)com
To: hispamsx(_en_)yahoogroups(_punto_)com
Subject: [hispamsx] Acceso rapido a VDP y otros temas religiosos
Date: Wed, 03 Mar 2004 23:14:53 -0000

Hola buenas, estaba yo aporreando super rutinas graficas en asm (para
MSX 1, de momento ), cuando, o sorpresa ( falso, lo sabia ), me
encuentro con un lentisimo acceso a VDP mediante BIOS ( que M$ tenia
que ser ), en un principio intente el acceso manual mediante outs,
pero no funciono muy bien, y pense "ya lo mirare luego", pues bien,
ese "luego" ha llegado (mamá miedo), ya tengo hechas las rutinas que
queria, y ahora me falta un acceso a vram rapido cual rayo cosmico.

Comentaros que he mirado e incluso medio leido, los textos sagrados y
otras santas escrituras como el "MSX2 Technical Handbook","Red book",
manual oficial del vdp, y el "informatica para torpes", y el problema
no es que no lo expliquen, es que no lo entiendo T_T

Pues eso, que volvere a leerme, mas detenidamente esos documentos, a
ver si me sale, y os queria pedir, o experimentados usuarios
obsoletos, consejo, recomendaciones, experiéncias, indicaciones a
otros textos oscuros, y si os aburris mucho, ejemplos.

Muchas grácias.

PD. a mi compañero de compilaciones le ocurre lo mismo pero con el
PSG, tema timers y tal, no tengo datos exactos que los problemas que
tiene pero creo que va por el mismo camino de cabras que yo. Por que
si algun guru del PSG quiere iluminarnos, le estaremos agradecidos.

PD2. supongo que ha quedado claro que la meta es ignorar totalmente
la bios ;)

Muchas grácias
Nos leemos

Arnau Castellví.




*HispaMSX. La mailing-list de MSX en castellano*
Para cualquier duda: hispamsx-owner(_en_)yahoogroups(_punto_)com
Web de lista: http://www.hispamsx.org
Enlaces a Yahoo! Grupos

Para visitar tu grupo en la web, accede a:
 http://es.groups.yahoo.com/group/hispamsx/

Para cancelar tu suscripción en este grupo, envía
un mensaje en blanco a:
 hispamsx-unsubscribe(_en_)yahoogroups(_punto_)com

El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
 http://es.docs.yahoo.com/info/utos.html


_________________________________________________________________
Dale rienda suelta a tu tiempo libre. Encuentra mil ideas para exprimir tu ocio con MSN Entretenimiento. http://entretenimiento.msn.es/


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