• Desde hace tiempo que me da vueltas la idea de hacer "algo" parecido a una home computer.

    No pretendo reinventar la Amiga, ni siquiera una C64. Mi idea es algo mas parecido a una ZX81, aunque sin salida para TV (usaria un LCD alfanumerico para comenzar).

    Pero obviamente, para no tener que reinventar la rueda, perder tiempo y desanimarme, me gustaria ver algun libraco que tenga info util sobre diseño con Z80 o algun micro de 8 bits "conseguible".

    ¿Seben de alguno? En PDF mejor.... wink
     


  • Ricardo tenia este libro, pero no lo llegó a escanear y tampoco creo que diga mucho mas que lo que hay en proyectos sueltos por internet. En 6502.org habia algunos ejemplos para hacer una computadorita conectado a un teclado de PC (con un 6502 por supuesto) y debe haber tambien para Z80
    http://www.amazon.com/Build-Your-Own-Z80-Computer/dp/0070109621

    Aca alguien parece que lo escaneo:
    http://www.scribd.com/doc/13388965/Build-Your-Own-Z80-Computer


             Saludos
            MARCOS
     

  • Gracias!
    Si, mi idea es usar un teclado PS/2, un LCD de 4x20, RAM, ROM y paciencia smile

    Bajando para leer tranquilo.  biglaugh
     

  • En mi opinion lo mejor que se puede hacer con lo conseguible es una maquina basada en un 65816 de WDC, no creo que se consigan aca pero se siguen vendiendo, y ademas de tener compatibilidad con el 6502 es un micro de 16 bits con sus propias caracteristicas, vendria a ser parecido a lo que es el 8086 con respecto al 8080 (o Z80). Se podria partir con un diseño como para un 6502 (pero con el 65816) y en un futuro aprovechar las posibilidades extras del micro. Me parece que de los micros que podemos usar con la tecnologia que tenemos disponible ese es el mas avanzado y a la vez manejable, ya que podemos usar nuestros conocimientos adquiridos en el 6502 y no empezar de cero.
    Con conseguible me refiero a componentes que se puedan comprar hoy porque se siguen fabricando, ya que si fuera de otra manera me robaria un monton de chips de una C128.  biglaugh
    Tengo por ahi un Z80 y un 6510, pero basar una maquina en un micro que requiere destripar C64s (el 6510) o en un Z80 con el cual no tengo demasiada experiencia no me termina de convencer. El Z80 me interesaria si de alguna manera se lo puede hacer correr CP/M, pero claramente es para otro tipo de proyectos, no para diseñar completamente una maquina.
    Aca salen los chips que hace WDC: LINK
    Y esta es la web: LINK
     

  • Y usar un PIC como micro? Seria un disparate muy grande?
    En el PIC se pondria un programa que vaya tomando las instrucciones de la RAM, de la posicion a la que apunta el program counter, y las interpretaria. La ventaja es que el "microcodigo" del PIC permitiria defiir las instrucciones que quisieramos, aunque no se si es posible por que nunca lo vi implementado. Pero me parece que seria posible....
     

  • Y usar un PIC como micro? Seria un disparate muy grande?
    En el PIC se pondria un programa que vaya tomando las instrucciones de la RAM, de la posicion a la que apunta el program counter, y las interpretaria. La ventaja es que el "microcodigo" del PIC permitiria defiir las instrucciones que quisieramos, aunque no se si es posible por que nunca lo vi implementado. Pero me parece que seria posible....



    A mi se me habia ocurrido creo que basicamente lo mismo, pero directamente emulando un 6502 en un 16f877, aca esta el link del mensaje
    http://www.retrocomputacion.com/cgi-bin/foro/YaBB.pl?num=1195092458/53#53  y es mas, tiene el codigo fuente del emulador que empece a escribir y quedo ahi engrosando la lista de mis proyectos dejados por la mitad...
      Es mas que factible, siempre y cuando no nos importe la velocidad.

            Saludos
           MARCOS

    FE DE ERRATAS: En algun momento desde que escribi ese mensaje hasta hoy aprendi que el pasado en primera persona del singular del verlo leer es "lei" y no "ley", aunque todavia no se tanto de este lenguaje como para ponerme a usar acentos 
     

  • Buenisimo!
    Esa es la ventaja de usar un PIC...tendrias un CPU "flexible", cuyo microcodigo puede emular a un micro real (6502) o algo totalmente a medida.

    Te copio un post que tengo en mi foro (sin publicar, en borrador) con las ideas que se me han ocurrido en las ultimas semanas:

    [hr]

    Hace tiempo que tengo la idea de diseñar “algo” que se pueda programar. Concretamente, me gustaría hacer un pequeño y muy modesto ordenador. Algo que de alguna forma se aproxime a lo que eran las “home computers” de hace 25 o 30 años.

    Obviamente, se puede usar tecnología más moderna para hacer más fácil el desarrollo. Sin embargo, me gustaría mantener el proyecto lo más sencillo que fuese posible, como para que llegue a buen puerto. En todo caso, siempre será posible hacer una “versión 2” con mejores características que esta.

    No he encontrado aún un libro que me resulte adecuado como para encarar el proyecto, pero no dudo de que en algún lado existe, así que sigo buscando.

    Una de las dudas más recurrentes que tengo es si es posible usar como microprocesador de este ordenadorcito un PIC. A veces creo que si, a veces creo que no. Seguramente me ayudarán a decidir.

    De forma desordenada, estas son algunas de las ideas que tengo para la “versión 1”

    Usar un PIC de 40 pines y 20MHz como “cerebro”.
    Usar 8 pines de E/S como bus de datos bidireccional, al que se conectarían los “periféricos” (teclado, pantalla) y la memoria
    Usar 3 pines como “bus de control”, lo que permitiría utilizar hasta 8 periféricos conectados al bus de datos (1)
    Usar 14 (o 16)  pines como bus de direcciones, lo que permitiría tener 8 (o 64) KB de memoria (2)
    Usar una EEPROM con las rutinas básicas -una especie de BIOS- que al arrancar se pasan a memoria RAM
    Usar una RAM más o menos rápida en la que se copiaría el programa a ejecutar (3)
    Usar un teclado PS/2 convencional
    Usar un LCD de 4x20 como pantalla
    Usar el puerto serie o USB para enviar programas o datos desde y hacia una PC
    Usar una tarjeta FLASH como “disco duro”.
    Puertos E/S con un 8255

    (1)Multiplexado, lógicamente.
    (2)El chip de (3) tiene 8192 bytes de RAM estática. Se pueden usar varios de ellos.
    (3)RAM 6264: web.mit.edu/6.115/www/datasheets/6264.pdf

    La idea es dotar al programa que va en el PIC de un ….”interprete” capaz de ejecutar las instrucciones que están almacenadas en la RAM. Estas pertenecerían a un “lenguaje de programación” propio, que también habría que escribir. Hay que trabajar duro para definir eso, pero las instrucciones serian semejantes a las de un PIC: leer una posición de memoria, el acumulador, operar con datos o registros, etc. Habrá que definir un registro de estado, esas “cositas” que hay dentro de un micro.

    Hay que recordar siempre que este programa NO SE EJECUTA EN EL PIC, sino que es ejecutado POR el PIC. Es un reto ENORME, tanto desde el punto de vista del hardware, como (sobre todo) desde el software, pero creo que puede hacerse.

    El lenguaje del cacharro:
    Esta parte es fundamental. Hay que pensar, por ejemplo, de cuantos bits van a ser las instrucciones. En un PIC son de 14, y limitan bastante el tamaño de la memoria y demás. ¿16 bits serian suficientes (cada una ocuparía dos bytes en la RAM)? Es posible que no. Las veces que he pensado en esto (generalmente antes de dormir) me parece que seria mejor usar 24 bits por instrucción. Pero 3 es un numero de bytes bastante feo para manejar, y 4 bytes (instrucciones de 32 bits) pueden ser un desperdicio, ya que consumiríamos  mucha RAM.

    Dejando eso se lado, creo que bastaría con crear un registro de estado, un par de registros de trabajo  y las instrucciones para operar con ellos y el contenido de la memoria. Estos registros serian simplemente una variable dentro del PIC, que toma los valores determinados por las instrucciones que va leyendo de la RAM y “ejecutando”.

    ¿Es un disparate total? ¿Puede hacerse? ¿Vale la pena semejante trabajo solo por el desafío que implica?

    [hr]

    Lo pongo aca antes que en mi propio foro  ;D ;D ;D

    PD: EXCELENTE el libro de Ciarcia....lo estoy imprimiendo, y aunque no usemos un Z80, tiene 1000 ideas aprovechables.
     

  • He leido toda la tarde...
    Me parece (por ahora) que un Z80 es la mejor opcion para un primer proyecto de este tipo. ¡Hay mucha documentacion!
    ¿Alguien sabe si las memorias del Spectrum (4116) se consiguen en alguna parte?
     

  • Usá SRAMs que son faciles de conseguir y de usar, con una 26256 que sacas del cache de una 486 o pentium, ya tenes 32K de RAM.
    Con las DRAM aparte del tema del refresco (bastante simplificado en un z80 que te indica cuando hacerlo), el diseño del circuito tiene que hacerse de cierta manera para que las lineas de datos no crucen las de alimentación, etc.
     

  • Usá SRAMs que son faciles de conseguir y de usar, con una 26256 que sacas del cache de una 486 o pentium, ya tenes 32K de RAM.
    Con las DRAM aparte del tema del refresco (bastante simplificado en un z80 que te indica cuando hacerlo), el diseño del circuito tiene que hacerse de cierta manera para que las lineas de datos no crucen las de alimentación, etc.


    Revolviendo entre los cacharros para ver si encuentro algo asi... wink

    Tengo *muchos* chips 4464...pero son DRAM  :-[
     

Moderador (s): homecomputer, Selandari, ArielP, pastbytes, Durandal