Montaje del ZXUNO

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: 54 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor mcleod_ideafix » 10 Feb 2014, 11:36

Hombre, yo pienso que si después de meter las cosas que de verdad queremos meter.... (¿y qué cosas queremos meter en el core oficial?), un modo de video como el que describió Radas, de 256x128, o un scroll por hardware como el que definió Antonio Villena, nunca sobran :) Ahora mismo andamos al 68% de ocupación en slices de la FPGA. 68% puede ser poca ocupación (poco más de la mitad de la FPGA) pero en realidad es bastante. Lo bueno es que lo más "hardcore" está ya dentro (el Z80 es lo que se lleva más recursos, con diferencia).

Cosas que hay que mejorar/arreglar:
- Comunicación bidireccional con el teclado.
- Interfaz de teclado extendido para que el clon pueda reconocer cualquier tecla de un teclado de PC (teclas de función, etc) para usarse durante el boot, o pulsaciones especiales (Ctrl-Alt-Supr, por ejemplo) para enviar reset a la CPU.
- Puerto $FF
- Cuelgues misteriosos con algunos juegos, como por ejemplo King's Valley. Me da que es algo de las interrupciones, pero tengo que comprobarlo.

Cosas que se han dicho en el hilo de incluir en el core, a ver si me acuerdo de todas:
- Interfaz SPI para leer y escribir en la SPI Flash
- Mapeador para poder acceder a la RAM shadow que se usará de ROM en el arranque normal, durante la fase de boot, para escribir en ella la ROM seleccionada
- Interfaz SPI para acceder a la SD usando la configuración de puertos de DIVMMC
- Mirror de los puertos anteriores en el espacio de puertos de ZXMMC, para compatibilidad +3e (a expensas de que realmente sea necesario, si no se pudiera parchear el +3e para los puertos del DIVMMC)
- Soporte de paginación y traps de DIVMMC: vamos, incluir todo el hardware de un DIVMMC, con los 8KB de ROM conteniendo ESXDOS y lo que dé de sí la RAM que sobre (256KB supongo que podremos usar para DIVMMC)
- Interfaz joystick Kempston/Sinclair
- Bus de expansión (multiplexar señales si no caben todas en el bus)

Cosas que no se han mencionado, pero que no costaría nada meter en el core (en cuanto a espacio se refiere):
- Switch para conmutar entre el modo normal de 3.5MHz, y un modo "turbo" a 7MHz. Podríamos ir a 14MHz (o más) si la memoria fuera más rápida, pero con la que tenemos ahora, multiplexada para funcionar a la vez con el video y con la CPU, el acceso más rápido que podemos hacer con ella son 4 ciclos de reloj del sistema. El reloj del sistema, por cierto, es de 28MHz.
- Ampliación de la interrupción por retrazo vertical, para que sea programable y dispare en una línea de pantalla preseleccionada.
- Switch para conmutar entre el modo normal, con contención en algunas páginas de memoria, y otro sin contención en ninguna de ellas.
- Sistema de sonido compatible con SpecDrum (muestras digitalizadas de 8 bits)

Cosas que tampoco se han mencionado, y que costarían espacio significativo en el core, pero que sé cómo hacerlas
- Un segundo AY-3-8912, para tener Turbo Sound
- El modo de pantalla de 256x128, 16 colores paletizados, de Radastan
- El modo HiRes (512x192) del Timex (80 columnas de texto sin despeinarse)

Cosas que tampoco se han mencionado, que costarían espacio significativo en el core, y que no sé cómo hacerlas, o no sé aún como hacerlas casar con el hard actual:
- El scroll por hardware en los modos ULA/ULAplus que definió Antonio
- Compatibilidad con el esquema de memoria de la especificación Chloe-128
- Sprites por hardware

Para todo aquello que no sean periféricos ya definidos por terceros, se va a pedir al comité de estandarización ZXI un rango de direcciones de puertos (concretamente dos puertos) de los que hay libres según lo definido en ese comité.
http://www.zxshed.co.uk/sinclairfaq/ind ... I_standard
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Montaje del ZXUNO

Mensajepor Hark0 » 10 Feb 2014, 11:42

antoniovillena escribió:
Hark0 escribió:@antoniovillena, cuando hagas fotos, que se vea "el juguete"... no solo pantallazo, por lo menos para la web ;D


Lo siento, es que las fotos que he subido últimamente las suelo hacer con el móvil o con la webcam del portátil, y suelo borrar la versión HD. Es que sacar la cámara buena me da pereza, pero vamos que si quieres hago una tirada con varias fotos de alta calidad donde se vea el ZX-Uno.


Pásame ese zxuno que ya tienes y yo me encargo... :mrgreen:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

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: 54 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor mcleod_ideafix » 10 Feb 2014, 12:03

Hark0 escribió:
Fotos del hilo que estaría de perlas me pasaras en HD...

621
620
619
618
zxuno_test3_foto4.jpg
ulaplus_en_zxuno.jpg
zxuno_test5_modo_timex.jpg
zxuno_test_rom_ok.jpg
zxuno_test_rom_128k_ok.jpg
zxuno_test_dualscreen.jpg
zxuno_test_allram.jpg
zxuno_test_ulaplus.jpg
zxuno_test_jetpac.jpg
zxuno_test_shock.jpg
zxuno_test_carga.jpg
zxuno_test_cargando.jpg
zxuno_test_mescaline.jpg

;)


Para que te sea más cómodo, voy a copiar todas las fotos que le he hecho al chisme en el repositorio, en la carpeta "fotos". Ahí estarán tal como las saqué con la cámara.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Montaje del ZXUNO

Mensajepor Hark0 » 10 Feb 2014, 16:27

mcleod_ideafix escribió:
Hark0 escribió:
Fotos del hilo que estaría de perlas me pasaras en HD...

621
620
619
618
zxuno_test3_foto4.jpg
ulaplus_en_zxuno.jpg
zxuno_test5_modo_timex.jpg
zxuno_test_rom_ok.jpg
zxuno_test_rom_128k_ok.jpg
zxuno_test_dualscreen.jpg
zxuno_test_allram.jpg
zxuno_test_ulaplus.jpg
zxuno_test_jetpac.jpg
zxuno_test_shock.jpg
zxuno_test_carga.jpg
zxuno_test_cargando.jpg
zxuno_test_mescaline.jpg

;)


Para que te sea más cómodo, voy a copiar todas las fotos que le he hecho al chisme en el repositorio, en la carpeta "fotos". Ahí estarán tal como las saqué con la cámara.


Ok, la url del repo... ¿esta por el hilo o me la pasas de nuevo? :P (voy un poco liado).
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

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: 54 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor mcleod_ideafix » 10 Feb 2014, 16:30

Hark0 escribió:Ok, la url del repo... ¿esta por el hilo o me la pasas de nuevo? :P (voy un poco liado).

viewtopic.php?f=58&t=4629&start=40#p37881
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor radastan » 10 Feb 2014, 16:38

mcleod_ideafix escribió:Hombre, yo pienso que si después de meter las cosas que de verdad queremos meter.... (¿y qué cosas queremos meter en el core oficial?), un modo de video como el que describió Radas, de 256x128, o un scroll por hardware como el que definió Antonio Villena, nunca sobran


Hombre, por pedir que el modo en vez de 256x128 fuese de 256x192, a pesar de ocupar más memoria y que fuese menos manejable por el Z80, sería ya el acabose. Date cuenta que entonces podríamos usar dicho modo para juegos de plataformas sencillitos y todo tipo de juegos sin scroll. Además, siempre se podría implementar de paso un overclock del Z80 que se pudiese activar por software y asunto resuelto.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

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: 54 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor mcleod_ideafix » 10 Feb 2014, 16:52

radastan escribió:Hombre, por pedir que el modo en vez de 256x128 fuese de 2516x192, a pesar de ocupar más memoria

2516x192x4 bits por pixel = 1932288 bits = 241536 bytes. Como tenemos 512KB de SRAM, nos quedan 282752 bytes = 276KB de memoria para implementar ROM, resto de RAM de usuario, ROM shadow de ESXDOS, RAM shadow para DIVMMC, etc.
Sí, es factible. No sé si cabría, pero es factible. El Z80 soft-core puede ir sin problemas a 7MHz.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor radastan » 10 Feb 2014, 17:01

mcleod_ideafix escribió:
radastan escribió:Hombre, por pedir que el modo en vez de 256x128 fuese de 2516x192, a pesar de ocupar más memoria

2516x192x4 bits por pixel = 1932288 bits = 241536 bytes. Como tenemos 512KB de SRAM, nos quedan 282752 bytes = 276KB de memoria para implementar ROM, resto de RAM de usuario, ROM shadow de ESXDOS, RAM shadow para DIVMMC, etc.
Sí, es factible. No sé si cabría, pero es factible. El Z80 soft-core puede ir sin problemas a 7MHz.


Son 24576 bytes, en dicho modo se podría suplantar la ROM y la parte de la VRAM (16384+6192=22572) y seguir teniendo accesible cantidad de memoria RAM. No habría que meter más RAM, con 128K caben de sobra sprites, y a 7 MHz no se resintiría mucho la velocidad.

Vamos, una pasada de modo.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

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

Re: Montaje del ZXUNO

Mensajepor antoniovillena » 10 Feb 2014, 17:07

No te preocupes que el scroll hardware ya lo implementaré yo más adelante, cuando esté menos ocupado y el código verilog más definitivo. Lo hice en VHDL y no me resultó muy difícil, la gracia está en aprender.

Desde luego tu lista de cosas pendientes es más grande que la mía.

-- Actualizado 10 Feb 2014, 17:10 --

Hark0 escribió:Pásame ese zxuno que ya tienes y yo me encargo... :mrgreen:


Ese no lo suelto ni por todo el oro del mundo :lol:

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: 54 veces
Contactar:

Re: Montaje del ZXUNO

Mensajepor mcleod_ideafix » 10 Feb 2014, 17:27

radastan escribió:Son 24576 bytes, en dicho modo se podría suplantar la ROM y la parte de la VRAM (16384+6192=22572) y seguir teniendo accesible cantidad de memoria RAM. No habría que meter más RAM, con 128K caben de sobra sprites, y a 7 MHz no se resintiría mucho la velocidad.

¿Cómo has hecho el cálculo para que te salgan 24KB con un modo de 2516x192?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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