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

BBC, Dragon, Sam Coupé, Oric ...
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 » 10 Oct 2012, 12:04

radastan escribió:Como funciones habrá que ver como hacerlo con lógica discreta, porque como se complique mucho me veo pasando del tema en este formato y uniéndome al bando "PLD".

De momento lo estoy haciendo todo pensando en que después lo vas a hacer con discreta, así que no estoy metiendo diferentes modos de video ni nada de eso. El mecanismo de no-contienda es muy sencillo. Más incluso que aquel algoritmo que puse hace ya unos cuantos posts en este hilo. Pero tengo que probarlo con secuencias de instrucciones "jodidas" tales como FD FD FD FD FD FD FD FD FD FD FD 21 00 00 (LD IX,0000h pero con un montón de prefijos FD, que originarán un montón de ciclos M1, que son los que más rápido necesitan acceder a memoria)

radastan escribió:Jepalza me mata, pero es que tampoco puedo complicarme la vida en exceso.

Es tu criatura, no la de él ;) Cada uno se complica la vida como quiere: si tu ilusión es, por ejemplo, crear un videojuego y por la razón que sea escoges hacerlo en un Spectrum, tendrás que ajustarte a sus limitaciones y su forma de trabajar, lo que significa que todo aquello que quieras hacer, o no lo puedes hacer porque no "cabe" o lo puedes hacer pero tardas mucho en tenerlo a punto, y entonces te das cuenta de que tu ilusión inicial -hacer un videojuego- se trunca porque te enfrentas a problemas que no tienen nada que ver con el diseño de videojuegos.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

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 » 10 Oct 2012, 13:09

Volviendo a mi propuesta inicial... si el z80 tiene 256 ioports como el 8085 ¿por qué hay direcciones de 16 bits como 1ffd para los puertos?. (Perdón por mi "hijnorancia" cetaochentera)
Lo digo porque si se saca la vram afuera se quitan cosas de enmedio y se puede "allramizar" mejor.

Y si, mc-leod, no es lo primero que implemento físicamente y no es lo primero que se me atasca. Solo es que tenía nostalgia en complicarme la vida miserablemente, cuando funcione tendré un subidón...claro que para entonces no se si quedará una pista sana :D

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 » 10 Oct 2012, 13:17

scooter escribió:Volviendo a mi propuesta inicial... si el z80 tiene 256 ioports como el 8085 ¿por qué hay direcciones de 16 bits como 1ffd para los puertos?.

Porque es que el Z80 no tiene 256 puertos de E/S: ¡tiene 65536 puertos de E/S! Otra cosa es que en un diseño basado en el Z80 se opte por hacer una decodificación parcial y se ignore la parte alta del bus (hay instrucciones de E/S en el Z80 que están pensadas para acceder únicamente a los primeros 256 puertos). De hecho, en el Spectrum el puerto 1FFDh no es el único que usa 16 bits. En el teclado, cada semifila tiene su propio puerto de E/S (aunque al leer el teclado no se tiende a pensar en diferentes puertos, sino en un único puerto -FEh- que tiene opciones en forma de bits en la parte alta de la dirección para elegir qué semifila(s) leer)

scooter escribió:Lo digo porque si se saca la vram afuera se quitan cosas de enmedio y se puede "allramizar" mejor.

¿Te refieres a tener la VRAM como memoria no direccionable, como en el MSX? Eso crearía un cuello de botella considerable para el tema de animación de gráficos (aquí no tenemos sprites hardware como en el MSX), además que realmente con el esquema actual no hay ninguna complicación en convertirlo a all-RAM.

scooter escribió:Y si, mc-leod, no es lo primero que implemento físicamente y no es lo primero que se me atasca. Solo es que tenía nostalgia en complicarme la vida miserablemente, cuando funcione tendré un subidón...claro que para entonces no se si quedará una pista sana :D

Como le decía antes a Radas, en definitiva es que cada cuál se complica la vida como quiere. El riesgo de ello es que te rindas antes de conseguirlo y entonces no llegues a saber si tu diseño era el culpable de que no funcionara, o era un cablecillo partido por dentro.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Toniman
MSX Turbo R
MSX Turbo R
Mensajes: 263
Registrado: 12 Jul 2011, 19:32

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

Mensajepor Toniman » 10 Oct 2012, 13:23

Recomiendo que no haya VRAM, que todo este en la RAM principal, como el Spectrum o el C64, creo que funcionan mejor por eso.
Y el ninja purpura sigue buscando nuevas aventuras.

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 » 10 Oct 2012, 13:33

Toniman escribió:Recomiendo que no haya VRAM, que todo este en la RAM principal, como el Spectrum o el C64, creo que funcionan mejor por eso.


Creo que tomaremos la solución más sencilla de implementar que tenga un rendimiento aceptable.

No pretendo mejorar un Amiga ni nada por el estilo, y con lo que ha enseñado Mc Leod ya le da de tortas a un ZX Spectrum.
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 » 10 Oct 2012, 13:45

Mi idea era mapear la "VRAM" como 16 o 32kB de E/S, no como cuello de botella pasando por dos registros como el VDC del C128, aunque no se como de limitante es eso no se si el ciclo de E/S es mas lento o tiene limitados los direccionamientos por registro o algo. En el 8085 está bastante limitado.
No se si este esquema es bueno o malo, pero ganas lo que ocupe la memoria de pantalla para código, a fin de cuentas en un spectrum o c64 se puede poner el ejecutable "dentro" de la pantalla pero no es muy "vistoso".
Se podría dejar 64k limpios para código y 16k o los que se crean convenientes para la "tarjeta de video".
Ya que estamos haciendo algo nuevo, si se piensan poner mas de 64k de código creo que se debería de ir directamente a un z80 que direccione mas, que los hay aunque supongo que no en dil. Mi idea serían 64k continuos de ram sobre la que se superponen los 16k mas bajos de rom que se pueden desconectar. El vídeo a las ES.
Última edición por scooter el 10 Oct 2012, 13:53, editado 1 vez en total.

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 » 10 Oct 2012, 13:52

scooter escribió:...aunque no se como de limitante es eso no se si el ciclo de E/S es mas lento o tiene limitados los direccionamientos por registro o algo. En el 8085 está bastante limitado.

Ambas cosas: el ciclo de E/S es un ciclo de reloj más lento que el de memoria, y además tienes muy limitado los modos de direccionamiento, que se reducen a usar practicamente una única instrucción para leer y otra para escribir. No tienes registros índice, no tienes instrucciones para manejar bloques (OTIR e INIR no funcionarían con este esquema propuseto), no tienes instrucciones artiméticas que operen en E/S..... una pesadilla :shock:
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

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 » 10 Oct 2012, 13:56

mcleod_ideafix escribió:
scooter escribió:...aunque no se como de limitante es eso no se si el ciclo de E/S es mas lento o tiene limitados los direccionamientos por registro o algo. En el 8085 está bastante limitado.

Ambas cosas: el ciclo de E/S es un ciclo de reloj más lento que el de memoria, y además tienes muy limitado los modos de direccionamiento, que se reducen a usar practicamente una única instrucción para leer y otra para escribir. No tienes registros índice, no tienes instrucciones para manejar bloques (OTIR e INIR no funcionarían con este esquema propuseto), no tienes instrucciones artiméticas que operen en E/S..... una pesadilla :shock:

Entonces no he dicho nada, donde dije digo digo diego :oops:

Pero si que creo que si se va a pasar de 64k estaría bien pensar en algo mejor que el z80 "de serie". (siempre puedo cambiar de creencia, por ejemplo porque cueste 20 veces mas o porque no se encuentre)

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 » 10 Oct 2012, 14:09

scooter escribió:Pero si que creo que si se va a pasar de 64k estaría bien pensar en algo mejor que el z80 "de serie". (siempre puedo cambiar de creencia, por ejemplo porque cueste 20 veces mas o porque no se encuentre)


¿Sabes porqué vamos a usar el Z80? porque lo conocemos casi todos, es fácil de programar, tienes ensambladores cruzados a mansalva, compiladores de C, etc.

Imaginemos que queremos usar un 68000 de Motorola. Perfecto, no tenemos que preocuparnos de la memoria y podemos acceder a 1 MB en su versión más básica. Es potente de la leche, sobre todo si usamos la versión de 32 bit... pero ni es fácil de programar, ni tienes tanta variedad de recursos de programación, etc.

De nada sirve montar un sistema superpotente, con unos gráficos y sonido del carajo, si luego no lo va a usar nadie. Curiosamente lo que le ha pasado a una plaquita que ya hemos comentado que es como una videoconsola de 8 bits superdopada.

Ya me gustaría poner un Z80180 a 20 MHz, que direcciona 1 MB, y meter un modo gráfico de 640x480 con 16 bits de color, salida HDMI, sonido de 8 canales por conversor D/A, etc... pero lo iba a programar el Tato y costaría un dineral. Es más... para eso te compras un PC de segunda mano y es más potente.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

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 » 10 Oct 2012, 14:12

Me encantan estas cosas. Supongo que podéis contar con nosotros para hacer algún juego para esta plataforma :-)

Si, como se ha mencionado, con poca lógica podéis manejar varios modos de pantalla compatibles en cuanto a RAM empleada, el tema mola mucho más :)


Volver a “Otros microordenadores”

¿Quién está conectado?

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