HispaMSX

RE: [hispamsx] Problemas detectando el V-blank

2000-07-28 21:37:27
Va, 28 Julio 2000

 Mi respuesta particular al asunto de la sincronizacion, y del MSX1 y MSX2:

a) Para hacer una pausa, lo mas sencillo es
                EI             ;Habilita interrupciones, por si no lo
estaban ya.
                LD B,50     ;Espera 1 segundo, (si la pantalla está a 50
Hz.)
BUCLE:   HALT    ;Espera hasta que se produce la int de pantalla
                DJNZ BUCLE
*Pero si no quieres que las ints esten activas, tu solucion de muestrear el
bit de retrazado del registro de estado del VDP es correcta. (Nota: el "DEC
B; JR NZ,xxx" se puede sustituir por la instruccion DJNZ xxx que hace
exactamente lo mismo y ocupa un byte menos. Y el AND &H80 tambien se puede
sustituir por BIT 7,A que testea el bit 7 de A, afectando al flag Z en
consecuencia, aunque ocupa lo mismo )
(*Como ya te han comentado en esta lista, la solucion de consultar el bit de
retrazado solo sirve si tienes las INTS desactivadas, pues si estan
activadas, la rutina de tto de ints se te adelanta, y lee ese bit antes que
tu, poniendose a cero, y dejandote colgado)

b) Sobre las diferencias MSX-1 y MSX-2 para acceder a dicho bit, es muy
sencillo:
No has de hacer nada especial en el caso de un MSX-2 o superior.
Aunque el VDP del MSX2 tiene mas registros de estado, siempre esta
seleccionado
por defecto el 0, que es el unico que tiene el MSX.
( De hecho, cuando en un MSX2 lees otro registro de estado que no es el 0,
primero has de seleccionarlo en el R#15, luego leer del puerto &H99, y luego
VOLVER A SELECIONAR EL REGISTRO#0 escribiendo dicho 0 en el R#15. Si no lo
haces, en la siguiente interrupción de pantalla, se cuelga el MSX, porque la
rutina de interrupcion PRESUPONE que el registro seleccionado es el #0 )


Como ves, los que hicieron el MSX-2 pensaron muy bien en mantener la
compatibilidad con el MSX-1. Asi que si tienes una rutina de sincronismo o
de retardo en MSX-1, siempre te funcionara igual en las siguientes
generaciones de MSX.  = : - )

De todas formas, ya va siendo hora de que te familiarices con el MSX-2, pues
cuentas con la gran ayuda del manual MSX2 Technical Handbook de ASCII (en
ingles) que puedes encontrar en formato texto en la web de konamiman.
Lo considero IMPRESCINDIBLE para manejar todo lo relativo a MSX-1 y MSX-2 a
nivel de ensamblador. Viene con bastantes ejemplos, y explica TODO el
harware.

Lo malo, es que no haya un manual asi, exclusivamente para MSX-1, para
conocer exactamente las diferencias.

  Chao,

        Daniel Zorita.




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