Atari SIO
# Atari SIO

SIO {Serial Input/Output} (Entrada/Salida Serial) es un sistema propietario (hardware y rutinas del sistema operativo) de los microcomputadores Atari de 8 bits que administra la comunicación entre los controladores de los dispositivos seriales del computador y el bus serial.

Los periféricos "inteligentes" de Atari usaban el puerto SIO (propietario) para conectarse en cadena. Más tarde usaron este método los computadores Commodore. Estos periféricos "inteligentes" eran más caros que los dispositivos IBM PC estándares que no tenían incorporada la electrónica SIO.

En realidad el bus SIO fue un precursor del actual USB {Universal Serial Bus}. Coincidentemente Joe Decuir Archivado el 17 de septiembre de 2008 en Wayback Machine., quien creó el bus SIO de Atari, también formó parte del grupo de ingenieros de Microsoft que contribuyó al diseño del USB.

## Software (Rutinas del SO)

El subsistema de E/S (entrada/salida) tiene dos tipos de elementos

* Rutinas del sistema de E/S
* Bloques de control del sistema de E/S

Las rutinas del sistema de E/S compenden:

* La rutina central de E/S (CIO),
* Los controladores de dispositivos (E:, K:, S:, P:, C:, D:, R:)
* La rutina de la E/S serial (SIO).

## SIO

La mayor parte del flujo de información de entrada/salida (E/S o I/O) en los computadores Atari pasa a través del bus serial I/O. La interfaz SIO es algo complicada pero no es necesario usarla directamente. Generalmente es CIO (Control Central de Entrada/Salida) el que la maneja. Sin embargo, para crear un dispositivo I/O con su controlador se requiere conocer algo más sobre como se usa SIO.

SIO transfiere datos a una velocidad de 19.200 baudios en líneas de entrada y de salida separadas. Los datos se envían un byte a la vez, primero el LSB, en un formato asíncrono. También hay líneas de entrada {clock-in} y de salida {clock-out} del reloj serial. La señal de salida existe, pero no la usan los dispositivos disponibles (en esa época). Igualmente, aunque dispone de una señal de entrada de reloj {clock-in} para transferencias síncronas {synchronous transfer}, el sistema operativo no la usa. La señal de salida de reloj se eleva al comienzo de cada bit y desciende en el medio de cada bit.

## CIO

Atari usa un sistema de entrada/salida muy fácil de manejar llamado CIO {del inglés: Central Input/Output utility} o Control Central de Entrada/Salida. Prácticamente todas las entradas y salidas pasan a través de este control.

CIO usa ocho "canales" o vías de E/S. Aunque no se trata realmente de canales de E/S separados físicamente, el computador actúa como si lo fueran. Cada canal se controla por un bloque de memoria de 16 bytes. A estos bloques de memoria se les llamó IOCB {Input/Output Control Block} o Bloque de Control de Entrada/Salida

Los "canales" se usan colocando números correctos en los bytes adecuados de IOCB y luego saltando hacia la rutina CIO.

En BASIC, se puede llevar a cabo operaciones completas de entrada/salida con sólo teclear una instrucción como LPRINT. En este caso el BASIC hace todo el trabajo.

