Es un clon de un cartucho muy simple para computadores Atari de 8-bits. Lo construyó un amigo electrónico mientras estábamos en la Universidad a fines de los 80's, a partir de un documento obtenido de un BBS (lamentablemente aún no encuentro ese doc, si es que lo guardé yo).
Es necesario que explique un poco como funcionaban los cartuchos en estos computadores. El Atari 800 tenía 2 zócalos para poner cartuchos de 8K, uno principal que se mapeaba a la RAM entre las direcciones $A000 y $BFFF (40960-49151) y uno secundario entre $8000 y $9FFF (32768-40959), aunque también era posible poner sólo uno de 16K en el slot principal y que cubría todo ese rango de memoria (por eso se eliminó el segundo slot en la serie XL y XE). Es decir, al encender el Atari con un cartucho insertado, la RAM en esos rangos era reemplazada por la ROM contenida en el cartucho. En los XL/XE, la ROM del cartucho del lenguaje BASIC se dejó en la placa, y se activa por defecto al encender el computador, pero si se enciende con la tecla OPTION presionada, de deshabilita el BASIC y aparece la RAM.
Sacándole el envoltorio a este cartucho, podemos ver qué contiene:
¡Pero en este cartucho no hay ROM! ¡Tampoco RAM! Viéndose tan poca cosa, se preguntarán para qué sirve. Se trata del Supercart, un circuito que le hace creer al Atari que tiene insertado un cartucho real, siendo que en realidad la memoria que se lee de él es la propia RAM del computador, pero que bloquea la escritura en esa misma RAM, comportándose como si fuera ROM.
Esto permitió que copias de cartuchos de 8K y 16K pudieran ser cargados en la RAM desde disco o cinta, y luego, al activar el Supercart, el juego o programa funcionaba como si estuviera presente el cartucho. Si bien ya se podían cargar juegos copiados de cartuchos, el hecho que estuvieran en RAM los hacía vulnerables a ciertas protecciones, por ejemplo, a que un juego tratase de borrarse a si mismo de la memoria.
Veamos cómo funciona este cartucho "dummy". Éste es el diagrama del circuito:
Código: Seleccionar todo
R/W RD4 +5V TI 441CP GND RD5
R 14 13 SN74LS04N B A
| | | _________ | |
| | | | | | |
| | +----+ -|8 7|-------+ |
| | | | -|9 6|- | |
| | | | -|10 5|- | |
| | 330 A | -|11 4|- | |
| | ohm H | -|12 3|- | |
| | V | -|13 2|----+ | |
| | | +----|14 1|--+ | | |
| | | |____A____| | | | |
+------)-------)----------------------+ | | |
| | | | |
+-------)-----------------o/o----+ | |
| | +---------------o/o-------+ |
| |_| doble-switch |
| U LED |
+--------------------------------------------+
Código: Seleccionar todo
A B C D E F H J K L M N P R S
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pin R R/W Processor Read/Write
14 RD4 ROM present ($8000-$9FFF)
13 +5V DC power supply
B GND Ground
A RD5 ROM present ($A000-$BFFF)
- LED de operación: +5V -> Resistencia -> Switch -> LED -> GND
- El truco de la ROM: R/W -> Switch -> NOT -> RD4+RD5
El NOT a la señal es provisto por el IC SN74LS04N, el cual también está alimentado por +5V y tiene conexión a GND.
En la práctica, cuando se intenta escribir en la RAM asignada al cartucho, se le indica al computador que ahí hay ROM y la data previamente almacenada en la RAM no se toca. Simple, ¿cierto?
Este cartucho toca simultáneamente RD4 y RD5 para bloquear los 16K de RAM a la vez. En teoría, sería posible adaptar este cartucho para que bloquée sólo 8K para los casos en que fuera necesario. Recuerden que el Atari sólo direcciona 64K, pero 16K son de la "BIOS", 1K de la pantalla (modo texto), y un par mas de sistema, por lo que quitar 16K de una es demasiado si sólo se necesitan 8K.
Si bien el Supercart permitió correr copias en disco de cartuchos reales, para copiar los cartuchos reales se requiería de programas especiales sin necesidad de desarmarlo ni construir un dispositivo especial. Lo que éstos hacían era permitir que se introdujera un cartucho en caliente (con el Atari encendido) y luego leían secuencialmente la RAM (que ahora era ROM) y grababan en disco. Al archivo en disco se le agregaba un miniloader que acomodaba el programa en la RAM, luego pedía encender el cartucho para bloquear la RAM y finalmente le pasaba el control al cartucho.
Yo utilicé esta joyita para programar en lenguaje de máquina usando una copia del cartucho Assemler/Editor, lo que me permitía compilar y hacer pruebas sin tener que reiniciar el Atari. Sin el Supercart, al presionar la tecla RESET (WARMSTART), el S.O. del Atari movía los punteros del área de memoria asignada a la pantalla al límite superior de la RAM, borrándose el último kilobyte de código del cartucho, en tanto que con el Supercart, la pantalla se mantenía 16 kilos más abajo. Incluso fue posible intercambiar entre el AS/ED y el BASIC incorporado en mi 800XL sin necesidad de rebootear el Atari.
Hubo varios cartuchos dummy, y de éstos estoy al tanto:
- El Supercart fue liberado por Frontrunner en 1983 e incluía el software para copiar cartuchos originales y los loaders para correr las copias.
- The Pill y The Super Pill de CSS, también disponible en 1983. El primero es similar a Supercart, aunque me parece que no trae el LED de encendido, en tanto que la versión "Super" incluía circuitería adicional para poder ser activado por software en lugar de usar un switch, tal como se hacía para el manejo de bancos de memoria, requería de un miniloader especial.
- The Impersonator, liberado en 1984 por Alpha Systems, empresa de software que nos entregó numerosas herramientas de... eeeeeh... análisis y respaldo de software.
Está demás decir que la idea detrás de Supercart no sirve con cartuchos más avanzados, por ejemplo aquellos con memoria RAM propia o mayor cantidad de ROM en múltiples bancos seleccionables como lo hace el cartucho XEGS.
++Vitoco