• Muy bueno! Tenes la ventaja de que ya hay soft escrito para probar esa emulacion de ROM, a mi se me complica mas hacer eso porque todo el soft lo tengo que escribir yo, y no sabria si falla el programa o el sistema de carga en RAM. Por ahora como tengo poco para correr, porque no serian mas que unas lineas de codigo para destellar un led o alguna cosa simple, creo que voy a simular la ROM con el PIC, pero cuando este mas completa la placa no se si va a aguantar la velocidad, ya que quiero ir a 2MHz en lo posible, y como el 6502 accede a memoria en una de las dos fases del reloj, mi ROM en el peor de los casos tendria que soportar 4MHz. Si se complica voy a tener que hacer algun sistema como el tuyo por puerto serie, lo que pasa es que solo tengo un puerto y no quiero andar desconectando tanto (ahi tengo el PICStart Plus), o voy a tener que acelerar el desarrollo de la emulacion de ROM usando la flash de acceso paralelo.
    Por ahora lo que estoy queriendo hacer es usar un SIMM de 30 pines, soldandole pines para que entre en la placa, pero estoy viendo como hacer el refresco de las memorias sin complicarme la vida. Tendria memoria de sobra que no voy a usar, pero es una solucion barata y compacta.  wink
     


  •   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
     

    Marcos, sos groso . . . ahora la excusa de que si le agregas un circuito es un lio . . . armaste un ATARI de cero chabón !!! Ahora terminalo como te gusta a vos, estereo, video compuesto re pulidito , etc

     

  • Muy bueno! Tenes la ventaja de que ya hay soft escrito para probar esa emulacion de ROM, a mi se me complica mas hacer eso porque todo el soft lo tengo que escribir yo, y no sabria si falla el programa o el sistema de carga en RAM. Por ahora como tengo poco para correr, porque no serian mas que unas lineas de codigo para destellar un led o alguna cosa simple, creo que voy a simular la ROM con el PIC, pero cuando este mas completa la placa no se si va a aguantar la velocidad, ya que quiero ir a 2MHz en lo posible, y como el 6502 accede a memoria en una de las dos fases del reloj, mi ROM en el peor de los casos tendria que soportar 4MHz. Si se complica voy a tener que hacer algun sistema como el tuyo por puerto serie, lo que pasa es que solo tengo un puerto y no quiero andar desconectando tanto (ahi tengo el PICStart Plus), o voy a tener que acelerar el desarrollo de la emulacion de ROM usando la flash de acceso paralelo.
    Por ahora lo que estoy queriendo hacer es usar un SIMM de 30 pines, soldandole pines para que entre en la placa, pero estoy viendo como hacer el refresco de las memorias sin complicarme la vida. Tendria memoria de sobra que no voy a usar, pero es una solucion barata y compacta.  wink


      Mira mi idea es hacerme con el 6502, el PIC conectado a una RAM y la terminal esa que hiciste vos con un Atmel, y hacerla directamente en PCB, total no hay mucho que experimentar, para experimentar tengo esta del Atari.
    Unifiquemos, hagamos la misma placa, te digo mas o menos mi idea:
    * 6502
    * RAM 64Kb
    * ROM de 16KB. Por medio de un bankswitch (y un jumper) se selecciona si los 16Kb superiores se mapean a la RAM o la ROM. Durante el desarrollo no la usamos, pero una vez con un firmware terminado, la placa estaria buena que funcione con algo retro como una EPROM
    * un 8255 para manejar perifericos, conectado a 3 puertos IDC10 para manejar de forma externa
    * PIC 16F877 con puerto serial, tarjeta SD y acceso a la RAM, una modificacion de este programa para Atari
    * Placa video ATMega
    * Un puerto de expansion IDC20 para las direcciones y un IDC10 para datos

    Habria que ver la forma mas facil de hacer la decodificcion del bus de direcciones, con una GAL o con 2 o 3 compuertas. Mi idea es usar las direcciones DFxx para manejar perifericos, de los 3 bits superiores con un multiplexor sacamos 8 lineas de select para 8 perifericos, y las 2 inferiores segun el periferico (el 8255 usa 2 lineas de adr)

    Podemos ir haciendo la placa si usamos el mismo programa (Orcad tal vez)

    Te conviene comprar otro placa COM o un puerto serial USB, pero igual tampoco hay que estar todo el tiempo actualizando el firmware del PIC, podes desenchufar el PICSTART, o comprarte el IDC2 USB que maneja mas micros. Asi es facil probar todo el mother desde una terminal serial de PC usando el PIC antes de meter el 6502, como hice aca, por ejemplo escribis la ram y lees el contenido, ver si podes manejar los perifericos, mandar datos a la terminar de video, etc, y colocas el 6502 cuando estas seguro que todo eso esta bien.

    Yo creo que estamos asi, con lo que estoy probando aca en el bus del atari, mas lo que hiciste en la terminal de video como para hacer una computadora simple de 8-bit. Que opinas?

     
        Saludos
       MARCOS
     

  • Mira mi idea es hacerme con el 6502, el PIC conectado a una RAM y la terminal esa que hiciste vos con un Atmel, y hacerla directamente en PCB, total no hay mucho que experimentar, para experimentar tengo esta del Atari.


    Pensas temporizar el tren de pulsos RS232 directamente con el 6502? Hay que pensar en aprovechar algun PIC para incluirle esa funcion, ya que lo ideal seria poder trabajar al menos a 19200 bps para tener un video mas o menos fluido, eso para conectarse al ATMega de video.

    Unifiquemos, hagamos la misma placa, te digo mas o menos mi idea:
    * 6502
    * RAM 64Kb
    * ROM de 16KB. Por medio de un bankswitch (y un jumper) se selecciona si los 16Kb superiores se mapean a la RAM o la ROM. Durante el desarrollo no la usamos, pero una vez con un firmware terminado, la placa estaria buena que funcione con algo retro como una EPROM
    * un 8255 para manejar perifericos, conectado a 3 puertos IDC10 para manejar de forma externa
    * PIC 16F877 con puerto serial, tarjeta SD y acceso a la RAM, una modificacion de este programa para Atari
    * Placa video ATMega
    * Un puerto de expansion IDC20 para las direcciones y un IDC10 para datos


    Como pensas tener los 64K? Con varias RAMs estaticas? Mi placa es un poco chica para eso, y esa es la razon de que este investigando los SIMMs, pero de ultima puedo por ahora usar el chip de RAM estatica de 8K que ya tengo, si igual dudo que escribamos en el futuro cercano tanto codigo como para llenarla. Los 16K de ROM me parecen bien, por ahora con 8K sobra pero hay que dejar el lugar reservado para 16K, dudo que se use mas que eso. Yo no creo que le ponga una EPROM en el futuro, pero si tengo pensado emular una con la memoria flash, asi que podemos usar zocalos compatibles con EPROMs estandar. En las E/S todavia no pense mucho, pero lo que es seguro es que voy a necesitar un puerto RS232 para darle ordenes a la maquina desde la PC, que no se va a usar hasta que haya avanzado mas. Tal vez esa funcion se pueda agregar mas adelante a ese 877 que maneja la ROM, enviandole algun comando desde la PC para que desvie los datos del puerto serie hacia el 6502. Para los puertos de expansion pense hace tiempo usar zocalos ISA, pero ahora creo que es mas practico usar pines, que sirven para enchufar cables planos, cables sueltos o placas.
    El 8255 no lo use nunca, tendria que ver si puedo conseguir alguno.

    Habria que ver la forma mas facil de hacer la decodificcion del bus de direcciones, con una GAL o con 2 o 3 compuertas. Mi idea es usar las direcciones DFxx para manejar perifericos, de los 3 bits superiores con un multiplexor sacamos 8 lineas de select para 8 perifericos, y las 2 inferiores segun el periferico (el 8255 usa 2 lineas de adr)


    Donde pensas mapear los 16K de ROM, en los ultimos 16K del espacio de 64K? Tengo por ahi unas cuantas GAL que compre en Cika. En la web de Cika salen como:
    012016V8-1      GAL16V8-25LP       DIP 20       PAL 20 PINES       LATTICE
    Igual por ahora se pueden usar compuertas y se pueden simplificar las direcciones para ahorrar componentes, ya que por ahora sobra memoria, y en todo caso despues se puede modificar el codigo cuando las cosas esten mas avanzadas, si es que hay que cambiar alguna direccion de E/S.

    Podemos ir haciendo la placa si usamos el mismo programa (Orcad tal vez)


    No me manejo con ningun programa de circuitos impresos, el que tengo es el Protel98 pero nunca me hice tiempo para aprender a usarlo, de todas maneras por ahora pensaba cablear todo asi que necesito simplificar el diseño todo lo que pueda, aunque dejandolo abierto a expansiones. Para las cosas que quiero hacer necesito mas de 64K de RAM asi que aunque no haga ahora el sistema de paginado, el diseño no me tiene que impedir eso en el futuro. La placa la podes hacer si te es mas comodo, yo tengo otras cosas pensadas para agregar mas adelante pero voy a tratar de que coincidamos en el minimo para que tengamos el mayor grado de compatibilidad. Definilo como te parezca y si veo que algo se puede modificar un poco porque me complica para mas adelante, vemos como lo resolvemos.

    Te conviene comprar otro placa COM o un puerto serial USB, pero igual tampoco hay que estar todo el tiempo actualizando el firmware del PIC, podes desenchufar el PICSTART, o comprarte el IDC2 USB que maneja mas micros. Asi es facil probar todo el mother desde una terminal serial de PC usando el PIC antes de meter el 6502, como hice aca, por ejemplo escribis la ram y lees el contenido, ver si podes manejar los perifericos, mandar datos a la terminar de video, etc, y colocas el 6502 cuando estas seguro que todo eso esta bien.


    Podes poner el circuito de como esta conectado el 16F877 al sistema? En que programas el PIC? En C, BASIC o Assembler?
     


  • Pensas temporizar el tren de pulsos RS232 directamente con el 6502? Hay que pensar en aprovechar algun PIC para incluirle esa funcion, ya que lo ideal seria poder trabajar al menos a 19200 bps para tener un video mas o menos fluido, eso para conectarse al ATMega de video.

      Si, por software, esta placa conviene hacerla lo mas simple posible, igual no te preocupes que seguro van a surgir problemas que la van a complicar, pero las optimizaciones quedaran para la siguiente. 


    Como pensas tener los 64K? Con varias RAMs estaticas? Mi placa es un poco chica para eso, y esa es la razon de que este investigando los SIMMs, pero de ultima puedo por ahora usar el chip de RAM estatica de 8K que ya tengo, si igual dudo que escribamos en el futuro cercano tanto codigo como para llenarla. Los 16K de ROM me parecen bien, por ahora con 8K sobra pero hay que dejar el lugar reservado para 16K, dudo que se use mas que eso. Yo no creo que le ponga una EPROM en el futuro, pero si tengo pensado emular una con la memoria flash...

    Es muy comun el 8255, hay por todos lados. La verdad que tendria que ver cual es la memoria RAM mas comun que se consigue por ahi, yo tengo unas de 128Kb tiradas por ahi, pense que eran comunes, pero seguro 8Kb de RAM + 8Kb ROM para una placa simple creo que esta perfecto.

      De hecho estuve pensando y voy a hacerlo lo mas simple posible:
        *RAM estatica chica, 8Kb tal vez, la selecciono con la pata A15
        *ROM chica (8Kb, 16Kb..) la selecciono negando A15
        *CPU 6510 (tengo 2 de placas rotas de C64, espero que anden) asi aprovecho que tiene un puerto interno con 6 I/O y simplifico la placa. Le pongo un buffer entre las I/O y el mundo exterior por als dudas, de hecho puedo aprovechar el inversor
        *Placa de video con ATMega8 conectado a uno de las salidas del 6510
        *Entrada de teclado de PC conectada a otra I/O del CPU, tal vez la linea de Entrada de datos del teclado la puedo meter como interrupcion tambien.
        *Un Led y un buzzer manejados por las I/O del micro

    Ningun PIC ni tarjeta SD, igual ya tengo una idea para simplificar el desarrollo, despues armo un post.
    Parece una gilada, pero igual es complejo, hay que hacer un PCB que tiene dos buses y todo eso, y el resultado es una linda computadora.


    Podes poner el circuito de como esta conectado el 16F877 al sistema? En que programas el PIC? En C, BASIC o Assembler?


    Lo programe con el Hitech C en el MPlab, en realidad copypastee distintas rutinas que tenia de otros programas, lo tengo que pulir un cacho antes de subir el codigo porque quedo hecho una porqueria, sobre todo con los miles de NOPs que le agregue cuando tenia un problema con la RAM (el problema resulto no tener nada que ver) y un monton de porquerias, igual todavia le falta la parte de manejar la tarjeta SD.
    La conexion del PIC quedo mas o menos asi:
       PORT D: BUS de datos, entrada o salida segun el caso.
       PORT B: aca la complique innecesariamente, para tener libre el pin B0 que puede manejar interrupciones, uso las lineas de direccion A0 a A6, deberia usar 8, no necesito esa interrupcion
       PORT C: como las patas 6 y 7 las necesito  para la UART, y las primeras para la tarjeta SD, por el momento no lo uso.
       PORT A: uso algunas lineas de direccion (3 o 4) manejo un led con A4 que no es ttl, y otro led con otra pata no se para que le puse 2 leds!, y la linea de /RESET que por razones de fuerza mayor se transformo en pata de alimentacion del CPU (por medio de un transistor, dudo que se pueda alimentar son la salida de esta pata)
       PORT E: algunas lineas de direccion mas, lineas CS (no es /CS, esta invertida)  /RW /OE)

    La cosa es que usa 13 lineas de direcciones, porque el atari es muy limitado.

          Saludos
         MARCOS   
     

  • Que capo este tipo!.
    Que un ignorante en la materia te felicite sería un insulto. Pero tómalo por el lado amable...
    Felicitaciones!.
    ;D
     

  • Si, por software, esta placa conviene hacerla lo mas simple posible, igual no te preocupes que seguro van a surgir problemas que la van a complicar, pero las optimizaciones quedaran para la siguiente.


    Veo que cada bit a 19200 dura 52 us, asi que puede que funcione por soft, el tema es que se va a complicar hacer los ajustes de tiempo, pero si se usa una velocidad mas baja como 9600, que tambien por lo que estuve probando es aceptable, ya hay mas margen para ser precisos.

    Es muy comun el 8255, hay por todos lados. La verdad que tendria que ver cual es la memoria RAM mas comun que se consigue por ahi, yo tengo unas de 128Kb tiradas por ahi, pense que eran comunes, pero seguro 8Kb de RAM + 8Kb ROM para una placa simple creo que esta perfecto.


    Aca mucho no consigo, por eso pido tantas cosas a Cika, por el momento mucho no puedo comprar pero algo se puede rescatar de alguna PC vieja. 8K tengo seguro, tendria que ver si rescato alguna otra memoria mas. 8255 no pregunte si se consigue en la zona, pero tengo una placa de 286 que por ahi tenga alguno.

    De hecho estuve pensando y voy a hacerlo lo mas simple posible:
        *RAM estatica chica, 8Kb tal vez, la selecciono con la pata A15
        *ROM chica (8Kb, 16Kb..) la selecciono negando A15
        *CPU 6510 (tengo 2 de placas rotas de C64, espero que anden) asi aprovecho que tiene un puerto interno con 6 I/O y simplifico la placa. Le pongo un buffer entre las I/O y el mundo exterior por als dudas, de hecho puedo aprovechar el inversor
        *Placa de video con ATMega8 conectado a uno de las salidas del 6510


    Tengo un 6510, podemos usar eso para empezar, yo en el futuro quiero usar un 6502 estandar asi que el puerto integrado eventualmente lo reemplazaria, pero por algo se empieza.

    *Entrada de teclado de PC conectada a otra I/O del CPU, tal vez la linea de Entrada de datos del teclado la puedo meter como interrupcion tambien.
        *Un Led y un buzzer manejados por las I/O del micro


    Manejar PS/2 con el micro, ahi me parece que se va a complicar un poco, en mi diseño final segun lo que hablamos con Pablo es mejor usar un PIC que lea el teclado, que tenga un buffer de pongamos 10 o 15 caracteres, que aparezca al micro como una direccion de memoria y al leerlo se autodestruya, es decir que se pase al siguiente caracter en la proxima lectura. Tambien una opcion interesante es que si el micro escribe cualquier cosa en esa direccion, el PIC vacie el buffer. Se puede usar la opcion de PSP (Parallel Slave Port) del PIC16F877 por ejemplo, o usar un PIC de menos pines y alguna logica de decodificacion de direcciones. Usar un teclado directo como el de C64 simplifica las cosas pero ocupa dos puertos de 8 bits.

    Lo programe con el Hitech C en el MPlab, en realidad copypastee distintas rutinas que tenia de otros programas, lo tengo que pulir un cacho antes de subir el codigo porque quedo hecho una porqueria, sobre todo con los miles de NOPs que le agregue cuando tenia un problema con la RAM (el problema resulto no tener nada que ver) y un monton de porquerias, igual todavia le falta la parte de manejar la tarjeta SD.


    Yo trabajo todo en assembler, le tengo cierto rechazo a usar BASIC o C, pero supongo que todo es cuestion de tener el tiempo para probar, aunque lamentablemente por ahora no lo tengo.
    El tema de la SD seria bueno resolverlo, aunque no lo maneje el micro de forma directa, pero hay que tener alguna manera de que la placa cargue datos externos, aunque sea un PIC el que los vuelque a memoria antes de arrancar el sistema. Supongo que se puede escribir directamente los sectores de la SD, sea con un lector en la PC, o con algun cable conectado al puerto paralelo, pero lo ideal en el futuro seria poder interpretar el sistema FAT, aunque solo se acceda a un archivo fijo.
     

  • Veo que cada bit a 19200 dura 52 us, asi que puede que funcione por soft, el tema es que se va a complicar hacer los ajustes de tiempo, pero si se usa una velocidad mas baja como 9600, que tambien por lo que estuve probando es aceptable, ya hay mas margen para ser precisos.

    Esta primera placa la quiero hacer lo mas simple posible, 9600 creo que esta bien, no se bien cuanto tiempo por ciclo de refresco puedo enviarle datos a la plaquita de video, pero mientras pueda mostrar lo que escribis alcanza.

    Aca mucho no consigo, por eso pido tantas cosas a Cika, por el momento mucho no puedo comprar pero algo se puede rescatar de alguna PC vieja. 8K tengo seguro, tendria que ver si rescato alguna otra memoria mas. 8255 no pregunte si se consigue en la zona, pero tengo una placa de 286 que por ahi tenga alguno.


    En electrocomponentes veo que tienen estas RAMs de 8bits (precios en dolares)
    HY6264LP-10      -8K x 8 BIT STATIC RAM      2.500      
    UC62WV0064DC-70      -8Kx8BIT STATIC RAM SIMIL HY6264LP-10      2.500
    MCM6810P      -128 x 8 BIT STATIC RAM      4.386

    Y las eproms son mas baratas las mas grandes! igual yo tengo, mas o menos para saber que usar.
    27C64      -EPROM 8Kx8 CMOS (DIP28)      6.200      
    M27C256B-12F1      =UV EPROM 32Kb x 8 5V 120ns FDIP28W      5.000      
    27C512      -64K x 8 BIT EPROM CMOS      5.000      
    27C010      =128K x 8 EPROM CMOS      5.300
    27C2001      =256K x 8 EPROM CMOS      5.500      
    27C4001      =512K x 8 EPROM CMOS C/VENTANA DIP-32      4.500      
    AT28C64B-15P      =EEPROM 8K x 8 CMOS (DIP-28)      4.800      
    CAT28C65      -EEPROM 8K x 8 CMOS      12.000      
    93C46LN      -1K BIT SERIAL EEPROM CMOS 2 a5.5V (DIP-      0.780      
    93C46N      =1K BIT SERIAL EEPROM CMOS 4.5 a 5.5V      0.460      
    93C46-10PC2,7AT      -1K BIT SERIAL EEPROM CMOS 4.5 A 5.5V      0.390      
    93C56SMD      -EEPROM SERIAL CMOS 2K x 1BIT SMD      1.400      
    93C56      =EEPROM SERIAL CMOS 2K x 1 BIT (DIP-8)      0.500      
    93C66      =EEPROM SERIE 4K CMOS      0.750

    Asi que a la placa le voy a usar el 100% de los 64 Kb de direccionamiento, claro que sin posibilidad de grabar el trabajo en tarjeta SD es un desperdicio hacer un progama basic de 32Kb y depues tirarlo. Quedara para la proxima version, sino una cosa que estaba pensando es poberle un bateria para mantener viva la RAM mientras la apagas.

    Tengo un 6510, podemos usar eso para empezar, yo en el futuro quiero usar un 6502 estandar asi que el puerto integrado eventualmente lo reemplazaria, pero por algo se empieza.


    Seguro, igual con esas 6 lineas solas del 6510 se pueden hacer muchas cosas para una primera version, las versiones siguientes con la experiencia ganada ya podes usar mecanismos mas complicados.

    Manejar PS/2 con el micro, ahi me parece que se va a complicar un poco, en mi diseño final segun lo que hablamos con Pablo es mejor usar un PIC que lea el teclado, que tenga un buffer de pongamos 10 o 15 caracteres, que aparezca al micro como una direccion de memoria y al leerlo se autodestruya, es decir que se pase al siguiente caracter en la proxima lectura. Tambien una opcion interesante es que si el micro escribe cualquier cosa en esa direccion, el PIC vacie el buffer. Se puede usar la opcion de PSP (Parallel Slave Port) del PIC16F877 por ejemplo, o usar un PIC de menos pines y alguna logica de decodificacion de direcciones. Usar un teclado directo como el de C64 simplifica las cosas pero ocupa dos puertos de 8 bits.


    Si le atas la linea de clock a la entrada de /IRQ del micro podes leer un bit a la vez y cada 9 interrupciones ya leiste un byte, y el buffer lo manejas directamente dentro de la RAM principal, tene en cuenta que no es asyncronico como el puerto serial que se usa para video, el tiempo te viene desde la linea clock / IRQ. Ademas para algo hay que usar para las interrupciones, sino no es una verdadera computadora, es un Atari 2600 smile

    Yo trabajo todo en assembler, le tengo cierto rechazo a usar BASIC o C, pero supongo que todo es cuestion de tener el tiempo para probar, aunque lamentablemente por ahora no lo tengo.


      Esta bueno usar lenguajes de alto nivel en PICs si sabes bien assembler, cuando no sabes es el problema, porque no son tan alto nivel realmente, estan muy pegados a la estructura del micro. Pero te solucionan un monton de problemas como la escritura de expresiones matematicas, asignaciones y comparaciones que dan para muchos errores en assembler, mas el asm del PIC que se te confunden los nombres de las intrucciones (por lo menos me pasa a mi) y el ensamblador no te ayuda. A mi siempre me confundo un movlw por movfw o cosas asi, o me olvido un ,w y pierdo mucho tiempo.

          Saludos
         MARCOS
     

  •   Ahora que termino el mundial puedo seguir con mi atari  wink Mentira, en lo que va del mundial solo vi el segundo tiempo del partido que perdio Brasil, no veia tan poco de un mundial creo desde el 86, otra coincidencia mas....

      Estaba ocupado con otras cosas, pero cada tanto lo agarraba a esta placa, y fue muy traumatico ponerle la tarjeta SD, primero por el tema soldadura, se me hizo un lio importante de cables, despues por la alimentacion, primero tenia unas resistencias para transformar de 5V a 3.3V que necesita, pero midiendo me di cuenta que cuando ponia la tarjeta se caian los 3.3, con osciloscopio vi que no quedaba fijo en 3.3 sino que oscilaba a lo loco, no lo pude solucionar con un capacitor de 47uf asi que le puse un LM317 para tirar 3.3 regulados y ahi no volvio a fallar eso (tengo que investigar esto mas adelante), pero igual seguia sin responderme la tarjeta.

    El programa para leer la tarjeta lo escribi basandome en el de la SDIE64, pero cambiandolo casi por completo, porque aquel usa un micro con varios Kb de RAM y lee un segmento entero (512 bytes) en RAM antes de ver que contenido tiene, en cambio aca uso un micro chico con unos 300 bytes de RAM, asi que tengo que ir procesando sobre la marcha. Se que hay codigo disponble para hacer esto, pero preferi escribirlo yo

    La tarjeta se conecta usando el protocolo SPI, todas las SD soportan este modo reducido que no aprovecha la maxima velocidad. Este micro soporta SPI por hardware, pero igual es facil de manejarlo por software, es una linea de clock, una de entrada y una de salida, con un master que aca es el micro que maneja todo el tema del timming.

    Dedique muchas horas con distintas pruebas para que me conteste la tarjeta, pero nunca me contestaqba nada, revise todo el cableado mil veces, hasta que para probar con algo que conocia, modifique el codigo del SD64 para que solo envie un comando simple para ver si respondia la tarjeta, y la tarjeta respondia, pero esa misma prueba con el atari no funcionaba, volvi a revisar todo mas detalladamente y ahi me di cuenta que habia conectado la salida SPI de uno con la salida del otro, y la entrada con la entrada, en vez de hacerlo cruzado.  Como no me di cuenta de un error de conexion tan grueso!! Perdi muchisimas horas por esa estupidez. Creo que no me di cuenta porque habia varias cosas de las que dudaba, sobre todo de la soldadura y el programa, por eso al verificar no verificaba del todo bien, la proxima vez que pruebe algo nuevo voy a ir de a pasos mas chicos

    Pero una vez que pude leer un segmento (512bytes) y transmitirlo por puerto seial, ahi escribi las rutinas de interpretacion de FAT, por ahora solo interpreta FAT32 con una sola particion de hasta 2GB, pero despues la extiendo un cacho la rutina.

    Lo que hace cuando arranca es ver el Master Boot Record, detecta que tipo de particion tiene y saca algunos datos (ancho de los clusters de la FAT en sectores, posicion de los clusteres, del directorio ROOT..) y luego busca el archivo ATARI.BIN en el directorio, y su contenido lo vuelca en la RAM, una vez con esto en la RAM habilita al 6502 y el juego arranca lo mas bien.

    Lo probe con el Yar's Revenge y anduvo todo 10 puntos

     
          Saludos
         MARCOS
    Atari Mjl 9
     

  • Aca esta la foto del lado de abajo.
    Lo que me queda para terminarlo es ver que es lo que tiene mal en la generacion de señal de video, se ve raro y no tiene los colores, agregar el circuito para generar la señal sonido, conectarle los joysticks y demas botones, ahora no es interactivo en lo mas minimo.
    Tambien tengo que probar si la rutina de bankswitch funciona para poder usar juegos de mas de 4Kb.

    Despues pienso ponerle una base y un techito de acrilico transparente, asi queda cerrado pero se puede ver el lio de cables interior, pero sin laterales, para que se pueda presionar los botones que estan sobre la placa y ponerle una tarjeta SD.

    En esta placa es absurdo tener una tarjeta SD de 2Gb solo con un archivo de 8Kb, porque no va ahaber interaccion entre el atari y la tarjeta, solo va a bootear esa imagen, pero ya con lo que aprendi aca pienso hacer otras cosas con tarjetas SD.

          Saludos
         MARCOS
    Atari Mjl 10
     

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