¿Que es un PIA? La PIA es uno de los procesadores que hay adentro de cada computador Atari. Tiene dos puertos de 8 bits, pudiendo ser independientemente entradas o salidas de datos, como lo queramos programar.
La función de la PIA es permitir el intercambio de información entre la CPU y el mundo exterior. En el caso específico de un Atari, el puerto A es programado para entrada de datos, que es para leer información desde los joysticks. Y el puerto B es programado como salida, para que la PIA interactue con un chip que maneja las memorias.

La PIA del Atari es la 6520.
Leer datos es lo más básico que se puede hacer. Pero los que me conocen y han seguido por años los inventos que he hecho recordaran que uso el puerto de los joysticks para otras cosas, más que nada para enviar información hacia afuera y controlar otros hardwares.
Esto es fácil, un par de pokes y listo. Lo malo de esto, es que el puerto del joystick solo deja disponibles 8 salidas o entradas. Por lo que si se quiere hacer algún proyecto que requiera más salidas, o entradas, sin tanto lío... estamos fritos. Pensar que todo se solucionaría con otra PIA...
Así que me puse de cabeza a ver como agregar otra PIA. Con la del flojo hice la googleada de rigor y me arrojó un resultado! Alguien ya lo había hecho! Abrí la página... y que decepción, poco clara la información, sin fotos y sin esquemático!
Así que no me quedó otra que ver como hacerlo desde cero.
Lo primero que hice es abrir un 800XL hasta llegar al hueso...

... placa mejor dicho.

... además echarle una bueeeena mirada al esquemático, el cual me regaló Mario de Prismasoft en 1984 (sí, aun lo tengo).

Mirando ese esquemático vi como la CPU "conversa" con la PIA a nivel electrónico. Se usan dos lineas del bus de direcciones A0 y A1, todo el bus de datos D0 a D7. Más otras lineas de control, como la línea de Reset, IRQ, la señal de reloj phi2 (02) y Read write (R/W). Hasta aquí todo clarísimo.
Lo que faltaba era determinar como la PIA es "exclusivamente llamada". Esto lo hace la línea CS2 o Chip Select.
La linea CS2 de la PIA es afectada por un pequeño chip decodificador de direcciones. Este activa la PIA cuando se hace un poke entre 54016 y 54271 (D300~D3FF). Esto implica que la línea CS2, que está siempre en nivel alto, se va a bajo y la PIA se habilita momentaneamente ya sea para programarla, o para leer datos o enviar datos.
ENTONCES... me "colgué" de la PIA existente y le soldé ahi mismo cables hacia otra.
Mi investigación hizo que esto fuera así de fácil:

La única excepción son todas las patitas de los puertos A y B de la PIA2. Y por supuesto CS2 con un cablecito extra hacia el pin 10 del chip U2 (74LS138).
Dada mi experiencia con las cosas que he hecho anteriormente, se que está salida activará la PIA2 cuando se haga un poke entre 54528 y 54783 (D500~D5FF). Entonces, con apenas UN CABLE he conectado una segunda PIA al Atari.


He aquí la prueba preliminar. Totalmente operativa.
Como ya dije, usé la dirección D5XX, la cual se usa normalmente para seleccionar el cartridge. La gracia es que como ya he usado esta dirección sé que es segura y nunca, pero nunca, se va a activar sin que lo preveamos.
Ahora.... ¿para que sirve esta cosa? pues durante los años he visto como se quebraban la cabeza para poder conectar más de dos joysticks al Atari o tener más botones, como para hacer juegos más interactivos. Pues, un polaco diseñó algo así, pero usando hardware externo. Al tener otra PIA con 16 pines que pueden ser entradas o salidas puede conectarse otros cuatro joysticks o usar los dos normales y la segunda pia para controlar SEIS botones para cada uno, SIN AGREGARLE NADA al Atari. Osea, si hay alguien tan loco como para portear Mortal Kombat o Street Fighter a un Atari... ya no tiene la excusa! pues acá le solucioné el problema.

O.....
O, si se desea hacer una máquina, como un flippers
![Angelito 0-]](./images/smilies/angelito.gif)
O, controlar varios motores paso a paso, hasta 4 unidades. Aun teniendo desocupado el puerto de los joysticks.
Las posibilidades son extensas, gracias a esta nueva PIA.
PD: ahora estoy testeando la dirección D100 que, en teoría, esta desocupada en el decodificador. Si resulta confiable, se podrá conectar otra más, teniendo tres PIA. En caso de necesidad, se podría.
![Angelito 0-]](./images/smilies/angelito.gif)
In da acchion!
