Comenzando con luces parpadeantes en una plancha vieja

Si alguna vez va a un museo de historia de la informática, se sentirá atraído por el aspecto de las computadoras mundanas más modernas. En 1980, las computadoras tenían luces e interruptores y, a veces, diales y medidores. Algunos tenían paneles de cables estampados y algunos incluso tenían pantallas de osciloscopio. Hay algo acerca de una máquina con todos esos interruptores, luces y pantallas que hacen fluir los jugos de tu picadora. ¿Alguna vez ha querido comenzar con la informática hacia atrás? ¿Es difícil? ¿Necesitas mucho dinero? Eso depende de cuáles sean tus objetivos.

Hay al menos tres formas de participar en la computación inversa: puede recaudar dinero para comprar computadoras antiguas reales, puede construir o comprar computadoras viejas recreadas con artículos auténticos de cero a cien por ciento, o puede experimentar con emuladores que trabajar con computadora moderna. Como híbrido de la segunda y tercera opción, también hay copias en FPGA.

Puede ver que la primera opción puede ser muy costosa y probablemente tendrá que desarrollar muchas habilidades de reparación y restauración. Buscando [Mattis Lind] La configuración de las piezas de PDP-8 reales en el clip superior es genial, pero necesitará hacerlo a fondo. Las dos técnicas que lo hacen avanzar sin el hardware original no tienen que romper el banco o incluso costar nada, asumiendo que ya tiene una computadora.

Aunque algunos simulacros de emulación, para algunas máquinas es casi la única forma. No se podía comprar el EDSAC original, por ejemplo. También es una buena forma de empezar sin grandes gastos o riesgos. Pero no importa cómo lo hagas, hay una cosa en común: necesitas saber cómo ejecutarlo.

Simh y BlinkenBone

Una forma común de copiar una computadora vieja es usar el conjunto SimH. Tiene copias para una gran cantidad de computadoras antiguas. Por lo general, la emulación tiene una consola y parece que está insertando datos en algún tipo de terminal. Teicallynike, está bien, pero no te da esa sensación de lidiar con el hardware antiguo.

Sin embargo, SimH mantiene una interfaz que puede manejar un panel frontal real o aparente para algunas máquinas. Por ejemplo, anteriormente discutimos la herramienta PiDP-8 que usa SimH en una Raspberry Pi con un panel frontal PDP-8 de aspecto bastante auténtico. Con BlinkenBone, sin embargo, puede ejecutar un panel frontal de Java para muchas máquinas clásicas y, gracias a SimH, no son solo una burla. Trabajan.

Así que echemos un vistazo a lo que se necesita para alimentar un PDP-8 a través del panel frontal. El PDP-8, de DEC o Digital Equipment Corporation, nació en 1965. Un modelo básico costaba alrededor de $ 18,500, mucho dinero en esos días. El "8 recto" estaba lleno de artículos discretos y era del tamaño de un refrigerador. Veremos la PDP-8 / I, una máquina fabricada con circuitos integrados alrededor de 1968. Aunque era grande para los estándares actuales, no tenía el tamaño de un refrigerador.

¿Por qué el PDP-8? Bueno, hay varias razones. Primero, el PDP-8 es muy simple, pero bastante representativo de las primeras computadoras. En segundo lugar, gracias a BlinkenBone, puedes jugar completamente sin hardware. Si tiene PiDP-8, eso también funcionará. Si tiene la suerte de tener acceso a un PDP-8 funcional real, entonces está listo.

Si no desea leer latido tras latido, es posible que prefiera ver el video a continuación.

Recorrido por el panel frontal PDP-8 / I

El PDP-8 / I tiene 26 interruptores. También hay dos interruptores de llave obvios: uno para encender / apagar y otro para bloquear el panel (ambos faltan en el PiDP-8). Comenzando por la izquierda, verá los siguientes interruptores:

  • Campo de datos (3): establece el campo de datos (que tiene una página de memoria de 4K utilizada para datos)
  • Tutorial (3): establece el tutorial
  • Conmutadores de dirección / datos (12): establece la dirección de 12 bits o la palabra de datos de 12 bits. La posición superior es cero y el interruptor más a la izquierda es el bit 0. Los grupos de colores corresponden a dígitos octales.
  • Inicio: presione hacia abajo para iniciar un programa
  • Cargar Agregar: presione hacia abajo para cargar la dirección en los interruptores para que sea la dirección actual
  • Dep: presione hacia arriba para transferir conmutadores de datos a la ubicación actual de la memoria y aumentar la ubicación actual
  • Examen: presione hacia abajo para cargar las luces con el contenido de la memoria en la ubicación actual y aumentar la ubicación actual
  • Cuenta: continuar después de la parada (a diferencia de Inicio, que se reinicia)
  • Detener - Dejar de correr
  • Interruptor Sing Step, que le permite pasar un ciclo de máquina al mismo tiempo; SimH no admite esto y el PiDP-8 usa este interruptor para hacer cosas como reiniciar la parte inferior de la Raspberry Pi
  • Sing Inst: otro interruptor que hace que la máquina maneje Start y Cont al ejecutar una instrucción y detener
  • Es probable que su computadora tenga gigabytes de RAM organizados como bytes de 8 bits. El PDP-8 tiene la capacidad de manejar 4K o RAM organizados como palabras de 12 bits. Incluso en aquellos días, 4.096 palabras de memoria no eran mucho, por lo que los datos y los tutoriales le permiten tener varios campos 4K si puede permitirse la memoria adicional.

    En un PDP-8 real, Dep está invertido: lo empuja hacia arriba en lugar de hacia abajo. Esto tiene la intención de evitar que escriba accidentalmente en la memoria si mezcla los interruptores. El PiDP-8 no revierte el conmutador por defecto, aunque puedes hacerlo con una simple modificación.

    Las luces, y recuerde, en un sistema real no son LED, muestran la dirección y los datos, como mencioné antes. También muestra registros. Las luces en el cuadro derecho del panel muestran la instrucción actual (primera columna), el ciclo actual de la máquina (columna central) y el estado de la máquina (columna derecha).

    Instrucciones sencillas

    Si se pregunta cómo el PDP-8 usa 8 luces para mostrar qué instrucción está funcionando, es simple. Solo hay 8 instrucciones. Eso puede sonar increíble si estás acostumbrado a las computadoras modernas, pero realmente. Una máquina que podía compilar programas de Fortran, ejecutar Basic y realizar muchas otras tareas tenía solo 8 instrucciones. Hasta aquí la invención de la computadora con conjunto de instrucciones reducido (RISC) muchos años después.

    Honestamente, 8 instrucciones son un poco verdaderas a medias. Hay 8 códigos de operación. Uno de esos códigos operativos tiene algunos subcódigos (pero solo algunos). Las mejoras posteriores utilizaron la instrucción de E / S para hacer cosas, aumentando aún más el conjunto de instrucciones.

    Cada instrucción de 12 bits comienza con un código de opera de 3 bits. Puede realizar una operación lógica y con signo de suma, incremento y salto si es cero. Puede almacenar la batería (y agotarla durante el proceso) o saltar a una ubicación o subrutina. Cada una de estas instrucciones permite una dirección de 7 bits. Puede establecer otro bit para indicar que la dirección de memoria es indirecta y otro bit para indicar que la dirección de 7 bits es relativa a la página de memoria actual o la página cero. Obviamente, con solo 7 bits, las instrucciones no podían funcionar en ninguna ubicación de memoria, por lo que la página 0 era una forma de comunicarse entre diferentes áreas de su programa.

    Un código de operación contiene dos grupos de instrucciones de "microcódigo". Estos pueden hacer cosas como agotar la batería, invertir la batería o aumentar la batería. No solo la instrucción (la instrucción OPR) puede hacer esas cosas, sino que puede hacer algunas o todas en una instrucción. También hay un orden de funcionamiento definido, por lo que puede hacer cosas como agotar la batería y aumentarla para poner 1 en el registro.

    No hay resta (las denegaciones y las sumas funcionarán). No hay lógica ni instrucción (pista: recuerde la ley de DeMorgan). Pero es suficiente que puedas hacer una programación significativa. Solo necesita muchas instrucciones.

    Incluso hay más subtítulos. El código de modificación automática ha sido común y algunas direcciones de memoria crecen mágicamente cuando las usa como direcciones indirectas. Un tutorial de programación de PDP-8 puede ser una publicación completa en sí mismo, pero quería darle una idea de cómo se ve la programación en una máquina de este tipo. Las diferentes máquinas tenían diferentes esquemas de tratamiento indirecto y de memoria, pero estos principios generales eran muy comunes en esta época. Si realmente quieres profundizar, podrías hacer algo peor que leer [Douglas W. Jones’] manual de referencia.

    Programa de prueba

    Considere este programa okal:

7301     ; load accumulator with 1 and clear link (carry)

7001     ; increment accumulator

7430     ; skip if link=0

7402    ; halt

5001    ; jump to location 1

En funcionamiento, esto cancelará el acumulador y la broca de ligadura (el portador) y luego agregará una al acumulador varias veces hasta que la broca de transporte se detenga. Entonces el programa se detendrá. Si lo reinicia, se detendrá en cada bucle porque el transporte no se vaciará cuando reinicie. También podría pisarlo una vez con el interruptor derecho.

¿Cómo se puede ingresar a un programa de este tipo a través del panel frontal?

Usando el panel frontal

Si usa Blinkenbone, vaya a esta página y descargue el paquete para su sistema operativo. También encontrará instrucciones sobre cómo iniciar el emulador (archivo por lotes o script).

De forma predeterminada, el archivo de secuencia de comandos cargará un sistema operativo y funcionará, pero mucho más progreso de lo que queremos. Queremos hacer clic en interruptores. Por lo tanto, presione el botón Detener después de que aparezca el panel anterior (recuerde, presione hacia abajo). Ahora está listo para encender los interruptores.

  • Presione los 12 interruptores de datos / direcciones hacia arriba. Presione Load Ald. Tenga en cuenta que las luces del programa están todas apagadas.
  • Configure los interruptores de datos / dirección en 7301 (DDD UDD UUU UUD donde U está encendido y D apagado).
  • Presione Dep (recuerde, presione este interruptor hacia arriba). Tenga en cuenta que el Contador de programa ahora es 1, la pantalla Dirección de memoria ahora es 0 y el búfer de memoria muestra el código que ingresó.
  • Repita los pasos 2 y 3 para las otras instrucciones (7001, 7430, 7402 y 5001).
  • Restablezca los interruptores de datos / dirección a cero (todo lo anterior). Presione Load Ald. Luego presione Iniciar.
  • Aquí está. Verá que la batería parpadea y el enlace se iluminará. Entonces el procesador se detendrá. Si desea examinar su programa, repita el paso 1, pero presione Exam (Examinar) varias veces y observe cómo se encienden los búferes de memoria. También puede repetir el paso 1, presionar el botón Sing Inst y luego presionar Cont repetidamente para ver el programa ejecutar una instrucción a la vez.

    Cargando

    Prácticamente la mayoría de la gente nunca ha hecho lo que usted acaba de hacer. ¿Observa el cuadro a la izquierda del panel marcado como "Edge Charger" con algunos números en el interior? Esa fue la primera etapa. Debería activar esos códigos (comenzando en la dirección 7756) y ejecutarlos. Luego, un cargador más avanzado leería desde algún otro dispositivo (probablemente cinta de papel, pero tal vez algo más magnético). Ese cargador podría leer lo que quería ejecutar (como un compilador o, si tenía un sistema grande con discos o cintas, un sistema operativo).

    Sin embargo, de manera realista, si realmente desea hacer eso, puede simplemente reiniciar el SimH y dejar que haga todo el trabajo. El valor predeterminado para el PDP-8 es jugar Adventure, y si lo inicia, verá que la pantalla de datos en el panel frontal muestra un espectáculo muy agradable mientras está jugando (supongo que es intencional).

    Próximos pasos

    Puede ser divertido aprender sobre computadoras antiguas y encontrar formas de sortear los límites de estas máquinas antiguas. Al menos, la codificación para PDP-8 hará que el lenguaje ensamblador PIC o AVR parezca lujoso. SimH puede simular muchas máquinas, algunas con paneles frontales. También hay muchos kits de réplicas para máquinas de luz parpadeante, desde falsos Altair 8800 hasta reemplazos COSMAC Elf, y más. Por supuesto, cada panel frontal era diferente, pero tienden a compartir ideas comunes.

    Podrías argumentar que estos las máquinas viejas ya no tienen valor práctico. Probablemente eso sea cierto. Pero, de nuevo, no es muy diferente a alguien que quiere restaurar una motocicleta vieja o construir un modelo de barco y la gente lo hace constantemente.

    • Ostraco dice:

      “Si alguna vez vas a un museo de historia de la computación, te sentirás atraído por la apariencia de la mayoría de las computadoras modernas mundanas. En 1980, las computadoras tenían luces e interruptores y, a veces, diales y medidores. Algunos tenían paneles de cables estampados y algunos incluso tenían pantallas de osciloscopio. Hay algo sobre una máquina con todos esos interruptores, luces y pantallas que transmite tus jugos picados. "

      Windows 10: edición de tarjetas perforadas.

      • reproducción dice:

        Bueno, una cinta perforada puede contener aproximadamente 4 bytes de datos por cada 10 mm, eso es aproximadamente 2500 km por GB ... bueno, eso sería MUCHA cinta ... ¡Me encantaría ver eso!

        • marca dice:

          Como la bola de cuerda más grande del mundo para especies no nerds ...

      • licenciado en Derecho dice:

        https://pbs.twimg.com/media/BXG7IyGIQAAsgqQ.jpg

        • licenciado en Derecho dice:

          Instalación de Win8, difícil

          https://pbs.twimg.com/media/BXG7IyGIQAAsgqQ.jpg

          no vi una versión en papel.

          • Quinto dice:

            Casi quiero creer que esto no es una broma y que 8.1 podría instalarse de esa manera. También me temo que alguna vez me pidan que lo haga; al menos sin un sistema automático de intercambio de discos. O al menos 10 discos SCSI 3.5, por lo que el único trabajo sería cambiar los discos.

            • Lee Gleason dice:

              En la década de 1980, Digital Equipment Corporation vendió varios modelos de computadoras MicroVAX configuradas con solo un disquete de 5-1 / 4 para la instalación del programa. compilador o dos. Se tomó un tiempo ...

          • Doc dice:

            Extraño un poco los disquetes. El almacenamiento moderno es demasiado pequeño para etiquetar su contenido. Antes de que alguien diga que el almacenamiento moderno contiene demasiado para etiquetar, al menos podría nombrar las unidades flash USB o tarjetas SD para que sea más fácil elegir la correcta. Dame el mismo factor de forma que un viejo disquete de 3,5 ″ que puede contener entre 16 y 512 GB y me alegraré, incluso si es solo una tarjeta SD en su interior. Demonios, llámalo macrosd o algo así.

    • Internet dice:

      Tienen cierto valor práctico en la medida en que los niveles bajos a los que opera esta máquina no son terriblemente diferentes de muchos otros microprocesadores de linaje común. Hacer un modelo de barco puede ser un pasatiempo divertido, pero todavía no es realmente analógico.

      No todo el mundo considera que el PDP-8 es * práctico * para usarlo, pero la MANERA fundamental en la que funciona sigue siendo muy importante si necesita alcanzar un nivel tan bajo.

      Esto me recuerda un poco a Chris Sawyer, el tipo que literalmente escribió RollerCoaster Tycoon. Ese tipo ganó mucho dinero con su "afición" y conocimiento de esas cosas.

      https://eo.wikipedia.org/wiki/Chris_Sawyer

      “Un acuerdo extrajudicial puso fin a la batalla legal que Sawyer (en la foto) inició en 2005, alegando que Atari no había pagado ninguna tarifa de 4,8 millones de dólares.

      Anteriormente, Sawyer afirmó que Atari rompió un acuerdo de licencia al no permitir que sus auditores accedan a las cuentas de 1999 a 2001.Los ingresos de Atari por los juegos de Sawyer, incluidos Transport Tycoon y tres versiones de RollerCoaster Tycoon, se estimaron en alrededor de $ 180 millones en ese momento. dólares, de los cuales Sawyer recibió alrededor de $ 30 millones, pero dijo que la cifra estaba por debajo de lo adeudado. Dijo que los contadores forenses descubrieron 13 casos de pagos retenidos indebidamente. "

      • Gregkennedy dice:

        Estaba emocionado de saber que Chris Sawyer codificó RCT en un soporte x86.

        • Ostraco dice:

          En un momento en que la gente no temía una reunión.

    • RMD dice:

      El primer sistema Unix en el que estaba trabajando estaba en PDP11 / 32, y cuando fallaba, tenía que ir al panel frontal e insertar algunas cosas en los interruptores del panel frontal para indicarle dónde encontrar sus comandos de inicio. Si los estropeaba, tenía que cargar una cinta de papel con la etiqueta "Dios mío".

      • Lee Gleason dice:

        Tal vez esté apuntando a PDP-11/34 ...

    • Duopo dice:

      Hay un kit de herramientas PiDP-8 basado en el hogar donde puede crear una versión a escala del 75%, además de una versión PiDP11 en desarrollo. Derramado, lo adivinaste, Raspberry Pi.

    • Etienne dice:

      ¡No hubo colisiones pila / pila en el PDP-8! Sin pila, oye ...

    • RB dice:

      El PDP-8 que utilicé tenía una memoria central que conservaba su contenido cuando se apagaba; La carga de interruptores rara vez era necesaria.

    • Tim dice:

      Recuerdo haber jugado un Star Trek basado en matriz ascii en mi pdp8

      • Tim dice:

        Y creo que todavía tengo un ama de llaves en el sótano ... que podría ser para PDP 11

    • Halcón Estelar dice:

      * Esta * * una * * vez * No me quejaré del uso de otra función GIF como el tamaño de la TV de mi sala de estar, principalmente porque en este caso es (a) en realidad bastante buena y (b) tiene un propósito al artículo. Me gustan las luces parpadeantes y no puedo mentir: P

      ... simplemente no crea que renuncié a la llamada. Lo prometo que no. Y para que conste, el televisor de mi sala es de 26 ″ Badge. Ni siquiera es "HD ready" AFAIK ... sí, puedes reír. Rara vez lo uso de alguna manera: la última vez que lo fue, las señales de televisión aún eran analógicas. Ya no hay nada decente para ver ... y puedo reproducir DVD en mi computadora portátil.

      • Halcón Estelar dice:

        Tu burro: P

    • k-ww dice:

      Recuerdo haber aprendido a programar PDP8 / L en el '69. ¿Alguien además de mí recuerda lo que significa SNA SPA CLA? 🙂

      • Julian Skidmore dice:

        Omite la siguiente instrucción si ACC no es 0 y no es negativo y luego vacía A de todos modos. Entonces es realmente un salto si> 0.

    • Gregkennedy dice:

      Cuando eché un vistazo a PDP-8 por primera vez, estaba realmente confundido debido a las instrucciones "microcodificadas". La terminología es confusa. Lo que quieren decir es que hay muchas instrucciones cubiertas por un código de operación (por lo que cada subcadena es "micro"), no que sean instrucciones "ejecutadas como microcódigo" en el sentido moderno.

      • Julian Skidmore dice:

        La idea del microcódigo fue publicada por primera vez por Maurice Wilkes en la década de 1950 (Cambridge, Reino Unido). Entonces, ya era bien conocido cuando se construyó el pdp-8.

        Entonces, en realidad, probablemente se refieran a "microcódigo". En una arquitectura de microcódigo, a un nivel simple, las instrucciones de código de máquina indican una ROM de microcódigo (posiblemente RAM si se puede cambiar) y luego las salidas de la ROM de microcódigo habilitan literalmente puertas en la CPU para que los datos fluyan a través de la sección apropiada de la CPU. , lo que provoca la ejecución de parte de una instrucción (por lo que las instrucciones de microcódigo posteriores habilitan otras puertas y finalmente completan la instrucción).

        La instrucción microcodificada Pdp-8 hace mucho de lo que haría la instrucción ROM de microcódigo: habilitar un conjunto rudimentario de puertas, con un poco de secuenciación.

    • David Rediger dice:

      Mi primera exposición a la informática fue en 1972. Fui técnico en electrónica en la Marina y serví en Nuclear Submarines. Ejecuté y operé un Sistema de Navegación Inercial Naval (SINS) que nos dijo dónde estábamos en algún momento. Básicamente era un gran giroscopio controlado por computadora. La computadora era un dispositivo informático de tercera generación. Componente discreto, Flip-Flops NOR, registros de 8 bits, memoria de 1k core y 1k de batería magnética. Los perforadores de papel o los interruptores del panel frontal, cuando se usaban para la entrada, y una máquina de escribir IBM Selectric eran nuestro dispositivo de salida. Se utilizó un salto automático de salida (AJO) de 1 segundo para la sincronización del sistema. Creo que la velocidad del reloj estaba en milisegundos. Una de nuestras tareas en la escuela era programar la computadora para escribir nuestras iniciales. Esto se logró con dificultad ingresando cada instrucción del programa en lenguaje de máquina en los interruptores del panel frontal individualmente. Nos dieron una semana para completarlo con éxito. Solo uno de nosotros lo hizo en el primer intento y no fui yo. Hoy en día, mi calculadora tiene más procesamiento que esa primera computadora. Pero controlaba una plataforma de giroscopio estabilizado que compensaba la rotación de la tierra para que los acelerómetros pudieran medir la velocidad y dirección naval para el cálculo de latitud y longitud. Usó un programa de software que utiliza una técnica de filtrado de Kalman para reducir los errores del sistema, todo en FORTRAN.

      Tengo en mi biblioteca una guía de bolsillo para computadoras Hewlett-Packard. Tiene especificaciones y descripciones del hardware y funcionamiento básico. Manual de referencia del asambleísta. Manual de referencia del lenguaje FORTRAN y BASIC. Y un manual de referencia del programa. Invierto la estructura de la computadora de los diagramas de bloques para crear diagramas esquemáticos para poder reproducir un modelo funcional.

    • Peter Neilson dice:

      Hasta el día de hoy utilizo el lenguaje ensamblador PDP-8 cuando alguien me pregunta: "Oye, ya lo sabes todo. Dime, ¿cómo funcionan las computadoras por dentro?". Les presento la máquina y el conjunto de instrucciones, todo de mi propia memoria. ¿Difícil? Por supuesto no. ¡Solo hay ocho instrucciones! Una conferencia de "pizarra" de diez minutos satisface incluso la mayor cantidad de curiosidad ininterrumpida. La mayoría de las personas sintonizan después de unos tres minutos cuando no he alcanzado las subrutinas (JMS) y la terrible dificultad de intentar escribir el código de reingreso a las 8 p.m.

      El OS TSS-8 de 1972 (más tarde Edusystem 50) tenía un código que se remontaba a UN nivel. Las variables utilizadas no se colocaron en la pila. No había pila. Fueron simplemente DCA'ed en una mesa temporal. ¡Ho! ¿Frecuencia de fallas en nuestro sistema? Aproximadamente crashaday.

      • David Rediger dice:

        La tecnología actual se basa en los pilares del pasado. Cuando estaba en la Marina, pasamos de reemplazar elementos quemados individuales en el nivel del tablero a reemplazar los tableros completos. Le ahorró a la Marina millones de dólares en tiempo de entrenamiento al capacitar a los técnicos, lo que impulsó la caja negra en lugar de cómo lo hizo la caja negra. Esta filosofía se sintió genial. Nosotros no éramos ingenieros, éramos operadores.

        El mismo tipo de intercambio se aplica cuando comienza a miniaturizar componentes electrónicos hoy. No todos los técnicos necesitan ser ingenieros. Todo lo que se necesita es que pueda usar hacer para hacer que algo haga lo que haga que algo funcione. Recuerdo que tuve que mirar y mirar mi Apple II + para crear mi trabajo de impresora. y la pesadilla de mantener IRQ directas para no irritar su escritorio al agregar nuevos periféricos.

        Sí, fui un pionero. Sí, estuve allí cuando. Pero a menos que seas un ingeniero o el apocalipsis haya ocurrido, no necesitas cómo funciona para usarlo. No necesitas saber cómo funciona una lavadora para usarla.

        En el futuro, cuando alguien te pregunte cómo se hacía en los viejos tiempos, no suena a magia. Sea simple. Entonces eran soluciones simples y ahora son soluciones aún simples. Pero conviértalo en un producto de Barnum y Bailey como entonces.

    • S Silverstein dice:

      Aprendí informática con PDP-8 / S que un profesor de matemáticas de la escuela secundaria tuvo la amabilidad (y al parecer bastante rico) de donar a mi escuela secundaria en 1969, George Washington High en Filadelfia.

Victoria Prieto
Victoria Prieto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.