Kit Spectrum 16Kb a +3 (Speccy superupgrade)

telekita
Mensajes: 164
Registrado: 29 Sep 2011 20:44

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (Recaudació

Mensajepor telekita » 28 May 2014 11:24

Último mensaje de la página anterior:

me esta corroyendo el ansia viva

Avatar de Usuario
ron
Mensajes: 16938
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 426 veces
Agradecimiento recibido: 443 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (Recaudació

Mensajepor ron » 28 May 2014 18:37

voy a llamar a la vieja del visillo, pa que espíe toooo lo que pueda ! Oiga !
Como mola, que hype producen estas cosas... ánimo WILCO !!!

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (Recaudació

Mensajepor wilco2009 » 28 May 2014 19:17

Pues de 40 pedidos ya han llegado 31, por lo que esto marcha muy bien en esta ocasión.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

jltursan
Mensajes: 1825
Registrado: 20 Sep 2011 13:59
Agradecido : 42 veces
Agradecimiento recibido: 130 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade) (Recaudació

Mensajepor jltursan » 28 May 2014 19:32

¿No hay icono de "dar palmas con las orejas"?, bueno, este valdrá... -yahoo

<reflexion>
Si hubiese habido una forma de implementar junto a la memoria un interfaz Beta Disk 128...esto si que hubiese sido la repera :roll:
</reflexion>

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16/48Kb a plus 3 (Speccy superupgrade)

Mensajepor wilco2009 » 03 Jul 2015 18:00

mcleod_ideafix escribió:Una pregunta.... entiendo que no se implementa la pantalla shadow porque eso implicaría toquetear por dentro bastante el Spectrum pero... ¿qué pasa con el banco 5? Se supone que cualquier acceso a la zona de memoria entre $4000 y $7FFF es en realidad un acceso al banco 5. Hay juegos que cuando se están cargando de cassette van cogiendo y cargando bloques de memoria en cada banco: se va poniendo el número de banco: 0, 1, 2, 3... y la rutina de carga vuelca lo que hay en cinta a las posiciones $C000 en adelante.

Si vuestra interface no tiene en cuenta lo que he dicho, al escribir en la página 5 no estará actualizando la memoria de pantalla, y viceversa.

Dicho de otra forma: el siguiente programa en BASIC funcionará en un 128K, pero no en vuestra interfaz, tal y como la teneis ahora mismo (aunque igual me equivoco y sí que teneis implementado eso):

Código: Seleccionar todo

10 CLEAR 49151
20 OUT 32765,16+5
30 FOR n=49152 TO 55295
40 POKE n,255
50 NEXT n
60 OUT 32765,16


En un 128K funcional, debe verse cómo se van rellenando las típicas rayitas en negro como si se estuviera cargando la pantalla. Dicho de otra forma: el programa anterior se comporta igual que este otro, que sí funciona en un Spectrum 16K/48K:

Código: Seleccionar todo

10 FOR n=16384 TO 22527
20 POKE n,255
30 NEXT n


Fíjate que el que esto funcione es independiente de que se haya implementado o no la pantalla shadow. De hecho, funcionará aunque el banco 7 de memoria no se use como segunda pantalla.

Implementar la actualización de la página 5 cuando el Z80 accede a una posición entre $4000 y $7FFF es trivial. Lo chungo es a ver cómo haces para que cuando se esté accediendo a una posición entre $C000 y $FFFF, y el número de banco actual sea el 5, replicar ese mismo acceso en la zona de memoria entre $4000 y $7FFF. Se puede, pero implica mucho toqueteo en el interior de la máquina.

Se me ocurre una forma de hacerlo, pero sólo funciona si el Z80 que usas es NMOS (o sea, practicamente todos los que se montan en un Spectrum 16K/48K). La idea consiste en que si se detecta un acceso a las posiciones $C000 a $FFFF y el banco actual es el 5, un driver fuerce la línea A15 a 0 (esto se puede hacer precisamente porque el Z80 es NMOS y los "1" no los genera conectando el pin a VCC directamente, sino a través de una resistencia interna de pullup). De esa forma, todo el sistema "ve" no un acceso en el rango $C000 a $FFFF sino en el rango $4000 a $7FFF, y la lógica que tengais implementada para detectar accesos en ese rango para actualizar la página 5 se encargará del resto.

Imagen

El circuitillo que actualiza la página 5 de la RAM de 128K cuando se accede al rango $4000 a $7FFF ya lo dejo como ejercicio ;)

No todos los juegos cargan de esta forma, pero igual en las pruebas os estais encontrando con juegos que no funcionan, y podría ser por esto. También te puedes encontrar con juegos en los que por alguna optimización rara, lean del banco 5 en las posiciones $C000 a $FFFF pero escriban en las posiciones $4000 a $7FFF. No creo que esto pase mucho, pero desde luego son causas de malfuncionamiento que sin mirar el desensamble del juego son difíciles de detectar.


Desenterrando este tema del baúl de los recuerdos a ver si lo implemento en la nueva versión. No acabo de entender la diferencia entre forzar A15 a 0 y decodificar la dirección para escribir o leer en el bus de datos ya se esté accediendo al rango $C000 a $FFFF o al $4000 a $7FFF cuando la página seleccionada sea la 5.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

mcleod_ideafix
Mensajes: 925
Registrado: 13 Ene 2012 09:45

Re: Kit Spectrum 16/48Kb a plus 3 (Speccy superupgrade)

Mensajepor mcleod_ideafix » 03 Jul 2015 21:06

wilco2009 escribió:Desenterrando este tema del baúl de los recuerdos a ver si lo implemento en la nueva versión. No acabo de entender la diferencia entre forzar A15 a 0 y decodificar la dirección para escribir o leer en el bus de datos ya se esté accediendo al rango $C000 a $FFFF o al $4000 a $7FFF cuando la página seleccionada sea la 5.


Si la página en uso actual es la 5, y se intenta acceder al rango donde se supone que está ella C000-FFFF, la memoria que realmente se usa es la del rango 4000-7FFF. De ahí que fuerce A15 a 0.
Algo parecido pasa con la página 2: si accedes a ella, en realidad estás accediendo a la zona entre 8000 y BFFF. Eso significa poner a 0 el bit A14 de la CPU.
Cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista.

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16/48Kb a plus 3 (Speccy superupgrade)

Mensajepor wilco2009 » 04 Jul 2015 19:59

mcleod_ideafix escribió:
Si la página en uso actual es la 5, y se intenta acceder al rango donde se supone que está ella C000-FFFF, la memoria que realmente se usa es la del rango 4000-7FFF. De ahí que fuerce A15 a 0.
Algo parecido pasa con la página 2: si accedes a ella, en realidad estás accediendo a la zona entre 8000 y BFFF. Eso significa poner a 0 el bit A14 de la CPU.


OK, pero me refería a que si al control le añado que cualquier acceso en escritura al rango 4000-7FFF acceda simultáneamente también al rango C000-FFFF cuando está seleccionada la página 5 y en lectura lo dejo tal como está, ¿no sería exactamente lo mismo?. Al fin y al cabo tendría una copia en la página 5 del interface de lo que exista en la zona 4000-7FFF.

El comportamiento de la página 2 ya está implementado tal cual citas.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor wilco2009 » 05 Jul 2015 23:19

OK, tienes toda la razón y me he rayado. Es muy sencillo hacer que todo lo que vaya a las direcciones $4000 a $8000 se copie en la página 5, lo complicado es que lo que se escriba en la página 5 se copie en el rango $4000 a $8000.

De todas formas acabo de desenterrar algunos consejos que me dio Velesoft en su día y me han funcionado. En su día lo intenté y no se que es lo que hice mal que no conseguí hacerlo funcionar.

El consejo es tan simple como habilitar la lectura/escritura de la página 5 cuando se accede al rango $4000-$8000. Resulta que gracias a las resistencias internas que hay para dar prioridad a la ULA en el acceso a la RAM baja, puedo forzar a que el Z80 no lea de lo que hay en las memoria interna del Spectrum y en su lugar acceda a la página 5 del chip de mi interface.
Si se escribe en el rango $4000-8000 también se copia en la página 5 y si se escribe en la página 5, no se actualiza la RAM interna, pero da lo mismo porque el Z80 leerá de la página 5 cuando quiera leer del rango $4000-8000.

Puede resultar en que no se actualice adecuadamente la pantalla en algún juego, pero funcionamiento será correcto.

La opción que tú propones además de funcionar bien actualizaría bien la pantalla, por lo que igual merece la pena probarla.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
groovydrifter
Mensajes: 1308
Registrado: 31 Ago 2014 21:07
Ubicación: Mañolandia
Agradecido : 40 veces
Agradecimiento recibido: 26 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor groovydrifter » 08 Jul 2015 12:20

¿Se cuece una V2.0 del superupgrade?
-flirt Shut up and deal... (The Apartment, Billy Wilder, 1960)

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor wilco2009 » 08 Jul 2015 13:11

Si, estoy en ello. No tardará mucho en salir.
Sobre todo corrije errores, añade el add on y un interface IDE simple de 8 bits, e incorpora una conexión directa con el interface de floppy.

No estaba muy contento con la cantidad de cables que había que poner para que funcionara correctamente, pero es que al fin y al cabo nunca ha pasado de una versión beta.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
Sinclair
Mensajes: 263
Registrado: 22 Jul 2013 10:43
Agradecido : 10 veces
Agradecimiento recibido: 18 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor Sinclair » 08 Jul 2015 13:35

wilco2009 escribió:... incorpora una conexión directa con el interface de floppy.

¿Eso qué es y cómo va? -shock

wilco2009 escribió:No estaba muy contento con la cantidad de cables que había que poner para que funcionara correctamente, pero es que al fin y al cabo nunca ha pasado de una versión beta.


...Beta o alfa..., pero gracias a la perseverancia y tu ayuda, aún así, funciona al cien por cien salvo con tú interface de disquetera -thumbup
© 1982 Sinclair Research Ltd

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor wilco2009 » 08 Jul 2015 16:34

Sinclair escribió:
wilco2009 escribió:... incorpora una conexión directa con el interface de floppy.

¿Eso qué es y cómo va? -shock


No tiene ningún misterio, simplemente es que incorpora el conector de 26 pins que lleva la plaquita adicional, no siendo esta necesaria para conectar el interface de floppy al superupgrade.

Sinclair escribió:
wilco2009 escribió:No estaba muy contento con la cantidad de cables que había que poner para que funcionara correctamente, pero es que al fin y al cabo nunca ha pasado de una versión beta.


...Beta o alfa..., pero gracias a la perseverancia y tu ayuda, aún así, funciona al cien por cien salvo con tú interface de disquetera -thumbup


El interface de disquetera también funcionará correctamente, ya que incorpora las modificaciones que eran necesarias para hacer que funcionara con este interface.

También estoy probando unas modificaciones para poder utilizar las ROMs del +3 o +3e sin modificar aunque no tengas conectada la disquetera.
Ahora mismo ya está confirmado que no da problemas el tema de la página 5, gracias a unas modificaciones que he hecho en la GAL, ya que conectando el interface de floppy siempre arranca bien, pero si le desconectas el interface de floppy, en ocasiones se queda colgado al arrancar. Eso es debido a que el sistema espera un valor válido en caso de hacer llamadas a los puertos $2FFE y $3FFE, y en el caso de que no esté el interface de floppy presente espera encontrar el valor $FF en el bus de datos.
En un Spectrum +3 normal y corriente esto último es así para cualquier puerto no implementado, pero no ocurre ésto en el caso de un gomas, por lo que hacen falta unas modificaciones hardware adicionales para hacer que devuelva $FF cuando se consulten esos puertos y no esté el interface de disquetera presente.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
Sinclair
Mensajes: 263
Registrado: 22 Jul 2013 10:43
Agradecido : 10 veces
Agradecimiento recibido: 18 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor Sinclair » 08 Jul 2015 18:02

Vale respecto a la primera pregunta, había leído mal una palabra :), ...está claro.

Respecto a la compatibilidad de tú interface de disquetera con la versión actual del Superupgrade, sería interesante que publicaras la modificaciones necesarias como me comentaste.

Saludos.
© 1982 Sinclair Research Ltd

Avatar de Usuario
groovydrifter
Mensajes: 1308
Registrado: 31 Ago 2014 21:07
Ubicación: Mañolandia
Agradecido : 40 veces
Agradecimiento recibido: 26 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor groovydrifter » 08 Jul 2015 20:08

wilco2009 escribió:Si, estoy en ello. No tardará mucho en salir.
Sobre todo corrije errores, añade el add on y un interface IDE simple de 8 bits, e incorpora una conexión directa con el interface de floppy.

No estaba muy contento con la cantidad de cables que había que poner para que funcionara correctamente, pero es que al fin y al cabo nunca ha pasado de una versión beta.


Ala... pues yo quierooo... voy a tener que romper un 48k para que se quede en 16k y poder usarlo, jejejeje (es broma, ya tengo uno roto)
-flirt Shut up and deal... (The Apartment, Billy Wilder, 1960)

Avatar de Usuario
wilco2009
Mensajes: 1578
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 35 veces
Agradecimiento recibido: 75 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor wilco2009 » 09 Jul 2015 00:08

Bueno chavales, pues ya lo tengo probado con una ROM original de +3 sin parchear, y después de hacerle una pequeña modificación en el diseño funciona perfectamente sin colgarse ni una sola vez tenga o no tenga interface de floppy conectado. Evidentemente si no hay interface de floppy detecta un +2A.

Podemos decir que con la emulación de la página 5 y con la modificación hardware que hace que devuelva $FF cada vez que se consultan los puertos $2FFD y $3FFD se han eliminado todos los problemas de compatibilidad que había detectado hasta el momento con las ROMs del +3. :D :D :D

Ahora ya a terminar con el diseño de la placa y a producir una pequeña tirada antes de sacarlo al público. ;)
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
Sinclair
Mensajes: 263
Registrado: 22 Jul 2013 10:43
Agradecido : 10 veces
Agradecimiento recibido: 18 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor Sinclair » 09 Jul 2015 07:51

¡Fenomenal!
Apúntame a esa pequeña tirada, por supuesto, ...ya sabes que soy tu betatester number one -thumbup
© 1982 Sinclair Research Ltd

Avatar de Usuario
duca750
Mensajes: 851
Registrado: 19 May 2015 10:52
Ubicación: Olivenza (Badajoz)
Agradecido : 103 veces
Agradecimiento recibido: 17 veces

Re: Kit Spectrum 16Kb a +3 (Speccy superupgrade)

Mensajepor duca750 » 14 Nov 2015 11:43

wilco2009 escribió:Bueno chavales, pues ya lo tengo probado con una ROM original de +3 sin parchear, y después de hacerle una pequeña modificación en el diseño funciona perfectamente sin colgarse ni una sola vez tenga o no tenga interface de floppy conectado. Evidentemente si no hay interface de floppy detecta un +2A.

Podemos decir que con la emulación de la página 5 y con la modificación hardware que hace que devuelva $FF cada vez que se consultan los puertos $2FFD y $3FFD se han eliminado todos los problemas de compatibilidad que había detectado hasta el momento con las ROMs del +3. :D :D :D

Ahora ya a terminar con el diseño de la placa y a producir una pequeña tirada antes de sacarlo al público. ;)


Buenas compañero, habría forma aún de hacerme de uno de estos? Me gustaría super upgradear un Spectrum 16k que acabo de comprar. -grin
-4mstr4d CPC464(7),472 Y 6128 (2) -sp3zy 16K&48K GOMAS,+2,+2A/2B +3 -cocbm1 64 Y -coam1** -0r1c 1 (2ud) y ATMOS** -m3s3x CANON V20, SPECTRAVIDEO 728,TOSHIBA HX10, PHILIPS VG8020,2 NMS 8250+GOTEK -j4tar1 STFM 800XL -3nt3r 64-ACORN ELECTRON -codrg1 32


Volver a “Desarrollos y Proyectos RW”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado