~~NOTOC~~
A> CPS8256 (Interfaz paralelo centronics y serie RS232C)
Descripción, Contexto e Historia

Comercializada oficialmente por Amstrad plc en el año 1985 de forma simultánea con el lanzamiento de los modelos Amstrad PCW 8256 y PCW 8512, la interfaz CPS8256 constituye el periférico oficial más importante para la expansión de comunicaciones de este sistema. El diseño base de la gama PCW carecía deliberadamente de puertos de comunicación de propósito general, limitándose a canales propietarios integrados destinados únicamente a su monitor y a su impresora matricial nativa. La CPS8256 fue concebida para subsanar esta limitación, permitiendo la conexión directa de módems telefónicos, ratones serie, digitalizadores e impresoras externas de terceras marcas.

A nivel de documentación histórica, existió una persistente confusión en las revistas especializadas de los años 80 afirmando que el puerto paralelo implementado no cumplía estrictamente con la norma Centronics al operar con una longitud de palabra de 8 bits puros. Esta afirmación es un mito desmentido por el análisis de hardware: el puerto físico es 100% estándar respecto a sus líneas eléctricas y protocolo. El problema real subyacía en el software de procesamiento de textos LocoScript de Locomotive Software, el cual utilizaba un mapa de caracteres interno y formatos de control propietarios; esto provocaba impresiones ilegibles si los documentos no eran exportados o convertidos previamente a formato ASCII estándar antes de ser enviados a través del puerto paralelo.

Arquitectura de Hardware y Componentes de Silicio

Desde la perspectiva de la ingeniería electrónica, la CPS8256 aloja en su placa interna un conjunto de integrados de la familia lógica Zilog (o clones licenciados) perfectamente coordinados para gestionar la E/S asíncrona sin sobrecargar la CPU Z80 principal del ordenador:

Mapeo de Puertos de Entrada/Salida (I/O) del Z80

La interfaz CPS8256 se decodifica en el bus del sistema ocupando un rango fijo de 8 puertos direccionables que van desde 0E0h hasta 0E7h. El mapa de registros de hardware se desglosa de la siguiente manera:

Puerto (Hex) Puerto (Dec) Acceso Función y Registro del Sistema
0E0h 224 R / W Z80 DART (Canal A) - Registro de Datos: Lectura de caracteres entrantes en el búfer serie (Rx) y escritura de datos a transmitir (Tx).
0E1h 225 R / W Z80 DART (Canal A) - Registro de Control: Escritura para apuntar a los registros internos (WR0-WR5) y lectura de registros de estado (RR0-RR1).
0E2h 226 Escritura Puerto Paralelo Centronics - Registro de Salida (Data Latch): Almacena y fija el byte de datos de 8 bits en las líneas físicas D0-D7 para la impresora.
0E3h 227 Lectura Puerto Paralelo Centronics - Registro de Estado: Lectura en tiempo real de las líneas lógicas de control físicas (Busy, /Ack, Paper Empty, Select).
0E4h 228 Escritura Z80 CTC (Canal 0) - Temporizador del Transmisor: Fija la constante de tiempo que define el Baud Rate de la transmisión serie (Tx).
0E5h 229 Escritura Z80 CTC (Canal 1) - Temporizador del Receptor: Fija la constante de tiempo que define el Baud Rate de la recepción serie (Rx).
0E6h 230 Línea reservada por la decodificación / No utilizada por el estándar de Amstrad.
0E7h 231 Escritura Z80 CTC (Canal 3) - Registro de Control general: Inicializa el modo de operación de los contadores y las interrupciones del circuito temporizador.
Estructura Interna de los Registros del Z80 DART (Puerto 0E1h)

Para la programación directa a bajo nivel (por ejemplo, en código ensamblador Z80 saltándose las llamadas de la BIOS de CP/M), el puerto de control de la CPS8256 opera de forma secuencial. Se escribe en 0E1h el número de registro interno al que se desea acceder y, en el siguiente ciclo de reloj de E/S, se envía o lee el valor en ese mismo puerto. Las funciones críticas de preservación de bits son las siguientes:

Conexiones y Patillajes de los Puertos (Pinout)

La CPS8256 expone al exterior dos tipos de conexiones normalizadas internacionalmente con el siguiente cableado electrónico verificado:

1. Puerto Serie (Conector DB25 Macho - Configuración Estándar DTE):

Pin DB25 Señal RS-232C Flujo (PCW) Función de la Línea Eléctrica
Pin 1 GND (Shield) Masa protectora de chasis y apantallamiento de cable.
Pin 2 TXD (Transmit Data) Salida Línea de envío serie de datos binarios asíncronos.
Pin 3 RXD (Receive Data) Entrada Línea de recepción serie de datos binarios asíncronos.
Pin 4 RTS (Request To Send) Salida Petición del PCW indicando que desea transmitir datos.
Pin 5 CTS (Clear To Send) Entrada Señal del periférico autorizando al PCW a enviar datos.
Pin 6 DSR (Data Set Ready) Entrada Confirmación de que el dispositivo remoto/módem está encendido.
Pin 7 GND (Signal Ground) Masa de referencia común para todos los voltajes de datos.
Pin 8 DCD (Data Carrier Detect) Entrada Detección de tono de portadora telefónica activa (módems).
Pin 20 DTR (Data Terminal Ready) Salida Señal que confirma que el Amstrad PCW está activo y operativo.
Pin 22 RI (Ring Indicator) Entrada Indicador de detección de señal de llamada telefónica.

2. Puerto Paralelo (Conector Hembra Amphenol Centronics de 36 pines):

Soporte del Sistema Operativo e Integración en Emuladores
Documentación y Descargas