• Tremendo trabajo Marcos... suprised
     

  • Si , la verdad que un laburaso ! muy bueno ,...
     

  • muy bueno, el problema es que hay que desguasar un atari para las partes

    te felicito
     

  • Los ultimos avances:
    Le estuve metiendo cosas que antes estaban afuera como el regulador de tension y el circuito para generar video compuesto, el video que no esta andando bien, algo debo haber conectado mal, pasa que me quede sin espacio y tuve que meterlo de forma muy complicada.
    Los botones de control y el joystick ya estan casi, le falta que los conecte a los integrados correspondientes y que les ponga conector para joystick externo.

    Le agregue un nuevo integrado, un PIC 16F877 que tiene control del bus, o sea un monton de soldaduras mas para conectarlo en paralelo al resto.
    Por el momento lo unico que hace es, estando solo la rom y el pic, leer el contenido de la rom y enviarlo por el puerto serial RS232.
    Mañana o pasado tengo que hacerle que pueda hacer esto, pero con los demas componentes del atari funcionando, por medio del control de la linea reset para mantener desactivado al micro mientras lee la rom. Entonces cuando encienda la maquina el pic va a enviar el contenido completo de la ROM a la PC por el puerto serial y una vez concluido, el atari va a seguir funcionando normalmente sin interferencia del PIC.

    Cuando este hecho esto, ahi tengo que reemplazarle la ROM por una RAM estatica (hay que cambiar algunas soldaduras  >:( ) y hacer que el pic haga el camino inverso, o sea que cuando arranque lea desde la PC por el puerto serial una rom de atari y la vuelque sobre la RAM y entonces le entrega el control al CPU, que va a ejecutar como si corriera una ROM (el CPU no va a tener acceso de escritura a la RAM)
      Luego tengo que ver si puedo emular desde el PIC el circuito de bank switching (cuando se direcciona una direccion en particular de la ROM, se lee el valor del A0 y se lo guarda en A12 de ahi en adelante, asi desde soft se elije si que quiere acceder al los 4Kb superiores o inferiores. Sino no puedo usar juegos de 8Kb como el ET  biglaugh

      Cuando todo esto este pulido tengo que ver como reemplazar el puerto serial por una tarjeta SD, asi le cargo la ROM en una tarjetita y sale andando de forma autonoma.

            Saludos
           MARCOS

    Atari Mjl 5
     

  • Viendo la Foto que acabo de publicar me doy cuenta que doble feo una pata de la ROM!!  >:(

    Y en las fotos viejas tomo conciencia de todo el espacio que tenia antes de colocarle esos switchs de porqueria, que mala decision dios mio, ahora no entra nada mas!  :-[

           Saludos
          MARCOS
     

  • Fantastico Marcos ! Y la documentacion sobre el mother me mato, parece los prototipos d e la Apple2  smile smile
     

  • Ayer progrese por un lado, pero me encontre con varios problemas por el otro. La cambie la ROM por una ram estatica de 32Kb (el zocalo lo deje preparado para una de 128Kb, pero tenia un par de 32Kb asi que para que voy a desperdiciar tanta memoria si pienso usarla con juegos de 8Kb y en una de esas un par de 16Kb?).

    Las pruebas las hice con la placa medio vacia, solo el PIC y la RAM. Puse a punto el programa (unos errores basicos de C y algunos problemas con la rutina de manejo de la UART me hicieron perder mucho tiempo), que conectado al Hiperterminal, recibe comandos de 1 caracter (9600 baudios), para volcar en la terminar el contenido de la RAM o la llena de distintas formas (modo de prueba o un archivo "de texto" recibido desde el hiperterminal).

    El volcado de la RAM lo hacia de forma directa (capturar "archivo de texto") pero el hiperterminal se vuelve loco cuando le envio un archivo que no es de texto, que tiene cualquier valor binario, y cada tanto me repite un byte. Yo pensaba que era problema de mi programa (estuve un rato largo con esto), hasta que hice que vuelque en ASCII hexadecimal y ahi vi que el grabado y lectura lo hacia 100% bien.

    Despues le meti un inversor (un transistor y 2 resistencias) para invertir la señal de ChipSelect que el Atari usa para la ROM, porque la ROM de atari esta habilitada con 1, y las RAM y cualqueir  memoria standart (eprom, flash...) lo hacen con 0 (es /CS la / es de negado).

    Lo probe asi con todos los integrados puestos con el Yars Revenge, y no funciono. Ahi me di cuenta de algo muy obvio: La salida del inversor siempre estaba en 0 o 5V, nunca se descolgaba del bus (no tiene modo alta impedancia), y el PIC compite con esa salida, asi que le puse al PIC que use el chip Select por medio del inversor, asi los dos que la usan (CPU y PIC) si se turnan para ver quien lo domina. Por supuesto modifique el programa del PIC y lo probe todo otra vez.

    Pruebo otra vez con el CPU conectado y sigue sin andar, entonces hago una prueba minima: mientras en CPU esta conectado, pero en RESET (el PIC controla esta linea) desde el PIC lleno la RAM con datos de prueba y los leo desde la PC. Cuando el CPU esta conectado se graba mal, muchos bytes con basura, aparentemente mientras esta en RESET el micro no libera los BUSES, y no tengo ninguna pata para que haga esto el micro, porque es una version reducida (creo que s lama WAIT la pata que necesito en el 6502). Sin consultar ningun manual ni nada, busco la solucion mas simple: le pongo un transistor que controla la alimentacion del CPU desde el PIC junto con la linea de RESET, asi que ahora cuando el PIC quiere que el CPU no moleste y pueda tener acceso completo a la RAM, lo apago y listo. Con este cambio (muy bruto por supuesto) la prueba de grabado me anda joya. Pruebo todo el sistema completo y sigue sin andar.

    Despues voy a tener que probar los integrados en el EDU juegos apra ver si no los queme, no estoy seguro que puede pasar si dos integrados tienen unidas las patas y uno esta en 5V y el otro en 0, no seria raro que algo se halla quemado, igual tengo otro 6507  biglaugh 


            Saludos
           MARCOS
     

  • Aparecio en pantalla el Yar's Revenge que cargue desde el Hiperterminal!!  suprised

          Saludos
         MARCOS
    Atari Mjl 6
     

  • Aparentemente el problema era el inversor que por alguna razon funcionaba bien con el PIC y no con el 6507. Imite el inversor del cartucho Edu Juegos que tengo y salio andando. La diferencia es que en la resistencia de entrada en la base (la señal que se usa para seleccionar la ROM/RAM) ahora tiene un capacitor de 10nf en paralelo con la resistencia. Que diferencia hace? no se tengo que repasar algunas cosas de electronica basica.

        Asi quedo la placa:

         Saludos
        MARCOS
    Atari Mjl 8
     

  • Todo lo importante de la placa esta:
      El CPU trabaja ejecutando el programa desde una RAM que usa como si fuera una ROM, no la puede modificar.
    El PIC maneja el contenido de la RAM y controla al CPU. Es poco elegante que tenga que encenderlo y apagarlo al CPU, pero con el 6502 full no haria falta esto.

    Me faltaria:
      Terminar de unir las entradas de botones, joysticks y pads asi se vuelve interactiva la cosa, ahora solo puedo ver al yar's jugando solo en modo demostracion.
      Dejar a punto la conexion de video, ahora no se ve bien, el color no esta y solo lo sintonizo con la placa sintonizadora, la Tele no lo detecta bien, algo solde mal, porque el daptador para Video compuesto habia quedado perfecto para la AtariJr.
      Ponerle el sonido, a la salida de sonido del TIA, tengo que conectarle los capacitores, resistencias y transistores necesarios para que genere el sonido. Siempre lo relego porque me dan ganas de hacerlo stereo,al tener las dos salidas independientes de cada una de las voces, (que el mother original van unidas), pero si le agrego un circuito independiente es un lio de componentes y tendria que ponerle 2 potenciometros, etc, etc
      Hacer andar el Bank Switch desde el PIC, el PIC tendria que detectar cuando se direcciona 1FF6 y 1FF7 para setear el valor de A12 para elegir banco, el tema es que para que sea mas facil la deteccion tendria que reordenar las lineas de direcciones en el PIC para que esten agrupadas de forma tener FF en un puerto, y otro valor en otro de forma fija asi la comparacion se hace lo mas rapido posible, pero tendria que soldar mucho   :(
    Increiblemente una cosa que hice andar y ahora fallo es el led de encendido  confused , como se pudo haber roto?

    Mejor me tomo unos dias de descanso del proyecto, me despejo un poco porque sino se vuelve un poco enfermante.  biglaugh
       
        Saludos
       MARCOS
    Atari Mjl 7
     

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