test0 del core de Amstrad CPC

Avatar de Usuario
jotego
Mensajes: 158
Registrado: 11 May 2016, 23:45
Ubicación: Valencia
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por jotego » 29 Mar 2017, 13:07

Sí ya tienes los gráficos hechos, el resto es cuesta abajo. ¡Genial!

Avatar de Usuario
mcleod_ideafix
Mensajes: 821
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por mcleod_ideafix » 29 Mar 2017, 14:19

desUBIKado escribió:¿no vas un poco justo para presentar una versión totalmente funcional y con soporte de disquetes en la próxima RetroPixel Málaga 2017?
Tanto, que no esperes ver en RetroMalaga lo que pides. Tengo una vida, y un trabajo...
Vanfanel escribió:Yo diría que, una vez completado el GA, pillar la implementación del Z80 que usa por ejemplo el core de MSX1 de Fabio, que pasa TODOS los tests del ZEXALL, y embutírsela despertando así a la bestia, es más sencillo que lo que está mostrando maese McLeod aquí... Pero igual me equivoco.
No tan rápido. Que pase todos los tests del ZEXALL no es lo más importante. Hay CPU's reales que no los pasan. Me preocupa más el comportamiento de la señal WAIT del core, que si es un T80, puede darme sorpresas. De todas formas, y aunque tengo varios cores Z80 para probar a ver cuál "calza" mejor, uno más no me viene mal (igual hasta lo tengo ya y todo). ¿Ese core está disponible en código fuente? (me respondo a mi mismo) No, no lo está, así que me olvido de él.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
mcleod_ideafix
Mensajes: 821
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por mcleod_ideafix » 29 Mar 2017, 14:41

Para que no decaiga el hype, y mientras pillo tiempo (complicado) para seguir con el core, he probado a ver si el formato de pantalla es lo suficientemente "legal" como para que mi capturadora de video, que es muy puntillosa con los formatos, lo pille. Y así ha sido. Claro que en el caso del Amstrad puedes tocar los parámetros del CRTC para hacer salidas de video que sean cualquier cosa menos legales. Me veo que esto puede que sea un problema y llegue a confundir al scandoubler cuando le ponga salida VGA al core, pero bueno, no adelantemos acontecimientos.

Así que, por curiosidad, he probado a grabar las tres pantallas (en los tres modos legales del Amstrad) tal y como salen del core, en video compuesto. O sea, son las mismas imágenes que os he presentado, pero en lugar de fotos al monitor, son capturas de frame. Al ser video compuesto la calidad no es la que están acostumbrados los usuarios de Amstrad, pero no tengo un Frame Maister de esos (o como se pronuncie). Ahi van:

MODO 0
captura_cvbs_modo0.png
MODO 1
captura_cvbs_modo1.png
MODO 2
captura_cvbs_modo2.png
Los siguientes pasos son:

- Estudiar el mapeo de la memoria RAM e implementar los registros necesarios (lo que en la máquina se hace en un chip HAL o PAL o como se llame)
- Añadir el Z80, las ROMs, y crear el bus del sistema
- En simulación, comprobar que los accesos del Z80 están sincronizados con la señal de READY que viene del gate array, y que se cumple aquello de que las instrucciones se miden en microsegundos, pero sobre todo, que no hay conflictos por el uso de la memoria por parte del gate array y del Z80.
- Lanzar el core con el Z80 en la FPGA, y ver si llego al menos hasta la pantalla inicial en amarillo sobre azul
- Añadir el i8255, que tiene su miga porque originalmente éste es un dispositivo sin reloj, y eso es algo que no gusta mucho en el diseño FPGA. Con él, añadir el teclado
- Volver a lanzar el core en la FPGA y ver si puedo aporrear el teclado
- Añadir el AY-3-8912 y el joystick (espera que igual tengo que meter esto antes para poder tener un teclado... no tengo el esquemático delante)
- Ver si puedo cargar cosas desde CINTA (ficheros CDT) y comprobar los timings.

Y con eso tendría una primera versión del core.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
desUBIKado
Mensajes: 835
Registrado: 05 Ago 2016, 22:33

Re: test0 del core de Amstrad CPC

Mensaje por desUBIKado » 29 Mar 2017, 14:46

mcleod_ideafix escribió: Tanto, que no esperes ver en RetroMalaga lo que pides. Tengo una vida, y un trabajo...
Pues que sepas que me parece muy mal... ¿En serio que tenía que poner una "carita" al final de la pregunta? No la puse a proposito porque no esperaba que me contestases en serio. Fijate que nadie lo ha hecho. Ahora en serio, gracias por tu gran trabajo, que sepas que lo valoro mucho, y que nos estás dando a muchos unas grandes alegrías con los cores que te has currado y todos esos "experimentos" que se te ocurren.

azesmbog
Mensajes: 268
Registrado: 17 Feb 2016, 23:07

Re: test0 del core de Amstrad CPC

Mensaje por azesmbog » 29 Mar 2017, 15:15

mcleod_ideafix escribió: - Añadir el i8255, que tiene su miga porque originalmente éste es un dispositivo sin reloj, y eso es algo que no gusta mucho en el diseño FPGA. Con él, añadir el teclado
i8255 и клавиатура на ней - на самом деле это очень просто. На такой микросхеме сделано много российских компьютеров.
На MIST-e есть несколько исходников и примеров. Например APOGEY и RADIO-RK86 - их кстати вполне легко запустить на ZX-UNO
Простите за мои пять копеек :)

Avatar de Usuario
mcleod_ideafix
Mensajes: 821
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por mcleod_ideafix » 29 Mar 2017, 15:19

azesmbog escribió:
mcleod_ideafix escribió: - Añadir el i8255, que tiene su miga porque originalmente éste es un dispositivo sin reloj, y eso es algo que no gusta mucho en el diseño FPGA. Con él, añadir el teclado
i8255 и клавиатура на ней - на самом деле это очень просто. На такой микросхеме сделано много российских компьютеров.
На MIST-e есть несколько исходников и примеров. Например APOGEY и RADIO-RK86 - их кстати вполне легко запустить на ZX-UNO
Простите за мои пять копеек :)
Good to know that. Actually, I have two different cores for the i8255, but I have to check them to see which one works better for my needs. For example, it should be good if I can tell which direction the pin at which VSYNC is connected is configured at, because on the original machine, you can, sometimes, override the VSYNC from the CRTC and insert a "fake" VSYNC signal to the gate array. I don't know if this has been actually used though.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Vanfanel
Mensajes: 275
Registrado: 16 Oct 2016, 15:50

Re: test0 del core de Amstrad CPC

Mensaje por Vanfanel » 30 Mar 2017, 10:58

@mcleod_ideafix: el core del Z80 que usa el core de MSX1 de Fabio está disponible aquí:
https://github.com/fbelavenuto/msx1fpga ... er/src/cpu

Es efectivamente el T80 "arreglado", que pasa todos los tests del ZEXALL. Espero que con ese te valga. ¿No es el mismo que usa el core principal de ZX Spectrum?

Avatar de Usuario
mcleod_ideafix
Mensajes: 821
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por mcleod_ideafix » 30 Mar 2017, 19:12

Vanfanel escribió:Es efectivamente el T80 "arreglado", que pasa todos los tests del ZEXALL. Espero que con ese te valga. ¿No es el mismo que usa el core principal de ZX Spectrum?
No, a menos que Fabio lo haya cogido del repo del ZX-UNO. Voy a verlo y te digo...

EDITO: aha! este core ya lo tengo, y es uno con los que ya pensaba probar el Amstrad. Es uno con los que hice pruebas en su día con el SAM Coupé! Esta línea lo ha delatado
0247a: 7th of September, 2003 by Kazuhiro Tsujikawa (tujikawa@hat.hi-ho.ne.jp)
-- Fixed IORQ_n, RD_n, WR_n bus timing
Pero me queda por ver si arregla el bug que encontré en su momento, y que no vi arreglado en ninguna otra versión. Voy a mirar...

EDITO: No. Parece que este core no arregla el bug que tenemos arreglado en el core que usamos para el Spectrum. Este core no actualiza adecuadamente los flags cuando hay una instrucción LD A,R o LD A,I así que me extraña que pase todos los tests del ZEXALL.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

fbelavenuto
Mensajes: 100
Registrado: 08 Sep 2016, 13:10

Re: test0 del core de Amstrad CPC

Mensaje por fbelavenuto » 30 Mar 2017, 19:48

Hi,

This core is the same as the MSX OCM/Zemmix project. The information that goes through all the ZEXALL testing came from them.

I recommend trying out the A-Z80 project too:
https://opencores.org/project,a-z80

mcleod_ideafix escribió:
Vanfanel escribió:Es efectivamente el T80 "arreglado", que pasa todos los tests del ZEXALL. Espero que con ese te valga. ¿No es el mismo que usa el core principal de ZX Spectrum?
No, a menos que Fabio lo haya cogido del repo del ZX-UNO. Voy a verlo y te digo...

EDITO: aha! este core ya lo tengo, y es uno con los que ya pensaba probar el Amstrad. Es uno con los que hice pruebas en su día con el SAM Coupé! Esta línea lo ha delatado
0247a: 7th of September, 2003 by Kazuhiro Tsujikawa (tujikawa@hat.hi-ho.ne.jp)
-- Fixed IORQ_n, RD_n, WR_n bus timing
Pero me queda por ver si arregla el bug que encontré en su momento, y que no vi arreglado en ninguna otra versión. Voy a mirar...

EDITO: No. Parece que este core no arregla el bug que tenemos arreglado en el core que usamos para el Spectrum. Este core no actualiza adecuadamente los flags cuando hay una instrucción LD A,R o LD A,I así que me extraña que pase todos los tests del ZEXALL.

Avatar de Usuario
mcleod_ideafix
Mensajes: 821
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: test0 del core de Amstrad CPC

Mensaje por mcleod_ideafix » 30 Mar 2017, 22:26

fbelavenuto escribió:I recommend trying out the A-Z80 project too:
https://opencores.org/project,a-z80
I did, but, unless the author has cleaned it up, that core suffers from some limitations: it is not optimized for FPGA design, so the resulting netlist performs very slow. I recall it has also some local clocks (combinational signals that are used as clocks) which, still being accepted in a Spartan 6 design, makes this core to quickly exhaust all global buffers, leaving the P&R process very little to work with. I think it's a core more suitable for performing simulations than for being synthesized.

This, I repeat, unless the author has updated the project, which I don't know if he did.

Fabio, if you have been used the Kazuhiro modified T80 core for the TBBlue core, go and see if it can run King's Valley (the Spectrum version, of course). If that core doesn't update flags correctly when executing LD A,R , I think the screen will freeze, or the game will reset, or something similar.

EDIT: the version I have of TBBlue runs King's Valley correctly :) So, are you using that core?
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Responder