HispaMSX

Re: [hispamsx] VDP

2001-08-27 09:40:43


"Roberto E. Vargas Caballero" wrote:

Hola!

* El Technical Handbook recomienda deshabilitar las interrupciones
antes de leer un registro de estado, pero no dice nada sobre las
interrupciones al escribir en un registro de control. ¿Es necesario
deshabilitarlas? He hecho algunas pruebas sin deshabilitarlas (al
escribir en registros de control) y funciona correctamente, pero igual
es la suerte del principiante.

a mi me paso algo curioso con respecto a esto. Una de ls primeras
versiones del juego que estoy haciendo funcionaba perfectamente en z80
pero no lo hacia con el r800. Tras mucho probar me di cuente que el
problema era exactamente ese, no desabilitaba las interrupciones al
acceder al vdp, y debido a la mayor velocidad del r800 la probabilidad de
que ocurriera algo en medio era mayor.


Pardillo!!!!!

XDD

De bon rollu roberto, por cierto, ya se que me quieres matar por que te debo un 
CD tal que bla, bla, bla ...

¿como va ese juego que llevas entre manos?



Pero, para compatibilizar con MSX1, el ordenador SUPONE que el registro de 
estado seleccionado con el R#15 del VDP es el CERO !!
Por lo cual, si tu lo has modificado antes, y no lo has vuelto a poner a 
cero, entonces, la rutina de tratamiento de interrupción de la Bios lee 
otro registro de estado, en lugar del cero, y no detecta la INT del VDP 
como tal, así que se queda colgado (como si se hubiesen desactivado las 
INTs)

mas que no detectarla es que la lectura de r0 supone el eoi (end of
interrupt) al vdp y por tanto no se produce otra interrupcion porque sigue
activa la anterior, ¿no?

Algo así los 2 tenis razón ...

Es decir que la Bios, exactamente la rutina de 038h, lee directamente del VDP

in a,(099h)

por lo que supone que esta el registro de estado 0 seleccionado, que a su VEZ 
si no creo recordar mal, baja el flag de interrupción, para que se pueda 
producir otra. Mientras esto no se hace NO se producen más por VDP.


--
Un saludo,

Armando Pérez Abad
HELIO YAGO, S.L.
http://www.bogamari.com
Tlf: (96) 363 43 17
Fax: (96) 390 27 17



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