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

BBC, Dragon, Sam Coupé, Oric ...
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: Nintendo NES/Clónica
Ubicación: Córdoba-Jaén
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

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

Mensajepor radastan » 02 Oct 2012, 08:55

Desde que era pequeño he tenido la ilusión de crear mi propio microordenador, creo que ya ha llegado el momento de hacer ese sueño realidad.

Para empezar os voy a decir cuales son los objetivos:

- Crear un ordenador de 8 bits sencillo (olvidaos de un nuevo Amiga)
- Crear un nuevo sistema operativo con entorno gráfico simple, el BASIC se cargará aparte
- Crear un poco de software para divertirnos

La idea de ordenador es la siguiente:

- Procesador Z80
- 48 KB de RAM (16 KB direcionables para vídeo y variables del sistema, 32 KB de usuario)
- 16 KB de ROM
- Un único modo gráfico de 256x192 pixels monocromo
- Interfaz de lectura y escritura desde audio
- Almacenamiento compact flash
- Interfaz PS/2 para teclado y ratón
- Sonido por beeper (sin intervención del procesador)

Lo se, un poco desfasadillo para lo que muchos esperáis, pero creo que lo suyo es empezar por algo simple y ya veremos si luego hay un segundo proyecto más ambicioso.

Mi objetivo no es crear el microordenador perfecto de 8 bits, es crear un ordenador de 8 bits educativo y agradable de usar, que a ser posible salga muy barato.

Inicialmente quiero usar componentes discretos y si acaso una FPGA pequeñita para una ULA que nos simplifique el asunto.

Así que para comenzar os pido opiniones, sobre todo a los genios del foro (Mc Leod, Jepalza, etc), y que discutamos como planificar el asunto para ponernos manos a la obra.
Última edición por radastan el 02 Oct 2012, 20:14, editado 2 veces en total.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

jepalza

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor jepalza » 02 Oct 2012, 09:56

Es algo, que siempre he deseado. Lo tengo en mente para antes de juvilarme. La idea es bonita, quizás minoritaria, como mucho, podiamos ser 50 interesados, pero bonita.
La mayor pega, es el chip gráfico. Hay que buscar uno cómodo de programar, fácil de encontrar y barato (las tres BBB).
El resto, es muy simple.

Se puede mirar. Lo malo, es que tengo la agenda llena de cosas a terminar (acabar el emulador del Thomson, el del Star rider, el TVGames de Elektor y empezar algún proyecto Hard mas que tengo en mente)

Por cierto, no has "cuadrado" muy bien la RAM de vídeo con el modo a emplear: 256x192 monocromo, son solo 6144 bytes a "gastar" y pides 16k de ram de vídeo, te sobran 10k ;-)

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

Mensajepor Hark0 » 02 Oct 2012, 10:02

Vais a provocarme un divorcio tios!!!

Me interesa MUCHO MUCHO MUCHO...

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

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: Nintendo NES/Clónica
Ubicación: Córdoba-Jaén
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor radastan » 02 Oct 2012, 10:44

jepalza escribió:La mayor pega, es el chip gráfico. Hay que buscar uno cómodo de programar, fácil de encontrar y barato (las tres BBB).

Por cierto, no has "cuadrado" muy bien la RAM de vídeo con el modo a emplear: 256x192 monocromo, son solo 6144 bytes a "gastar" y pides 16k de ram de vídeo, te sobran 10k ;-)


Dos cosas:

- Un modo gráfico de 256x192 monocromo no necesita ningún chip gráfico. Es lo suficientemente sencillo para currárnoslo a pelo (ej. Jupiter ACE).
- He dicho 16K para memoria de vídeo y variables del sistema

Mi idea es que en los 16K de ROM haya rutinas genéricas (incluyendo gráficas) y un pequeño entorno gráfico que sirva para cargar cosas desde cinta o Compct Flash de una forma sencilla. No pretendo hacer un Windows, pero si algo parecido al ICE de QL.

No he entrado en paginación ni nada por el estilo porque quiero algo simple de verdad, que permita conocer los fundamentos de un microordenador de una forma económica y sencilla. Y divertirnos de lo lindo, que carajo.

Si quieres proponer ideas o tienes algo en mente suéltalo Jepalza, si luego quieres colaborar a ratos perdidos con algo lo haces, aquí el único comprometido con el proyecto soy yo.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

jepalza

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor jepalza » 02 Oct 2012, 11:14

Yo es que si me meto, me meto. No voy a medias. Voy a lo bestia, como hago yo las cosas. una vez que me pongo, no paro hasta que lo consigo, o al menos, hasta que es visible y medio funcional. Luego, me apago cuando se acerca el final, y siempre queda algo a medio acabar.

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

Mensajepor Hark0 » 02 Oct 2012, 11:33

¿Vais a ir contando paso a paso el proceso?

Desce cero, etc???

(Estoy interesado en programar un emulador de CPU etc, como ya he posteado en otro hilo... osea que hacer una máquina física ni os cuento...)

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

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: Nintendo NES/Clónica
Ubicación: Córdoba-Jaén
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor radastan » 02 Oct 2012, 11:34

A ver os dejo la idea esquemática del sistema:

arquitectura_zdp80_v1.png
Arquitectura del ZDP-80 V1.0
arquitectura_zdp80_v1.png (16.54 KiB) Visto 7441 veces


El mapa de memoria sería, en páginas de 16K:

0 ROM (Sistema operativo)
1 RAM (memoria de vídeo, e/s, y variables del sistema)
2 RAM (memoria de usuario)
3 RAM (memoria de usuario y pila del Z80)

La idea es que la memoria del sistema, e/s, y vídeo sea independiente de la de usuario. Así, si no se accede a dichas cosas, la memoria está libre de "contenciones" y chorradas similares. Es decir, si estamos en la parte de dibujado de pantalla, podemos usar la memoria de usuario sin que se vea mermada la velocidad. No cuesta ningún trabajo y hace más sencilla la vida a la hora de programar.

La "gráfica" sería simplemente un buffer que coje los bytes de la memoria de pantalla bit a bit y los pasa tal cual a pixels del televisor. La memoria podemos hacerla lineal para simplificar el circuito, aunque luego signifique perder rendimiento en gráficos. De todas formas no creo que nadie se anime a hacer un scroll a pantalla completa, y siempre podemos usar lo que sobre de la FPGA para meter alguna ayudita por hard.

-- 02 Oct 2012, 10:35 --

Hark0 escribió:¿Vais a ir contando paso a paso el proceso?

Desce cero, etc???


Desde cero, si, primero a ver si llego a un entendimiento con los interesados para definir una arquitectura básica y ya voy comentando los pasos.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

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

Mensajepor Hark0 » 02 Oct 2012, 11:40

radastan escribió:
Desde cero, si, primero a ver si llego a un entendimiento con los interesados para definir una arquitectura básica y ya voy comentando los pasos.


Pues uno que se apunta a esto, pero en plan "mirón" / aprendiz / interesado / etc.... (si prospera el asunto, me apunto a fabricarmelo también).

Me callo ya... y que siga circulando la información...

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

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

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor antoniovillena » 02 Oct 2012, 12:06

Por ahora se parece mucho a un ZX Spectrum 48K, sólo que con memoria lineal. La memoria lineal no simplifica (ni complica) el circuito. En el ZX Spectrum se usó esa ordenación tan específica para minimizar el tiempo en las lecturas de las memorias dinámicas y por tanto dar mas tiempo a la CPU con una contención menos agresiva. Pero con memorias estáticas no existe ninguna ventaja, y el no usar un mapa lineal sería complicar las cosas innecesariamente.

De todas formas 16K es demasiado para memoria de video+variables, ya que tendrías 10K sólo para variables. Una alternativa sería usar 8K con 2 espejos. Por ejemplo los accesos desde $4000-$5FFF que no tengan contención, aunque se vea nieve por pantalla y los accesos desde $6000-$7FFF que sí tengan contención. Es algo parecido a lo que se hacía en el Jupiter Ace.

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: Nintendo NES/Clónica
Ubicación: Córdoba-Jaén
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proyecto ZDP-80 - Nuestro microordenador desde cero

Mensajepor radastan » 02 Oct 2012, 12:19

antoniovillena escribió:Por ahora se parece mucho a un ZX Spectrum 48K, sólo que con memoria lineal. La memoria lineal no simplifica (ni complica) el circuito. En el ZX Spectrum se usó esa ordenación tan específica para minimizar el tiempo en las lecturas de las memorias dinámicas y por tanto dar mas tiempo a la CPU con una contención menos agresiva. Pero con memorias estáticas no existe ninguna ventaja, y el no usar un mapa lineal sería complicar las cosas innecesariamente.

De todas formas 16K es demasiado para memoria de video+variables, ya que tendrías 10K sólo para variables. Una alternativa sería usar 8K con 2 espejos. Por ejemplo los accesos desde $4000-$5FFF que no tengan contención, aunque se vea nieve por pantalla y los accesos desde $6000-$7FFF que sí tengan contención. Es algo parecido a lo que se hacía en el Jupiter Ace.


Efectivamente, se parece mucho a un ZX Spectrum pero no es igual, es mucho más simple.

Lo de reservar 16K para vídeo, variables, y e/s tiene sus motivos. Date cuenta que en esa memoria iría también la lectura de la compact flash con la FAT, lo cual implica meter una tabla en memoria. Además, si sobra memoria no hay nada malo en ello, lo mismo la necesitamos para una memoria de vídeo shadow o vaya usted a saber. 32K de memoria para usuario nos deja libertad para hacer muchas cosas, esto no está destinado a ser una videoconsola aunque se puedan hacer juegos.

Meter dos pantallas en espejo, una contenida y otra no me parece complicar el asunto.

De todas formas estoy abierto a sugerencias y se puede modificar algo si vemos que tiene utilidad y no complica el circuito. Dime que utilidad puede tener usar una memoria de vídeo no contenida con nieve.
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 2 invitados