Hola a todos,
Me llamo Juan Antonio Gómez y hace poco que me he dado
de alta en HispaMSX.
La verdad es que es la primera vez que me conecto a un
sitio de estos y ya me está gustando.
Sobre mí os diré que hace muchos años que programé en
MSX1 bastantes cosas, todo via Cassette. Hace poco pude
comprarme un MSX2 y me empecé a enganchar un poco a este
mundillo. Tengo pensado hacer algo para MSX pero aún no
se muy bien el que.
Ultimamente he visto bastantes mesajes sobre el SBB y
la emulación del MegaSCSI, y me gustaría dar mi opinión
respecto a este problema, ya que creo que se ha hablado de
muchas cosas menos de lo que hay que hablar:
En mi opinión el SBB está correctamente programado, el
fallo reside en el MegaSCSI que no restaura todos los valores
el él modifica.
Si un programa (Y mucho MAS UN EMULADOR) altera ALGO, lo
minimo que ha de hacer cuando termine es restaurarlo.
Cuando cambiamos la configuración de slots lo que TODOS
hacemos es PRIMERO leer la configuración actual para cuando
hayamos terminado volver a dejarla como estaba.
Reconozco que el PPI-C no es muy importante leerlo y
restaurarlo, pero para un emulador SI que lo es.
Pero a parte de todo esto, mejor un ejemplo.
Inicio:
LD A,8 (Falta ajustar los bits altos)
OUT ($AA),A
...
Bucle:
IN A,($A9)
AND $01
JR NZ,Bucle
Creo que TODOS estaremos de acuerdo que esta es la forma
correcta de esperar a que se pulse la barra del teclado.
Y esto es lo que hace el SBB, pone el valor adecuado en
el puerto $AA y luego lee el teclado, no hace falta volver
a inicializar el puerto $AA, ya que por sentido común no hay
ningún programa externo que lo modifique.
Pero aquí viene el kit de la cuestión, cuando se usa el
MegaSCSI éste es el que lo modifica, incumpliendo una de las
principales normas de los emuladores, la transparencia.
Bueno, no conozco a Manuel Pazos, pero he visto y he
oido hablar mucho de él y lo admiro por todo lo que ha hecho
en MSX, pero creo que en vez de hacer un Patch para todos los
programas que no funcionan con el MegaSCSI, es mejor que haga
un Patch para el propio MegaSCSI. Así arreglamos este BUG.
Un saludo para todos.
Juan Antonio Gómez.