IBM 1401 - Data Processing System

Foro dedicado a sistemas varios: juguetes programables, calculadoras, agendas electrónicas, traductoras, y cualquier otro sistema de la época.
dancresp
Amiga 1200
Amiga 1200
Mensajes: 1388
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 2 veces
Gracias recibidas: 19 veces

IBM 1401 - Data Processing System

Mensajepor dancresp » 21 Jul 2015, 14:37

EL SISTEMA
La computadora IBM 1401, primer equipo de la serie IBM 1400, es un ordenador electrónico decimal de longitud de palabra variable, comercializado por la empresa IBM desde finales de 1959 a principios de 1971.

La configuración mínima del sistema 1401 consiste en una unidad central “1401 Data Processing System”, un lector/grabador de tarjetas perforadas “1402 Card/Reader Punch” y una impresora “1403 Line Printer”. Opcionalmente se podían incorporar otros periféricos como ampliaciones de memoria, unidades de cinta o unidades de discos rígidos.

El IBM 1401 también era usado como un sistema secundario para controlar periféricos off-line en grandes instalaciones, donde el ordenador principal (un IBM 7090, por ejemplo) solo usaba unidades de cinta para realizar las operaciones de entrada/salida de los datos, y el IBM 1401 se encargaba de cambiar el formato de los datos entre tarjetas perforadas y cintas, o para procesos de impresión.

Durante los 12 años de comercialización se fabricaron unos 20.000 sistemas, siendo en su momento uno de los productos de mayor éxito de IBM. Solo en Estados Unidos, a finales de 1961 ya se habían instalado unos 2.000 sistemas, el 25% de todos los ordenadores electrónicos en uso, y a mediados de los 60 se llegaron a los 10.000. IBM permitía alquilar el sistema a partir de unos 2.500$ al mes, en función de la configuración.

1401-General-.jpg
1401-General-.jpg (19.54 KiB) Visto 2299 veces


El sistema permitía desarrollar software en los siguientes lenguajes:
- SPS (Symbolic Programming System): Lenguaje básico del 1401 que podía ejecutar la versión SPS-1 con solo 1.4 KB y la versión SPS-2 con un mínimo de 4 KB.
- Autocoder: Un ensamblador más evolucionado que requería un mínimo de 4 KB.
- FARGO (Fourteen-o-one Automatic Report Generation Operation): Un predecesor del RPG, usado para generar informes. Requería 4 KB.
- FORTRAN II: Un compilador de Fortran para equipos con 8 KB que usaba un innovador intérprete de pseudo-código.
- FORTRAN IV: Otro compilador de Fortran para equipos con 8 KB equipados o con 4 unidades de cinta o una unidad de disco IBM 1311.

En 1964 la alta dirección de IBM decidió concentrar sus recursos en el desarrollo del IBM System/360, y condenó la evolución del sistema 1401. Para proteger la inversión realizada por sus clientes en software para el 1401, IBM fue pionero en el uso de emulación de microcódigo en forma de ROM. De esta forma los modelos System/360 podían ejecutar programas del 1401. Esta compatibilidad estuvo operativa en algunas instalaciones hasta que el efecto 2000 obligó a reescribir el código.

IBM1401_Manufacturing-1960.jpg
IBM1401_Manufacturing-1960.jpg (167.63 KiB) Visto 2299 veces


LOS PERIFÉRICOS
1401 Data Processing System
La mayoría de los sistemas informáticos se componen de una serie de piezas individuales. La parte principal es la unidad central de proceso, que contiene la circuitería necesaria para ejecutar instrucciones y controlar los periféricos. La principal función de cualquier sistema de procesamiento de datos es la capacidad de ejecutar los pasos de un programa. Esto implica procesar las instrucciones, manipular registros, realizar operaciones aritméticas y evaluar condiciones pudiendo cambiar el curso de un programa en función del resultado.

1401-Esquema.jpg
1401-Esquema.jpg (74.43 KiB) Visto 2299 veces


La unidad 1401 dispone de dos paneles de control. El principal queda a la vista en la parte superior izquierda y el secundario queda justo debajo, pudiendo ser ocultado por una tapa.

El panel principal nos muestra información sobre el estado del sistema y permite configurar ciertos aspectos relacionados con su funcionamiento. La parte superior muestra un esquema del sistema y mediante unas luces podemos visualizar valores de registros, direcciones de memoria y la longitud de la instrucción que se está procesando. La parte inferior contiene una serie de interruptores y selectores con los que podemos indicar el modo de ejecución del sistema, modificar el valor de los registros y detener, reiniciar, encender o apagar el sistema. Una serie de interruptores nombrados “A-G” son necesarios para realizar algunas funciones, como la carga de un programa.

El panel secundario está más orientado a la configuración del sistema y la realización de diagnósticos.

1401-Esquema_1.jpg
1401-Esquema_1.jpg (95.16 KiB) Visto 2299 veces


La mayor parte de la circuitería lógica del 1401 consiste en componentes discretos montados en unas tarjetas de circuito impreso de papel de resina epóxica, con unas dimensiones de 38x114 mm o 82x114 y un conector de 16 pines. Las tarjetas de 38 mm pueden contener de tres a cinco puertas lógicas o un par de flip-flops, y las tarjetas de 82 mm hasta 20 puertas lógicas o cuatro flip-flops. IBM llamaba a estas tarjetas SMS (Standard Modular System) y las aproximadamente 3.000 tarjetas que lleva se insertan en los múltiples bastidores que contiene la unidad central.

1401-Esquema_2.jpg
1401-Esquema_2.jpg (195.89 KiB) Visto 2299 veces


La unidad 1401 puede sumar, restar, multiplicar y dividir de forma nativa, y permite formatear los resultados para facilitar su comprensión. Una serie de circuitos se encargar de realizar chequeos de paridad y validación para asegurar que tanto los datos a procesar como los resultados son correctos.
El 1401 usa el código binario decimal de IBM (BCD) formado por 8 bits representados como: “C B A 8 4 2 1 M”. Los bits A y B se denominan bits de zona, los bits 8, 4, 2 y 1 se denominan bits numéricos, C es el bit de paridad y M es el Word Mark (Marca de Palabra).

Las direcciones de la memoria de ferrita consiste en tres bytes. Las direcciones entre 000 y 999 se especifican mediante los bits 8-4-2-1 de los bytes. Los bits de zona del byte más significativo especifican un incremento de A=1000, B=2000 o AB=3000, pudiendo direccionar hasta 4.000 bytes en total. Los bits de zona del byte menos significativo especifican incrementos de A=4000, B=8000 o AB=12000, para poder direccionar hasta 16.000 bytes. Los bits de zona del byte intermedio se usan para especificar registros índice, entre otras funcionalidades.

Las instrucciones pueden ocupar 1, 2, 4, 5, 7 u 8 bytes. El primer byte siempre contiene el código de operación y los restantes pueden indicar un byte modificador y/o una o dos direcciones de memoria. El código de operación se identifica porque el bit M está a 1, y el resto de bytes de la instrucción a ejecutar tienen los bits M a 0. Hay dos excepciones a esta norma con las instrucciones SET WORDMARK y BRANCH INDICATOR.


1402 Card Reader/Punch
Este dispositivo es un lector/perforador de tarjetas de alta velocidad, básico en cualquier sistema IBM 1401. Comercializado a partir del 5 de octubre de 1959, posteriormente fue adaptado para su uso en equipos de las series 1600, 7000 y System/360.

Está preparado para trabajar con tarjetas de 80 columnas, pero se puede adaptar para usar tarjetas de 51 columnas. La columna “Binary” permite leer o perforar tarjetas con cualquier combinación de agujeros.

1402-Esquema.jpg
1402-Esquema.jpg (67.65 KiB) Visto 2299 veces


Dispone de una bandeja de entrada superior con una capacidad de 3.000 tarjetas y una velocidad de lectura de hasta 800 tarjetas por minuto, y una bandeja interna para colocar 1.200 tarjetas en blanco y perforar hasta 250 tarjetas por minuto.

En la zona central hay cinco apiladores de tarjetas, con una capacidad de unas 1.000 tarjetas cada uno. Los dos de la derecha (NR y 1) son para las tarjetas leídas, los dos de la izquierda (NP y 4) son para las tarjetas perforadas y el central (8/2) puede ser compartido. Las tarjetas quedan dispuestas en estos apiladores con el mismo orden en que han sido leídas o perforadas.

Dispone de un detector de errores que detiene el dispositivo cuando el número de agujeros leídos o perforados no coincide con el contado en un paso anterior, o cuando el lector no funciona en modo “Binary” y detecta que la combinación de agujeros no corresponde con el de ningún carácter conocido.

El panel de control dispone de 4 pulsadores en la zona central:
- El botón “START” sirve para iniciar la unidad después de una parada.
- El botón “CHECK RESET” reinicia el dispositivo después de que se haya detenido debido a un error de verificación.
- El botón “STOP” detiene el sistema. Si lo está usando un programa, se espera a que finalice antes de la parada.
- El botón “LOAD” borra el contenido de las primeras 80 posiciones de la memoria de la unidad 1401, usadas como buffer de lectura de tarjetas, y pone un Word Mark en la posición 0001. A continuación el sistema ejecuta la instrucción contenida en las primeras columnas de la tarjeta, a modo de “bootstrap” o “tarjeta de arranque”, y este se encarga de la lectura del resto de las tarjetas.

El panel de control dispone de 4 interruptores en los laterales:
- El interruptor “PUNCH OFF/ON” activa/desactiva el alimentador de tarjetas para perforar.
- Los interruptores “NON PRO RUN OUT” (Non process Runout Key) se utilizan para limpiar el alimentador de tarjetas correspondiente cuando la bandeja esta vacía. Esta tecla se suele usar antes de realizar una cargar de tarjetas, ya que en circunstancias normales las dos o tres últimas tarjetas no son leídas o perforadas.
- El interruptor “READER OFF/ON” activa/desactiva el alimentador de tarjetas de lectura.

Entre los botones centrales y laterales hay diez indicadores luminosos que nos muestran el estado de la unidad 1402.

En el interior, en la zona inferior del lado izquierdo hay un recipiente donde se recogen los restos de cartón de las tarjetas cuando son perforadas. Debe ser vaciado periódicamente.


1403 Line Printer
Este dispositivo es una impresora de alta velocidad, básico en cualquier sistema IBM 1401, comercializado a partir de octubre de 1959. Tuvo una vida comercial muy larga.

Dispone de un juego de 48 caracteres: 26 letras, 10 dígitos y 12 caracteres especiales. Se podían pedir juegos de caracteres distintos para adaptarlos a las necesidades del usuario final.

La impresora puede imprimir en 120 ó 132 columnas con una velocidad de hasta 600 líneas por minuto y saltos de hoja de hasta 190 centímetros por segundo, aunque en modelos posteriores se reemplazo la cadena de impresión por un tren de impresión. El modelo superior puede imprimir hasta 1.400 líneas de 132 caracteres por minuto, esto es 23 páginas por minuto y menos de 3 segundos por página, e incluso aún más rápido si la página a imprimir contiene líneas en blanco.

Su funcionamiento consiste en una cadena que contiene 120 piezas, agrupadas en 5 bloques. Cada uno de estos bloques contiene los 48 caracteres que puede imprimir, con dos caracteres invertidos por pieza. Detrás de la cadena hay una cinta entintada y el papel continuo. Detrás del papel hay 120 ó 132 pequeños martillos que golpean la hoja en el momento junto cuando el carácter correcto está en la posición correcta.

1403-Esquema.jpg
1403-Esquema.jpg (84.91 KiB) Visto 2299 veces


Como muchas impresoras de la época, usa papel con perforaciones en los lados, usado por el tractor de alimentación. Una cinta de control de transporte o más tarde un buffer, bajo control del programa especifica la longitud de la línea y la forma en que está a punto de comenzar la impresión de modo que pueda usarse papel de distintos tamaños.

El arrastre del papel consiste en dos juegos de tractores (un par debajo de la unidad de martillos y otro par encima) movidos por un circuito de aceite formado por una unidad hidráulica, una bomba de engranajes, un juego de válvulas (se diferencia el salto de una línea y el de varias) y un cárter que es el depósito de aceite.

La capacidad de la impresora de sobreimprimir fue usada para generar una amplia escala de grises. Muchas imágenes fueron escaneadas y podían reproducirse en la 1403. La más notable fue la Mona Lisa. Algunas personas fueron capaces de utilizar el ritmo de los martillos de impresión para generar las frecuencias deseadas y reproducir música. Son máquinas enormes y ruidosas, especialmente cuando la tapa esta levantada.

1403-Print.jpg
1403-Print.jpg (121.17 KiB) Visto 2299 veces



1405 Disk Storage Unit
Este dispositivo es una unidad de disco duro formado por 25 discos (Model 1) o 50 discos (Model 2) de dos pies de diámetro, recubiertos con óxido ferroso por ambos lados, y montados separados en un eje vertical que gira a 1.200 rpm.

Cada disco dispone de dos caras con 200 pistas concéntricas cada una, y divididas en 5 sectores. La cara superior contiene los sectores del 0 al 4 y la cara inferior los sectores del 5 al 9. En total hay 2.000 sectores por disco y en cada uno se pueden almacenar 200 caracteres. Cada disco tiene una capacidad de almacenamiento de 400.000 caracteres, con una capacidad total del 10 millones de caracteres para el Model 1 y de 20 millones de caracteres para el Model 2.

1405-DiscStorage.jpg
1405-DiscStorage.jpg (102.99 KiB) Visto 2299 veces


La información puede ser grabada o leída por un brazo con forma de tenedor que contiene dos cabezales de lectura/escritura, una para cada cara del disco. El cabezal se mueve verticalmente para acceder al disco deseado, y horizontalmente para acceder a la pista. Se pueden leer/escribir hasta 22.500 caracteres por segundo, con un tiempo de acceso de entre 100 ms y 800 ms., dependiendo de la distancia a recorrer por el brazo.

Cada carácter dispone de 7 bits, 6 para el carácter en sí y uno extra de paridad. Al leer la información se comprueba la paridad de los caracteres leídos y se detiene y avisa en caso de error.

Cada sector en el disco está direccionado por un número de 7 dígitos: el primero indica la unidad de almacenamiento, los cuatro siguientes indican la pista, el sexto dígito indica el sector y el séptimo siempre debe ser 0.
Las unidades de disco permiten el uso de ficheros indexados de acceso aleatorio en lugar de los clásicos ficheros secuenciales. De esta forma un programa puede localizar directamente un registro, actualizarlo y volverlo a grabar.

El compilador de SPS dispone de 5 instrucciones específicas para manipular las unidades de disco.

Existe la unidad de disco IBM 1301 con unas prestaciones superiores ya que dispone de un cabezal para cada cara del disco, gira a 1.800 rpm, una velocidad de lectura/escritura de 75.000 caracteres por segundo, capacidad de 25 millones de caracteres y la longitud del registro es variable. Estas características permiten unas técnicas de programación más avanzadas.


1406 Storage Unit
Este dispositivo es un componente adicional que permite ampliar la capacidad de memoria de un sistema 1401 con 4 KB hasta los 16 KB. Esta ampliación de memoria amplía el número de aplicaciones que podremos usar.

Existen tres modelos, el Model 1 con 4 KB, el Model 2 con 8 KB y el Model 3 con 12 KB, que amplían la memoria disponible hasta los 8 KB, 12 KB y 16 KB respectivamente.

1406-Esquema.jpg
1406-Esquema.jpg (91.2 KiB) Visto 2299 veces


El uso de memoria extra nos permitirá acceder a varias funciones no disponibles en el equipo básico, como el “Read Release” y el “Punch Release” que mejora el rendimiento de las operaciones de entrada/salida, o el uso de las 132 columnas en la impresora 1403.

Para activar las funciones de impresión que proporciones este dispositivo es necesario manipular el switch circular del panel de control secundario que hay justo debajo del panel de control principal de la unidad 1401.

El sistema 1401 utiliza memorias de ferrita para almacenar instrucciones y datos. Cada placa de memoria de ferrita direcciona un bit dentro de un rango de direcciones, y disponiendo varias memorias en paralelo podemos manipular el byte completo. Cualquier dirección de memoria disponible es accesible de forma individual y permite al 1401 realizar operaciones aritméticas directamente en la memoria.


1407 Console Inquiry Station
Esta consola permite de forma rápida y directa que el operario se comunique con la unidad central 1401. Con forma de máquina de escribir electrónica, dispone de un juego de 64 caracteres: 10 dígitos (0-9), 26 letras (A-Z) y 28 caracteres especiales.

Viene instalada en una mesa que deja espacio en el lado izquierdo para que el operario pueda colocar documentación, libretas u otros objetos que puedan ser necesarios.

1407-Esquema.jpg
1407-Esquema.jpg (94.65 KiB) Visto 2299 veces


Para realizar una petición el sistema 1401 debe tener activo el modo “RUN” en el panel principal, y el usuario debe pulsar el botón “REQUEST ENTER”. Tan pronto como el sistema está libre para procesar la petición se ilumina el botón. A continuación el operario utiliza el teclado para introducir la petición, el sistema 1401 la procesa y la luz se apaga. Estas peticiones permiten consultar o manipular los datos de un dispositivo de almacenamiento, modificar un programa o acceder directamente a la memoria del sistema. La respuesta puede ser impresa en papel.

Esta consola es especialmente útil cuando se usa conjuntamente con una unidad de disco tipo 1405 ya que el sistema 1401 dispone de instrucciones que nos permiten manipular e imprimir los registros.


026 Printing Card Punch
El sistema 1401 dispone de la consola 1407 para realizar consultas o dar instrucciones a la unidad central, pero la forma habitual para poder compilar programas o tareas de entrada de información se realizaba a través de perforadoras de tarjetas como ésta, anteriores al sistema 1401 pero compatibles en cuanto a la codificación de las tarjetas.

La impresora perforadora de tarjetas IBM 026 fue introducida en julio de 1949, como evolución del modelo 024, que no disponía de impresora. A diferencia de otros periféricos, éste no va conectado a la unidad 1401 y funciona de forma independiente. Fueron reemplazadas a partir de 1964 por el modelo 029, requerida por el IBM System/360 ya que utiliza el carácter EBCDIC en lugar de la BCD de la serie 7000 y anteriores.

026-Esquema.jpg
026-Esquema.jpg (94.78 KiB) Visto 2299 veces


Las tarjetas en blanco se introducen automáticamente desde la bandeja de entrada que hay en la parte superior derecha, o manualmente a través de una ranura en el lado derecho. Se trabaja con la tarjeta que hay enfrente del teclado, y a su izquierda está la tarjeta anterior. Cada vez que el usuario pulsa una tecla se perfora una columna de la tarjeta con la codificación correspondiente, se imprime el carácter en la parte superior de la tarjeta y las tarjetas se mueven una posición hacia la izquierda. Cuando finaliza la perforación de una tarjeta se mueve hasta la posición central, y la tarjeta central se mueve hacia la izquierda donde un mecanismo la coloca en la bandeja de salida que hay en la parte superior izquierda. Las bandejas de entrada y salida permiten colocar hasta 500 tarjetas cada una.

026-Esquema_2.jpg
026-Esquema_2.jpg (104.01 KiB) Visto 2299 veces


El teclado dispone de varias teclas especiales: “NUM” convierte parte del teclado en numérico, “SKIP” actúa como un tabulador y “DUP” permite duplicar la columna actual con el contenido de esa columna de la tarjeta anterior. La tecla de retroceso sólo es útil en ciertos casos.

En la parte superior del teclado hay varios interruptores: "AUTO FEED" activa la alimentación automática de tarjetas desde la bandeja de entrada cada vez que se perfora la columna 80 o se pulsa la tecla "REL", "PRINT" imprime el carácter pulsado en la fila superior de la tarjeta perforada para facilitar su lectura y "AUTO SKIP / AUTO DUP" permite duplicar una tarjeta a partir del contenido de la anterior.

La máquina se puede programar con una tarjeta "programa", una tarjeta perforada ordinaria que envuelve un tambor alojado en un compartimento en la parte superior central. El tambor se mueve en sincronía con la tarjeta actual y es leída por pequeñas ruedas dentadas. Permite ejecutar ciertas instrucciones como "DUP" o "SKIP", y forzar una tabulación cuando se llega a una columna determinada. Esto facilita y acelera la entrada de datos.

Hubo un enorme mercado para los operadores de perforadoras de tarjetas en las décadas de los años 1950 y 60. Un operador experto en aplicaciones de entrada de datos, con la ayuda de una tarjeta de programa bien diseñada, podía perforar hasta 200 tarjetas por hora.


729 Magnetic Tape Unit
La Unidad de Cinta Magnética IBM 729 usa cintas magnética de 12,7 mm de ancho y hasta 730 m de largo, en carretes de hasta 267 mm de diámetro. El uso de columnas de vacío entre la cinta y los rodillos de las cabezas de lectura/escritura permite la rápida aceleración de la cinta. Un metro de cinta de aluminio colocado en los extremos de la cinta indican el inicio o fin de la misma, y un anillo de plástico en la parte posterior del carrete de la cinta se usa para activar la protección contra escritura.

La cinta tiene siete pistas paralelas, seis para datos y una de paridad. Las cintas con datos en forma de caracteres (BCD) se grababan con paridad par y las cintas binarias se grababan con paridad impar. Un GAP de 19 mm entre registros da tiempo al mecanismo para detener la cinta. Inicialmente la velocidad de la cinta es de 190 cm/s y la densidad de grabación es de 79 caracteres por cm (200 por pulgada). Modelos posteriores soportan hasta 219 y 315 caracteres por cm. A 79 caracteres por cm, una sola cinta de 730 m puede almacenar alrededor de 50.000 tarjetas perforadas (alrededor de 4.000.000 de palabras de seis bits).

729-Esquema.jpg
729-Esquema.jpg (103.38 KiB) Visto 2299 veces


El uso de cintas magnéticas permite el intercambio de información entre sistemas distintos, y su procesamiento es entre 50 y 100 veces más rápido que con el uso de tarjetas perforadas. Por otra parte, una misma cinta se puede leer repetidas veces sin necesitar de la intervención de un operario. Esto aumenta el rendimiento del sistema y reduce el tamaño de la información considerablemente.

Se fabricaron seis modelos distintos:
- Model I: Fue introducido para las computadoras IBM 709 y IBM 705 III, con el mismo aspecto que el IBM 727, y usaba tubos de vacío. El uso de cabezales dobles permitía verificar la escritura.
- Model II: Introducido para la serie IBM 700/7000, usaba circuitos transistorizados y tenía un aspecto nuevo. Soportaba dos tipos de densidad (79 y 219).
- Model III: Alta velocidad (286 cm/s) y densidad doble (219).
- Model IV: Alta velocidad (286 cm/s) y densidad normal y doble (79, 219).
- Model V: Alta densidad (315).
- Model VI: Alta velocidad (286 cm/s) y alta densidad (315).

La serie 729 fue reemplazada por unidades de 9 pistas introducidas con el IBM System/360.

El prototipo de la unidad 729 tenía dos luces indicadoras de estado nombradas “Select” (Selección) y “Idle” (sin trabajos pendientes). Durante su desarrollo, el vice-presidente visitó el laboratorio y les dijo a los ingenieros "¡Esto es inaceptable! Las máquinas IBM NUNCA están “idle”!" Las etiquetas de las luces fueron rápidamente cambiadas a “Select” y “Ready”.

En el año 2008, una unidad de cinta IBM 729 Mark 5 fue puesta en servicio en la Sociedad del Museo Australiano de Computadoras para leer 173 cintas de datos de misiones lunares del Programa Apolo, que se creían perdidas y habían sido encontradas recientemente.


EL LENGUAJE SPS
El lenguaje SPS (Symbolic Programming System) es un ensamblador para el sistema IBM 1401 desarrollado en 1959 por Gary Mokotoff, del Departamento de Programación Aplicada de IBM. Era el lenguaje de programación con el que se comercializó el sistema.

Existían dos versiones de SPS: la SPS-1 podía funcionar en equipos con 1.4 KB, y la SPS-2 necesitaba un mínimo de 4 KB.

La versión SPS-1 perfora una tarjeta por cada instrucción en su primera pasada y estas tarjetas se vuelven a leer durante la segunda pasada. Esta versión fue rápidamente descartada para usar otros ensambladores que aprovechaban los habituales 4 KB de memoria y que permitían grabar varias instrucciones en una misma tarjeta.

Con el tiempo, nuevos ensambladores y lenguajes de programación aparecieron para el sistema 1401, sustituyendo al SPS. Así, en 1960 apareció el “1401 Autocoder”, ensamblador de amplio uso que admitía macros, y que usaba la unidad de cintas. En 1962 Mokotoff participó en el desarrollo del compilador “1401 Fortran”, uno de los primeros de este lenguaje.

Ventajas del SPS:
- Simplifica la programación gracias al uso de mnemotécnicos.
- Permite el uso de etiquetas.
- El proceso de ensamblado detecta errores en los códigos usados y direcciones de memoria inválidas.
- Facilita la revisión del programa ya que se pueden incorporar comentarios que se listan junto con las instrucciones.

Los programadores escriben el programa en unas hojas de codificaciones especiales donde las distintas partes de cada línea del programa se debe colocar en su columna correspondiente. Una vez compilado el programa se imprimirá una copia en la impresora con cierta información extra tanto en la cabecera como en el pie del listado.

SPS-Assembled.jpg
SPS-Assembled.jpg (150.67 KiB) Visto 2299 veces


Para poder compilar el programa, primero se debe grabar el código fuente en unas tarjetas perforadas. Cada tarjeta contiene una línea de código que debe seguir un formato concreto, como se puede ver en la siguiente imagen.

IBM1620SPSpunchcard.jpg
IBM1620SPSpunchcard.jpg (80.65 KiB) Visto 2299 veces


El siguiente gráfico muestra como se realizaba el proceso de compilación de un programa.

- En la bandeja de entrada se colocan 3 bloques de tarjetas: la primera parte del compilador SPS, las tarjetas con el código fuente y la segunda parte del compilador SPS. En la bandeja interna se colocan tarjetas en blanco.
- Al ejecutar la primera parte de la compilación, las tarjetas que contienen las dos partes del compilador se depositan en el apilador “NR”, y las tarjetas con el código fuente en el apilador “1”. Se perforan unas tarjetas con el resultado de la primera parte de la compilación, llamado “Partial” y se depositan en el apilador “4”. Una instrucción HALT detiene el sistema para que el operario pueda realizar las tareas necesarias.
- Las tarjetas del apilador “4” con el parcial de la compilación se deben colocar en la bandeja de entrada y pulsando “START” se ejecuta la segunda parte de la compilación.
- El programa ejecutable se perfora en unas tarjetas y se depositan en el apilador “NP” y las tarjetas con el parcial de la compilación se colocan en el apilador “8/2” para ser destruidas.
- Haciendo un “RESET” del sistema y cargando las tarjetas con el código ejecutable podremos ejecutar el programa.

SPS-Pass1_2.jpg
SPS-Pass1_2.jpg (55.04 KiB) Visto 2299 veces


Mnemotécnicos reconocidos por el ensamblador SPS

Los programas se dividen en tres partes:
1. Area Definition: Lugar donde se declaran las áreas de la memoria donde se guarda información de trabajo.
2. Instructions: Contiene las líneas del programa.
3. Processor Controls: Directivas usadas durante el proceso de ensamblado.

***


DOCUMENTACION
Una vez más, el FTP de “bitsavers.org” nos permite conseguir multitud de ficheros con manuales e información técnica.
- http://ftp.df.lth.se/pub/bitsavers.org/pdf/ibm/140x/

Recomiendo especialmente el manual de referencia del sistema y un libro de programación que no es de IBM:
- http://ftp.df.lth.se/pub/bitsavers.org/pdf/ibm/140x/A24-1403-5_1401_Reference_Apr62.pdf
- http://ftp.df.lth.se/pub/bitsavers.org/pdf/ibm/140x/A_Guide_to_1401_Programming_1961.pdf

Manuales.jpg
Manuales.jpg (39.46 KiB) Visto 2299 veces


EL EMULADOR
El IBM 1401 dispone de varios emuladores, pero de todos los que he probado me quedo con el “IBM 1401 Emulator v1.5”, programado con Delphi por Rob Storey en el año 2002.

Emulator_General.gif
Emulator_General.gif (38.33 KiB) Visto 2299 veces


Es fácil de usar, pero sobretodo tiene la particularidad de que incluye un sistema de scripts que nos permite automatizar procesos que evitan que tengamos que estar tocando un sinfín de botones para hacer cualquier cosa.

El emulador se compone de una ventana principal que representa el panel principal del equipo, y seis ventanas más que podemos abrir o cerrar a voluntad:

CARD READER: Panel del lector/perforador de tarjetas.
CHAR.SET PROC: Tabla de equivalencias entre el charset propio del sistema y el del PC.
CORE: Muestra el contenido de la memoria.
PRINTER: Impresora.
TAPE UNITS: Panel con el estado de las seis unidades de cinta.
TRACE: Muestra el estado interno del sistema.

La ventana principal contiene varios marcos donde podemos ver el valor de los registros del sistema, los siete switches del panel de control original, varios botones para ejecutar scripts, arrancar, detener o resetear el sistema, y tenemos la opción de ejecutar el programa en modo normal, turbo o paso a paso. En la parte inferior hay seis botones que abren o cierran las ventanas secundarias. El botón “PwrOff” cierra el emulador.


Instalación del emulador
La versión del emulador que adjunto no requiere instalación y simplemente hay que se copiar los archivos en una carpeta. He creado varias subcarpetas para separar documentación, scripts y programas.

En la carpeta raíz hay dos programas de ejemplo con sus scripts correspondientes: “HELLO” y “PZAHL”. El primero es el clásico programa que imprime “HELLO WORLD” y el segundo calcula números primos. En ambos casos, se adjunta un fichero “.SPS” con el código fuente del programa, un “.OCL” con el script que se encarga de compilar y ejecutar el programa y un “.CRD” con el programa ya compilado y listo para ser cargado y usado. También están los ficheros “SSPS-1.CRD” y “SSPS-2.CRD” que contienen el compilador de SPS.

La carpeta “Programs” contiene programas en formato tarjeta perforada listos para ser ejecutados, y la carpeta “Scripts” contiene scripts que pueden requerir de ficheros que hay en la otra carpeta.


Descargar "IBM 1401 Emulator" para Windows:
http://www.publicidadz.es/temp/download/IBM-1401_Emulator.rar


COMPILANDO UN PROGRAMA EN EL EMULADOR
El proceso de compilar un programa SPS es bastante simple, y básicamente consiste en hacer una especie de “sándwich” con el bloque de tarjetas que contienen el código fuente del programa y los dos bloques de tarjetas que contienen el compilador.

A modo de ejemplo, vamos a compilar el clásico programa “Hello World”.

Estos son los pasos a seguir:
- Pulsamos el botón “Reset” del panel principal. No es necesario si no hemos ejecutado nada previamente.
- Pulsamos el botón “Open” del panel “1402 Card Reader/Punch” y seleccionamos el fichero “SSPS-1.CRD”. Está formado por un bloque de 88 tarjetas que contienen la primera parte del compilador de SPS.
- Volvemos a pulsar el botón “Open” y seleccionamos el fichero “HELLO.SPS”, que contiene el código fuente del programa a compilar. Está formado por un bloque de 5 tarjetas. Atención porque, por defecto, el cuadro de diálogo no muestra los ficheros con esta extensión.
- Volvemos a pulsar el botón “Open” y seleccionamos el fichero “SSPS-2.CRD”. Está formado por un bloque de 115 tarjetas que contienen la segunda parte del compilador de SPS.
- Activamos el switch “A” del panel principal.
- Pulsamos el botón “Load” para cargar en memoria el contenido de la primera tarjeta perforada.
- Pulsamos el botón “Start” para ejecutar el “bootstrap” contenido en la primera tarjeta. Una parte del compilador se carga, se ejecuta y se detiene al encontrar una instrucción HALT que permite que el operario conecte la impresora.
- Volvemos a pulsar “Start” para continuar con la ejecución del compilador. Otra instrucción HALT detiene la ejecución y permite que el operario compruebe que hay tarjetas perforadas en blanco en la bandeja correspondiente, y para poder mover las tarjetas desde la bandeja del lector “Read 1” a la bandeja del lector principal para que el compilador pueda hacer la segunda pasada.
- Volvemos a pulsar “Start” para finalizar la compilación. En la impresora aparece un resumen del proceso de compilación en la ventana de la impresora y el programa compilador queda en la bandeja “Punch Normal”. El emulador graba automáticamente el programa en un fichero con extensión “.CRD”, listo para ser ejecutado.


EJECUTANDO UN PROGRAMA EN EL EMULADOR
El proceso de ejecutar un programa es muy simple ya que simplemente consiste en cargar un bloque de tarjetas en memoria y ejecutarlo.

Estos son los pasos a seguir:
- Pulsamos el botón “Reset” del panel principal. No es necesario si no hemos ejecutado nada previamente.
- Pulsamos el botón “Open” del panel “1402 Card Reader/Punch” y seleccionamos el fichero “HELLO.CRD” que contiene las tarjetas perforadas del programa “Hello World” compilado anteriormente.
- Pulsamos la tecla “Load” para cargar en memoria el contenido de la primera tarjeta perforada.
- Pulsamos el botón “Start” para ejecutar el “bootstrap” contenido en la primera tarjeta. El programa se carga y ejecuta.
- Aparece “HELLO WORLD” en la impresora y finaliza la ejecución del programa.
- Podemos volver a pulsar el botón “Start” para ejecutar el programa de nuevo, o pulsar el botón “Reset” para inicializar el sistema.


USANDO LOS SCRIPTS
El emulador dispone de un sencillo pero potente sistema de scripts que nos permite realizar cualquier proceso de forma automática.

Estos ficheros de proceso por lotes tienen la extensión “.OCL” y contienen un comando por línea, que al ser ejecutado tiene el mismo efecto que realizar una acción en alguna de las ventanas del emulador.

Al ejecutar un script aparece una ventana en la que se pueden mostrar textos y seleccionar opciones.

Ejemplo de script:
Emulator_Script.gif
Emulator_Script.gif (13.89 KiB) Visto 2299 veces


Al ejecutar un script se pueden pasar parámetros para ser consultados con un “&” más el número de parámetro correspondiente.

Se reconocen los siguientes comandos:

Start
Tiene el mismo efecto que pulsar el botón “Start” del panel principal.

Reset
Tiene el mismo efecto que pulsar el botón “Reset” del panel principal.

Switch Switch Estado
Pone un switch en el estado indicado. El switch es una letra entre “A” y “G”, y el estado puede ser “On” o “Off”.

Core Size Tamaño_Memoria
Indica el tamaño de la memoria disponible. Puede ser 1400, 2000, 4000 o 8000.

IARCheck valor
Asigna el valor indicado al registro IA.

Turbo Estado
Activa o desactiva el check “Turbo” del panel principal. Estado puede ser “On” o “Off”.

Display ‘Texto’
Muestra un texto en la ventana de ejecución del script y queda en espera de que se pulse la tecla “Continue” para continuar con la ejecución del script o “Cancel” para detenerlo. Un único “Display” puede mostrar varias líneas de texto pudiendo forzar el salto de línea con “CRLF”.

Option (‘Texto’)
Concatenado en un “Display”, muestra el texto en la ventana del script y monta una matriz con tantos elementos como “Option” existan. El valor de la opción seleccionada se almacena en la variable “OptNum” y puede ser consultada posteriormente.

BColour $Color_Fondo TColour $Color_Texto
Permite cambiar el color de fondo y del texto en la ventana de ejecución de scripts. Los colores se indican mediante valores hexadecimales de 6 dígitos con el símbolo $ delante.

CharMap 'Caracteres'
Contiene una cadena de 64 caracteres con las equivalencias entre el charset del sistema IBM 1401 y el ASCII del PC.

Hide Ventana
Oculta la ventana correspondiente del emulador. Ventana debe tener uno de los siguientes valores: “CoreWindow”, “ReaderWindow”, “PrinterWindow”, “TraceWindow” o “TapeWindow”.

Show Ventana
Muestra la ventana correspondiente del emulador. Ventana debe tener uno de los siguientes valores: “CoreWindow”, “ReaderWindow”, “PrinterWindow”, “TraceWindow” o “TapeWindow”.

Deck ‘Fichero’ | Bandeja
Carga en la bandeja de entrada las tarjetas del fichero con extensión “.CRD” indicado, o muestra el contenido de las tarjetas de la bandeja indicada.

LoadCard
Tiene el mismo efecto que pulsar el botón “Load” del panel de las tarjetas perforadas.

Save dispositivo 'Fichero'
Graba el contenido del dispositivo de salida indicado, en un fichero con extensión “.CRD” o “.LST”. El dispositivo puede ser “Punch” o “Print”.

Mount Tape ‘fichero’
Monta el fichero con extensión “.BCD” en la unidad de cinta indicada. Hay 6 unidades de cinta disponibles, desde “Tape1” a “Tape6”.

Set Prot Tape Estado
Activa o desactiva el modo de protección de escritura de la unidad de cinta indicada. Hay 6 unidades de cinta disponibles, desde “Tape1” a “Tape6”, y estado puede ser “On” o “Off”.

:Label
Cualquier texto que empiece con los dos puntos se interpreta como una etiqueta (label) al que se puede saltar con Goto.

Goto Label
Salta a la etiqueta indicada.

Call Label
Salta a la etiqueta indicada como si fuera una subrutina.

Return
Vuelve a la línea siguiente de la instrucción “Call” que la ha llamado.

Exec “Fichero” | Fichero(‘param1’,’param2’,param3, …)
Ejecuta el fichero de script indicado, con la opción de pasar parámetros numéricos o alfanuméricos.

If variable Condición valor Goto Label
Evalúa una condición entre el valor de un registro y un valor indicado, saltando a una etiqueta si se cumple. El valor de la variable puede ser “OptNum”, “IAReg”, “AAReg”, “BAReg” o un parámetro de script.

Exit o Quit
Finaliza la ejecución del script.


ROPE/1401 – EL VISUAL STUDIO DEL 1401
Programado en Java por Ronald Mak a principios del año 2005, este framework es un entorno de desarrollo completo con el que podemos editar, ejecutar y depurar programas en Autocoder. Actualmente está disponible la versión 0.7 del año 2008.

ROPE1401.gif
ROPE1401.gif (73.35 KiB) Visto 2299 veces


Funcionamiento
Al iniciar el programa aparece la ventana “EDIT” desde donde podemos editar programas en Autocoder. Con el botón “Browser” podemos abrir un fichero con el código fuente, con extensión “.S”. Con el botón “Assembler Options” podemos configurar las condiciones de ejecución del programa.

Al pulsar el botón “Assemble file” se abre la ventana “EXEC”, donde se ejecutar el programa compilado. Esta ventana contiene distintos botones. El botón “Start program” aparecerá activo si el programa se ha compilado correctamente, y al pulsarlo abre la ventana “PRINTOUT”, que simula la impresora, y ejecuta el programa. Al ejecutar una instrucción “HALT” se detiene y podemos pulsar “Continue program” para continuar con la ejecución o “Quit program” para detener el programa. Podemos depurar los programas colocando “breakpoints” en las líneas del listado que tienen una cruz azul delante y usando los botones “Single step” y “Auto step”. También se puede controlar la velocidad de ejecución. Con el botón “Memory…” podemos ir abriendo ventanas que contienen el volcado de un rango de memoria y con “Console” una pequeña consola nos muestra el valor de los registros y otros valores junto con los 7 switches del panel de control original. Con “Runtime data” podemos seleccionar los ficheros que contienen tarjetas perforadas o unidades de cinta, y con botón “Restart simulator” podemos reiniciar la ejecución del programa en Autocoder.

La información de las distintas ventanas se puede ir actualizando automáticamente.

Instalación de ROPE/1401
La versión del framework que adjunto no requiere instalación y simplemente hay que se copiar los archivos en una carpeta. He creado varias subcarpetas para separar la documentación y los programas.

En la carpeta raíz está el programa en Java y el fichero BAT con el que entraremos en el framework. Hay otros ficheros necesarios para su correcto funcionamiento.

La carpeta “Programs” contiene los fuentes de los programas con Autocoder, con extensión “.S”, y tres ficheros más por programa con extensiones “CD”, “LST” y “OUT”, que se generan durante la compilación o ejecución del programa.

La carpeta “Docs” contiene distinta documentación sobre el framework y el Autocoder.


Descargar "ROPE/1401" en Java:
http://www.publicidadz.es/temp/download/ROPE-1401_Framework.rar


RESTAURANDO UN IBM 1401
Robert Garner en Behind the Scenes, Invitado por Blog0 comenta:

“¿Hay alguien dispuesto a liderar un proyecto para restaurar un IBM 1401? "Mike Cheponis entusiasmado preguntó con un brillo en sus ojos. Conocí a Mike después de asistir a varias de sus sesiones de restauración de DEC PDP-1 en el Computer History Museum. Si bien la mayor parte de mis horas nocturnas universitarias se gastaron en diciembre, UNIVAC, y las computadoras SDS, tuve poco contacto con IBM en su día. Después de diseñar procesadores centrales y estaciones de trabajo de vanguardia en Xerox (1979) y Sun (1984), con una nueva posición en IBM Research y una curiosidad sobre la historia de las primeras computadoras, yo ingenuamente acepté el reto. Unos momentos más tarde, le pregunté: "¿Qué es exactamente un IBM 1401?

Restaurar_Team.jpg
Restaurar_Team.jpg (66.9 KiB) Visto 2299 veces


Yo también estaba intrigado sobre si incluso sería posible restaurar un equipo transistorizado de la década de los 60, especialmente después de treinta años de almacenamiento incontrolado en un ambiente cuestionable. Después de la publicación de "Un IBM 1401 necesita ayuda" anunciada en el “IBM San Jose Retirement Newsletter”, me alegré mucho cuando cerca de una docena de empleados de IBM dieron un paso adelante para devolver a la vida el 1401. Como la mayoría fueron en su día ingenieros de fabricación o de mantenimiento, no podría haber imaginado un mejor equipo de voluntarios experimentados y entusiastas, con narraciones de historias ingeniosas. Después de asegurar las donaciones, IBM y Maersk embalaron y enviaron el IBM 1401 y su documentación más crucial desde Alemania hasta el CHM en la primavera de 2004.

Cuando el IBM 1401 alemán llegó, el alcance del desafío nos impactó: una unidad central de procesamiento con 3.000 tarjetas de circuito impreso, un lector/perforador de tarjetas accionado mecánicamente, una impresora de línea controlada por una cadena hidráulica, y seis unidades de cinta de columna de vacío. La adquisición también vino con algunos equipos de tarjetas perforadas aún más antiguos: 077 Collator, 082 Sorter, 513 Reproducing Punch y 026 Key Punch. Todo sobre la que no sabía nada! El proyecto fue desalentador: no sólo implicaba la restauración de la electrónica de la unidad central, comparable a la del PDP-1, sino que la restauración de los otros equipos sería como la fijación de una docena de coches antiguos !!! También sería necesario consumir alrededor de 12.000 vatios de potencia a 50 Hz. Se necesitaba liderar un proyecto por cada uno de los diferentes subsistemas y un equipo humano lo suficientemente grande que aguantara un número indeterminado de años de trabajo.

Restaurar_View.jpg
Restaurar_View.jpg (68.34 KiB) Visto 2299 veces


A medida que el equipo comenzó a trabajar en el IBM 1401, la extensión de la corrosión se convirtió en preocupante, especialmente en las superficies expuestas, piezas mecánicas móviles y transistores. Las fundas metálicas de los transistores de germanio, sus cables y los diodos de cristal contenían hierro, y muchos se habían oxidado dando lugar a fallos extraños.

Mediante una depuración meticulosa de secuencias de instrucciones de diagnóstico del IBM 1401, ejecutadas paso a paso, un total de 130 fallos en tarjetas SMS fueron localizados y reparados. Trabajando en paralelo, el grupo de restauración de las unidades de cinta 729 decidió volver a fabricar por completo la mecánica del lector y la construcción a medida de una unidad de cinta analógica controlada por PC que emula la controladora de cinta del 1401. La impresora 1403 no requería mucho trabajo, pero los relés y la corrosión de las guías de manipulación del lector de tarjetas 1402 sí que lo necesitaron.

En 2007, como ya inquietaba que pudiéramos haber localizado un número de transistores oxidados imposible de reemplazar, recibí una llamada sorpresa ofreciendo otro IBM 1401 !!! Este sistema había estado operativo en una empresa hasta 1995 en el sótano deshumidificado en Darien, Connecticut. Instaladores locales lo extrajeron desde el sótano y cuando IBM y McCollisters lo enviaron al Museo, el IBM 1401 alemán parecían reconocer un rival hermano, y ofreciendo su último transistor defectuoso, comenzaron a comportarse correctamente !!! Como esperaba, sólo una treintena de tarjetas SMS defectuosas fueron encontradas en el segundo IBM 1401 y fue operativo a los seis meses. A pesar de que un único sistema 1401 comprende más de medio millón de componentes discretos, nuestros dos 1401 funcionaron de forma fiable durante muchos meses antes de un nuevo fallo. Ya en su época, se informaba que un 1401 podía funcionar sin problemas durante más de seis meses.

Restaurar_Part.jpg
Restaurar_Part.jpg (76.1 KiB) Visto 2299 veces


La mayor alegría para el equipo de voluntarios, que han dedicado más de 20.000 horas, no consiste en reparar el viejo equipo, sino en mostrar los "compusauros" a las familias y a los más pequeños. La luz en los ojos de los niños y adultos al ver funcionar las tarjetas perforadas en una unidad lectora, ser testigo de una impresora de cadena estrepitosa, estar delante de las unidades de cinta de tamaño humano, mirar boquiabiertos su gran tamaño, o como se sorprenden de su "bajo coste" (3 millones de dólares de hoy).

Los visitantes que experimentan nuestros IBM 1401 se sienten como si estuvieras en una máquina del tiempo tecnológico !!!

Restaurar_Show.jpg
Restaurar_Show.jpg (71.59 KiB) Visto 2299 veces


AGRADECIMIENTOS
Este artículo esta dedicado a todas las personas que hicieron posible la existencia de este sistema.


Buscando la IP de la W.O.P.R.

Avatar de Usuario
JoJo
Amiga 1200
Amiga 1200
Mensajes: 1042
Registrado: 03 Feb 2008, 22:45
Sistema Favorito: PC
primer_sistema: PC
consola_favorita: Nintendo SNES
Primera consola: (Otro)
Gracias dadas: 10 veces
Gracias recibidas: 30 veces

Re: IBM 1401 - Data Processing System

Mensajepor JoJo » 21 Jul 2015, 14:48

Gran monografia, muy interesante :)
PCP, el microcomputador de proposito general de 32 bits.
http://www.vieju.net

Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 3071
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 209 veces
Gracias recibidas: 282 veces
Contactar:

Re: IBM 1401 - Data Processing System

Mensajepor alt » 21 Jul 2015, 15:12

¡¡Muchísimas gracias!! :-D

Avatar de Usuario
Lord British
Amiga 2500
Amiga 2500
Mensajes: 4247
Registrado: 27 Jul 2010, 12:20
Gracias dadas: 11 veces
Gracias recibidas: 37 veces

Re: IBM 1401 - Data Processing System

Mensajepor Lord British » 21 Jul 2015, 22:31

¿Tenemos algo asi aqui en españa? y ¿si alguien tuviera algunos de estos equipos de la decadas de los 50, 60 y 70 se apuntarian a trabajar en su puesta al dia gratuitamente? todo esto viene en consecuencia al hilo del "Jollerismo - el caso contrario". no ceo que en españa nadie se atreviera a hacer un trabajo asi de restauracion.

Avatar de Usuario
jsj
Spectrum 48K Plus
Spectrum 48K Plus
Mensajes: 37
Registrado: 07 May 2015, 15:43
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS

Re: IBM 1401 - Data Processing System

Mensajepor jsj » 22 Jul 2015, 07:57

Lord British escribió:¿Tenemos algo asi aqui en españa? y ¿si alguien tuviera algunos de estos equipos de la decadas de los 50, 60 y 70 se apuntarian a trabajar en su puesta al dia gratuitamente? todo esto viene en consecuencia al hilo del "Jollerismo - el caso contrario". no ceo que en españa nadie se atreviera a hacer un trabajo asi de restauracion.

Hombre a nivel de ordenadores o "cacharros" de aquella época no conozco ejemplos patrios


Pero la Asociación de Amigos del Ferrocarril de Madrid son un grupo de gente que de forma altruista lleva unos cuantos años restaurando todo tipo de máquinas de tren y vagones "vintage".

Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 3071
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 209 veces
Gracias recibidas: 282 veces
Contactar:

Re: IBM 1401 - Data Processing System

Mensajepor alt » 22 Jul 2015, 09:07

Lord British escribió:¿Tenemos algo asi aqui en españa? y ¿si alguien tuviera algunos de estos equipos de la decadas de los 50, 60 y 70 se apuntarian a trabajar en su puesta al dia gratuitamente? todo esto viene en consecuencia al hilo del "Jollerismo - el caso contrario". no ceo que en españa nadie se atreviera a hacer un trabajo asi de restauracion.


Un ejemplo rápido, el del MIGS, aunque supongo que habrá más en otras universidades (Valencia, Sevilla, Zaragoza, Barcelona, donde sea):




A partir de 1'20'' sale un IBM 7090.


Volver a “Sistemas Varios”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados