La calculadora programable Programma 101

Antonio Estrella Contreras

La Programma 101 surgió en 1964 y su construcción estaba basada en componentes discretos siendo los transistores los más importantes de ellos. En esa misma década los computadores eran de un tamaño considerable y estaban orientados a usuarios muy especializados.

PROGRAMMA 101

Pulse en la imagen para ampliar

La Olivetti Programma 101

Vídeo sobre la Olivetti Programma 101.

DESARROLLO Y PRESENTACIÓN

En la primavera de 1962 Roberto Olivetti, el entonces presidente de la compañía italiana Olivetti, dio instrucciones al ingeniero Pier Giorgio Perotto para iniciar el estudio de viabilidad de una calculadora electrónica capaz de automatizar una secuencia de instrucciones, tendría que estar al alcance de un usuario no especializado, a un precio razonable y que tuviera unas dimensiones reducidas parecidas a las de una máquina de escribir.

Pier Giorgio Perotto ideó una máquina pequeña, flexible, con memoria, fácil de usar y programable mediante un lenguaje de programación sencillo para que cualquier persona pudiera programarla, básicamente un ordenador personal.

Para desempeñar el encargo, Perotto creó un equipo de desarrollo con cuatro hombres más; Gastone Garziera, Giovanni De Sandre, Giancarlo Toppi y Giuliano Gaiti.

Equipo de desarrollo
Pulse en la imagen para ampliar

El equipo de desarrollo con el segundo prototipo de la Programma 101. (Agosto de 1964)

De izquierda a derecha y de arriba a abajo: Gastone Garziera, Giancarlo Toppi, Pier Giorgio Perotto y Giovanni De Sandre. Giuliano Gaiti no aparece porque fue quien realizó la fotografía con la cámara de Perotto.

Cortesía de Associazione Archivio Storico Olivetti, Ivrea, Italia.

Dos puntos muy importantes para conseguir el éxito del proyecto fue, por un lado, sustituir las memorias existentes en el momento por memorias de línea de retardo acústica magnetostrictiva, era una buena opción por su tamaño, sencillez y coste. Por otro lado, se utilizó los nuevos (en aquel momento) transistores 2N708 que junto a su reducido tamaño no tenían tantos problemas de sobrecalentamiento y fiabilidad como las válvulas de vacío que se utilizaban hasta el momento, además su vida útil era excelente.

El trabajo del equipo de desarrollo de la Programma 101 finalizó su tarea en abril de 1964 –dos años de trabajo– consiguiendo un producto que sería el comienzo de la historia de los PC (Personal Computer) u ordenadores personales y que bautizaron, por motivos de marketing, con un nombre femenino, «Programma 101».

En octubre de 1965 tuvo la ocasión de darse a conocer en la Exposición Universal de Nueva York BEMA, en ella se realizó una presentación de la Programma 101 dirigida a usuarios no especializados en informática donde se calculaba la órbita de un satélite alrededor de la Tierra.

Exposición universal de Nueva York de 1965
Pulse en la imagen para ampliar

Presentación de la Programma 101 en la Exposición Universal de Nueva York de 1965.

Cortesía de Associazione Archivio Storico Olivetti, Ivrea, Italia.

Vídeo sobre la presentación de la Programma 101 en la Exposición Universal de Nueva York de 1965.

REPERCUSIÓN: PRENSA Y PUBLICIDAD

El éxito que la Programma 101 llegó a tener en la Exposición Universal de Nueva York fue inmediatamente captada por la prensa norteamericana que rápidamente se hizo eco de la aparición de una computadora de sobremesa.

Recortes de prensa americana
Pulse en la imagen para ampliar

Recortes de prensa americana sobre la Programma 101

Click aquí para más detalles

Olivetti aprovechó el momento para lanzar una campaña publicitaria de la Programma 101 por todo el mundo y en España tubo un hueco entre la publicidad de aquella época.

Publicidad en medios españolesPublicidad en medios españoles
Pulse en las imágenes para ampliar

Publicidad en medios españoles de la Programma 101.

La Programma 101 llegó a numerosos ámbitos donde nunca antes se había conocido el uso de ordenadores como es el caso, entre otros, de la medicina, pequeñas empresas, estudiantes, topógrafos y como gran logro llegó a introducirse dentro de la vida cotidiana de las personas, algo inimaginable para las grandes computadoras que en ese momento existían.

Otro uso que se le dio a la Programma 101 fue en la planificación de operaciones bélicas en la Guerra de Vietnam por parte de las fuerzas aéreas norteamericanas, más concretamente para calcular coordenadas en los bombardeos dirigidos desde tierra del B-52 Stratofortress.

La agencia espacial norteamericana NASA compró en 1966 más de 10 unidades que utilizó en la elección de puntos de aterrizaje y en el cálculo de las maniobras de alunizaje de la misión Apolo 11 que en julio de 1969 llevó al hombre a la luna por primera vez.

Misión Apolo 11Misión Apolo 11
Pulse en las imágenes para ampliar

Participación de la Programma 101 en la misión Apolo 11 de la NASA.

Cortesía de Associazione Archivio Storico Olivetti, Ivrea, Italia.

TIPO DE ELECTRÓNICA Y MEMORIA

Para entonces aún no existían los circuitos integrados y utilizando componentes electrónicos discretos como; diodos, resistencias, condensadores y transistores, el equipo de desarrollo debía ser capaz de construir esta máquina. Ante este reto los desarrolladores idearon una memoria de línea de retardo acústica magnetostrictiva con alambre metálico, este es un tipo de memoria que se debe actualizar (o refrescar) y es secuencial, al contrario a las memorias actuales que son aleatorias.

Este tipo de memoria principalmente consiste en un alambre metálico enrollado para alcanzar una amplia longitud –6,5 metros en el caso de la Programma 101– ocupando el menor espacio posible y conectado a este alambre se encuentran unos transceptores formados por material piezoeléctrico que convierten señales eléctricas en ondas acústicas y viceversa.

Prototipo de memoria de línea de retardo acústica magnetostrictiva
Pulse en la imagen para ampliar

Prototipo de memoria de línea de retardo acústica magnetostrictiva que se construyó en la primavera de 1962.

Se compone de un alambre metálico de una longitud de 1280 metros, dos bobinas –color rojo– como transductores para la escritura y una bobina –color amarillo– como transductor para la lectura. Este prototipo tenía una capacidad de 256 bits y un retardo de 256 microsegundos.

Cortesía de Associazione Archivio Storico Olivetti, Ivrea, Italia.

La unidad de memoria de la Programma 101 fue construida con la tecnología descrita, esta tenía un tamaño de 18 x 19 x 2 cm, un tamaño muy reducido en comparación a las memorias de los grandes computadores existentes en esa época. Esta memoria tenía una capacidad para almacenar un total de 240 caracteres en codificación BCD donde cada dígito decimal es codificado con 4 bits, por tanto la capacidad de memoria total era de 960 bits.

Unidad de memoria
Pulse en la imagen para ampliar

Unidad de memoria de la Programma 101.

TARJETA MAGNÉTICA

Otras de las novedades que incorporaba la Programma 101 fueron las tarjetas magnéticas, las cuales daban la posibilidad de ser utilizadas como medio de almacenamiento permanente, para ello, los desarrolladores idearon dichas tarjetas y su correspondiente dispositivo de lectura/escritura así como el método mediante programación para poder ser utilizadas. Hasta el momento sólo se disponía de grandes y pesados rollos de cinta magnética, no se disponía de este tipo de medios ni la posibilidad de almacenar programas y datos con un tamaño tan reducido.

A partir de la aparición de las tarjetas magnéticas de la Programma 101 otros fabricantes de computadores, como por ejemplo IBM, copiaron la idea y fue evolucionando hasta llegar a desarrollar los disquetes y todos los medios magnéticos que se utilizan en la actualidad.

Tarjeta magnéticaTarjeta magnética
Pulse en las imágenes para ampliar

Tarjeta magnética de la Programma 101 y su modo de utilización.

Vídeo sobre la tarjeta magnética creada para la Programma 101 y su modo de utilización.

DISEÑO

Otro punto importante de esta máquina fueron sus dimensiones y aspecto, ya que hasta la fecha todas las computadoras eran muy grandes y en ningún caso tenían una estética agradable, el equipo de desarrolladores consiguió construir la Programma 101 con un tamaño de 48 x 61 x 19 cm y un peso de 35,5 kilogramos. La estética y ergonomía, que nunca antes se habían tenido en cuenta en el diseño de este tipo de máquinas, fue encargada personalmente por el presidente de la empresa Roberto Olivetti al arquitecto y diseñador italiano Mario Bellini, debía conseguir una máquina que se convirtiera en un objeto personal, que interaccionara con los usuarios y fuera fácil su comprensión.

El diseño creado para la Programma 101 fue tan revolucionario que fue expuesta en el Museo de Arte Moderno de Nueva York, Bellini tuvo que integrar en su diseño partes de la Programma 101 como el teclado, la rueda de decimales para indicar la precisión de las operaciones aritméticas, un «display» formado por dos lamparas una verde para las confirmaciones y una roja para los errores, además de una impresora que muestra información de salida sobre un rollo de papel.

El diseño de la Programma 101 estuvo orientado a que el usuario que manejara esta computadora no tuviera grandes conocimientos en informática y llevar el uso de esta a todos los ámbitos posibles. En este aspecto, Olivetti cambió la filosofía que había hasta entonces en el que el perfil de los usuarios de las computadoras existentes era aquel donde los usuarios eran personal muy especializado y con amplios conocimientos en la máquina que se utilizaba usándose sólo en ámbitos muy restringidos.

REGISTROS Y MEMORIA

La memoria de la Programma 101 se divide en 10 registros de 24 caracteres o dígitos cada uno, gracias a los cuales su capacidad de cómputo era muy elevada para la época en la que apareció.

Dos de estos registros están reservados para el programa teniendo entre los dos una capacidad para 48 instrucciones destinándose el resto de registros –denominados M, A, R, B, C, D, E y F– al almacenamiento de datos repartiendo su capacidad en 22 dígitos para el dato en sí, otro para indicar la posición del punto decimal y el último para el signo.

A su vez, tres de esos –M, A y R– tienen un papel especial en el funcionamiento de la Programma 101; el M es el encargado de guardar las entradas que proporciona el teclado y distribuir esa información al registro adecuado; el A hace la función de acumulador, en él se guardan los resultados de las operaciones realizadas y las retiene; y en el R nos encontramos con el resultado de las operaciones aritméticas que se hayan realizado actualizándose tras la finalización de cada una de ellas.

Otros tres –D, E y F– pueden almacenar instrucciones en caso de que el código de programación sea muy largo sumándolos con los dos registros destinados a instrucciones, de esta forma obtenemos un total de 120 instrucciones –número máximo que puede manejar–. Tanto estos tres, como los dos registros restantes destinados exclusivamente a almacenar datos pueden ser divididos en dos encontrándonos en una situación en la que podremos guardar once datos con decimal y signo. En el caso de dividir los registros estos son referenciados como b, B, c, C, d, D, e, E, f y F, esta división se realiza mediante el comando ”/” de tal forma que B/ = b.

Configuraciones registros
Pulse en la imagen para ampliar

Posibles configuraciones que nos permiten los registros de la Programma 101.

JUEGO DE INSTRUCCIONES

Para poder ser programada la Programma 101 dispone de un juego de instrucciones con 16 comandos, a continuación se describen y clasifican por sus respectivos propósitos:

GENERALES
”S” (Stop/Start) Espera a que se le introduzca por teclado un valor./Reanudar la ejecución.
”*” (Clear) Borra el contenido del registro especificado.
”◊” (Print) Imprime el contenido del registro especificado.
TRANSFERENCIA DE DATOS
” (To A) Pasa el contenido del registro especificado al acumulador.
” (From M) Traslada el contenido de M al registro especificado.
” (Exchange) Intercambia el contenido del registro especificado y el acumulador.
”RS” (D-R Exchange) Intercambia el contenido de los registros d y D (de ambos) con el contenido del registro R.
”/” (Decimal To M) Pasa la parte decimal del contenido del registro A al registro M.
OPERACIONES ARITMÉTICAS
”+” (Addition) Suma el contenido del registro especificado con el de A.
”-” (Subtraction) Resta al contenido de A el valor guardado en el registro especificado.
”x” (Multiplication) Multiplica los valores de los registros A y el especificado.
”÷” (Division) Divide el contenido de A por el contenido del registro especificado, el cociente es guardado en A y el resto en R.
”√” (Square Root) Realiza la raíz cuadrada del contenido del registro especificado y guarda el resultado en A.
”A” (Absolute Value) Calcula el valor absoluto de A.
OPERACIONES DE SALTO
Incondicionales Salta a la referencia a punto (destino).
Condicionales Si el contenido del registro A es mayor que 0 salta, en caso contrario sigue con la siguiente instrucción.

Olivetti diseñó un formulario para que sirviera de plantilla a aquellos usuarios que se dedicaran a programar esta computadora. Dicha plantilla muestra de forma compacta toda la información necesaria para dicha función, tal como el contenido de los registros, tanto el código del programa como constantes necesarias, el estado de la rueda que configura el número de decimales, así como información para su archivo y asociación con otras tarjetas magnéticas donde se almacenara dicha programación.

Cálculo de la órbita de un satélite
Pulse en la imagen para ampliar

Cálculo de la órbita de un satélite alrededor de la Tierra ejecutado en la Exposición Universal de Nueva York de 1965.

Ver vídeo
Para ver el vídeo pulse en la imagen

Vídeo donde aparece la Programma 101 calculando la órbita de un satélite alrededor de la Tierra.

Para ver el vídeo, pulse aquí o sobre la imagen

SIMULADORES

En Internet se pueden encontrar varios simuladores sobre la Programma 101 de los cuales se han seleccionado dos de ellos debido a sus características.

El primero de estos simuladores es el desarrollado por Marco Galeotti, este tiene una interfaz didáctica enfocada a enseñar como funcionaba internamente la Programma 101 ya que no mantiene el aspecto de esta pero es muy útil para comprender como funciona el flujo de datos dentro de la máquina.

Simulador
Pulse en la imagen para ampliar

Simulador desarrollado por Marco Galeotti.

Pulse aquí para acceder al simulador.

El segundo de los simuladores seleccionados es el desarrollado por el ingeniero Claudio Larini, este simulador a pesar de tener una interfaz espartana, a sido seleccionado porque reproduce el teclado, salida de datos y otros controles tal y como nos lo encontraríamos delante de una Programma 101 tanto en disposición ante el usuario como en proporciones entre ellos.

El aspecto o interfaz que presenta este simulador es muy similar al de la Programma 101 pero además, el modo en que se usa también lo es, si seguimos el manual de usuario y el manual de programación de la Programma 101 podemos manejar este simulador sin problemas.

Simulador
Pulse en la imagen para ampliar

Simulador desarrollado por el ingeniero Claudio Larini.

Pulse aquí para acceder al simulador

Video acerca del papel histórico Programma 101

Muchas gracias por tu tiempo y espero que hayas disfrutado con la Programma 101.