MyIDE/MyCF comunitario

Para comentar los proyectos de hardware presentados en la web.
Responder
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10907
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por ZZT »

xt5 escribió:renix, te envie PM con el diseño, pero la verdad es mejor esperar a otra version mas simple de fabricar.

pucha ZZT cachaste mal, el que se va de vacaciones es SalonVip, yo hace años que no tengo la palabra vacaciones en mi diccionario ;-(
Sorry, pero deberias aprovechar que eres joven. Cuando viejo tomar vacaciones ya no es lo mismo. :|
Avatar de Usuario
fcatrin
hard player
hard player
Mensajes: 470
Registrado: Jue Abr 10, 2008 2:45 pm
Reputación: 5
Ubicación: Quilpué, Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por fcatrin »

Hola! Renix me avisó de este proyecto. Está bueno, pero me anduve perdiendo un poco en la historia.

Por lo que entiendo la idea es tener un dispositivo que se conecte mediante el catridge y que permita usar memorias CF? Si es así, se va a necesitar un loader si queremos meter cualquier juego. Yo les puedo ayudar con ese loader.

Saludos!
Avatar de Usuario
renix
expert
expert
Mensajes: 2166
Registrado: Dom May 20, 2007 2:21 pm
Reputación: 0
Ubicación: La Serena, Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por renix »

fcatrin escribió:Hola! Renix me avisó de este proyecto. Está bueno, pero me anduve perdiendo un poco en la historia.

Por lo que entiendo la idea es tener un dispositivo que se conecte mediante el catridge y que permita usar memorias CF? Si es así, se va a necesitar un loader si queremos meter cualquier juego. Yo les puedo ayudar con ese loader.

Saludos!
Al parecer no hay nada de software aun, la idea que esta muy adelantada es que en vez de Compact Flash sea una memoria SD, para lo cual XT5 ya tiene el diseño del esquematico hecho, y yo en la semana ruteare la placa.

Tengo todos los componentes menos el slot para memoria SD.

Bienvenido y si, el loader seria un gran aporte... deberas recibir una lista de las roms desde la SD via el chip CPLD y activar la orden para copiarla a la memoria flash, manejar el banking y luego resetear... casi todos los flashcarts tienen esta logica de operacion... asi que demosle... hechemos una mirada al loader del easy flash de c64 o de algun otro cartucho multijuego, ya que en principio lo unico que debe variar son los saltos a direcciones de memoria de los chips de video (para el tema de los menús)... lo demas, manejo del bus de datos y direcciones es iwal...
Avatar de Usuario
fcatrin
hard player
hard player
Mensajes: 470
Registrado: Jue Abr 10, 2008 2:45 pm
Reputación: 5
Ubicación: Quilpué, Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por fcatrin »

De qué tamaño es la página que hay que switchear? Tiene alguna ubicación específica en memoria?
xt5
expert
expert
Mensajes: 512
Registrado: Mar Sep 18, 2007 1:16 am
Reputación: 0
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por xt5 »

fcatrin escribió:De qué tamaño es la página que hay que switchear? Tiene alguna ubicación específica en memoria?
en el esquematico se ve que entre la EEPROM y el puerto del cartridge A0-A12 van conectados, de A13 hacia arriba solo estan conectados entre la EEPROM y el CPLD, eso te dice que la granularidad de una pagina es 8192 bytes.

en que ubicacion va? hay que definir los registros a crear, pero tenemos flexibilidad absoluta con S4,S5,RD4 y RD5 bajo nuestro control.

lo mas importante a la hora de crear el "cargador" es el acceso a la tarjeta SD, el acceso a la memoria flash es pan comido. solo se puede acceder en bloques de 512bytes y muchas tiene limites con las velocidades minimas de acceso, el software que vea el acceso a las SD necesariamente tiene que ser ejecutado desde la RAM, ya que el acceso a la SD, los switches y los LEDs son excluyentes al acceso a la EEPROM.

en mi opinion no tiene sentido implementar una FAT12 para la tarjeta SD, eso te añade que hay que definir el formato para almacenar las ROMs y hacer el software en el PC que las administre.
Avatar de Usuario
vitoco
expert
expert
Mensajes: 869
Registrado: Mié Nov 08, 2006 7:25 pm
Reputación: 5
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por vitoco »

Me gustó, me gustó... También me gustaría participar en lo del loader, pero no caché bien la arquitectura.

¿La idea es que el loader copie desde SD a flash para que el Atari lo vea como un cartucho original?

Eso implica que un Atari recién encendido debe ver primero el loader en el cartucho, el que después bankea para meter lo que saque de SD (según la selección en algún menú) en otra área del cartucho (flash) y que de alguna forma le hace un reset al Atari para que comience a mirar el area flash como cartucho real. ¿Es así la cosa? De aquí se desprenden varias preguntas adicionales...

Lo otro que se me ocurre es poner un loader del tipo de 3 sectores y cargar lo que sea en memoria del Atari, pero leyendo del SD... ¿Estoy meando fuera del tiesto?

++V
Avatar de Usuario
fcatrin
hard player
hard player
Mensajes: 470
Registrado: Jue Abr 10, 2008 2:45 pm
Reputación: 5
Ubicación: Quilpué, Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por fcatrin »

@Vitoco

Entiendo algo similar. Yo aplicaría esta estrategia:

1) Se carga un bootloader pequeño desde el catridge y se ubica en una posición fija de memoria
2) El bootloader pequeño carga un loader más elaborado desde un archivo en la SD, desconectando el cartridge. Este loader Incluye el despliegue del menú
3) Una vez seleccionado el juego, se carga un loader minimo pero que sea relocalizable, descartando el segundo loader. Este loader tiene sólo la lógica para cargar sectores del SD + la lógica para cargar un archivo XEX (bloques + ejecución)

Qué logramos con cada punto?

1) El bootloader del catridge hace lo mínimo considerando que no es fácil modificarlo
2) Nos da libertad para hacer el loader que queremos
3) El loader es relocalizable para que sea compatible con la mayor cantidad de juegos posibles. Manteniendo el tamaño acotado (solo lee y ejecuta), aseguramos que sea compatible con la mayoría de los juegos.

Saludos
Avatar de Usuario
fcatrin
hard player
hard player
Mensajes: 470
Registrado: Jue Abr 10, 2008 2:45 pm
Reputación: 5
Ubicación: Quilpué, Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por fcatrin »

@xt5
Por lo que pude entender, el flash se lee de a bloques y no es posible mapearlo en memoria?
xt5
expert
expert
Mensajes: 512
Registrado: Mar Sep 18, 2007 1:16 am
Reputación: 0
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por xt5 »

fcatrin escribió:@xt5
Por lo que pude entender, el flash se lee de a bloques y no es posible mapearlo en memoria?
la memoria flash (EEPROM) se lee como cualquier cart, mapeandola en memoria, el diseño permite emular cualquier sistema de banking con paginas de 8KB.
la SD es la que se lee en bloques de 512 bytes (y solo en orden y que usa una memoria NAND).

una memoria SD es una memoria NAND (las mismas de los discos SSD) conectada a un controlador que tiene 2 modos (simplificando un poco) de operacion:
1- normal: se usan 4bits (bidireccional) como bus de datos y funciona hasta velocidades altisimas.
2- SPI: se usa 1bit de salida, otro de entrada, un clock, y un chip select, es este modo el que usaremos.

la idea es que el CPLD implementa el protocolo SPI, con un registro para recibir datos, otro para enviar y uno de control, es asi que casi todos los microcontroladores funcionan, pero nosotros tenemos un problema y es que el CPLD es bastante "pequeño" y no podemos implementar un buffer (FIFO) como lo hace una implementacion de SPI comun y corriente, por lo que dependeremos del Atari para manejar el timing, y el controlador SPI solo se limitara a serializar los bits.

por lo descrito en el parrafo anterior, el Atari es quien debe manejar todo el protocolo de la memoria SD, no es gran cosa de todas maneras.

fcatrin escribió: @Vitoco

Entiendo algo similar. Yo aplicaría esta estrategia:

1) Se carga un bootloader pequeño desde el catridge y se ubica en una posición fija de memoria
2) El bootloader pequeño carga un loader más elaborado desde un archivo en la SD, desconectando el cartridge. Este loader Incluye el despliegue del menú
3) Una vez seleccionado el juego, se carga un loader minimo pero que sea relocalizable, descartando el segundo loader. Este loader tiene sólo la lógica para cargar sectores del SD + la lógica para cargar un archivo XEX (bloques + ejecución)
lo de 2 niveles de bootloader no es necesario ya que las EEPROM "modernas" mas chicas que se encuentran son 512KB y alli te cabe el loader completo, no hay problema con cambiar el loader cuantas veces queramos desde la EEPROM ya que se autoprograma desde el mismo Atari con facilidad, aqui hay un ejemplo de ello, obviamente nada nos impide tener una especie de "autorun" que cargue algun loader nuevo de la SD.

por conveniencia del diseño (pocos pines del CPLD), la memoria EEPROM y la tarjeta SD no pueden estar activos a la vez, asi que por lo menos las rutinas que leen desde la SD deben copiarse a la RAM.
vitoco escribió:¿La idea es que el loader copie desde SD a flash para que el Atari lo vea como un cartucho original?
la idea es leer desde la SD a la RAM y ejecutar.
pero ademas tenemos un flashcart for free que se puede autograbar desde el mismo Atari y segun en el espacio que quede en CPLD se pueden implementar algunos de los mappers historicos como los de Turbosoft, etc.

el problema de este cart es que sin un prototipo en la mano, es dificil empezar a construir el software, y luego hay sumar que teniendo el prototipo en la mano seguramente habra que hacerle una cirugia menor.

despues hago un esquema de la arquitectura, pero creo que con estas descripciones se entiende la vision global.

--
antes que alguien pregunte en que se diferencia de un SIO2SD.
-la "pega" del SIO2SD la hace un microcontrolador mas potente que el Atari, en este cart la pega la haria el mismo Atari.
-el SIO2SD se conecta por el SIO, puede tomar buena velocidad, pero nosotros por estar conectados directamente al bus de la CPU podemos tomar mejor velocidad.
-el bootloader del SIO2SD es una disquetera simulada, nuestro bootloader estaria en el cartridge.
Avatar de Usuario
vitoco
expert
expert
Mensajes: 869
Registrado: Mié Nov 08, 2006 7:25 pm
Reputación: 5
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por vitoco »

xt5 escribió:la idea es que el CPLD implementa el protocolo SPI, con un registro para recibir datos, otro para enviar y uno de control, es asi que casi todos los microcontroladores funcionan, pero nosotros tenemos un problema y es que el CPLD es bastante "pequeño" y no podemos implementar un buffer (FIFO) como lo hace una implementacion de SPI comun y corriente, por lo que dependeremos del Atari para manejar el timing, y el controlador SPI solo se limitara a serializar los bits.

por lo descrito en el parrafo anterior, el Atari es quien debe manejar todo el protocolo de la memoria SD, no es gran cosa de todas maneras.
Hará unos 20 años use un puerto de joystick para leer y escribir en una EEPROM serial (la que usaban los primeros celulares), manejando el timming con el mismo Atari y enviando los bits de a uno. No debe ser muy distinto a usar el bus del cartucho, sólo se necesita el protocolo para operar sobre la SD vía el CPLD.

Lo que sí me parece interesante es saber si uno referencia directamente la SD como bloque de memoria o bien si el CPLD de alguna forma maneja el sistema de archivos (tarjeta formateada). No lo creo, por lo que imagino que hay que construir un sw por el lado de los PC (o del mismo Atari) que tb trabaje a bajo nivel para meter lo que se va a cargar después (loader + menú + toneladas de XEX).

A propósito, ¿cuál es el costo estimado de este cartucho (sin contar las memorias SD)?
fcatrin escribió:
vitoco escribió:¿La idea es que el loader copie desde SD a flash para que el Atari lo vea como un cartucho original?
la idea es leer desde la SD a la RAM y ejecutar.
vitoco escribió:Lo otro que se me ocurre es poner un loader del tipo de 3 sectores y cargar lo que sea en memoria del Atari, pero leyendo del SD... ¿Estoy meando fuera del tiesto?
¡Le estaba achuntando! ;)
xt5
expert
expert
Mensajes: 512
Registrado: Mar Sep 18, 2007 1:16 am
Reputación: 0
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por xt5 »

vitoco escribió:Hará unos 20 años use un puerto de joystick para leer y escribir en una EEPROM serial (la que usaban los primeros celulares), manejando el timming con el mismo Atari y enviando los bits de a uno.
lo mas probable es que la interface de esa memoria fuese SPI.
pero tienes 2 problemas para usar el puerto del joystick con una SD:
1.- el hacer bit-bang es demasiado lento, en cambio con el CPLD haces lo mismo pero cada bit serializado entra o sale al clock de la CPU. muy al ojo estimo unos 60-100 ciclos de reloj por cada byte con bit-bang versus 8 con el CPLD.
2.- los niveles, necesitas convertir convertir 3 lineas 5V->3.3V y una de 3.3V a 5.V (con el CPLD igual nos jode un poco este punto).
vitoco escribió: Lo que sí me parece interesante es saber si uno referencia directamente la SD como bloque de memoria o bien si el CPLD de alguna forma maneja el sistema de archivos (tarjeta formateada). No lo creo, por lo que imagino que hay que construir un sw por el lado de los PC (o del mismo Atari) que tb trabaje a bajo nivel para meter lo que se va a cargar después (loader + menú + toneladas de XEX).
el CPLD es simplemente un puñado de compuertas logicas, que nos permite que en vez de tener unos 15-20 integrados distintos aglutinemos todo en 1.
el manejo de sistemas de archivo tenemos que hacerlo nosotros, leer una FAT12 no es tan complicado, pero en el Atari tampoco sera tan facil. una solucion simple es grabar tus ROMs (y listado) en un formato propio y mas simple, pierdes compatibilidad con el PC, pero hay workarounds para tener lo mejor de los 2 mundos :-D
vitoco escribió: A propósito, ¿cuál es el costo estimado de este cartucho (sin contar las memorias SD)?
de los componentes mas costosos:

29F040.FLASH EPROM 512Kx8 BIT,PLCC
2598 + iva, Victronics
1650 + iva Casa Keim (5 unidades minimo)

XC9536
3.3V desde USD1.4 + shipping e impuestos Digikey (con suerte se pueden usar estos pero hay que probar)
o 5.0V desde USD4.0 + shipping e impuestos Digikey

sumale el conector SD que fluctua entre 200 y 1500, un regular de 3.3V (muy variable), switch (opcional), 74244 (barato), 74257 (barato), LEDs (casi despreciable), resistencias (despreciables), condensadores (despreciables).

y la placa tambien es un costo importante, no se puede hacer muy artesa. mientras renix la rutee mas chica sale mas barata :-X

creo que ronda las 10 lucas, pero no tomes mi palabra.
Última edición por xt5 el Vie Feb 11, 2011 5:29 pm, editado 1 vez en total.
xt5
expert
expert
Mensajes: 512
Registrado: Mar Sep 18, 2007 1:16 am
Reputación: 0
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por xt5 »

se me olvidaba, nunca lo habia publicado (solo enviado por MP)

el diseño preliminar en Eagle:
http://www.ingenieria-inversa.cl/retro/cart/carrt00.brd
http://www.ingenieria-inversa.cl/retro/cart/carrt00.sch
http://www.ingenieria-inversa.cl/retro/cart/carrt00.pdf

con lo que va a luchar renix 8-):
Imagen
Avatar de Usuario
Walky
expert
expert
Mensajes: 3857
Registrado: Jue Nov 09, 2006 1:59 pm
Reputación: 0
Ubicación: No sé! XD
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por Walky »

Test points pa regodearse XD
Avatar de Usuario
vitoco
expert
expert
Mensajes: 869
Registrado: Mié Nov 08, 2006 7:25 pm
Reputación: 5
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por vitoco »

¿Cómo le ponemos ruedas a este asunto?

Ahora estoy motivado... mis peques ya quieren jugar con mi 800XL desde que falleció definitivamente mi HP TX-1000 reboleado. Sin comentarios, por favor. @(

Ellos ni conocen el Atari, pero una de las veces que me preguntaron para cuándo lo volvería a arreglar, se me ocurrió comentarles que cuando yo tenía la edad de ellos no existían los computadores como los que ellos conocieron al nacer, pero que recién cuando tenía como el triple de la edad de ellos tuve mi primer computador (mi querido 800XL), y que algún día se los mostraría. Les dije que estaba guardado en la bodega y desde entonces quieren que lo saque y se los muestre. Pero no voy a pasarle disquettes, y los tiempos de los cassetes ya pasaron (no aguantarían la espera). Son muy pequeños como para dejarlos usar un PC y que además entiendan cómo seleccionar una imagen ATR para acceder vía SIO2PC... Además, si voy a prender un PC, mejor usar un emulador, pero se perderían la gracia de los joysticks, track ball, paddles, etc...

++Vitoco
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10907
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 10
Ubicación: La Florida-Santiago-Chile
Contactar:

Re: MyIDE/MyCF comunitario

Mensaje por ZZT »

¿Y un cartucho por mientras vitoco? Sería una buena alterntiva. ;)
Responder