"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