• Breve actualizacion despues de 7 meses. Como pasa el tiempo. suprised
    Estuve con bastante trabajo este año y me quedo poco tiempo para dedicarme a esto, no veo que en el futuro inmediato vaya a cambiar demasiado, no obstante cada tanto al menos voy revisando las especificaciones de la maquina segun la conveniencia de armado (para que sean componentes conseguibles) y las caracteristicas deseadas para el diseño final.
    Ya que vengo del mundo 6502/68000, mi preferencia para un diseño nuevo siempre fue en primer lugar el 6502 (el 68000 esta fuera de alcance por ahora), del cual tengo el 6510 que es compatible. El 6510 tiene la ventaja de tener un puerto de E/S integrado, lo cual facilita el desarrollo, pero la fuente principal de 6510 son las C64, y no me atrae la idea de que destripen C64s para armar una nueva maquina, asi que empece a buscar 6502s nuevos como para basar la computadora en componentes producidos actualmente. Lamentablemente la busqueda no fue positiva ya que es un procesador que se consigue de stock viejo en negocios de electronica que no los vendieron en su epoca, por lo cual aunque haya mas disponibilidad es un caso similar al del 6510, eventualmente iba a costar conseguirlos. Por esa razon estuve inclinandome mas hacia el Z80 que se sigue produciendo en versiones mas avanzadas, con acceso de hasta 1MB de RAM. Aunque tampoco se que tan facil sea conseguirlos, seguro era mas facil que los 6502.
    Por otro lado, desde que lei acerca del 65816, muy utilizado en aceleradoras para C64s como Turbo Process (mencionada en un numero de K64) o SuperCPU, y tambien en la Apple IIGS y la SNES, quise algun dia armar algo con eso, razon por la que ahora decidi ver la disponibilidad de ese chip en la empresa que los diseña, Western Design Center. Resulto que venden los 65C02, una version ligeramente mejorada de los 6502 de MOS, aunque no 100% compatible, y los 65816, ambos micros capaces de correr hasta 14MHz.  suprised
    El 65816 para el que no lo conoce, es algo similar al 8088 usado en las PC XT, un procesador de 16 bits con bus de 8 bits, que emula la serie anterior de procesadores de 8 bits. Recordemos que el 8088 emula la serie 8080 (que es muy compatible con el Z80), agregando la posibilidad de manejar hasta 1MB de memoria segmentandola en bloques de 64K. El 65816 hace lo mismo con el 6502, arrancando en modo emulacion de 6502 y permitiendo acceder al modo nativo con un par de instrucciones, obteniendo acceso a 16MB de memoria, nuevas instrucciones y registros de 16 bits.
    Decidido a tener un 65816, entre a la web LINK e investigue los precios, ahi vi que el W65C02S6TPG-14  (65C02 de 14MHz, encapsulado DIP) cuesta U$S 7.86, y el W65C816S6PG-14 (65816 de 14MHz, encapsulado DIP) cuesta U$S 9.06, que las ordenes internacionales tienen un costo de envio fijo de U$S 25 mas U$S 15 de gastos administrativos. Para que se justifique el costo queria pedir 2 micros de cada uno, pero igual U$S 40 de envio era un poco mucho, por otro lado la unica manera de pagar que tengo es Paypal, asi que tuve que consultarlos para saber si aceptaban esa forma de pago. Recibi un email diciendo que estaban trabajando en tener una cuenta pero que no sabian cuando iba a estar, y preguntando si podia pagar con tarjeta de credito, iba a desistir cuando al otro dia recibi otro email diciendo que ya tenian Paypal, y encima solo cobraban U$S 25 de envio (sin los otros U$S 15).  biglaugh
    En resumen, compre 2 procesadores 65C02 y 2 procesadores 65816 por un total de U$S 58.84, no es un mal precio teniendo en cuenta que no es dificil juntar interesados en comprar 4 procesadores para compartir gastos. Ahora solo tengo que esperar que lleguen sin problemas.
    En la pagina tambien venden unos microcontroladores bastante interesantes, uno basado en el 65C02 y otro en el 65816, ambos con 56 pines de E/S y unos cuantos perifericos integrados, lo malo es que usan ROM por lo cual el programa se tiene que grabar de fabrica, y por otro lado el costo es un tanto elevado, alrededor de los U$S 25.
    Pensaba usar un PIC para las E/S de la computadora, pero eso era cuando iba a usar un 6502 de 1 o 2MHz o un Z80, ahora que puedo llegar a los 14MHz veo que tal vez debi comprar tambien uno o varios chips VIA (algo asi como las CIA de la C64).
    En cuanto al diseño de la maquina, pedi informacion a Cika sobre precio y disponibilidad de unas SRAM que tienen en lista, una de 32K y otra de 512K, como para usar chips actuales. Y me queda pendiente decidirme sobre que voy a usar de ROM, para empezar creo que voy a tener que usar un PIC para cargar a RAM una ROM minima para que arranque el sistema. Tengo unas flash paralelo que compre en Cika, de 512Kx8 o 256Kx16 (se pueden usar de las dos maneras), pero son muy dificiles de soldar y complican el circuito impreso (son SMD y tienen alrededor de 6 pines por pin DIP), por lo cual en etapa de desarrollo no son convenientes.
     

  • Jaja que casualidad! Dado que estoy aprendiendo sobre el tema, pensé exactamente las mismas posibilidades y terminé decidiéndome por 65816 en la misma página. Mantenenos al tanto de cómo te fue con el envío porque yo voy a tener que comprar ahí. En caso de comprar, te aviso por si queres que te mande a traer chips VIA (bah, si sos de Capital porque sino no se cómo enviártelos).

    Saludos!
     

  • Nueva actualizacion, por lo visto ya somos 3 interesados en usar el micro 65816, asi que se van definiendo cosas importantes. Por otro lado Ariel me paso informacion de un proyecto hecho con un PIC18F252 para generar video de manera similar al TellyMate, pero en colores y con salida compatible con monitores VGA, lo cual me parece mas que interesante, asi que creo que vamos a adoptar eso como video base. Cualquier otro desarrollo que se haga de video, como alguna placa de 80 columnas con salida VGA, aunque solo sea monocromo, o alguna placa ya con graficos bitmap, en colores y tal vez con salida de video compuesto, como para que sea mas retro, seran agregadas como placas de expansion futuras.
    El articulo del proyecto traducido se puede ver aca: LINK
    Estuve viendo que los chips VIA que vende WDC tambien andan perfectamente a 14MHz, asi que si los micros llegan bien voy a hacer otro pedido mas adelante.
     

  • Yo en GM compre un 6502 a como 10u$s, asi que el precio esta bien smile

    El tema de las memorias flash podes poner un zocalo PLCC, muy facil de soldar y le compras una flash plcc, en digikey estan muy baratas, vas a tener que actualizar tu grabador o armarte una especifico, con un adaptador a plcc (lo venden a 10$ en mercado libre y es pin a pin para las de 32 patas). Las ram taqmbien estan baratas en digikey, avisa si vas a comprar algo en digikey a ver si traemos junto y ahorramos (son 40 u$s de envio).

      To ahora estoy con varias cosas por la mitad, pero estoy metiendome con los CPLD, asi que la parte de video o cosas de esas las resolveria por ahi. Estan buenos estos cosos y se consiguen mas o menos baratos aca, y afuera muy baratos, aunque tienen trabas para exportarlos fuera de EEUU por temas militares porque argentina no se si no firmo un tratado de no venderle a paises como cuba, o algo asi y a veces dicen que no te los envian nada, y con uno de estos y plutonio, tritio, c4 y un monton mas de cosas podes hacer una bomba H.


          Saludos
         MARCOS
     

  • Interesante que alguien investigue los chips CPLD, para algo mas que un micro de 8 bits ya se complica bastante con los componentes comunes, por el tema de las velocidades y la complejidad de algunos buses o componentes (como los modulos de memoria, SIMM, DIMM, etc).
    El tema es que no son cosas baratas, y seria bueno al menos poder probar proyectos en eso antes de tirarse a comprar lo necesario para desarrollar, por eso la experiencia de otro sirve.
    Con respecto al plutonio, si consigo un poco me compro un DeLorean y me vuelvo a los 80s. Y que conste que no se lo venderia a nadie, seria plutonio para consumo personal.  biglaugh
     


  • Con respecto al plutonio, si consigo un poco me compro un DeLorean y me vuelvo a los 80s. Y que conste que no se lo venderia a nadie, seria plutonio para consumo personal.  biglaugh


    LEGALINCELA !!! Me mató lo de plutonio para uso persola  ;D ;D ;D
     

  • Hace mas de una semana que no hubo movimiento con respecto a este tema, pero antes hubo un intercambio de emails y mensajes que valen la pena pasar en limpio.
    La mayoria coincidio en usar un procesador de WDC, en principio el 65816 es ideal pero para empezar un 65C02 tambien puede andar, sin embargo, Pablo Roldan (the_woz) se decidio por al Z180 de Zilog, que es un Z80 mas algunos perifericos integrados (creo que timers y uart) y electronica de paginado de memoria para manejar si mal no recuerdo hasta 1MB. Este chip no viene en DIP o al menos el no lo tiene en ese formato asi que es un poco mas complicado de usar, pero lo fundamental es que no es un 6502. Esto nos llevo a tomar algunas decisiones, ya que no hubo manera de convencer a Pablo de que use un 6502, ni siquiera despues de sitiar su casa por una semana y contratar una patota para que lo haga cambiar de opinion "amablemente".  ::) ;D
    En fin, este contratiempo nos llevo a una idea mas interesante, que es hacer una plataforma base que implemente la arquitectura en dos micros tan distintos como el 6502 y el Z80, ya que la idea era hacer algo similar al CP/M, donde haya una BIOS para acceder al hardware, con lo que se logra aislar el soft de los detalles tecnicos de implementacion. Esta idea fue rescatada despues por IBM para la PC, y luego por la norma MSX, y fue lo que posibilito la compatibilidad de soft corriendo en maquinas con diferencias de hard.
    En nuestro caso lo tenemos mas complicado, ya que hasta el procesador cambia, lo que nos va a cambiar el mapa de memoria y la forma en que se llevan a cabo las operaciones de entrada/salida. Y donde estaria la compatibilidad entonces? La respuesta es que la compatibilidad seria a nivel fuente, algo asi como lo que ocurre con Unix, aunque para esto se tendrian que escribir las rutinas en C o algun otro lenguaje independiente del procesador. De esta manera se podria recompilar para 6502 o Z80 con pocas modificaciones, aunque ya que algunas partes del sistema se tendrian que escribir en ensamblador, la cosa se complicaria un poco. Por eso para maximizar la compatibilidad, las entradas de la BIOS tienen que estar muy bien definidas, los parametros tienen que servir para ambos procesadores, y las funciones y procedimientos deben abarcar el manejo de hard especializado como timers, tambien administrar interrupciones, y permitir un manejo de video un poco mas avanzado que simplemente escribir caracteres.
    Para convertir una aplicacion entre una maquina y la otra, habria que recompilar o traducir el codigo para el otro procesador, respetando la regla de no acceder de forma directa al hard y hacer todo a traves de la BIOS, que tendria las mismas llamadas aunque su implementacion varie entre procesadores.
    Del lado del hard, el bus se define como una union de ambos, de modo que una placa pueda conectarse a cualquiera de las dos implementaciones, recibiendo en el mismo bus una señal desde la placa madre indicandole en que arquitectura esta trabajando. De esta manera la placa puede usar esa señal para adaptar su conexion y posiciones de memoria (o puertos) segun el procesador usado. Tambien esto se puede usar para detectar que no esta enchufada en la maquina correcta y anular su funcionamiento para evitar una falla en el sistema.
    El bus propuesto por Pablo es el siguiente:


               GND       1 2      GND
                A0       3 4      Vcc
                A1       5 6      *IRQ
                A2       7 8      *NMI
                A3       9 10      *DMARQ
                A4      11 12      *DMAAK
                A5      13 14      D0
                A6      15 16      D1
                A7      17 18      D2
                A8      19 20      D3
                A9      21 22      D4
               A10      23 24      D5
               A11      25 26      D6
               A12      27 28      D7
               A13      29 30
               A14      31 32      IO/*MEM
               A15      33 34      R/*W
               A16      35 36      CPUCLK
               A17      37 38      *CONFIGIN
               A18      39 40      *CONFIGOUT
               A19      41 42      *FETCH
               A20      43 44      *VP
               A21      45 46      BA
               A22      47 48      *EXROM
               A23      49 50      *RESET
                CINH      51 52      16MHz
              *STACK      53 54      *WAIT
                MODE      55 56
                     57 58      Vcc
               GND      59 60      GND
     

  • Definiciones: (direcciones con respecto a la tarjeta del procesador)

    A0-A23:            <->      24 bit Address bus
    D0-D7:            <->      8 bit Data bus
    R/*W:            <->      1 = Read - 0 = Write to bus
    IO/*MEM:      <->      1 = IO Access - 0 = Memory Access
    *DMARQ:            <-      Direct Memory Access ReQuest, pide al procesador acceso al bus del sistema
    *DMAAK:       ->      Direct Memory Access AcKnowledge, el procesador otorga control del bus del sistema, pone sus buses de direcciones y datos, y la linea R/W en alta impedancia
    *IRQ:            <-      Interrupt ReQuest, peticion de interrupcion enmascarable
    *NMI:            <-      Non Maskable Interrupt, interrupcion no enmascarable
    *RESET:            ->      System Reset
    BA:            <->      Bus Available, el bus master no esta accediendo al bus del sistema
    *VP:             ->      Vector Pull, el procesador va a leer un vector de interrupcion
    *STACK:       ->      El procesador esta accediendo al area de stack
    MODE:             ->      Procesor -> 0 = Z80, 1 = 65xx/68xx
    *WAIT:            <-      Insertar Wait States
    *EXROM:             ->      External ROM select
    *FETCH:       ->      El procesador va a cargar el siguiente opcode
    CPUCLK:       ->      Reloj del procesador
    16MHz:             ->      Reloj principal 16 MHz
    *CONFIGIN:       ->      Entrada seleccion autoconfig.
    *CONFIGOUT:      <-      Salida cadena selección autoconfig, la salida de un slot va conectada a *CONFIGIN del siguiente slot.
    CINH            <-      Clock INHibit

    Esto es un bus diseñado para trabajar sincronizado con un reloj de 16MHz, por lo cual el Z180 deberia trabajar a 4MHz (el maximo para ese micro es 6MHz) y el 65816 o 65C02 deberia trabajar a 8, 4, 2 o 1 MHz (ya que el unico reporte que hay sobre ese micro probado a 16MHz dice que es inestable). La razon para esta decision esta en el sistema de video que se esta diseñando, que requeriria estar sincronizado con el sistema, y ya que por ahora 4MHz es mas que suficiente, esa seria la velocidad elegida para empezar. Para el futuro, en el Z180 no se estaria desperdiciando tanto poder de procesamiento, asi que las complicaciones de usar esos 2MHz extras no se si valdrian la pena, pero en los chips de WDC, que pueden trabajar hasta 14MHz, probablemente se podria destinar una zona de memoria especial donde el procesador no este conectado ni a las E/S ni al bus, como para hacer calculos y otros procesos de datos a 14MHz, para luego volver a la velocidad normal para utilizar los resultados. Pero para esto falta mucho, y ademas a mas de 4MHz la circuiteria deberia rediseñarse con componentes mas apropiados, por lo cual queda como tarea para cuando todo ya este funcionando a 4MHz.
    El espacio de memoria total disponible en el bus es el del 65816, es decir 16MB.
    En cuanto a los microprocesadores todavia no llego nada, asi que estoy rescatando la placa que empece a armar con un 6510 para ver si hago algunas pruebas basicas, pero el primer problema a resolver sigue siendo la ROM. Lo primero que quise hacer fue simular una ROM usando un PIC a 20MHz, leyendo el bus de direcciones e implementando la ROM mediante tablas, pero despues de hacer calculos vi que la velocidad no es suficiente para un 6510 a 1MHz, y hacerlo correr mas lento o agregarle wait states solo para que funcione con esa ROM emulada perderia la gracia, ya que la idea era probar en el micro real y a velocidad real las rutinas criticas en temporizacion, como manejo de tarjetas SD, RS232, etc. Lo siguiente fue considerar usar un PIC como bootloader, para cargar en RAM (en la zona de ROM) un pequeño codigo para el arranque del sistema, el cual se encargaria de leer el resto de la ROM desde una EEPROM SPI, desde tarjeta SD, por RS232 o por medio de una señal de audio.
    La idea era utilizar un PIC16F628A o similar, para no usar uno de 40 pines que no serviria mas que para eso. La implementacion que mas me convencio fue la de cargar un codigo de hasta 256 bytes en la ultima parte de los 64K (recordar que es un 65xx), el cual decodificaria una señal de audio y cargaria el resto de la ROM ya por medio del 6502. Se utilizaria un sistema propio que permitiria cargar 8K en alrededor de 33 segundos, se puede hacer mas rapido pero me parecio interesante limitar la señal a menos de 8KHz de ancho de banda, para que si uno quisiera se pudiera cargar el audio desde cassette, para mayor efecto retro.  biglaugh
    Pero por el momento estoy viendo si puedo usar una EPROM 2732A-35 que tengo y no se si funciona.
     

  • Todavia no lo lei completo, pero una cosa curiosa: La semana pasada en el trabajo compramos un Z180 DIP 64 (o HD64180, no me acuerdo) en GM a creo que 75 pesos y un zocalo DIP64 en microelectronica a 7$, para reparar un equipo que pensamos que se le quemo el micro, creo que al final termino siendo otra cosa.
    El DIP 64 no tiene el paso de los otros dips, es mas finito, asi que mucho no sirve para placas perforadas, y estuve en el negocio un rato largo hasta que lo encontraron, primero me negaron que existiera algo asi como un DIP64, y luego me dijeron que ellos no lo tenian, hast que les mostre que lo tenian en la vidriera, y llamaron a uno que sabia mas.

      Zilog te envia gratis Z180 si los pedis en la pagina (en la parte free samples), te llegan enseguida, ponele en la descripcion que es para un prototipo que pensas comprar mas, que es para una version mejorada de un equipo viejo, sino no te van a creer.

                   Saludos
                  MARCOS
     

  • Yo ya pedi 65C02 y 65C816 a Western Design Center que es quien los fabrica desde los 80s, el dueño de la empresa es uno de los creadores del diseño del 6502. Pero eso del DIP64 esta interesante, habria que ver si son conseguibles en el futuro, es decir si se siguen produciendo, por ahi convenga usar ese en el diseño para que todos puedan armarlo mas facilmente. Pero la computadora va a tener version 65xx y version Z180, con parte de la arquitectura en comun, y en mi caso me voy a dedicar a los 65xx.
     

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