Novedades acerca del ZX-Uno

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 21 Abr 2014, 05:13

antoniovillena escribió:La idea es no bloquear el registro una vez se ponga a 0. Habrá que buscar otro mecanismo para bloquear dicho registro (por ejemplo usar otro bit del mismo al igual que hace el puerto 7ffd). Lo que me comentaste de hacer el bootloader escribible ya no vale. Valdría pero reescribiendo un montón de código.

¿Seguro? Es lo más fácil del mundo. No entiendo cómo puede afectar a la BIOS. Salvo que haya código en la BIOS que inadvertidamente escriba en espacio de ROM :shock: Este cambio se hizo unicamente para poder cargar la BIOS desde la flash. Una vez cargada la BIOS desde flash, el que la memoria en la que se ejecuta permita o no escrituras, es (debería ser) irrelevante. El stub desaparece con la primera copia que se hace y no vuelve a aparecer como código de ROM hasta que no apagas y enciendes el equipo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 21 Abr 2014, 05:15

Respecto a generamcs.bat, en realidad yo uso otro archivo parecido en core/test12, no obstante te debería funcionar ahí si:
-Tienes path a SjAsmPlus
-Te funciona el make.bat (directorio padre)
-Tienes instalado y con path el srec_cat
-Un archivo llamado llamado promgen.bat con este contenido (cambiando la ruta que tengas tú) o promgen.exe en el path:

Código: Seleccionar todo

\zz\Xilinx\12.1\ISE_DS\ISE\bin\nt64\promgen.exe %*

-tld_zxuno.bit en ese directorio o cambiar por la ruta donde esté.

No sé, si quieres te puedo subir al repositorio los .exe que faltan, el más grande es srec_cat.exe que ocupa 1.4Mb

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 21 Abr 2014, 05:16

antoniovillena escribió:No sé, si quieres te puedo subir al repositorio los .exe que faltan, el más grande es srec_cat.exe que ocupa 1.4Mb

Copia, copia, será por espacio.... :D
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 21 Abr 2014, 05:20

mcleod_ideafix escribió:¿Seguro? Es lo más fácil del mundo. No entiendo cómo puede afectar a la BIOS. Salvo que haya código en la BIOS que inadvertidamente escriba en espacio de ROM :shock: Este cambio se hizo unicamente para poder cargar la BIOS desde la flash. Una vez cargada la BIOS desde flash, el que la memoria en la que se ejecuta permita o no escrituras, es (debería ser) irrelevante. El stub desaparece con la primera copia que se hace y no vuelve a aparecer como código de ROM hasta que no apagas y enciendes el equipo.


No se hacen escrituras en el espacio ROM, pero sí que se cambian varias veces BOOTM de 0 a 1 y viceversa. La mayoría del código está en el espacio ROM, sólo una pequeña porción está escrito en memoria alta (se copia de ROM a memoria alta) y se ejecuta desde allí cuando es necesario paginar con BOOTM a 1. Vamos que casi todo el tiempo estamos con BOOTM a 0.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 21 Abr 2014, 05:30

Ok, pues entonces hacemos esto: el código puede cambiar los valores de los bits 0 a 6 de MasterConf siempre y cuando el valor del bit 7 que se ponga en dicho registro sea 0. Cuando se ponga a 1, se "congela" el valor que tenga MasterConf hasta que de nuevo haya un reset maestro. ¿Te vale? Ese bit además congela el acceso a los puertos SPI Flash de forma que no pueden usarse hasta que no haya de nuevo un reset maestro.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 21 Abr 2014, 05:36

Entiendo perfectamente que habría sido más fácil programar la BIOS reescribriendo en el espacio ROM y con el stub, puesto que como está ahora mismo cuando BOOTM está a 1 el espacio ROM está desaprovechado sólo con el bootloader y hay que ubicar código en memoria alta si queremos acceder más allá de la página 7. Pero ya está así, mis conocimientos Verilog no daban para hacer ese cambio en su momento. Como la BIOS es lo único que accede a la paginación especial, lo importante es que funcione bien, independientemente de que haya costado un poco más programarlo.

La única ventaja de tenerlo así es que no necesitas BRAM para implementar esos 16K escribibles por lo que queda libre para otras cosas. En realidad da igual que el bootloader ocupe 56 bytes, ocupando menos de 2K utiliza sólo un bloque BRAM, dejando 7 bloques BRAM extra con respecto a la solución reescribible.

-- Actualizado 21 Abr 2014, 04:41 --

mcleod_ideafix escribió:Ok, pues entonces hacemos esto: el código puede cambiar los valores de los bits 0 a 6 de MasterConf siempre y cuando el valor del bit 7 que se ponga en dicho registro sea 0. Cuando se ponga a 1, se "congela" el valor que tenga MasterConf hasta que de nuevo haya un reset maestro. ¿Te vale? Ese bit además congela el acceso a los puertos SPI Flash de forma que no pueden usarse hasta que no haya de nuevo un reset maestro.


Perfecto. En realidad no me importa que se pueda leer del SPI Flash, lo que no quiero es que nadie pueda escribir en ella fuera de la BIOS. Otra cosa que no hago desde la BIOS es leer del puerto Master_conf así que si ganas algunos recursos quitando el puerto de lectura, pues mejor.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 21 Abr 2014, 05:44

mcleod_ideafix escribió:Ok, pues entonces hacemos esto: el código puede cambiar los valores de los bits 0 a 6 de MasterConf siempre y cuando el valor del bit 7 que se ponga en dicho registro sea 0. Cuando se ponga a 1, se "congela" el valor que tenga MasterConf hasta que de nuevo haya un reset maestro. ¿Te vale? Ese bit además congela el acceso a los puertos SPI Flash de forma que no pueden usarse hasta que no haya de nuevo un reset maestro.

El test13 ha sido reescrito según lo que he comentado aquí. He creido entender que es esto lo que querías en MasterConf. La ROM que hay ahora en el .BIT es la del bootloader.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 21 Abr 2014, 06:01

mcleod_ideafix escribió:El test13 ha sido reescrito según lo que he comentado aquí. He creido entender que es esto lo que querías en MasterConf. La ROM que hay ahora en el .BIT es la del bootloader.


Has entendido bien, de hecho he revisado rom.v y memory.v está todo bien. Ya sólo me falta cambiar la BIOS para que la última instrucción antes de saltar a una ROM o juego sea poner masterconf_frozen a 1.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Novedades acerca del ZX-Uno

Mensajepor mcleod_ideafix » 21 Abr 2014, 06:05

antoniovillena escribió:
mcleod_ideafix escribió:El test13 ha sido reescrito según lo que he comentado aquí. He creido entender que es esto lo que querías en MasterConf. La ROM que hay ahora en el .BIT es la del bootloader.


Has entendido bien, de hecho he revisado rom.v y memory.v está todo bien. Ya sólo me falta cambiar la BIOS para que la última instrucción antes de saltar a una ROM o juego sea poner masterconf_frozen a 1.


Estupendo. ¿Podrías, por favor, entonces volver a generar el gran MCS con todo incluido? A ver si ahora el DIVMMC funciona... ( ¿llegaste a borrar las páginas de RAM que te dije para que funcione DIVMMC? )
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Novedades acerca del ZX-Uno

Mensajepor antoniovillena » 21 Abr 2014, 06:43

Ya está, en firmware/roms/prom.mcs. También he subido algunos archivos para que pueda funcionar generamcs.bat

Sí, borré de la 16 a la 23. Mañana cuando lo pruebe y si funciona restrinjo a 16 y 17 a ver si seguiría funcionando.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados