# Atari TOS

The Operating System (TOS) es el sistema operativo de la gama de ordenadores Atari ST. Esta gama incluye el 520ST, el 1040ST y las variantes F, FM y E (ej. 1040STE). Posteriormente, las máquinas de 32 bits (TT030 y Falcon) fueron desarrolladas usando una nueva versión de TOS, llamada MultiTOS, la cual permite multitarea. Más recientemente, los usuarios han evolucionado TOS dando lugar a FreeMiNT.

## Historia
### El sistema operativo CP/M

Cuando el primer modelo de ST fue lanzado en 1985, Atari había desarrollado un sistema operativo principalmente basado en componentes ya existentes.
El núcleo de este nuevo SO consistía en gran parte en CP/M, originalmente desarrollado por Gary Kildall y a menudo considerado como el primer SO multiplataforma.
Kildall separó las partes que se comunicaban directamente con el hardware y las ubicó en un módulo que llamó BIOS. Esto aseguraba que el sistema podría ser fácilmente adaptado a otras plataformas, sin necesitar una gran reescritura del núcleo completo del SO.
La versión M68K del CP/M que Atari adaptó para su gama ST es conocida como GEMDOS. Este incluye el nivel superior en el TOS, mientras que las tareas de nivel más bajo son manejadas mediante el BIOS y el XBIOS. Este último funciona como un nivel intermedio, el cual incluye rutinas que el SO necesita internamente, como la gestión de interrupciones y el ajuste de la pantalla.

### GEM - Interfaz gráfica de usuario

Atari añadió el GEM como GUI de GEMDOS. Originalmente desarrollado por la compañía de Kildall, Digital Research, GEM consta de dos capas: AES (Application Environment Service) y VDI (Virtual Device Interface). Mientras que VDI se encarga del bit blit, el dibujado y el rellenado, el AES es el nivel superior en el GEM y, como tal, provee las funciones de re/dibujado de las ventanas y los diálogos, así como la evaluación de la entrada del usuario mediante el ratón y el teclado. El último ingrediente del GEM es el escritorio GEM, es cual no es más que un programa GEM en sí mismo. Mediante el escritorio GEM el usuario puede realizar la mayoría de tareas que cualquier SO de línea de comandos permite, como copiar o borrar ficheros y lanzar programas.

### TOS - Un sistema operativo monotarea en un chip

Los primeros modelos de ST cargaban el TOS 1.0 desde un disquete, pero Atari pronto comenzó a suministrar los ST con el TOS en un chip ROM. Esta aproximación a la distribución del sistema operativo tiene claras ventajas y también algunas desventajas.
* Ventajas:
    La carga del sistema operativo es extremadamente rápida, en comparación con otros métodos.
    El SO no necesita ser cargado en memoria, dejando más espacio para las aplicaciones.
* Desventajas:
    Realizar una actualización es mucho más complicado, teniendo que sustituir físicamente el chip de ROM.
    Debido a lo anterior, los errores en el SO se tienen que parchear en cada arranque.
El TOS es un sistema operativo monotarea, en esencia limitando al usuario a ejecutar una única aplicación en el sistema. Una pequeña excepción a esta regla son los accesorios de escritorio, programas pequeños que son codificados para ser accedidos a través de la barra de menús del GEM. Mientras se trabaja en una aplicación GEM se pueden tener hasta 6 accesorios abiertos de manera concurrente. Esto permite un tipo primitivo de multitarea cooperativa. Debido a que los programas escritos para GEM tienen que devolver el control al AES cuando están inactivos (esperando la entrada del usuario), este modo de multitarea funciona muy bien. Si aun así un proceso concreto quisiera realizar una tarea muy intensiva para el procesador o esperar la entrada del usuario, cualquier otro proceso pasaría a ser inaccesible hasta que la tarea sea finalizada.

## Detalles

El TOS combina el GEM de Digital Research funcionando sobre el GEMDOS. Sus funcionalidades incluyen un modelo plano de memoria, un formato de disco compatible con MS-DOS, soporte para MIDI y una variante del SCSI llamada ACSI (en versiones posteriores). Uno de los aspectos más interesantes del TOS fue el incluirse en chips ROM, lo cual lo convertía en un SO de arranque casi instantáneo.
TOS consiste de las siguiente partes:
* Desktop - La interfaz principal cargada tras el arranque.
* GEM - Gestor de entorno gráfico
** AES - Servicio de entorno de aplicación
** VDI - Los controladores de pantalla, el resto de controladores se cargan usando GDOS
* GEMDOS
* BIOS
* XBIOS (Xtended BIOS)
* Line-A - Llamadas gráficas de alta velocidad y bajo nivel. Obsoleto
Las siguiente son extensiones del TOS, cargadas por separado:
* GDOS (Graphics Device Operation System)
* AHDI (Atari Hard Disk Interface) - Controladore de disco duro
La multitarea no está soportada directamente. TOS permite que los accesorios de escritorio se carguen en el sistema de la misma manera que los TSR en MS-DOS, hasta un límite de 6. MultiTOS fue desarrollado para permitir que TOS tuviera multitarea.

### Escritorio

El escritorio usa iconos para representar ficheros y dispositivos, ventanas y diálogos para mostrar información. El fichero de escritorio (DESKTOP.INF) es leído para determinar los ajustes de las ventanas y la ubicación de los iconos. En caso de no existir o no ser legible, se usa el ajuste por defecto de dos disqueteras y un icono de la papelera.
Versiones posteriores usan "NEWDESK.INF" para salvar y cargar la configuración del escritorio.
Los ficheros ejecutables son identificados por su extensión:
* *.ACC - Accesorio de escritorio. Cargado automáticamente.
* *.APP - Aplicación (no es común).
* *.PRG - Programa ejecutable. Puede ser un programa GEM.
* *.TOS - Programa "TOS" que no usa GEM. El escritorio limpia la pantalla, inicia el cursor de texto y oculta el puntero del ratón.
* *.TTP - "TOS Takes Parameters" (TOS tomando parámetros). Este tipo de programa abre una caja de diálogo donde se pueden añadir argumentos de inicio. Realiza una conversión a mayúsculas.
Los programas TOS, a diferencia de los programas GEM, pueden autoiniciarse situándolos en una carpeta llamada AUTO. A partir de la versión 1.4 del TOS se permite iniciar automáticamente programas GEM desde el diálogo de Instalar Aplicación. Los programas con extensión TTP no pueden ser autoiniciados. Los accesorios de escritorio deben situarse en el directorio raíz de la unidad por defecto, desde donde son cargados automáticamente.

## Versiones
### TOS 1

* 1.0 (ROM TOS) - Versiones iniciales lanzadas en disco. Primer lanzamiento en ROM del TOS.
** Formatos: disquete, ROMs de 2 y 6 chips (192 KiB)
** Fecha de la ROM: 20 de noviembre de 1985
** Equipos: 520ST, 1040ST
* 1.02 (MEGA TOS) - Arreglados fallos, soporte del coprocesador Blitter y del reloj en tiempo real.
** Formatos: ROMs de 2 y 6 chips (192 KiB)
** Fecha de la ROM: 22 de abril de 1987
** Equipos: 520ST, 1040ST, Mega 2, Mega 4
* 1.04 (RAINBOW TOS) - Muchos arreglos de fallos, selector de ficheros cambiado, formato de disco compatible con DOS, prestaciones muy mejoradas. Presenta algunas incompatibilidades con software antiguo.
** Formatos: ROMs de 2 y 6 chips (192 KiB)
** Fecha de la ROM: 6 de abril de 1989
** Equipos: 520ST, 1040ST, Mega 2, Mega 4, Stacy
* 1.06 (STE TOS, Revision 1) - Soporte para máquinas STe únicamente. Necesita el programa STE_FIX.PRG para parchear errores.
** Formato: ROM de 2 chips (256 KiB)
** Fecha de la ROM: n/d
** Equipos: 520STE, 1040 STE
* 1.62 (STE TOS, Revision 2) - Corrección de errores de la versión previa (TOS 1.06 STE).
** Formato: ROM de 2 chips (256 KiB)
** Fecha de la ROM: 1 de enero de 1990
** Equipos: 520STE, 1040 STE

### TOS 2

* 2.02 - Lanzamiento inicial para los Mega STE.
* 2.05 (Mega STE TOS) - Sólo se encuentra en los Mega STe con unidades de disco de 720 KiB.
** Formato: ROM de 2 chips (256 KiB)
** Fecha de la ROM: n/a
** Equipos: Mega STE
* 2.06 (ST/STE TOS) - Corrección de errores, soporte para discos de 1440 KiB, prueba de memoria. Entorno GEM mejorado. Arranque desde disco duro IDE. Última versión del TOS para los ST y STE.
** Formato: ROM de 2 chips (256 KiB)
** Fecha de la ROM: 14 de noviembre de 1991
** Equipos: 520ST, 1040ST, 520STE, 1040STE
* 2.08 - usado en notebook ST.

### TOS 3

* 3.01, 3.05, 3.06 (TT TOS) - Inicialmente con soporte exclusivo para el TT030.
** Formato: ROM de 4 chips (512 KiB)

### TOS 4

* 4.00, 4.01, 4.02, 4.04 (512KB) - Actualización exclusiva para Falcon 030.