IBM 1130
# IBM 1130

El Sistema de Computación IBM 1130 fue introducido en 1965. Era el equipo menos caro de IBM, y apuntaba al mercado de bajo costo de computación técnica intensiva, como la ingeniería y la educación. El IBM 1800 fue una variante de control de proceso del 1130 con dos instrucciones agregadas (CMP y DCM) y capacidades de entrada/salida extra.

## Descripción

El 1130 se volvió muy popular, y junto con los clones no-IBM fueron el primer contacto con la "computación personal" para muchas personas. Su relación precio/prestaciones fue buena y, notablemente, incluía un dispositivo de almacenamiento en disco removible, el cual no era caro, junto a un sistema operativo en disco sencillo y confiable, que soportaba varios lenguajes de alto nivel. El bajo precio y unas prestaciones bien balanceadas hicieron que se transforme en un "taller abierto" para el desarrollo de programas, disponible para un gran número de usuarios por primera vez.

### Procesador y memoria

El IBM 1130 usaba módulos electrónicos del System/360 llamados Tecnología de Estado Sólido (SLT, por sus siglas en inglés) y tenían una arquitectura binaria de 16 bit, no muy diferente a las minicomputadoras posteriores, como la PDP-11 o la Data General Nova. El espacio de direccionamiento era de 15 bits, limitando la memoria del 1130 a 32K palabras de 16 bit (64 Kbytes). Tenía capacidad de direccionamiento directo e indirecto.

### Software

Muchos programas fueron hechos en Fortran. El compilador Fortran del 1130 podía correr en una máquina con solo 4.096 palabras de memoria principal. Esto es 8 kilobytes, menos que el espacio mínimo de direccionamiento de archivos del sistema de archivos de algunos PC. Para maximizar la velocidad y conservar espacio, el sistema operativo y los compiladores estaban escritos enteramente en lenguaje ensamblador, y las técnicas empleadas son poco vistas hoy día, incluyendo la estrecha integración de códigos y datos y el código auto-modificable. Para permitir el uso de programas que eran muy grandes para caber en la memoria principal, la implementación del lenguaje Fortran permitía que cualquier subrutina sea designada como "LOCAL", es decir, era cargada a la memoria al ser llamada. El uso de código residente en disco requería que el código ejecutable, por ejemplo una subrutina, sea "cargado" (leído) del disco a la memoria (si no estaba ya presente en la memoria) cuando la subrutina era "llamada" (invocada). El compilador estaba disponible en una versión residente en disco, así como también en una cinta perforada de 8 canales o en tarjeta perforada

Otros lenguajes de programación estaban disponibles en el 1130, incluyendo: APL, BASIC, COBOL, FORTH, PL/I y RPG. La Eastern Michigan University desarrolló un compilador Fortran IV para el 1130, conocido como Fortran-EMU, que corregía un detalle del compilador de IBM: la falta de un tipo de datos LÓGICO.

### Periféricos

El sistema 1130 básico incorporaba una unidad de disco IBM 2310. Esta leía los cartuchos 2315 (del tamaño de una caja de pizza) de un solo plato que almacenaban 512 K palabras o 1 Mb (menos que un disquete de 3,5" HD). Los discos se usaban para almacenar el sistema operativo, el código objeto y los datos, pero no el código fuente. Este último se mantenía en tarjetas perforadas. El sistema operativo en disco era llamado DMS o DM2 (por Disk Monitor System, Release 2).

Otros periféricos disponibles incluían las impresoras de líneas IBM 1132 y IBM 1403, la lectora/perforadora de tarjetas IBM 1442, la unidad de disco IBM 2311, el monitor de gráficos IBM 2250 y el trazador gráfico (plóter) de tambor IBM 1627. El plóter era muy usado en trabajos de ingeniería. La consola usaba un mecanismo IBM Selectric, lo cual significaba que podía cambiarse el tipo de letra reemplazando el elemento impresor, el que consistía en una bola hueca del tamaño de una pelota de golf. Había un tipo especial disponible para el APL, un poderoso lenguaje de programación orientado al cálculo de matrices que usaba una notación simbólica especial.

El IBM 1130 MTCA, por Multiple Terminal Control Adapter (Adaptador de Terminal de Control Múltiple), fue anunciado al final de la vida de los producto 1130; permitía conectar hasta 2.741 terminales a un IBM 1130, para usar con APL.

A partir de 1968, la unidad de cinta magnética IBM 2415 estaba disponible como RPQ (a precio especial).

Un 1130 estándar tenía un ciclo de memoria de 3,6 microsegundos, y un modelo más caro estaba equipado con una memoria con un ciclo de 2,2 µs (se podía usar este último con una impresora 1403 conectada a través de un multiplexor 1133). Para aprovechar mejor la gama baja del mercado, IBM introdujo el 1130 Modelo 4, con un ciclo de 5,6 µs, a precio más bajo, por supuesto. La impresora 1132 del Modelo 4 se redujo también, pero la CPU más lenta no podía seguir su ritmo (La 1132 usaba la CPU para determinar que rueda de impresión debía dispararse mientras giraba, una función que consumía mucha capacidad de cálculo). Una lectura cuidadosa del manual del hardware del 1130 descubría que cuando el nivel (1) de interrupción de la impresora o la interrupción (0) de la columna de la 1442 estaban activados, el 1130 Modelo 4 funcionaba a la velocidad más rápida de 3,6 microsegundos por ciclo. Algunos usuarios del Modelo 4 escribían un falso controlador de impresora que activaba el nivel de interrupción 1 y lo dejaba así mientras duraba la parte de cálculos intensivos de su aplicación. No podía haber operaciones de entrada/salida mientras esto sucedía debido a que el 1442 usaba el nivel de interrupción 4 para marcar el fin de la tarjeta. El nivel 0 era el nivel de interrupción más alto, y el nivel 5 era el más bajo.

## Modelos del IBM 1130

IBM implementó cinco modelos de la Unidad Central de Proceso 1131, que era el principal componente de procesamiento del Sistema de Computación IBM 1130.

| | Velocidad de almacenamiento | Velocidad de almacenamiento | Velocidad de almacenamiento | Velocidad de almacenamiento | Velocidad de almacenamiento |
| - | - | - | - | - | - |
| Tamaño de almacenamiento | ciclo de 3,6 microseg. sin disco interno | ciclo de 3,6 microseg. más discos | ciclo de 3,6 microseg. (70% del rendimiento) un disco | ciclo de 2,2 microseg. más discos | ciclo de 2,2 microseg. (sin disco interno) |
| 4.096 palabras | Modelo 1A | Modelo 2A | Modelo 4A | --- | --- |
| 8.192 palabras | Modelo 1B | Modelo 2B | Modelo 4B | Modelo 3B | Modelo 5B |
| 16.384 palabras | Modelo 1C | Modelo 2C | --- | Modelo 3C | Modelo 5C |
| 32.768 palabras | Modelo 1D | Modelo 2D | --- | Modelo 3D | Modelo 5D |

El IBM 1800 fue una variante del IBM 1130 con características adicionales para el control del proceso de las aplicaciones. Así como el IBM 1130 fue un sucesor de la IBM 1620, el IBM 1800, fue un sucesor de la IBM 1710.

## Cronología

* 11 de febrero de 1965 - IBM introduce el 1130 (Modelos A1, A2, B1 y B2). También anuncia la impresora IBM 1132, la impresora en línea de más bajo precio ofrecida por IBM hasta ese momento.
* Cuarto trimestre de 1965 - Primera entrega a un cliente desde la planta de San José.
* 9 de agosto de 1966 - IBM despliega el adaptador de comunicaciones asíncronas 1130, el cual permite al pequeño sistema 1130 conectarse por medio de una línea telefónica común a un IBM System/360, y funcionar como terminal de comunicaciones.
* 17 de abril de 1967 - Se anuncia una expansión de cuatro vías para el 1130 (Modelos B3, C2, C3, D2 y D3), abarcando:
   * amplía cinco veces el almacenamiento en disco y cuatro veces la memoria principal de núcleos magnéticos;
   * una velocidad de procesamiento alrededor de 40% más rápida que la disponible anteriormente;
   * Más y más rápidos periféricos, incluyendo un lector de marcas óptico;
   * un paquete de programación mejorado.
* enero de 1968 - Primeras entregas de los 1130 Modelos B3, C2, C3, D2 y D3.
* julio de 1968 - La planta de Boca Raton comienza a entregar el 1130.
* 22 de julio de 1971 - Los 1130 Modelos 4A y 4B son introducidos a nuevos niveles de economía.
* septiembre de 1971 - Se entregan los primeros 1130 Modelo 4.
* 31 de mayo de 1972 - Son anunciados los Modelos 1C, 1D, 5B, 5C y 5D.

## Influencia del 1130

* Brian Utley fue el Director de Proyecto del 1130 durante su desarrollo e introducción. Brian dijo que la tercera parte del 11/30, antes que el departamento de comercialización de IBM lo llamara 1130, era conocido como el Small Engineering Computer System o SECS (Sistema de Computación de Ingeniería Pequeño). La arquitectura inicial era de 18 bits pero fue cambiada a 16 bits debido a la influencia del desarrollo del System/360. El discurso completo de su presentación del 2005 está disponible en IBM1130.org (en inglés).
* El notable diseñador de software Grady Booch tuvo su primer contacto con la programación en un IBM 1130:

   (...) Golpeé las puertas de la oficina local de ventas de IBM hasta que un vendedor se compadeció de mí. Luego de charlar por un rato, puso en mis manos un manual de Fortran. Estoy seguro que me lo dio pensando "Nunca sabré nada de este muchacho otra vez". Volví la semana siguiente, diciendo: "Esto es realmente genial. He leído todo el asunto y he escrito un pequeño programa. ¿Dónde puedo encontrar una computadora?". El hombre, para mi deleite, me encontró tiempo para programar en un IBM 1130 en los fines de semana y en horas de la tarde. Esa fue mi primera experiencia en programación, y debo agradecer al vendedor de IBM anónimo por el lanzamiento de mi carrera. Gracias, IBM.
* El gurú del LISP Guy Steele escribió un intérprete de LISP para el IBM 1130 cuando iba a la escuela secundaria (Boston Latin School, donde había un IBM 1130 para uso de los estudiantes). Su código y la documentación del LISP 1.6, junto a un resumen del trabajo necesario para que se ejecute bajo simulación, está disponible en IBM1130.org (en inglés).
* Chuck Moore buscaba llamar a su nuevo lenguaje "Fourth", pero el sistema operativo del IBM 1130 tenía limitado los nombres a cinco caracteres, por lo que terminó llamándolo FORTH.
* Dan Bricklin, creador del programa VisiCalc, se inició en la programación cuando descubrió y usó el IBM 1130 de la Fundación Nacional de Ciencia Informática/Proyecto Matemáticas de Verano para estudiantes de secundaria, dada a la Universidad de Pensilvania en 1966.
* Un IBM 1130 con 8 kilo palabras de memoria principal fue usado por primera vez a tiempo completo para la Búsqueda de Inteligencia Extraterrestre, en el radio observatorio de la Universidad Estatal de Ohio.
* Charles Goldfarb, el padre de SGML, describe un trabajo de instalación de un sistema de composición basado en un IBM 1130 que "finalmente cambió mi carrera", llevándolo al lenguaje de marcado genérico:

   El sistema estaba en una computadora IBM 1130, una máquina con el tamaño de un escritorio con 8KB (¡sic!) de memoria, una unidad de disco de 512KB, en lector de cinta de papel Teletype CX, una perforadora de cinta BRPE, y un tipógrafo fotomecánico Photon 713. La asignación fue mi primera experiencia con la gestión de una base de datos de documentos de lectura mecánica: Aprendí a enrollar las cintas de papel perforado para que puedan ser almacenadas en forma ordenada en cestos de papeles cilíndricos. Mientras tanto, aunque yo no lo sabía, las raíces del lenguaje de marcas se estaban plantando. Históricamente, los manuscritos electrónicos contenían códigos de control o macros que causaban que el documento se formateara en una forma particular ("codificación específica"). En contraste, la codificación genérica, que comenzó en la década de 1960, utiliza etiquetas descriptivas (por ejemplo, "encabezado", en lugar de "formato-17").

## Rarezas del software

* En una primera versión del sistema operativo, las cabeceras de los archivos escritos en FORTRAN y en los primeros compiladores de RPG no eran compatibles. Antes de usar otro lenguaje, el archivo tenía que ser copiado.
* Los índices de registros se encontraban efectivamente en la memoria de núcleos en las posiciones 1, 2 y 3.
* El compilador Fortran construía las matrices hacia atrás en la memoria.
* Un sector de disco tenía 640 bytes.
* Hubo una leyenda urbana en el momento de introducir el modelo que, puesto que era una máquina científica pequeña, el número de modelo de la IBM 1130 fue obtenido de multiplicar el número de modelo de la IBM 360 por π.

## Ejemplos de Programas

Los ejemplos pueden ejecutarse en un emulador de IBM 1130 disponible en IBM 1130.org (en inglés).

### Ejemplo de programa en Ensamblador

El siguiente listado muestra el contenido de un conjunto de tarjetas perforadas que compilan y ejecutan un programa en ensamblador que lee las tarjetas perforadas y las imprime en la impresora en línea. El código siguiente Copyright (c) 2006 Kym Farnik. Código publicado bajo la licencia MIT. Ver: http://www.opensource.org/licenses/mit-license.php

### Ejemplo de programa en Fortran IV

El siguiente listado muestra el contenido de un conjunto de tarjetas perforadas que compilan y ejecutan un programa en Fortran y una subrutina en Fortran para el IBM 1130 corriendo el DM2. El código siguiente Copyright (c) 2006 Kym Farnik. Código publicado bajo la licencia MIT. Ver: http://www.opensource.org/licenses/mit-license.php

### Ejemplo de sesión en APL \ 1130

La siguiente imagen muestra una sesión APL \ 1130 sencilla. Esta sesión fue realizada vía el simulador 1130 disponible de IBM 1130.org

Esta imagen muestra el ingreso a la sesión, la adición de enteros del 1 al 100, la generación de una tabala de adiciones para los entereos 1..5 y la salida de la sesión.

