test0 del core de Amstrad CPC
Re: test0 del core de Amstrad CPC
Sí ya tienes los gráficos hechos, el resto es cuesta abajo. ¡Genial!
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: test0 del core de Amstrad CPC
Tanto, que no esperes ver en RetroMalaga lo que pides. Tengo una vida, y un trabajo...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?
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.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.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: test0 del core de Amstrad CPC
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 MODO 1 MODO 2 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.
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 MODO 1 MODO 2 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
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
- desUBIKado
- Mensajes: 1002
- Registrado: 05 Ago 2016, 22:33
Re: test0 del core de Amstrad CPC
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.mcleod_ideafix escribió: Tanto, que no esperes ver en RetroMalaga lo que pides. Tengo una vida, y un trabajo...
Re: test0 del core de Amstrad CPC
i8255 и клавиатура на ней - на самом деле это очень просто. На такой микросхеме сделано много российских компьютеров.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
На MIST-e есть несколько исходников и примеров. Например APOGEY и RADIO-RK86 - их кстати вполне легко запустить на ZX-UNO
Простите за мои пять копеек
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: test0 del core de Amstrad CPC
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.azesmbog escribió:i8255 и клавиатура на ней - на самом деле это очень просто. На такой микросхеме сделано много российских компьютеров.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
На MIST-e есть несколько исходников и примеров. Например APOGEY и RADIO-RK86 - их кстати вполне легко запустить на ZX-UNO
Простите за мои пять копеек
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
Re: test0 del core de Amstrad CPC
@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?
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?
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: test0 del core de Amstrad CPC
No, a menos que Fabio lo haya cogido del repo del ZX-UNO. Voy a verlo y te digo...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?
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
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...0247a: 7th of September, 2003 by Kazuhiro Tsujikawa (tujikawa@hat.hi-ho.ne.jp)
-- Fixed IORQ_n, RD_n, WR_n bus timing
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
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA
-
- Mensajes: 100
- Registrado: 08 Sep 2016, 13:10
Re: test0 del core de Amstrad CPC
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
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ó:No, a menos que Fabio lo haya cogido del repo del ZX-UNO. Voy a verlo y te digo...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?
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 delatadoPero 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...0247a: 7th of September, 2003 by Kazuhiro Tsujikawa (tujikawa@hat.hi-ho.ne.jp)
-- Fixed IORQ_n, RD_n, WR_n bus timing
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.
- mcleod_ideafix
- Mensajes: 831
- Registrado: 27 Sep 2015, 00:14
- Ubicación: Jerez de la Frontera
- Contactar:
Re: test0 del core de Amstrad CPC
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.fbelavenuto escribió:I recommend trying out the A-Z80 project too:
https://opencores.org/project,a-z80
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
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA