¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Una duda Miguel, he corregido esto en emulador pero entonces no funciona el divide/divmmc. Me explico:
-Salta la paginación automática de la rom del divmmc
-En algun momento, escribe en el puerto de control del divmmc el valor 0
-Esto según tengo entendido, desactiva CONMEM y MAPRAM... por tanto... no debería desactivarse la paginación y aparecer la rom normal del spectrum
O es que, como está la paginación automática, se sigue manteniendo dicha paginación automática hasta que hay un trap de salida?
-Salta la paginación automática de la rom del divmmc
-En algun momento, escribe en el puerto de control del divmmc el valor 0
-Esto según tengo entendido, desactiva CONMEM y MAPRAM... por tanto... no debería desactivarse la paginación y aparecer la rom normal del spectrum
O es que, como está la paginación automática, se sigue manteniendo dicha paginación automática hasta que hay un trap de salida?
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Me respondo a mi mismo:
he agregado un estado nuevo a la emulación de la interfaz: paginacion_automatica.
De tal manera que tengo dos variables de estado: paginacion_manual (la establecida mediante la escritura al puerto) y la paginacion_automatica (que se activa o desactiva según se entre o se salga de los traps a rom)
Entonces cuando leo/escribo del espacio de memoria 0-3fffh:
-Si ambos estados de paginacion están desactivados, devuelvo la rom normal de spectrum
-Si alguno (o los dos) estados están activos, devuelvo la página de memoria del interfaz divide/divmmc según bits conmem, mapram etc
Haciendo esto así ya funciona
Entiendo que es el comportamiento normal
he agregado un estado nuevo a la emulación de la interfaz: paginacion_automatica.
De tal manera que tengo dos variables de estado: paginacion_manual (la establecida mediante la escritura al puerto) y la paginacion_automatica (que se activa o desactiva según se entre o se salga de los traps a rom)
Entonces cuando leo/escribo del espacio de memoria 0-3fffh:
-Si ambos estados de paginacion están desactivados, devuelvo la rom normal de spectrum
-Si alguno (o los dos) estados están activos, devuelvo la página de memoria del interfaz divide/divmmc según bits conmem, mapram etc
Haciendo esto así ya funciona
Entiendo que es el comportamiento normal
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Y como decías, ahora el test este del divmmc de memoria falla y con tus modificaciones ya funciona
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
La paginación automática sigue en uso hasta que hay un trap de salida. No sé si habilitando y justo después deshabilitando CONMEM puedes forzar una despaginación. Creo que en el ZX-UNO, pasaría eso, pero no queda claro en los documentos del DivIDE qué pasaría. Mira, otra cosa a probar con hard real.chernandezba escribió:O es que, como está la paginación automática, se sigue manteniendo dicha paginación automática hasta que hay un trap de salida?
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Pues espérate que al final va a ser que debería funcionar. He editado mi post anterior, donde pruebo este test con varios emuladores y con hardware real, y he encontrado una cosa...chernandezba escribió:Y como decías, ahora el test este del divmmc de memoria falla y con tus modificaciones ya funciona
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Lee los "EDITO" de este post:
viewtopic.php?f=39&t=1062&start=10#p13635
viewtopic.php?f=39&t=1062&start=10#p13635
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- chernandezba
- Mensajes: 841
- Registrado: 02 Oct 2015, 23:35
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Entonces, aparte de esto, que no acabo de entender bien:
[ RETURN, WRITEENABLE, X, X, X, X, X, BANK0 ]
...
Resulta que como decías,cuando conmem=0 hasta que no hay una paginación automática, la página no entra, es asi? Es lo que yo decía también. Y entonces parece que Fuse tiene un error...
[ RETURN, WRITEENABLE, X, X, X, X, X, BANK0 ]
...
Resulta que como decías,cuando conmem=0 hasta que no hay una paginación automática, la página no entra, es asi? Es lo que yo decía también. Y entonces parece que Fuse tiene un error...
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Hola,
muchas gracias para todas las investigaciones que estais haciendo Miguel y César.
Veo el manual de programación del divide como muy impreciso.
¿ Lo mejor ne sería de preguntar a Velesoft ?
memberlist.php?mode=viewprofile&u=226
muchas gracias para todas las investigaciones que estais haciendo Miguel y César.
Veo el manual de programación del divide como muy impreciso.
¿ Lo mejor ne sería de preguntar a Velesoft ?
memberlist.php?mode=viewprofile&u=226
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?
Mejor dicho, cuando CONMEM=0 y MAPRAM=1, no hay conmutación a la RAM 3 hasta que no se dispara el auto mapper. La cosa es que este otro modo que comento se pone en marcha cuando en el registro de control se da la combinación CONMEM=1 y MAPRAM=1. Entonces el registo de control pasa a tener otro significado que es el que aparece ahí, y el mapeo es que las páginas 0 y 1, o bien 2 y 3, aparecen en el espacio de ROM de forma inmediata, sin mediar auto mapper. Este comportamiento, que yo haya visto, no lo implementa ni mi DivIDE 57c ni mi DivIDE Plus. FUSE por otra parte tiene dos versiones de DivIDE: DivIDE v1 y DivIDE v2, así que igual la v2 sí se comporta así.chernandezba escribió:Resulta que como decías,cuando conmem=0 hasta que no hay una paginación automática, la página no entra, es asi? Es lo que yo decía también. Y entonces parece que Fuse tiene un error...
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA