¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por chernandezba » 11 Feb 2017, 12:13

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?
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por chernandezba » 11 Feb 2017, 12:25

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

:silbando:
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por chernandezba » 11 Feb 2017, 12:32

Y como decías, ahora el test este del divmmc de memoria falla y con tus modificaciones ya funciona
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
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 ?

Mensaje por mcleod_ideafix » 11 Feb 2017, 13:42

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?
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.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
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 ?

Mensaje por mcleod_ideafix » 11 Feb 2017, 17:38

chernandezba escribió:Y como decías, ahora el test este del divmmc de memoria falla y con tus modificaciones ya funciona
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...
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por chernandezba » 11 Feb 2017, 19:07

Que cosa?
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
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 ?

Mensaje por mcleod_ideafix » 11 Feb 2017, 19:16

Lee los "EDITO" de este post:
viewtopic.php?f=39&t=1062&start=10#p13635
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por chernandezba » 11 Feb 2017, 19:19

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...
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
40crisis
Mensajes: 15
Registrado: 04 Feb 2017, 23:42

Re: ¿ Como Usar la RAM del Divmmc teniendo RAM en la zona $0000-$3FFF ?

Mensaje por 40crisis » 11 Feb 2017, 20:52

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

Avatar de Usuario
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 ?

Mensaje por mcleod_ideafix » 11 Feb 2017, 20:54

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...
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í.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Responder