La máquina de procesamiento de datos de tambor magnético IBM 650 es una de las primeras computadoras digitales producidas por IBM a mediados de la década de 1950. [1] [2] Fue la primera computadora producida en masa en el mundo. [3] Se produjeron casi 2.000 sistemas, el último en 1962, [4] [5] y fue la primera computadora en obtener una ganancia significativa. [5] La primera se instaló a finales de 1954 y fue la computadora más popular de la década de 1950. [6]
El 650 se comercializó para usuarios comerciales, científicos y de ingeniería como una versión de propósito general de las computadoras IBM 701 e IBM 702 , que tenían fines científicos y comerciales, respectivamente. [5] También se comercializó para usuarios de máquinas de tarjetas perforadas que pasaban de calcular perforaciones , como la IBM 604 , a computadoras. [7] : 5 [8]
Debido a su costo relativamente bajo y facilidad de programación , el 650 se usó para ser pionero en una amplia variedad de aplicaciones, desde modelar el desempeño de la tripulación de submarinos [9] hasta enseñar programación de computadoras a estudiantes de secundaria y universitarios. El IBM 650 se hizo muy popular en las universidades, donde una generación de estudiantes aprendió programación por primera vez. [10]
Fue anunciado en 1953 y mejorado en 1956 como IBM 650 RAMAC con la adición de hasta cuatro unidades de almacenamiento en disco. [11] El apoyo para el 650 y las unidades que lo componen se retiró en 1969.
El 650 era una computadora decimal codificada en dos direcciones , bicuinaria (tanto los datos como las direcciones eran decimales), con memoria en un tambor magnético giratorio . El soporte de caracteres fue proporcionado por las unidades de entrada / salida que convertían codificaciones de caracteres alfabéticos y especiales de tarjetas perforadas a / desde un código decimal de dos dígitos.
Historia
El primer 650 se instaló el 8 de diciembre de 1954 en el departamento del controlador de John Hancock Mutual Life Insurance Company en Boston. [12]
Se esperaba que el IBM 7070 (palabras decimales de 10 dígitos con signo), anunciado en 1958, fuera un "sucesor común de al menos el 650 y el [IBM] 705 ". [13] El IBM 1620 (decimal de longitud variable), introducido en 1959, se dirigió al extremo inferior del mercado. El estado sólido UNIVAC (una computadora de dos direcciones, palabras decimales firmadas de 10 dígitos) fue anunciado por Sperry Rand en diciembre de 1958 como respuesta al 650. Ninguno de ellos tenía un conjunto de instrucciones compatibles con 650.
Hardware
El sistema básico 650 constaba de tres unidades: [14]
- La Unidad de Consola IBM 650 [15] albergaba el almacenamiento del tambor magnético, el dispositivo aritmético (usando tubos de vacío) y la consola del operador.
- Unidad de potencia IBM 655 [16]
- Unidad de perforación de lectura de tarjetas IBM 533 o IBM 537 [17] [18] [19] El IBM 533 tenía alimentadores separados para lectura y perforación; el IBM 537 tenía una alimentación, por lo que podía leer y luego perforar en la misma tarjeta.
Peso: 5,400–6,263 libras (2,7–3,1 toneladas cortas; 2,4–2,8 t). [20] [21]
Unidades opcionales: [14]
- Perforadora de cinta a tarjeta IBM 46, modelo 3 [22]
- Perforadora de impresión de cinta a tarjeta IBM 47, modelo 3 [22]
- Unidad de almacenamiento en disco IBM 355 [23] Los sistemas con una unidad de disco se conocían como sistemas de procesamiento de datos IBM 650 RAMAC.
- Máquina de contabilidad IBM 407 [24]
- Unidad de lector de tarjetas IBM 543
- Unidad perforadora de tarjetas IBM 544
- Unidad de control IBM 652 (cinta magnética, disco) [25]
- Unidad de almacenamiento IBM 653 (cinta magnética, disco, almacenamiento central, registros de índice, aritmética de coma flotante) [26]
- Unidad alfabética auxiliar IBM 654
- Unidad de cinta magnética IBM 727
- Estación de consultas IBM 838 [27]
Memoria principal
La memoria de tambor giratorio proporcionó 1,000, 2,000 o 4,000 palabras de memoria (un número con signo de 10 dígitos o cinco caracteres por palabra) en las direcciones 0000 a 0999, 1999 o 3999 respectivamente. [28] [29] Las palabras en la batería se organizaron en bandas alrededor del tambor, cincuenta palabras por banda y 20, 40 u 80 bandas para los respectivos modelos. Se podía acceder a una palabra cuando su ubicación en la superficie del tambor pasaba por debajo de los cabezales de lectura / escritura durante la rotación (girando a 12.500 rpm , el tiempo medio de acceso no optimizado era de 2,5 ms ). Debido a este tiempo, la segunda dirección en cada instrucción fue la dirección de la siguiente instrucción. Los programas podrían optimizarse colocando instrucciones en direcciones que serían inmediatamente accesibles cuando se completara la ejecución de la instrucción anterior. IBM proporcionó un formulario con diez columnas y 200 filas para permitir a los programadores realizar un seguimiento de dónde colocan las instrucciones y los datos. Posteriormente se proporcionó un ensamblador , SOAP (Programa de ensamblaje óptimo simbólico) que realizó una optimización aproximada. [30] [31]
Las computadoras LGP-30 , Bendix G-15 e IBM 305 RAMAC también usaban tubos de vacío y memoria de tambor. Pero eran bastante diferentes al IBM 650.
Las instrucciones leídas del tambor fueron a un registro de programa (en la terminología actual, un registro de instrucciones ). Los datos leídos del tambor pasaron por un distribuidor de 10 dígitos . El 650 tenía un acumulador de 20 dígitos , dividido en acumuladores superior e inferior de 10 dígitos con un signo común. La aritmética se realizó mediante un sumador de un dígito. La consola (interruptores de 10 dígitos, un interruptor de señal y 10 luces de visualización bi-quinarias), el distribuidor, los acumuladores superior e inferior eran todos direccionables; 8000, 8001, 8002, 8003 respectivamente.
Unidad de almacenamiento IBM 653
La unidad de almacenamiento IBM 653 opcional se introdujo el 3 de mayo de 1955 y, en última instancia, proporcionó hasta cinco funciones: [32]
- Controlador de cinta magnética (para unidades de cinta magnética IBM 727) (10 códigos de operación adicionales)
- Controlador de almacenamiento en disco (mejora de 1956 para la entonces nueva unidad de almacenamiento en disco IBM 355) (5 códigos de operación adicionales)
- Sesenta palabras de 10 dígitos de memoria de núcleo magnético en las direcciones 9000 a 9059; una pequeña memoria rápida (este dispositivo proporcionó un tiempo de acceso a la memoria de 96 µs , una mejora bruta de 26 veces en relación con el tambor giratorio), necesaria para una cinta y un búfer de E / S de disco. (5 códigos de operación adicionales)
- Tres registros de índice de cuatro dígitos en las direcciones 8005 a 8007; Las direcciones de tambor se indexaron agregando 2000, 4000 o 6000, las direcciones centrales se indexaron agregando 0200, 0400 o 0600. Si el sistema tenía el tambor de 4000 palabras, entonces la indexación era agregando 4000 a la primera dirección para el registro de índice A, agregando 4000 a la segunda dirección para el registro de índice B, y agregando 4000 a cada una de las dos direcciones para el registro de índice C (el indexación para sistemas de 4000 palabras solo se aplica a la primera dirección). Los sistemas de 4000 palabras requerían circuitos de lectura / escritura transistorizados para la memoria del tambor y estaban disponibles antes de 1963. (18 códigos de operación adicionales)
- Punto flotante : las instrucciones aritméticas admiten una mantisa de ocho dígitos y una característica de dos dígitos (exponente de desplazamiento): MMMMMMMMCC , que proporcionan un rango de ± 0,00000001E-50 a ± 0,99999999E + 49. (siete códigos de operación adicionales)
Conjunto de instrucciones
Las 650 instrucciones constaban de un código de operación de dos dígitos , una dirección de datos de cuatro dígitos y la dirección de cuatro dígitos de la siguiente instrucción. El letrero se ignoró en la máquina básica, pero se usó en máquinas con características opcionales. La máquina base tenía 44 códigos de operación. Se proporcionaron códigos de operación adicionales para opciones, como punto flotante, almacenamiento central, registros de índice y dispositivos de E / S adicionales. Con todas las opciones instaladas, había 97 códigos de operación. [32]
La instrucción de búsqueda de tabla (TLU) podría comparar una palabra de 10 dígitos referenciada con 48 palabras consecutivas en la misma banda de batería en una revolución de 5 ms y luego cambiar a la siguiente banda a tiempo para las siguientes 48 palabras. Esta hazaña fue aproximadamente un tercio de la velocidad de una máquina binaria mil veces más rápida en 1963 (1500 microsegundos en el IBM 7040 a 5000 microsegundos en el 650) para buscar 46 entradas siempre que ambas estuvieran programadas en ensamblador. Había una instrucción Igual de búsqueda de tabla opcional, con el mismo rendimiento.
La instrucción Read (RD) lee una tarjeta de 80 columnas de datos numéricos en diez palabras de memoria; la distribución de dígitos a palabras determinada por el cableado del panel de control del lector de tarjetas . Cuando se utiliza con el dispositivo alfabético de la unidad 533 Reader Punch, se puede leer una combinación de columnas numéricas y alfanuméricas (máximo de 30 columnas alfanuméricas). [7] Una función de expansión permitió más columnas alfanuméricas, pero ciertamente no más de 50, ya que solo diez palabras (cinco caracteres por palabra) se almacenaron en el tambor mediante una operación de lectura de tarjeta. [ cita requerida ]
Los códigos básicos de funcionamiento de la máquina eran: [33]
17 | AABL | Agregue absoluto al acumulador inferior |
15 | Alabama | Agregar al acumulador inferior |
10 | AU | Agregar al acumulador superior |
45 | BRNZ | Bifurcación en acumulador distinto de cero |
46 | BRMIN | Bifurcación en acumulador negativo |
44 | BRNZU | Bifurcación en distinto de cero en acumulador superior |
47 | BROV | Rama en desbordamiento |
90-99 | BRD | Bifurcación en 8 en las posiciones del distribuidor 1-10 ** |
14 | DIV | Dividir |
64 | DIVRU | Divida y reinicie el acumulador superior |
69 | LD | Distribuidor de carga |
19 | MULT | Multiplicar |
00 | NO-OP | No operacion |
71 | PCH | Perforar una tarjeta |
70 | RD | Leer una tarjeta |
67 | RAABL | Reinicie el acumulador y agregue absoluto al acumulador inferior |
sesenta y cinco | RAL | Reinicie el acumulador y agregue al acumulador inferior |
60 | RAU | Reinicie el acumulador y agregue al acumulador superior |
68 | RSABL | Reinicie el acumulador y reste el absoluto del acumulador inferior |
66 | RSL | Reinicie el acumulador y reste del acumulador inferior |
61 | RSU | Restablecer acumulador y restar del acumulador superior |
35 | SLT | Acumulador de cambio a la izquierda |
36 | SCT | Mueva el acumulador a la izquierda y cuente *** |
30 | SRT | Acumulador de cambio a la derecha |
31 | SRD | Acumulador de cambio derecho y acumulador redondo |
01 | DETENER | Deténgase si el interruptor de consola está configurado para detenerse; de lo contrario, continúe como NO-OP |
24 | ETS | Almacenar distribuidor en la memoria |
22 | STDA | Almacene la dirección de datos del acumulador inferior en el distribuidor Luego, almacene el distribuidor en la memoria |
23 | STIA | Almacene la dirección de instrucción del acumulador inferior en el distribuidor Luego, almacene el distribuidor en la memoria |
20 | STL | Almacene el acumulador inferior en la memoria |
21 | STU | Almacene el acumulador superior en la memoria * |
18 | SABL | Restar absoluto del acumulador inferior |
dieciséis | SL | Restar del acumulador inferior |
11 | SU | Restar del acumulador superior |
84 | TLU | Búsqueda de tabla |
Notas:
- * El valor almacenado toma signo de acumulador, excepto después de una operación de división; luego se almacena el signo del resto.
- ** Se utiliza para permitir que el panel de control 533 envíe señales a la CPU.
- *** Cuenta ceros de orden superior en el acumulador superior
Las opciones de IBM 653 podrían implementar códigos de instrucciones adicionales. [32]
Programa de muestra
Este programa de una tarjeta, tomado del 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , establecerá la mayor parte del almacenamiento del tambor en menos ceros. El programa incluye ejemplos de instrucciones que se ejecutan desde los conmutadores de la consola y desde un acumulador.
Para comenzar, se perfora una tarjeta de carga con 80 dígitos consecutivos (la segunda columna a continuación) para que, cuando se lea, el contenido de las ubicaciones de tambor 0001 a 0008 sea como se muestra. [34]
0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 0007 6900060005 0008 2019990003
Los interruptores de dígitos de la consola (dirección 8000) se configuran manualmente en una instrucción de lectura con la dirección de datos 0004.
loc- op | datos | siguiente ación | dirección | instrucción | | addr
8000 RD 70 0004 xxxx Leer la tarjeta de carga en el área de lectura de la 1ra banda
Cada banda de batería tiene un área de lectura; estas áreas de lectura se encuentran en las ubicaciones 0001-0010, 0051-0060, 0101-0110, etc. Se puede usar cualquier dirección en una banda para identificar esa banda para una instrucción de lectura; la dirección 0004 identifica la 1ª banda. La ejecución comienza entonces, desde la consola con la lectura de las 8 palabras en la tarjeta de carga en las ubicaciones 0001-0008 de la 1ª banda de memoria. En el caso de leer una tarjeta de carga, la "siguiente dirección de instrucción" se toma del campo de dirección de datos, no del siguiente campo de dirección de instrucción (que se muestra arriba como xxxx). Por lo tanto, la ejecución continúa en 0004
0004 RSU 61 0008 0007 Restablecer el acumulador completo, restar a la parte superior (8003) el valor 2019990003 0007 LD 69 0006 0005 Distribuidor de carga con 0100008000 0005 STD 24 0000 8003 Almacene el distribuidor en la ubicación 0000, la siguiente instrucción está en 8003 (el acumulador superior) Nota: el movimiento de datos o instrucciones de una ubicación de tambor a otra requiere dos instrucciones: LD, STD.
Ahora se ejecuta un ciclo de dos instrucciones:
8003 STL 20 1999 0003 Almacenar acumulador inferior (ese acumulador se restableció a 0 mediante la instrucción RSU anterior) La dirección de datos "1999" se reduce, a continuación, en cada iteración. Esta instrucción fue colocada en el acumulador superior por la instrucción RSU anterior. Nota: esta instrucción, ahora en el acumulador superior, se decrementará y luego ejecutado de nuevo mientras todavía está en el acumulador.
0003 AU 10 0001 8003 Disminuir la dirección de datos de la instrucción en el acumulador en 1 (sumando 10000 a un número negativo)
La dirección de datos de la STL, eventualmente, se reducirá a 0003, y la instrucción AU ... en 0003 se sobrescribirá con ceros. Cuando eso ocurre (la siguiente dirección de instrucción de STL sigue siendo 0003), la ejecución continúa de la siguiente manera:
0003 NOOP 00 0000 0000 Instrucción sin operación, la siguiente dirección de instrucción es 0000 0000 HALT 01 0000 8000 Detener, la siguiente dirección de instrucción es la consola (esta instrucción Halt fue almacenada en 0000 por la instrucción STD anterior)
La serie de libros de Donald Knuth , El arte de la programación informática, está dedicada a un 650.
Software
Software incluido:
- Sistema de interpretación decimal flotante completo para la calculadora de tambor magnético IBM 650 (también conocido como BLIS, el sistema de interpretación de Bell Lab) [35]
- PARA EL TRÁNSITO - Una versión de Fortran que se compiló para TI que a su vez se compiló para SOAP [36]
- FORTRAN [37]
- GATE: un compilador simple con nombres de variable de un carácter
- Paquetes de máquina virtual de aplicación interpretativa L1 [38] [39] y L2 - conocidos fuera de Bell Labs como "Bell 1" y "Bell 2"
- Traductor interno (TI): compilador [40]
- IPL : el primer lenguaje de procesamiento de listas. La versión más conocida fue IPL-V.
- Nuevo compilador unificado revisado Lenguaje básico de TI ampliado (RUNCIBLE) [41]
- SPACE (programación simplificada que cualquiera puede disfrutar): un compilador de dos pasos orientado a los negocios a través de SOAP
- Programa de ensamblaje óptimo simbólico (SOAP): un ensamblador [31]
- Sistema de programación sintético para aplicaciones comerciales [42]
- Sistema de ensamblaje técnico (TASS): un ensamblador de macros .
Ver también
- Historia de IBM # 1946-1959: recuperación de posguerra, auge de la informática empresarial, exploración espacial, la Guerra Fría
- UNIVAC Solid State anunciado por Sperry Rand en diciembre de 1958 como respuesta al IBM 650. En junio de 1959, Remington Rand anunció que había escrito un programa emulador de IBM 650 para facilitar la conversión. [43]
- Serie IBM 700/7000
notas y referencias
- ^ "Instalación de IBM 650 con unidad de cinta magnética IBM 727 y almacenamiento en disco IBM 355" . Archivos de IBM . Nosotros . Consultado el 5 de septiembre de 2019 .
- ^ "Montaje de IBM 650 en la planta de Endicott" . Archivos de IBM . Nosotros . Consultado el 5 de septiembre de 2019 .
- ^ "La máquina de procesamiento de datos de tambor magnético IBM 650": la primera computadora producida en masa " . Historia de la información .
- ^ Pugh, Emerson W. (1995). Construyendo IBM: Dando forma a una industria y su tecnología . MIT Press. pag. 182 . ISBN 978-0-262-16147-3.
- ^ a b c "La calculadora de tambor magnético IBM 650" . Columbia.edu .
- ^ Davis, Gordon B. (1971). Introducción a las computadoras electrónicas (Segunda ed.). Nueva York: McGraw-Hill. pag. 10 . ISBN 978-0-070-15821-4.
- ^ a b Máquina de procesamiento de datos de tambor magnético IBM 650: Manual de funcionamiento (PDF) . IBM. 1955. 22-6060-1.
- ^ Archivos de IBM: 650 clientes
- ^ Gray, Wayne D. (2007). Modelos integrados de sistemas cognitivos . Nueva York: Oxford University Press. pag. 36 . ISBN 978-0-19-518919-3.
- ^ "Se presenta la calculadora de tambor magnético IBM 650" . Computerhistory .
- ^ Comunicado de prensa del anuncio de IBM 650 RAMAC
- ^ "IBM archivado: 650 cronología" .
- ^ Bashe, Charles J .; Johnson, Lyle R; Palmer, John H .; Pugh, Emerson W. (1986). Las primeras computadoras de IBM . MIT. pag. 473 . ISBN 0-262-02225-7.
- ^ a b Archivos de IBM: 650 componentes
- ^ Archivos de IBM: Unidad de consola IBM 650
- ^ Archivos de IBM: Unidad de potencia IBM 655
- ^ Otros nombres de IBM para el 533 incluyen Input-Output Unit y Read-Punch Unit .
- ^ Archivos de IBM: IBM 533 Card Read Punch
- ^ Archivos de IBM: IBM 537 Card Read Punch
- ^ Manual de instalación de planificación física del sistema 650 (PDF) . IBM. 1 de octubre de 1957. p. 32 . Consultado el 31 de mayo de 2018 , a través de Bitsavers.
- ^ Manual de instrucciones de ingeniería del cliente (PDF) . IBM. 1956. p. I-17 . Consultado el 31 de mayo de 2018 , a través de Bitsavers.
- ^ a b Sin conexión
- ^ Archivos de IBM: Almacenamiento en disco IBM 355
- ^ Archivos de IBM: máquina de contabilidad IBM 407
- ^ Archivos de IBM: Unidad de control IBM 652
- ^ Archivos de IBM: Unidad auxiliar IBM 653
- ^ Archivos de IBM: IBM 838 Inquiry Station
- ^ Archivos de IBM: Tambor magnético IBM 650
- ^ Archivos de IBM: anuncio de IBM 650 Modelo 4
- ^ Kugel, Herb (22 de octubre de 2001). "El IBM 650" . Dr. Dobb's.
- ^ a b IBM (1957). SOAP II para IBM 650 (PDF) . C24-4000-0.
- ^ a b c Extensiones de CPU IBM 650
- ^ Boletín del sistema IBM 650, códigos de funcionamiento básico, optimización de programas, carga de programas (PDF) . IBM. 1958.
- ^ Se puede usar un punzón de 12 para identificar tarjetas como tarjetas de carga . Las tarjetas de carga se leen directamente en las palabras 1-8 de la banda de almacenamiento especificada
- ^ Manual de referencia de IBM: Sistema de interpretación decimal flotante para IBM 650 (PDF) . IBM. 1959. págs. 63, xxi. 28-4024.
Esta es una reimpresión del boletín técnico de IBM 650 No. 11, marzo de 1956, formulario 31-6822
. Este manual de referencia contiene el siguiente informe, señalando que en sus características externas, el sistema interpretativo descrito en este informe debe mucho al sistema de codificación rápida de IBM para el 701.Wolontis, VM Sistema completo de interpretación decimal flotante para la calculadora de tambor magnético IBM 650 . Bell Laboratories, Inc, Murray Hill, Nueva Jersey. - ^ IBM (1959). FOR TRANSIT Sistema de codificación automática para el IBM 650 (PDF) . 28-4028.
- ^ IBM (1960). Sistema de codificación automática FORTRAN para IBM 650 (PDF) . 29-4047.
- ^ Holbrook, Bernard D .; Brown, W. Stanley. "Informe técnico de ciencias de la computación n. ° 99: una historia de la investigación en computación en los laboratorios Bell (1937-1975)" . Bell Labs . Archivado desde el original el 2 de septiembre de 2014 . Consultado el 27 de agosto de 2020 .
- ^ Wolontis, VM "Un completo sistema de interpretación decimal flotante para la calculadora de tambor magnético IBM 650" (PDF) . EE. UU.: IBM, a través de bitsavers.
- ^ Perlis, AJ ; Smith, JW; VanZoeren, HR (18 de abril de 1958). Traductor interno; IT, un compilador para 650 (PDF) . 650 Programa de biblioteca 2.1.001.
- ^ Donald Knuth publicó el diagrama de flujo del compilador en 1959; Knuth, DE (1959). "RUNCIBLE - traducción algebraica en una computadora limitada". Comunicaciones de la ACM . 2 : 18-21. doi : 10.1145 / 368481.368507 .; este fue su primer trabajo académico.
- ^ 650 Boletín de programación 2 . IBM. 1956. p. 40. 22-6294-0.
La rutina interpretativa que se describe aquí es un sistema decimal fijo de tres direcciones que proporciona operaciones matemáticas, lógicas y de entrada-salida. La lógica de este sistema se obtuvo del Sistema Interpretativo de Decimal Flotante Completo para el 650 que fue desarrollado por Bell Laboratories, Murray Hill, Nueva Jersey.
- ^ Grey, George. "La computadora de estado sólido UNIVAC" . Unisys History Newsletter, Volumen 1.2, diciembre de 1992 (revisado en 1999) . Archivado desde el original el 4 de marzo de 2016.
Otras lecturas
- Andree, Richard V. (1958). Programación de la computadora de tambor magnético IBM 650 y la máquina de procesamiento de datos .
- IBM (1955). Manual de funcionamiento de la máquina de procesamiento de datos de tambor magnético IBM 650 (PDF) . 22-6060.
- IBM (1956). Sistema de procesamiento de datos IBM 650, Manual de instrucciones de ingeniería del cliente (PDF) . 22-6284-1.
- IBM (1955). IBM presenta la máquina de procesamiento de datos de tambor magnético 650 (PDF) . 32-6770. Archivado desde el original (PDF) el 5 de febrero de 2012 . Consultado el 24 de septiembre de 2006 .
- Knuth, Donald E. (enero-marzo de 1986). "El IBM 650: un reconocimiento desde el campo". IEEE Annals of the History of Computing . 8 (1): 50–55. doi : 10.1109 / MAHC.1986.10010 .
enlaces externos
- Bitsavers.org: documentos IBM 650 (archivos PDF)
- Universidad de Columbia: IBM 650 en la Universidad de Columbia
- Archivos de IBM IBM 650: el caballo de batalla de la industria moderna Incluye una cronología, especificaciones técnicas, fotografías, clientes representativos y aplicaciones para las que se utilizó la 650.
- Videoclip de IBM 650 y RAMAC en funcionamiento , versión alternativa
- Weik, Martin H. (marzo de 1961). Tercera encuesta de sistemas informáticos digitales electrónicos domésticos . Laboratorios de Investigación Balística (BRL). Informe No. 1115.CS1 maint: ref duplica el valor predeterminado ( enlace ) Incluye alrededor de 40 páginas de detalles de la encuesta IBM 650: clientes, aplicaciones, especificaciones y costos.