ROM de la interfaz de disco de MicroPeripherals
Publicado: Dom Jul 25, 2010 6:31 am
Pues resulta que la única interfaz de disco que tengo es la "original" de Sinclair, la de MicroPeripherals. Tengo incluso una unidad de disco de color negro, pero está estropeada, así que uso una unidad Cumana que me funciona también en el +D y en el Disciple.
Cuando lo arranco, el mensaje de la ROM dice que es la versión 5.2S (la S por lo visto es de "Spanish"). Esta interfaz, como sabreis, se diferencia de otras en que en lugar de usar FLP para nombrar las unidades de disco, usa FDK.
Esto último no es problema, ya que lo primero que he hecho es hacer una copia de la ROM y modificarla para que en lugar de FDK use FLP. De esta forma puedo usar todo el software que viene preparado para disco...
... o eso creía, porque sorpresivamente, la orden LBYTES parece que no funciona. Lo he comprobado intentando cargar un bloque del disco directamente a memoria de pantalla: no se ha coscado. Antes de que alguien lo pregunte, lo digo: con la ROM original tampoco me funciona LBYTES.
¿Alguien sabe si esta interfaz tenía bugs de este tipo? En el manual que he encontrado sobre ella aparece una versión ligeramente distinta: trae 4 jumpers en lugar de los 5 que trae la mía, y hace mención a la versión 5.3 del firmware. La mía es la versión 5.2.
¿Se puede encontrar una versión más reciente de la ROM de esta interfaz por algún sitio?
Gracias!
PD: descarto que sea un fallo de la ROM principal (Minerva 1.98) o de la ROM de apoyo (Toolkit MKII) ya que estas mismas ROM's las uso en QemuLator y LBYTES funciona perfectamente ahí. La única diferencia entre QemuLator y mi QL real es la interfaz de disco, así que por eso concluyo que el fallo está ahí. Por otra parte, me es imposible probar un LBYTES desde un cartucho Microdrive, porque no tengo ninguno que ande correctamente (aunque seguiré buscando a ver si...)
AÑADO: no he conseguido usar ni uno solo de mis cartuchos de Microdrive, pero he probado otra cosa: desde el propio QL real he grabado una copia de la pantalla con:
SBYTES flp1_pantalla_bin,131072,32768
Al cargarla con LBYTES lo he hecho perfectamente.
Me llevo el disquete al QemuLator y lo pruebo: también funciona.
Copio el fichero (COPY FLP1_PANTALLA_BIN TO WIN2_PANTALLA_BIN) a la unidad WIN2_ que es un directorio compartido en Windows. La copia en WIN2_ carga con LBYTES en el emulador. El fichero según veo en el explorador de ficheros de Windows, ocupa exactamente 32768 bytes. No hay cabeceras ni historias raras.
Copio esta vez, desde la unidad WIN2_ hasta FLP1_ creando una copia del fichero con otro nombre, así: COPY WIN2_PANTALLA_BIN TO FLP1_P_BIN
Cargo P_BIN desde QemuLator con LBYTES y carga la pantalla.
Me llevo el disquete al QL real, intento cargar P_BIN y nada de nada.
Entonces pienso que tal vez SBYTES mete alguna información que COPY no mete, así que desde el emulador, me hago un pequeño programa que va reservando memoria con RESPR, carga con LBYTES a esa zona de memoria desde WIN2_ y luego hace SBYTES al disquete. Así con todos los bloques. Lo pruebo en el QL real y nada de nada.
En resumen: en el QL real sólo puedo hacer LBYTES de un bloque de memoria que haya guardado anteriormente, desde ese mismo QL, con SBYTES. Si copio un fichero binario al disquete usando el PC y un emulador, ese mismo fichero puedo cargarlo con LBYTES en el emulador, pero no en el QL real. Ambos, emulador y QL real, usan la misma ROM principal (Minerva 1.98 y la misma ROM de apoyo (Toolkit MKII). El QL real tiene una controladora MicroPeripherals, la "oficial" de Sinclair.
¿Qué está pasando?
Cuando lo arranco, el mensaje de la ROM dice que es la versión 5.2S (la S por lo visto es de "Spanish"). Esta interfaz, como sabreis, se diferencia de otras en que en lugar de usar FLP para nombrar las unidades de disco, usa FDK.
Esto último no es problema, ya que lo primero que he hecho es hacer una copia de la ROM y modificarla para que en lugar de FDK use FLP. De esta forma puedo usar todo el software que viene preparado para disco...
... o eso creía, porque sorpresivamente, la orden LBYTES parece que no funciona. Lo he comprobado intentando cargar un bloque del disco directamente a memoria de pantalla: no se ha coscado. Antes de que alguien lo pregunte, lo digo: con la ROM original tampoco me funciona LBYTES.
¿Alguien sabe si esta interfaz tenía bugs de este tipo? En el manual que he encontrado sobre ella aparece una versión ligeramente distinta: trae 4 jumpers en lugar de los 5 que trae la mía, y hace mención a la versión 5.3 del firmware. La mía es la versión 5.2.
¿Se puede encontrar una versión más reciente de la ROM de esta interfaz por algún sitio?
Gracias!
PD: descarto que sea un fallo de la ROM principal (Minerva 1.98) o de la ROM de apoyo (Toolkit MKII) ya que estas mismas ROM's las uso en QemuLator y LBYTES funciona perfectamente ahí. La única diferencia entre QemuLator y mi QL real es la interfaz de disco, así que por eso concluyo que el fallo está ahí. Por otra parte, me es imposible probar un LBYTES desde un cartucho Microdrive, porque no tengo ninguno que ande correctamente (aunque seguiré buscando a ver si...)
AÑADO: no he conseguido usar ni uno solo de mis cartuchos de Microdrive, pero he probado otra cosa: desde el propio QL real he grabado una copia de la pantalla con:
SBYTES flp1_pantalla_bin,131072,32768
Al cargarla con LBYTES lo he hecho perfectamente.
Me llevo el disquete al QemuLator y lo pruebo: también funciona.
Copio el fichero (COPY FLP1_PANTALLA_BIN TO WIN2_PANTALLA_BIN) a la unidad WIN2_ que es un directorio compartido en Windows. La copia en WIN2_ carga con LBYTES en el emulador. El fichero según veo en el explorador de ficheros de Windows, ocupa exactamente 32768 bytes. No hay cabeceras ni historias raras.
Copio esta vez, desde la unidad WIN2_ hasta FLP1_ creando una copia del fichero con otro nombre, así: COPY WIN2_PANTALLA_BIN TO FLP1_P_BIN
Cargo P_BIN desde QemuLator con LBYTES y carga la pantalla.
Me llevo el disquete al QL real, intento cargar P_BIN y nada de nada.
Entonces pienso que tal vez SBYTES mete alguna información que COPY no mete, así que desde el emulador, me hago un pequeño programa que va reservando memoria con RESPR, carga con LBYTES a esa zona de memoria desde WIN2_ y luego hace SBYTES al disquete. Así con todos los bloques. Lo pruebo en el QL real y nada de nada.
En resumen: en el QL real sólo puedo hacer LBYTES de un bloque de memoria que haya guardado anteriormente, desde ese mismo QL, con SBYTES. Si copio un fichero binario al disquete usando el PC y un emulador, ese mismo fichero puedo cargarlo con LBYTES en el emulador, pero no en el QL real. Ambos, emulador y QL real, usan la misma ROM principal (Minerva 1.98 y la misma ROM de apoyo (Toolkit MKII). El QL real tiene una controladora MicroPeripherals, la "oficial" de Sinclair.
¿Qué está pasando?