Marcos, hice el esquema de las conexiones de los integrados 74LS00 y del 74LS10. Las lineas A5, A6, A7, A8 y A10 estan conectadas en las lineas de la memoria EPROM y tambien en el enchufe del Atari, menos la A12 que una parte viene del enchufe del Atari y va a las patas 1 y 2 del 74LS00 y despues de la pata 11 del 74LS00 va a la memoria EPROM. Me parece que el bank switching que tiene el cartucho no se corresponde a la memoria que le grabé yo no?
Nico
Tenes razon, sin que este A0 descarta que use el metodo standart de bankswitch. Esto es lo que hace el circuito:
74LS00:
* la compuerta 1,2->3 es un not de la linea de OE que viene del atari. Las eproms necesitan un OE negado (/OE) y las rom originales de la atari lo usan en 1 (para mapear de forma simple, usando la para A12 del micro, asi el bloque 1000-1FFF es la ROM), por eso no es posible hacer un cartucho con solo una eprom sin al menos un negador.
* la compuerta 9,10->8 es otro NOT, de una salida del 74ls100
* las otras dos compuertas son un flip flop, la salida 11 es el banco actual, la pata 4 en 0 pone el banco 0, la pata 13 en 0 pone el banco 11, nunca las dos patas estan en 0 a la vez la unica combinacion no deberia ocurrir en ese circuito porque ademas tendria comportamiento indeterminado.
74LS100:
* la compuerta 9,10,11->8 se niega con el NOT del otro integrado, asi que se pone en 1 cuando esta en una direccion en binario xxxx x1x1 1xxx xxxx donde x es cualquier cosa, asi que hace un filtrado muy vago, muchas direcciones pueden encajar ahi
Las otras dos compuertas usan la salida de esta ultima operacion y junto con /OE y A5 o A6, se ponen en 0 cuando se especifica una direcciones fuera de la ROM (y de los otros chips existentes en el atari) definida por solo 4 bits de un area de 12. La salida se guarda cuando es 0 en el flipflop y selecciona el banco
Las dos direcciones son:
xxx0 x1x1 1x1x xxxx (por ejemplo 05a0) banco 0
xxx0 x1x1 11xx xxxx (por ejemplo 05c0) banco 1
La combinacion prohibida que habilita los dos bancos y produce resultados indeterminados:
xxx0 x1x1 111x xxxx (por ejemplo 05e0)
Esto es muy interesante, porque esta tecnica de bankswitch no es standart!!
Pero como hacia el cartucho para hacer correr los juegos con esta tecnica de bankswitch si ningun juego la usa?
Lo que hacian aparentemente era modificar el codigo del juego para que cuando apuntaba a FF8 o FF9 apuntara a 5a0 o 5c0, cosa que es no tan simple, porque tenes que revisar todos los valores del codigo y ver que efectivamente esos valores se esten usando para direccionar la memoria y por consiguiente hacer switcheo y no que sean valores usados con otro fin.
Si lo hubiera visto en otro momento me hubiera asombrado mucho, pero el otro dia en la conferencia que organizo el Profesor Carlos estuvo el que seguro diseño tu cartucho (
http://web.fi.uba.ar/~ahohenda/#1 busca atari) dando una conferencia sobre otro tema totalmente distinto (reconocimiento de lenguaje humano) y te digo que el tipo sabe de estas cosas.
Ayer me asombre mucho vi que con 2 integrados simples resolvian lo que me costo 3 a mi y con un integrado raro (un AND de 12 entradas!), yo pense que meti la pata y que hice mi cartucho mas complejo de lo necesario, resulto que para simplificarlo perdieron compatibilidad.
Tenes la EPROM original o la borraste? Estaria bueno tener una copia de los binarios para ver que cambios le hicieron a los juegos originales.
La mala noticia obvia en este punto es que no vas a poder usar este cartucho para lo que pensabas.
Saludos
MARCOS