Core alternativo de Kyp

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Core de Spectrum alternativo

Mensaje por carmeloco » 07 Sep 2016, 19:27

Entonces, ¿lleva la rom en el propio core?

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Core de Spectrum alternativo

Mensaje por Kyp » 07 Sep 2016, 19:32

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.

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Core de Spectrum alternativo

Mensaje por carmeloco » 07 Sep 2016, 19:38

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.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Core de Spectrum alternativo

Mensaje por Kyp » 07 Sep 2016, 19:51

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.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Core de Spectrum alternativo

Mensaje por Kyp » 07 Sep 2016, 20:08

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.

Avatar de Usuario
carmeloco
Mensajes: 751
Registrado: 25 Dic 2015, 12:02

Re: Core de Spectrum alternativo

Mensaje por carmeloco » 07 Sep 2016, 20:09

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

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Core de Spectrum alternativo

Mensaje por jepalza » 07 Sep 2016, 22:08

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.

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Core de Spectrum alternativo

Mensaje por Kyp » 07 Sep 2016, 22:29

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:

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Core de Spectrum alternativo

Mensaje por jepalza » 07 Sep 2016, 22:37

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.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Core de Spectrum alternativo

Mensaje por antoniovillena » 07 Sep 2016, 22:55

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.

Responder