Proyecto ZDP-80 - Nuestro microordenador desde cero [#01]

BBC, Dragon, Sam Coupé, Oric ...
Avatar de Usuario
na_th_an
Amiga 1200
Amiga 1200
Mensajes: 1273
Registrado: 10 Oct 2012, 11:17
Sistema Favorito: (Otro)
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sega Master System
Gracias dadas: 18 veces
Gracias recibidas: 15 veces

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor na_th_an » 11 Oct 2012, 10:25

radastan escribió:
mcleod_ideafix escribió:Radas, una propuesta para incluir en el clon: interrupción raster, configurable en el número de línea en la que se quiere dar la interrupción.


No te miento si te digo que lo comprendo perfectamente pero que pocos van a usarlo. Ya que usa poca lógica lo meteremos, pero quisiera hacer otras pruebas por si fueran más útiles.


¡Ni de coña! Una interrupción raster configurable en un número de línea es PURO HAMOR para un desarrollador. No sabes el tiempo que pierdo a veces esperando "a mano" en el Spectrum a que el raster llegue a cualquier sitio que me convenga.

La interrupción raster te da para miles de efectos, porque al atender la primera la puedes reprogramar para unas lineas más abajo y hacer de todo.

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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 11 Oct 2012, 10:50

Joder, vale, vale, aceptamos raster programable como característica intrínseca del ordenador.

Ya podéis tener en mente juegazos de órdago y que salgan a la luz para este ordenador, que si no me lío a collejas la próxima Retromadrid.

Por cierto, Mc Leod, por pura ansia de saber: ¿cómo se podría implementar un modo de vídeo de 256x128 pixels y 16 colores por pixel? Es decir, que los pixels serían deformados o la pantalla panorámica, pero con 16 colores para cada pixel. Eso cabría justo en 16K de RAM. Cada pixel tomaría un bit para RGB y el bit sobrante para indicar el nivel de brillo.

Repito, es simplemente por curiosidad, no pretendo implementarlo a menos que sea la panacea de sencillo, mi único modo imprescindible es el de 256x192 monocromo, los demás se implementarán si no suponen complejidad sobre el circuito base.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor scooter » 11 Oct 2012, 12:11

Vale que es mas hardware, pero es muy útil el raster. Yo voto por él.

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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor mcleod_ideafix » 11 Oct 2012, 15:04

radastan escribió:Por cierto, Mc Leod, por pura ansia de saber: ¿cómo se podría implementar un modo de vídeo de 256x128 pixels y 16 colores por pixel?

Usarías el mismo tipo de contador horizontal que se usa en el Spectrum, con los mismos valores para borde izquierdo, derecho, etc. Lo mismo para el contador vertical (tiene que seguir contando 312 líneas). Lo único que el borde superior e inferior ahora serán más gordos porque hay 128 líneas y no 192. Como la pantalla está estirada, el borde izquierdo y derecho también serán más gordos, y en definitiva, estarán en proporción.

Si lo que quieres es que los bordes no sean tan gordos y que el área active ocupe más, entonces hay que hacer el mismo tipo de cuentas que hemos hecho otras veces, y usar una frecuencia que no sea 7MHz.

Para 4bpp, lo que se hace es que se lee la memoria en cada dos ciclos de reloj de pixel. El byte leído te vale para esos dos ciclos. Con un multiplexor usando como entrada de selección la señal del reloj de pixel dividido entre 2 vas escogiendo los 4 bits más significativos o los 4 menos significativos según el valor de la entrada de selección. La salida en 4 bits del multiplexor se pasaría por un circuito análogo al que tiene el Spectrum +2A para generar los valores RGB analógicos a partir de IRGB TTL.

Si quieres no tener contienda, entonces lo que se hace es hacer oversampling en el circuito de lectura de memoria/generación de píxeles y hacerlo que funcione a 4 veces la velocidad de reloj de pixel (esto es, 28MHz). De esa forma, necesitas leer un byte cada 8 ciclos de reloj de este nuevo reloj y podrás aprovechar los huecos que deja el Z80 en los que no usa el bus, para leer este dato. En el modo de 2bpp, para no tener contienda, esta parte del circuito de video va a 14MHz.

En el euroconector, hay una entrada (no recuerdo cuál es) a la que hay que darle una tensión determinada para indicarle que la señal que se está emitiendo es anamórfica (16:9). En caso contrario, la tele usa la opción que tenga por defecto, o bien conmuta a 4:3 .
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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 11 Oct 2012, 15:14

Un millón de gracias Mc Leod, creo que por lo menos merecerá la pena hacer un pequeño experimento. Eso si, para nada se me pasa por la cabeza para este proyecto, el sistema de vídeo sería tan complejo como el resto del ordenador y no es cuestión.
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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor mcleod_ideafix » 03 Nov 2012, 23:03

Un gráfico para que te sirva de inspiración ;)

Esto es una captura del analizador gráfico (el simulador de comportamiento de Xilinx) haciendo funcionar lo que llevo hecho de ULAplus para el recambio de ULA que estoy haciendo. El cursor amarillo está posicionado en el último ciclo de reloj que no tiene contienda, justo antes de que la ULA comience a leer bytes de la DRAM para formar el "paper". Hasta ese momento, lo que está mostrando es borde. La línea de video actual está en VC (la 0, la primera línea donde hay "paper"). El "paper" propiamente dicho comienza en la cuenta número 12, coincidiendo con el pulso de SLOAD y AOLATCH (se mira el valor de HC, que es el contador horizontal). VIDEN da el "pistoletazo de salida" para que la ULA comience, cuando quiera, a leer bytes de DRAM.

crono_ula.png
crono_ula.png (37.98 KiB) Visto 9406 veces

La CPU cuyo comportamiento se observa en la parte inferior, se dedica a realizar lecturas de memoria, algunas veces es memoria no contenida, otras veces es contenida. El ciclo de lectura que comienza donde está el cursor es un ciclo de lectura a memoria contenida, pero este ciclo aún no está "parado". El siguiente, que también es a memoria contenida, se para al principio, y se continúa después de que la ULA haya hecho sus cuatro lecturas a memoria (dos lecturas en ráfaga).
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
flopping
Amiga 1200
Amiga 1200
Mensajes: 1141
Registrado: 20 Jul 2010, 01:26
Ubicación: Valencia
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor flopping » 01 Feb 2013, 21:52

¿Como va este proyecto?, ya que han pasado bastantes meses desde que se inicio y aun no he visto nada tangible, ¿esto sigue adelante o esta abandonado?.
Expulsado por violación reiterada de las normas.

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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor Hark0 » 01 Feb 2013, 22:18

flopping escribió:¿Como va este proyecto?, ya que han pasado bastantes meses desde que se inicio y aun no he visto nada tangible, ¿esto sigue adelante o esta abandonado?.


Y donde está el SDK para programarlo? :mrgreen:

Bromas aparte, secundo la pregunta de @flopping

;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor scooter » 01 Feb 2013, 22:32

¿En serio? Yo ya tengo un ZDP-80 en casa con llantas de 18" y doble carburación... no veas como tira el condenao :lol: [Modo maligno=off]

Pues si, lo suscribo, este hilo era interesante y didáctico.

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: Proyecto ZDP-80 - Nuestro microordenador desde cero [#01

Mensajepor radastan » 01 Feb 2013, 23:52

¡Sigue vivo! es que he tenido una mudanza por medio, necesidad de buscar trabajo de forma intensiva, etc. El Lunes comienzo a currar (¡SI!) y pretendo continuar con esto de forma inmediata. Mil perdones a todos.

Y si, pretendo sacar SDK si me es posible (para algo se usar el Visual Studio).
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝


Volver a “Otros microordenadores”

¿Quién está conectado?

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