Página 2 de 16

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 19:27
por carmeloco
Entonces, ¿lleva la rom en el propio core?

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 19:32
por Kyp
Si. Todavía no tengo muy claro como grabar cosas en la flash, ni como pasarlas a la sram al arrancar, ni como hacer todo eso de forma 'compatible' con el resto del firmware del zx-uno. He hecho alguna prueba pero no me ha funcionado de momento.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 19:38
por carmeloco
Es que se me había pasado por la cabeza el poner una rom de un 48K, a ver qué pasaba, pero no veo claro cómo hacerlo.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 19:51
por Kyp
Una ROM de verdad no hará nada (saldrá basura en la pantalla) porque no hay un Z80 debajo que ejecute el código. Lo que si se puede poner es cualquier otra pantalla, pero hay que generar un archivo COE, que es lo que usa el wizard del IP core para inicializar la ROM, a partir del SCR. He subido al dropbox un programa que me hice para eso, está hecho en C#, necesita .net 4.

Se usa así: bintocoe.exe <pantalla.scr> <nombre.coe>

Una vez generado, en el ISE haces doble click en el módulo de la rom, y en la página 4 del wizard cambias el 'init file' por el nuevo. Le das a 'Generate' para reconstruir la ROM y cuando termine reconstruyes el BIT.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 20:08
por Kyp
Cómo veo que hay interés :roll: he subido al dropbox la versión 2.

No está terminado del todo, pero este es ya un Spectrum 48K completo, con teclado, y sonido beeper y AY estéreo ACB (usando el core del Aeon-Lite :mrgreen: thanks azesmbog). De momento solo carga de cinta. Me falta implementar la contienda de memoria y el divmmc.

Y, por supuesto, integrarlo con el firm del ZX-Uno para que se pueda cambiar de core fácilmente.

Por cierto, una pregunta, estoy mirando como hacerlo pero no lo veo. Cuando le ponga al módulo del teclado la combinación de teclas para el Hard-Reset... ¿Cómo hago el hard-reset? Me refiero a hacer que se borre mi core y arranque el firmware.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 20:09
por carmeloco
OK, no me había fijado de que todavía no tiene el Z80. Pues nada, esperaremos a que vaya avanzando el core para cacharrearlo :D

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 22:08
por jepalza
Kyp escribió:Si. Todavía no tengo muy claro como grabar cosas en la flash, ni como pasarlas a la sram al arrancar, ni como hacer todo eso de forma 'compatible' con el resto del firmware del zx-uno. He hecho alguna prueba pero no me ha funcionado de momento.
Tienes un ejemplo de "bootloader" de la papilio plus en el arcade BombJack, que ahora mismo estoy portando al ZXUNO. No es que esté muy bien explicado, pero trasteando un poco, lo averiguas rápido. Nada mas iniciarse la FPGA, se copia a la SRAM todo lo que esté tras el BIT (tras los primeros 333k que ocupa). Si pgas 128k de roms tras esos 333, se copiaran a la SRAM.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 22:29
por Kyp
Pues precisamente estaba siguiendo el ejemplo de otra web que por lo que veo hace referencia a la del BJ. Incluso me he hecho un bitmerge en C# (ni tengo ni me apetece instalarme Python :twisted: ). Mi duda es luego como meto ese BIT en la flash porque en mis intentos, al leer la flash y pasarlo a la SRAM, me sale basura :mecagonto:

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 22:37
por jepalza
Eso es mas liante de explicar. Básicamente, necesitas crear un MCS que es el que se graba en la flash. Se crea en el Impact. A groso modo (explicarlo bien lo dejo para mañana) se trata de hacer "boundary scan" (todo dentro de impact), seleccionamos el BIT mezclado, picamos en la flash a trazos que sale dibujada, y ahí se complica. Debemos elegir "single spi" o algo parecido, elegir una de 8mbits, pulsar la flecha verde para pasarlo al centro, elegir el lugar donde irá el MCS creado, y listo por ese lado.
Ahora, picamos en "create PROM file", y elegimos el bit nuevamente. Nos crea el MCS propiamente. Ya podemos ir a "boundary scan" y picar abajo a la izquierda, donde pone "program", elegimos el MCS, le decimos el tipo que es de la lista que sale (yo uso la mas simple M25P80 o algo asi), y damos a programar.

Re: Core de Spectrum alternativo

Publicado: 07 Sep 2016, 22:55
por antoniovillena
Kyp escribió:Pues precisamente estaba siguiendo el ejemplo de otra web que por lo que veo hace referencia a la del BJ. Incluso me he hecho un bitmerge en C# (ni tengo ni me apetece instalarme Python :twisted: ). Mi duda es luego como meto ese BIT en la flash porque en mis intentos, al leer la flash y pasarlo a la SRAM, me sale basura :mecagonto:
Lo más cómodo es que escribas machacando un bitstream existente, por elemplo el 9. Las direcciones de los bitstreams dentro de la flash son:

Código: Seleccionar todo

0AC000-0FFFFF Bitstream 2
100000-153FFF Bitstream 3
154000-1A7FFF Bitstream 4
1A8000-1FBFFF Bitstream 5
1FC000-24FFFF Bitstream 6
250000-2A3FFF Bitstream 7
2A4000-2F7FFF Bitstream 8
2F8000-34BFFF Bitstream 9
Todos los bitstreams ocupan 54000h bytes. Si quieres usar el bistreams para datos, pues lo editas como quieras y le pones el nombre COREn.ZX1 donde n el es número de core entre 2 y 9. Para pasar de BIT a ZX1 hay una utilidad, al final de la lista de bitstreams de este enlace:

http://zxuno.speccy.org/descarga.shtml

Para grabar te vas a la BIOS, zona de upgrade y seleccionas el número de core que quieras machacar (aparecen números a la derecha del todo). Si en la raíz de la SD existe un COREn.ZX1 con el mismo "n", se grabará la flash.