Chip Pia

El circuito integrado del adaptador de interfaz periférica (PIA) es un microprocesador especial que se utiliza para controlar los puertos Atari, los conectores del controlador uno a cuatro. Los puertos se pueden utilizar tanto para la entrada como para la salida de forma simultánea o alternativa.
1. 54016 $D300 PORTA
Leer o escribir datos desde los puertos del joystick, dependiendo de cómo se configure la dirección de los datos (por defecto es 0 "lectura/entrada"). Para fijar la dirección, ponga el Bit 2 de PACTL a 0 y defina la dirección fijando los bits de PORTA (0=lectura, 1=escritura) para cada línea de entrada/salida. A continuación, vuelva a poner el Bit 2 de PACTL a 1.
| Bit | Función | N° Joystick | Pines de Joystick | Dirección | Paddle |
|---|---|---|---|---|---|
| 7 | PA7 | Joystick 2 | Pin 4 | Derecha | Paddle 4 botón PTRIG3 |
| 6 | PA6 | Joystick 2 | Pin 3 | Izquierda | Paddle 3 botón PTRIG2 |
| 5 | PA5 | Joystick 2 | Pin 2 | Abajo | No usado |
| 4 | PA4 | Joystick 2 | Pin 1 | Arriba | No usado |
| 3 | PA3 | Joystick 1 | Pin 4 | Derecha | Paddle 2 botón PTRIG1 |
| 2 | PA2 | Joystick 1 | Pin 3 | Izquierda | Paddle 1 botón PTRIG0 |
| 1 | PA1 | Joystick 1 | Pin 2 | Abajo | No usado |
| 0 | PA0 | Joystick 1 | Pin 1 | Arriba | No usado |
2. 54017 $D301 PORTB
Esta posicion cambia de funcion dependiendo del modelo, partimos con 400/800.
Leer o escribir datos desde los puertos del joystick, dependiendo de cómo se configure la dirección de los datos (por defecto es 0 "lectura/entrada"). Para fijar la dirección, ponga el Bit 2 de PBCTL a 0 y defina la dirección fijando los bits de PORTB (0=lectura, 1=escritura) para cada línea de entrada/salida. A continuación, vuelva a poner el Bit 2 de PBCTL a 1.
| Bit | Función | N° Joystick | Pines de Joystick | Dirección | Paddle |
|---|---|---|---|---|---|
| 7 | PA7 | Joystick 3 | Pin 4 | Derecha | Paddle 8 botón PTRIG7 |
| 6 | PA6 | Joystick 3 | Pin 3 | Izquierda | Paddle 7 botón PTRIG6 |
| 5 | PA5 | Joystick 3 | Pin 2 | Abajo | No usado |
| 4 | PA4 | Joystick 3 | Pin 1 | Arriba | No usado |
| 3 | PA3 | Joystick 4 | Pin 4 | Derecha | Paddle 6 botón PTRIG5 |
| 2 | PA2 | Joystick 4 | Pin 3 | Izquierda | Paddle 5 botón PTRIG4 |
| 1 | PA1 | Joystick 4 | Pin 2 | Abajo | No usado |
| 0 | PA0 | Joystick 4 | Pin 1 | Arriba | No usado |
En modelos XL/XE es para manejo de memoria :
| Bit | Función | Dirección |
|---|---|---|
| 7 | $5000-$57FF | 0=Self Test, 1=RAM |
| 6 | No usado | |
| 5 | ANTIC | 0=ANTIC tiene acceso a extra RAM, 1=ANTIC tiene acceso normal RAM |
| 4 | CPU | 0=CPU tiene acceso a extra RAM, 1=CPU tiene acceso normal RAM |
| 3 | Banco | Ver tabla de combinación |
| 2 | Banco | Ver tabla de combinación |
| 1 | $A000-$BFFF | 0=ATARI BASIC ROM, 1=RAM |
| 0 | $C000-$FFFF | 0=RAM, 1=OS-ROM |
Combinación de los bancos
| Bit 2 | Bit 3 | N° Banco |
|---|---|---|
| 0 | 0 | Numero 0 |
| 0 | 1 | Numero 1 |
| 1 | 0 | Numero 2 |
| 1 | 1 | Numero 3 |
3. 54018 $D302 PACTL
Control del PORTA, dependiendo del valor es su función según la siguiente tabla :
| Bit | Función | Descripción |
|---|---|---|
| 7 | PA7 | Sólo lectura: Estado de interrupción de PROCEED, 1=Interrupción |
| 6 | PA6 | Siempre 0 |
| 5 | PA5 | Siempre 1 |
| 4 | PA4 | Siempre 1 |
| 3 | PA3 | Control del motor del reproductor de cassettes: 0=Encendido, 1=Apagado |
| 2 | PA2 | 1=Utilizar el PORTA para la entrada/salida de datos, 0=Definir la dirección de los datos |
| 1 | PA1 | Siempre 0 |
| 0 | PA0 | Interrupción de la línea PROCEED on/off, puesta a 0 por el OS |
Para definir la dirección de datos del PORTA, establezca el bit 2 de PACTL en 0. Luego escriba un byte en PORTA, donde los bits establecidos en 1 indican ESCRITURA y los bits establecidos en 0 indican LECTURA. Normalmente, PORTA se establece en %00000000 "todas las entradas".
4. 54019 $D303 PBCTL
Control del PORTB "Sólo modelos 400/800", dependiendo del valor es su función según la siguiente tabla :
| Bit | Función | Descripción |
|---|---|---|
| 7 | PA7 | Interrupción del estado de SIO |
| 6 | PA6 | Siempre 0 |
| 5 | PA5 | Siempre 1 |
| 4 | PA4 | Siempre 1 |
| 3 | PA3 | Estado de la línea de comando de SIO |
| 2 | PA2 | 1=Utilizar el PORTB para la entrada/salida de datos, 0=Definir la dirección de los datos |
| 1 | PA1 | Siempre 0 |
| 0 | PA0 | Interrupción de la línea PROCEED on/off, puesta a 0 por el OS |
Para definir la dirección de datos del PORTB, establezca el bit 2 de PBCTL en 0. Luego escriba un byte en PORTB, donde los bits establecidos en 1 indican ESCRITURA y los bits establecidos en 0 indican LECTURA. Normalmente, PORTB se establece en %00000000 "todas las entradas".