• Hice andar mi 6502  shades
     

  • Como sabes que anda, que tiene la placa ademas del micro? Es un 6502 o un 6510?
     

  • Como sabes que anda, que tiene la placa ademas del micro? Es un 6502 o un 6510?


      6507  wink y me entere porque aparecio indiana jones en persona para indicarmelo , despues posteo mas detalles. Estoy sorprendido, anduvo de una, desde diciembre o noviembre que no toco esa placa y la primera vez que la pruebo anda en un 100%, ni se porque la probe recien porque pense que tenia que chequearla mas  suprised

           Saludos
          MARCOS
     

  • Sera una señal que te dice que tenes que armarte la computadora.  wink
     

  • che, recien vi esto en hackaday, quizas sirva de ayuda para sus inventos : LINK
     

  • che, recien vi esto en hackaday, quizas sirva de ayuda para sus inventos : LINK


      suprised Esta impresionante! el tema es que el AtMega88 no es de los standart que venden por aca, habria que ver si podemos hacer eso con un AtMega8 o de ultima un 32, o 64, se pueden aprender muchas cosas de ese proyecto.
      Igual no conviene mandarse al color todavia, es mejor hacer algo monocromatico para empezar.

           Saludos
          MARCOS
     

  • ... queremos tener mas de los 64K posibles, en mi caso porque quiero manejar archivos TAP, D64 y otros que exceden ese tamaño. Por eso y para evitar ocupar un gran espacio en la placa con chips de memoria de baja capacidad estaba pensando en usar SIMMs de 30 o 72 pines, pero aca entra en escena el tema
    ...

    De todas maneras por ahora necesito experimentar con otra tecnologia, y eso lo voy a hacer con un PIC como procesador temporal, por ejemplo una de las primeras cosas que necesito hacer es justamente manejar un SIMM o leer el directorio de una tarjeta SD, que podra verse directamente en el monitor.  shades
    Mi idea es utilizar el PIC para escribir las rutinas de bajo nivel de E/S, y cuando quede resuelto ahi si traducirlo a Z80 o 6502. Tambien estaba pensando en agregar hard de temporizado asistido por un PIC, como un inicio un PIC podria tener un puerto de 8 bits que apareceria como una direccion de memoria al procesador, el micro colocaria un numero de 8 bits que representaria por ejemplo intervalos de 1ms cada uno, el PIC detendria el procesador y decrementaria el contador hasta llegar a cero, cuando reanudaria la ejecucion. De esta manera,
       ...


    Lo de mas de 64Kb puede ser un chiche que se agregue de forma posterior, una expansion, no habria que comprometer el disenio basico del mother en eso, si dejar un conector para agregar expansiones, con todas las lineas de los buses y dejar areas de direccionamiento (de memoria o IO dependiendo el micro) libre. Lo mas simple es dejarle una RAM estatica. Lo que si, tenes idea de que tanto mas consumen de alimentacion un sim de memoria dinamica con el refresco y todo, como para dejarla alimentada por bateria mientras el sistema esta apagado?

    Lo de tener un PIC que controle todo y despues reemplazarlo por el micro no se hasta que punto es practico, porque el pic tiene micro+ram+rom+reloj+decodificador de direcciones, sigue siendo un salto grande reemplazar el pic por el micro, tal vez para probar que el conexionado funcione bien. Yo al principio tambien queria hacer algo asi, pero ahora quiero tirarle lo mas posible al micro, no darle todo masticado.
    A mi me parece que lo mejor es tener una forma rapida de actualizar la memoria del programa para ir escribiendo programas minimos para el micro real, y cada vez ir aumentando la complejidad, en mi placa atari lo pienso hacer con una RAM que levanta una bin de la SD por medio de un PIC, que de por si es bastante complejo y tambien se tiene que probar aparte, esta bueno eso de hacer una placa que muestre pantallas desde una SD al ATmega8 que armaste vos.

            Saludos
           MARCOS
     

  • che, recien vi esto en hackaday, quizas sirva de ayuda para sus inventos : LINK


    Esta muy bueno pero por lo que vi parece que es un programa muy optimizado, es mas o menos como el Pong o Tetris hecho con PIC, o las tantas consolas de juegos hechas con microcontroladores, que tienen un programa muy atado a la generacion de video. Igual es impresionante, ya solo con hacer esa demo, teniendo un chip de video y sonido ya hechos, me parece un gran trabajo, ni hablar si consideramos que ademas el programa tiene que hacerse cargo de generar todo.
    Yo creo que hay un camino tan largo antes de eso que el color es lo de menos, hay un monton de temas para resolver como la RAM, ROM, escribir un monitor basico con al menos unas rutinas para escribir caracteres o leer un teclado. Al menos con el TellyMate la terminal esta hecha, y estaba leyendo que el chip tambien envia datos al host, en particular lo que es de especial interes es la posicion actual del cursor, y supongo que tiene que haber alguna manera de leer un caracter especifico de la pantalla. Me tengo que poner a revisar bien los comandos de escape, son muchos y muy interesantes, el programa tambien permite redefinir los caracteres desde el host, aunque no se si hay un limite para eso, si se hace en RAM o se escribe a la ROM de programa del ATMega.
     

  • Lo de mas de 64Kb puede ser un chiche que se agregue de forma posterior, una expansion, no habria que comprometer el disenio basico del mother en eso, si dejar un conector para agregar expansiones, con todas las lineas de los buses y dejar areas de direccionamiento (de memoria o IO dependiendo el micro) libre. Lo mas simple es dejarle una RAM estatica. Lo que si, tenes idea de que tanto mas consumen de alimentacion un sim de memoria dinamica con el refresco y todo, como para dejarla alimentada por bateria mientras el sistema esta apagado?


    Bueno, justamente no me cabe todo en la placa, el pensar en el paginado ahora es para armar algo que cueste poco adaptar despues, pero en principio no va a haber mas que los 64K, y a esto hay que descontarle la ROM. Ya que la ROM que tengo es una flash de acceso paralelo de 512K, pensaba emular 16K de ROM con eso, no creo que necesite mas que esa memoria, por lo cual pondria zocalos con la disposicion estandar de EPROMs comunes, y armaria la ROM con esa flash en una pequeña placa. En esa misma placa de ROM se podria hacer el circuito de paginado con un PIC que suministre el resto de las direcciones, por si quiero cambiar de firmware en el futuro, pero por ahora simplemente va a estar la flash y se va a desperdiciar todo aparte de los 16K iniciales. Tambien deberia tener las lineas de programacion de la memoria, aunque creo que admite un modo de escritura estando en el circuito, es decir pongamos que haya que escribir una determinada secuencia de datos a determinadas posiciones de memoria para iniciar un ciclo de escritura. Ahora no lo tengo presente pero creo haber leido en al hoja de datos que funcionaba asi, si es asi, el mismo 6502 puede actualizar la ROM cuando se tenga un nuevo firmware, sin tener que agregar cableado adicional.
    Con la RAM el tema va a ser similar, probablemente y dado que me cambia todo el diseño segun los chips que elija, haga un conector con pines para dejar la placa de memoria enchufable, por ahora va a tener un espacio de 48K (restando los 16K reservados a la ROM), de los cuales 16K en el futuro van a ser una ventana paginada.
    En cuanto a los SIMMs, me parecio haber leido que consumian 10 o 20mA, pero lei muy por encima y no preste mucha atencion, lo que no se es cuanto consume el circuito de refresco pero tampoco creo que consuma demasiado, la idea de usar PICs es justamente reducir espacio y consumo.

    Lo de tener un PIC que controle todo y despues reemplazarlo por el micro no se hasta que punto es practico, porque el pic tiene micro+ram+rom+reloj+decodificador de direcciones, sigue siendo un salto grande reemplazar el pic por el micro, tal vez para probar que el conexionado funcione bien. Yo al principio tambien queria hacer algo asi, pero ahora quiero tirarle lo mas posible al micro, no darle todo masticado.


    Eso de probar con un PIC es para ir sabiendo como funcionan las partes, no es que reemplace al procesador, solo es que como no conozco los tiempos del procesador como para ponerme a tirarle datos en serie a una memoria flash o tarjeta SD, o generando un ciclo de refresco, o incluso enviando datos por RS232, prefiero probar todo con un PIC para saber que funciona. Una vez que tengo el programa en el PIC, por ejemplo, colocar CLK a 1, esperar 10 us, colocar SDO a 0, esperar 2 us, etc, etc, con toda la secuencia documentada y sabiendo que funciona, recien ahi me pongo a traducir eso a assembler del procesador. El PIC no lo conectaria al bus sino directo al periferico que quiero probar, por ejemplo la flash ROM, la SD, el SIMM, etc., una vez probado todo el periferico se conecta al bus y se prueba con el procesador. Pasa que tengo tantas incognitas, ademas de estar oxidado en assembler del 6502, que tengo que tener la mayor cantidad de certezas posibles antes de meterme con el procesador.
    Por lo de darle todo masticado, en eso tiene que ver la funcion que quiero darle a la computadora, que es ejecutar aplicaciones donde los tiempos son criticos, y necesito tener todo el poder de procesamiento disponible para el programa. Por el momento no es tan importante, pero cuando llegue al nivel de poder emular una SD2IEC o un 64HDD, el tiempo disponible para proceso va a tener que ser el maximo posible. Tengo entendido que el 6510 puede andar a 2MHz, lo que no estoy seguro es si cualquier 6502 puede, voy a tener que conseguirme uno nuevo primero, no quiero usar un 6510 en el diseño final.
     

  • A mi me parece que lo mejor es tener una forma rapida de actualizar la memoria del programa para ir escribiendo programas minimos para el micro real, y cada vez ir aumentando la complejidad, en mi placa atari lo pienso hacer con una RAM que levanta una bin de la SD por medio de un PIC, que de por si es bastante complejo y tambien se tiene que probar aparte, esta bueno eso de hacer una placa que muestre pantallas desde una SD al ATmega8 que armaste vos.


    Yo pense para empezar en algo mas facil, usar un PIC de 20MHz como ROM, usando tablas de saltos, incluso en los PIC18 o los PIC16 mas grandes como el 16F877 ya hay registros o instrucciones especificos para leer posiciones de memoria de programa, simplemente habria que interpretar los puertos conectados al bus de direcciones, leer el byte correspondiente de la memoria y mandarlo al bus de datos. Es un desperdicio del PIC, pero ahorra mucho tiempo de desarrollo, lo que habria que hacer es una planilla de Excel o algun programa en Liberty BASIC que te convierta un archivo binario en la secuencia de codigo assembler de MPASM para insertarla en tu programa y grabar el PIC.
    No se si la velocidad de un PIC16 es adecuada, los PIC18 tienen instrucciones especiales para ese tipo de aplicaciones, mientras que los PIC16 leen la memoria como lo hacen con la EEPROM, colocando la direccion en un par de registros y activando un bit, mientras que el PIC18 ya tiene registros indices para eso, y por otro lado los PIC18 tienen un ciclo de instruccion que es la mitad del de un PIC16, ademas de tener ROM de 16 bits en vez de 14, con lo cual duplica la memoria utilizable en bytes. Tengo por ahi un PIC18 para probar, tendria que hacer unas pruebas a mano leyendo la "ROM" una vez que este grabado el programa, y despues probarlo con el 6510 con algun programa simple que encienda y apague leds, aprovechando que tiene un puerto de E/S integrado. Tal vez para no complicarme la vida con los tiempos podria conectarle parcialmente un display de 7 segmentos al puerto del 6510, y verificar que al encender muestra algun numero correctamente.
    Cuando tenga el procesador andando, una de las primeras aplicaciones va a ser que muestre un menu al encender la maquina, algo asi como la pantalla de seleccion de la TI-99, una aplicacion integrada va a ser un programa terminal, que no es mas que recibir datos desde el puerto serie y retransmitirlos tal cual al chip de video, de esta manera la computadora aunque no tenga mas soft va a tener como minimo esa funcion. Si se elige la otra opcion, saltaria a una direccion de memoria a determinar, donde deberia estar el arranque del sistema. De esta manera en el futuro cuando se agreguen mas funciones, el sistema de menues ya va a estar hecho, y aparecerian opciones como ejecutar ROM2 (los segundos 8K), entrar al BASIC, jugar al buscaminas, solitario, tetris...  ;D
     

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