De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El PDP-8 es un miniordenador de 12 bits producido por Digital Equipment Corporation (DEC) . Fue la primera minicomputadora de éxito comercial, con más de 50.000 unidades vendidas durante la vida útil del modelo. Su diseño básico sigue el pionero LINC pero tiene un conjunto de instrucciones más pequeño , que es una versión ampliada del conjunto de instrucciones PDP-5 . [1] Máquinas similares de DEC son el PDP-12, que es una versión modernizada de los conceptos PDP-8 y LINC, y el sistema de controlador industrial PDP-14 .

Resumen [ editar ]

Un PDP-8 / E abierto con sus módulos lógicos detrás del panel frontal y una unidad doble TU56 DECtape en la parte superior

El primer modelo PDP-8, conocido informalmente como "Straight-8", se introdujo el 22 de marzo de 1965 con un precio de 18.500 dólares [2] (equivalente a unos 150.000 dólares en 2019 [3] ). Utilizaba lógica de diodo-transistor empaquetada en tarjetas con chip invertido en una máquina del tamaño de un pequeño refrigerador doméstico . [ cita requerida ] Fue la primera computadora que se vendió por menos de $ 20,000, [4] convirtiéndola en la computadora más vendida de la historia en ese momento. [5] [ verificación fallida ] [6] [ verificación fallida ]El Straight-8 fue reemplazado en 1966 por el PDP-8 / S, que estaba disponible en modelos de escritorio y de montaje en rack. El uso de una unidad lógica aritmética en serie (ALU) de un bit permitió que el PDP-8 / S fuera más pequeño y menos costoso, aunque más lento que el PDP-8 original. Un 8 / S básico se vendió por menos de $ 10,000, la primera máquina en alcanzar ese hito. [4] [7]

Los sistemas posteriores (el PDP-8 / I y / L, el PDP-8 / E, / F y / M y el PDP-8 / A) volvieron a una implementación más rápida y completamente paralela, pero utilizan un transistor mucho menos costoso. Lógica de transistor (TTL) Lógica MSI . La mayoría de los PDP-8 supervivientes son de esta época. El PDP-8 / E es común y está bien considerado porque había muchos tipos de dispositivos de E / S disponibles para él. Los últimos modelos comerciales de PDP-8 introducidos en 1979 se denominan "CMOS-8", basados ​​en microprocesadores CMOS . No tenían un precio competitivo y la oferta fracasó. Intersil vendió los circuitos integrados comercialmente hasta 1982 como Intersil 6100familia. En virtud de su tecnología CMOS, tenían bajos requisitos de energía y se usaban en algunos sistemas militares integrados.

El ingeniero jefe que diseñó la versión inicial del PDP-8 fue Edson de Castro , quien más tarde fundó Data General . [8]

Importancia arquitectónica [ editar ]

El PDP-8 combina bajo costo, [2] simplicidad, capacidad de expansión y una cuidadosa ingeniería para obtener valor. El mayor significado histórico fue que el bajo costo y el alto volumen del PDP-8 pusieron una computadora a disposición de muchos clientes nuevos para muchos usos nuevos. Su importancia continua es como un ejemplo histórico de diseño informático basado en la ingeniería de valor [9] .

La baja complejidad trajo otros costos. Hizo que la programación fuera engorrosa, como se ve en los ejemplos de este artículo y en la discusión de "páginas" y "campos". Gran parte del código de uno realiza la mecánica requerida, en lugar de establecer el algoritmo. Por ejemplo, restar un número implica calcular su complemento a dos y luego sumarlo; escribir un salto condicional implica escribir un salto condicional alrededor del salto, codificando el salto la condición negativa a la deseada. Algunos proyectos de programación ambiciosos no encajaron en la memoria o desarrollaron defectos de diseño que no pudieron resolverse. Por ejemplo, como se indica a continuación , la recursión inadvertida de una subrutina produce defectos que son difíciles de rastrear hasta la subrutina en cuestión.

A medida que los avances en el diseño redujeron los costos de lógica y memoria, el tiempo del programador se volvió relativamente más importante. [10] Los diseños de computadora posteriores enfatizaron la facilidad de programación, por lo general utilizando conjuntos de instrucciones más grandes e intuitivos. [11]

Finalmente, la mayor parte del código de máquina fue generado por compiladores y generadores de informes. [12] La computadora del conjunto de instrucciones reducido regresó al círculo completo del énfasis del PDP-8 en un conjunto de instrucciones simple y lograr múltiples acciones en un solo ciclo de instrucción, con el fin de maximizar la velocidad de ejecución, aunque las computadoras más nuevas tienen palabras de instrucción mucho más largas.

Descripción [ editar ]

Las ideas utilizadas desde varios predecesores de 12 bits 8-PDP, sobre todo el LINC diseñado por WA Clark y CE Molnar , que fueron inspirados por Seymour Cray 's CDC 160 minicomputadora. [1] [13]

PDP-8 / e en el Living Computers Museum .

El PDP-8 usa 12 bits para su tamaño de palabra y aritmética (en enteros sin signo de 0 a 4095 o enteros con signo de −2048 a +2047). Sin embargo, el software puede realizar operaciones aritméticas de precisión múltiple . Un intérprete estaba disponible para punto flotante operaciones, por ejemplo, que utiliza una representación de coma flotante de 36 bits con una de dos palabras (24 bits) significand y el exponente de una sola palabra. [14] Sujeto a limitaciones de velocidad y memoria, el PDP-8 puede realizar cálculos similares a los ordenadores electrónicos contemporáneos más costosos, como el IBM 1130 y varios modelos del IBM System / 360 , siendo más fácil de interactuar con dispositivos externos.

El espacio de direcciones de la memoria también es de 12 bits, por lo que la configuración básica del PDP-8 tiene una memoria principal de 4.096 (2 12 ) palabras de doce bits. Una unidad de expansión de memoria opcional puede cambiar los bancos de memorias mediante una instrucción IOT. La memoria es una memoria de núcleo magnético con un tiempo de ciclo de 1,5 microsegundos (0,667 MHz ), de modo que una instrucción típica de referencia de memoria de dos ciclos (Buscar, Ejecutar) se ejecuta a una velocidad de 0,333 MIPS . La tarjeta de referencia de bolsillo de 1974 para el PDP-8 / E proporciona un tiempo de instrucción básico de 1,2 microsegundos o 2,6 microsegundos para las instrucciones que hacen referencia a la memoria.

El PDP-8 fue diseñado en parte para manejar telecomunicaciones y texto contemporáneos. Los códigos de caracteres de seis bits eran de uso generalizado en ese momento, y las palabras de doce bits del PDP-8 pueden almacenar de manera eficiente dos de esos caracteres. Además, un código de teletipo de seis bits llamado código de teletipo o TTS era de uso generalizado por los servicios de noticias por cable, y una de las primeras aplicaciones del PDP-8 era la composición tipográfica utilizando este código. [15]

Las instrucciones PDP-8 tienen un código de operación de 3 bits, por lo que solo hay ocho instrucciones. El ensamblador proporciona más mnemónicos de instrucción a un programador al traducir las instrucciones de E / S y del modo de operación a combinaciones de los códigos de operación y los campos de instrucción. También tiene solo tres registros visibles para el programador : un acumulador de 12 bits (AC), un contador de programa (PC) y un indicador de acarreo llamado "registro de enlace" (L).

Para entrada y salida, el PDP-8 tiene una única interrupción compartida por todos los dispositivos, un bus de E / S al que se accede mediante instrucciones de E / S y un canal de acceso directo a memoria (DMA). El bus de E / S programado generalmente ejecuta periféricos de velocidad baja a media, como impresoras , teletipos , perforadoras de cinta de papel y lectores, mientras que DMA se usa para pantallas de tubo de rayos catódicos con un lápiz óptico , convertidores de analógico a digital , digital- convertidores analógicos , unidades de cinta y unidades de disco .

Para ahorrar dinero, el diseño utilizó una memoria principal de bajo costo para muchos propósitos que son atendidos por registros flip-flop más costosos en otras computadoras, [16] como contadores auxiliares y enlace de subrutinas.

Los modelos básicos usan software para hacer multiplicaciones y divisiones. Para una matemática más rápida, el elemento aritmético extendido (EAE) proporciona instrucciones de multiplicación y división con un registro adicional, el registro de multiplicador / cociente (MQ). El EAE era una opción en el PDP-8 original, [17] el 8 / I, [18] y el 8 / E, pero es una parte integral del microprocesador Intersil 6100 .

El PDP-8 está optimizado para simplificar el diseño . En comparación con máquinas más complejas, se eliminaron las funciones innecesarias y la lógica se comparte cuando es posible. Las instrucciones usan autoincremento, borrado automático y acceso indirecto para aumentar la velocidad del software, reducir el uso de memoria y sustituir la memoria barata por registros costosos.

La electrónica de un básica PDP-8 CPU tiene sólo cuatro registros de 12 bits: el acumulador, contador de programa, Register-búfer de memoria y registro de dirección de memoria . Para ahorrar dinero, estos sirvieron para múltiples propósitos en diferentes puntos del ciclo operativo. Por ejemplo, el registro de búfer de memoria proporciona operandos aritméticos, es parte del registro de instrucciones y almacena datos para reescribir la memoria central . (Esto restaura los datos centrales destruidos por la lectura).

Debido a su simplicidad, los primeros modelos PDP-8 eran menos costosos que la mayoría de las otras computadoras disponibles comercialmente. Sin embargo, utilizaron métodos de producción costosos que a menudo se utilizan para los prototipos. Utilizaron miles de módulos lógicos estandarizados muy pequeños, con conectores dorados, integrados por una costosa y compleja placa posterior envuelta en cables en un gabinete grande.

En el último modelo 8 / S, introducido en agosto de 1966, dos voltajes lógicos diferentes aumentaron el abanico de la lógica económica de diodo-transistor . [19] El 8 / S también redujo el número de puertas lógicas mediante el uso de una ruta de datos en serie de un solo bit para realizar operaciones aritméticas. La CPU del PDP-8 / S tiene solo alrededor de 519 puertas lógicas . En comparación, los microcontroladores pequeños (a partir de 2008) suelen tener 15.000 o más. Las reducciones en la electrónica permitieron una caja mucho más pequeña, del tamaño de una caja de pan. El 8 / S fue diseñado por Saul Dinman. [7]

La PDP-8 / E, incluso más reciente, es una computadora más grande y capaz, pero rediseñada para ofrecer un mejor valor. Emplea una lógica transistor-transistor más rápida , en circuitos integrados. Se rediseñó la memoria central. Permite la expansión con menos gastos porque utiliza el OMNIBUS en lugar de la placa posterior envuelta en cables en los modelos anteriores. (Se puede leer un relato personal del desarrollo del PDP-8 / E en el Wiki de historia de la ingeniería y la tecnología. [20] )

Versiones del PDP-8 [ editar ]

Panel frontal PDP-8 / L
Panel frontal PDP-8 / I
Panel frontal PDP-8 / E
Panel frontal PDP-8 / F
Panel frontal PDP-8 / A 400

La cifra total de ventas de la familia PDP-8 se ha estimado en más de 300.000 máquinas. Se fabricaron los siguientes modelos:

Implementaciones de los últimos días [ editar ]

El PDP-8 se emula fácilmente , ya que su conjunto de instrucciones es mucho más simple que las arquitecturas modernas. Los entusiastas han creado PDP-8 completos utilizando dispositivos FPGA individuales .

Varias simulaciones de software de un PDP-8 están disponibles en Internet, así como reimplementaciones de hardware de código abierto. [32] [33] Los mejores ejecutan correctamente los sistemas operativos y el software de diagnóstico de DEC. Las simulaciones de software a menudo simulan PDP-8 de último modelo con todos los periféricos posibles. Incluso estos utilizan solo una pequeña fracción de la capacidad de una computadora personal moderna.

Una de las primeras versiones comerciales de una máquina virtual PDP-8 / S se ejecutó en un Kaypro 386 (una computadora basada en 80386) y fue escrita en el lenguaje de computadora C (antes de que se finalizara el estándar ANSI-C) y ensamblador por David Beecher de Denver, Colorado. Reemplazó una computadora PDP-8 / S defectuosa que operaba la máquina de manejo de combustible en el Reactor # 85, la Estación de Generación Eléctrica de Platteville, Colorado, propulsada por combustible nuclear, Ft. St. Vrain. Fue revisado por Rockwell International y funcionó sin problemas durante 2.5 años durante la operación de la Máquina de Manejo de Combustible mientras se usaba para remover combustible del núcleo del reactor y desmantelar la planta. Incluía un cargador de cinta de papel simulado y un panel frontal.

Entrada / salida [ editar ]

Los sistemas de E / S sufrieron grandes cambios durante la era PDP-8. Los primeros modelos PDP-8 utilizan una interfaz de panel frontal , un lector de cinta de papel y una impresora de teletipo con un perforador de cinta de papel opcional. Con el tiempo, se agregaron sistemas de E / S como cinta magnética , RS-232 y terminales tontos de bucle de corriente , lectores de tarjetas perforadas y discos de cabezal fijo . Hacia el final de la era PDP-8, los disquetes y las unidades de disco de cartucho de cabezal móvil eran dispositivos de E / S populares. Los entusiastas modernos han creado IDE estándar de estilo de PC adaptadores de disco duro para computadoras PDP-8 reales y simuladas.

Se admiten varios tipos de E / S:

  • In- backplane ranuras dedicadas para los controladores de E / S
  • Un bus de E / S "negativo" (usando señalización de voltaje negativo)
  • Un bus de E / S "positivo" (la misma arquitectura que usa señalización TTL)
  • El Omnibus (un panel posterior de ranuras de bus de sistema no dedicadas ) introducido en el PDP-8 / E. (Los detalles se describen en el artículo de IEEE al que se hace referencia a continuación).

Se admite una forma simplificada y económica de DMA denominada "interrupción de datos de tres ciclos"; esto requiere la ayuda del procesador. El método de "ruptura de datos" mueve parte de la lógica común necesaria para implementar E / S DMA de cada dispositivo de E / S en una copia común de la lógica dentro del procesador. La "interrupción de datos" coloca al procesador a cargo de mantener la dirección DMA y los registros de recuento de palabras. En tres ciclos de memoria sucesivos, el procesador actualiza el recuento de palabras, actualiza la dirección de transferencia y almacena o recupera la palabra de datos de E / S real.

La ruptura de datos de un ciclo triplica efectivamente la tasa de transferencia de DMA porque solo los datos de destino debían transferirse hacia y desde la memoria central. Sin embargo, los dispositivos de E / S necesitan más lógica electrónica para administrar su propio recuento de palabras y transferir registros de direcciones. Cuando se introdujo el PDP-8 / E, la lógica electrónica se había vuelto menos costosa y la "interrupción de datos de un ciclo" se hizo más popular.

Instalaciones de programación [ editar ]

Los primeros sistemas PDP-8 no tenían un sistema operativo, solo un panel frontal con interruptores de ejecución y parada. Los sistemas de desarrollo de software para la serie PDP-8 comenzaron con la entrada más básica del panel frontal del código de máquina binario sin procesar ( entrada de arranque ).

En la era intermedia, se desarrollaron varios "sistemas operativos" de cinta de papel. Muchos programas de servicios públicos estuvieron disponibles en cinta de papel. El código fuente del lenguaje ensamblador PAL-8 a menudo se almacenaba en una cinta de papel, se leía en la memoria y se guardaba en una cinta de papel. PAL ensamblado a partir de cinta de papel en la memoria. Había disponibles versiones en cinta de papel de varios lenguajes de programación, incluido el intérprete FOCAL de DEC [34] y un compilador y tiempo de ejecución 4K FORTRAN .

Hacia el final de la era PDP-8, los sistemas operativos como OS / 8 y COS-310 permitieron un editor de modo de línea tradicional y un sistema de desarrollo de compilador de línea de comandos utilizando lenguajes como el lenguaje ensamblador PAL-III, FORTRAN, BASIC y DIBOL. .

El sistema operativo en tiempo real (RTOS) bastante moderno y avanzado y los sistemas multiusuario multitarea preventivos estaban disponibles: un sistema en tiempo real (RTS-8) estaba disponible al igual que los sistemas comerciales multiusuario (COS-300 y COS-310) y un sistema de procesamiento de texto dedicado para un solo usuario (WPS-8).

Un tiempo compartido del sistema, SAT-8 , también estaba disponible. TSS-8 permite a varios usuarios iniciar sesión en el sistema a través de terminales de 110 baudios y editar, compilar y depurar programas. Los lenguajes incluyen una versión especial de BASIC, un subconjunto FORTRAN similar a FORTRAN-1 (sin subrutinas o funciones escritas por el usuario), un subconjunto ALGOL , FOCAL y un ensamblador llamado PAL-D.

DECUS , la Sociedad de Usuarios de Digital Equipment Corporation, ofrecía una gran cantidad de software donado por los usuarios para el PDP-8 , que a menudo venía con documentación y listados completos de fuentes.

Conjunto de instrucciones [ editar ]

Los tres bits de orden superior de la palabra de instrucción de 12 bits (bits etiquetados del 0 al 2) son el código de operación. Para las seis operaciones que se refieren a la memoria, los bits del 5 al 11 proporcionan una dirección de 7 bits. El bit 4, si está establecido, dice que se complete la dirección usando los 5 bits de orden superior del registro del contador de programa (PC), lo que significa que la ubicación direccionada estaba dentro de las mismas 128 palabras que la instrucción. Si el bit 4 está limpio, se utilizan ceros, por lo que la ubicación direccionada está dentro de las primeras 128 palabras de memoria. El bit 3 especifica la indirección; si se establece, la dirección obtenida como se describe hasta ahora apunta a un valor de 12 bits en la memoria que da la dirección efectiva real para la instrucción; esto permite que los operandos estén en cualquier lugar de la memoria a expensas de una palabra adicional. LaLa instrucción JMP no opera en una palabra de memoria, excepto si se especifica indirección, pero tiene los mismos campos de bits.

Páginas de memoria

Este uso de la palabra de instrucción divide la memoria de 4.096 palabras en páginas de 128 palabras ; el bit 4 de la instrucción selecciona la página actual o la página 0 (direcciones 0000–0177 en octal ). La memoria en la página 0 es escasa, ya que las variables colocadas aquí se pueden abordar directamente desde cualquier página. (Además, la dirección 0000 es donde debe comenzar cualquier rutina de servicio de interrupción, y las direcciones 0010–0017 tienen la propiedad especial de autoincremento antes de cualquier referencia indirecta a través de ellas).

El ensamblador estándar coloca valores constantes para aritmética en la página actual. Asimismo, los saltos entre páginas y las llamadas a subrutinas utilizan una dirección indirecta en la página actual.

Era importante escribir rutinas que se ajustaran a páginas de 128 palabras, o organizar rutinas para minimizar las transiciones de página, ya que las referencias y los saltos fuera de la página actual requieren una palabra adicional. En consecuencia, se dedicó mucho tiempo a conservar hábilmente una o varias palabras. Los programadores colocaron código deliberadamente al final de una página para lograr una transición libre a la página siguiente a medida que aumentaba la PC.

Instrucciones básicas [ editar ]

000 - Y - Y el operando de memoria con AC.
001 - TAD - Complemento a dos ADd el operando de memoria a <L, AC> (un valor con signo de 12 bits (AC) con acarreo en L).
010 - ISZ - Incrementa el operando de la memoria y salta la siguiente instrucción si el resultado es cero.
011 - DCA - Deposite AC en el operando de la memoria y borre AC.
100 - JMS - JuMp a subrutina (¡almacenando la dirección de retorno en la primera palabra de la subrutina!).
101 - JMP - JuMP.
110 - IOT - Transferencia de entrada / salida (ver más abajo).
111 - OPR - OPERACIONES microcodificadas (ver más abajo).

Instrucciones de IOT (transferencia de entrada-salida) [ editar ]

El procesador PDP-8 definió algunas de las instrucciones IOT, pero simplemente proporcionó un marco. La mayoría de las instrucciones de IOT fueron definidas por los dispositivos de E / S individuales.

Dispositivo

Los bits 3 a 8 de una instrucción IOT seleccionan un dispositivo de E / S. Algunas de estas direcciones de dispositivos están estandarizadas por convención:

  • 00 es manejado por el procesador y no enviado a ningún dispositivo de E / S (ver más abajo).
  • 01 suele ser el lector de cinta de papel de alta velocidad.
  • 02 es la perforadora de cinta de papel de alta velocidad.
  • 03 es el teclado de la consola (y cualquier lector de cinta de papel de baja velocidad asociado).
  • 04 es la impresora de consola (y cualquier perforadora de cinta de papel de baja velocidad asociada).

Las instrucciones para el dispositivo 0 afectan al procesador en su conjunto. Por ejemplo, ION (6001) habilita el procesamiento de interrupciones e IOFF (6002) lo deshabilita.

Función

Los bits 9 a 11 de una instrucción IOT seleccionan las funciones que realiza el dispositivo. Los dispositivos simples (como el lector y perforador de cinta de papel y el teclado y la impresora de la consola) usan las brocas de manera estándar:

  • El bit 11 hace que el procesador omita la siguiente instrucción si el dispositivo de E / S está listo.
  • El bit 10 borra AC.
  • El bit 9 mueve una palabra entre AC y el dispositivo, inicia otra transferencia de E / S y borra el indicador "listo" del dispositivo.

Estas operaciones se llevan a cabo en un orden bien definido que proporciona resultados útiles si se establece más de un bit.

Los dispositivos más complicados, como las unidades de disco, utilizan estos 3 bits de forma específica para cada dispositivo. Normalmente, un dispositivo decodifica los 3 bits para dar 8 códigos de función posibles.

OPR (OPeRate) [ editar ]

Muchas operaciones se logran utilizando OPR, incluida la mayoría de los condicionales. OPR no se ocupa de una ubicación de memoria; La ejecución condicional se logra saltando condicionalmente una instrucción, que normalmente es un JMP.

Se dijo que la instrucción OPR estaba "microcodificada". Esto no significó lo que la palabra significa hoy (que un programa de nivel inferior obtuvo e interpretó la instrucción OPR), pero significó que cada bit de la palabra de instrucción especifica una determinada acción, y el programador podría lograr varias acciones en un solo ciclo de instrucción. configurando varios bits. En uso, un programador puede escribir varios mnemónicos de instrucción uno junto al otro, y el ensamblador los combina con OR para diseñar la palabra de instrucción real. Muchos dispositivos de E / S admiten instrucciones IOT "microcodificadas".

Las acciones microcodificadas tienen lugar en una secuencia bien definida diseñada para maximizar la utilidad de muchas combinaciones.

Las instrucciones OPR vienen en grupos. Los bits 3, 8 y 11 identifican el grupo de una instrucción OPR, por lo que es imposible combinar las acciones microcodificadas de diferentes grupos.

Grupo 1 [ editar ]

 00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1 | 1 | 1 | 0 | | | | | | | | | | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | | CLA CMA RAR BSW CLL CML RAL IAC Orden de ejecución 1 1 2 2 4 4 4 3
7200 - CLA - Acumulador transparente
7100 - CLL - Borrar el bit L
7040 - CMA - Acumulador de complemento de uno
7020 - CML - Complemento L Bit
7001 - IAC - Incremento <L, AC>
7010 - RAR - Girar <L, AC> Derecha
7004 - RAL - Girar <L, AC> Izquierda
7012 - RTR - Girar <L, AC> dos veces a la derecha
7006 - RTL - Girar <L, AC> a la izquierda dos veces
7002 - BSW - Byte Swap "bytes" de 6 bits (PDP 8 / e y superior)

En la mayoría de los casos, las operaciones se ordenan en secuencia para que se puedan combinar de la manera más útil. Por ejemplo, la combinación de CLA (CLear Accumulator), CLL (CLear Link) e IAC (Increment ACcumulator) primero borra el AC y el Link, luego incrementa el acumulador, dejándolo configurado en 1. Agregar RAL a la mezcla (por lo que CLA CLL IAC RAL) hace que el acumulador se borre, incremente y luego gire a la izquierda, dejándolo configurado en 2. De esta manera, se colocaron pequeñas constantes enteras en el acumulador con una sola instrucción.

La combinación CMA IAC, que el ensamblador le permite abreviar como CIA, produce la aritmética inversa de AC: la negación del complemento a dos. Como no hay instrucción de resta, solo la suma de complemento a dos (TAD), calculando la diferencia de dos operandos, requiere primero negar el sustraendo.

Una instrucción OPR del Grupo 1 que no tiene ninguno de los bits microprogramados establecidos no realiza ninguna acción. El programador puede escribir NOP (Sin operación) para ensamblar dicha instrucción.

Grupo 2, o grupo [ editar ]

 00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1 | 1 | 1 | 1 | | | | | 0 | | | 0 | | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | | CLA SZA OSR SMA SNL HLT 2 1 1 1 3 3
7600 - CLA - AC transparente
7500 - SMA - Saltar en AC <0 (o grupo)
7440 - SZA - Saltar en AC = 0 (o grupo)
7420 - SNL - Saltar en L ≠ 0 (o grupo)
7404 - OSR - lógicamente 'o' interruptores del panel frontal con CA
7402 - HLT - Detener

Cuando el bit 8 está limpio, se realiza un salto si se cumple alguna de las condiciones especificadas. Por ejemplo, "SMA SZA", código de operación 7540, se salta si AC ≤ 0.

Una instrucción OPR del Grupo 2 que no tiene ninguno de los bits microprogramados establecidos es otra instrucción No-Op.

Grupo 2 y grupo [ editar ]

 00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1 | 1 | 1 | 1 | | | | | 1 | | | 0 | | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | | CLA SNA OSR SPA SZL HLT 2 1 1 1 3 2
7410 - SKP - Saltar incondicionalmente
7610 - CLA - AC transparente
7510 - SPA - Omitir AC ≥ 0 (y grupo)
7450 - SNA - Saltar en AC ≠ 0 (y grupo)
7430 - SZL - Saltar en L = 0 (y grupo)

Cuando se establece el bit 8, se invierte la condición de salto del Grupo 2, a través de las leyes de De Morgan : el salto no se realiza si alguna de las condiciones del grupo 2, Or es verdadera, lo que significa que todas las condiciones de salto especificadas deben ser verdaderas. Por ejemplo, "SPA SNA", código de operación 7550, se salta si AC> 0. Si no se establece ninguno de los bits 5-7, la omisión es incondicional.

Grupo 3 [ editar ]

Las combinaciones de bits no utilizadas de OPR se definen como un tercer grupo de acciones microprogramadas que afectan principalmente al registro MQ (multiplicador / cociente). El registro MQ y las instrucciones del elemento aritmético ampliado (EAE) son opcionales y solo existen cuando se compró la opción EAE. [35]

 00 01 02 03 04 05 06 07 08 09 10 11 ___________________________________ | 1 | 1 | 1 | 1 | | | | | | | | 1 | | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | __ | | CLA SCA \ _ _ / | CÓDIGO MQA MQL 1 * 2 2 2 3
7601 - CLA - AC transparente
7501 - MQA - Cociente multiplicador con AC (lógico o MQ en AC)
7441 - SCA - Carga del contador de pasos en CA
7421 - MQL - Carga del cociente del multiplicador (Transferir CA a MQ, borrar CA)
7621 - CAM - CLA + MQL borra tanto AC como MQ.

Normalmente, CLA y MQA se combinaron para transferir MQ a AC. Otra combinación útil es MQA y MQL, para intercambiar los dos registros.

Tres bits especificaron una instrucción de multiplicar / dividir para realizar:

7401 - Sin operación
7403 - SCL - Carga del contador de pasos (sigue la palabra inmediata, PDP-8 / I y superiores)
7405 - MUY - Multiplica
7407 - DVI - Dividir
7411 - NMI - Normalizar
7413 - SHL - Desplazar a la izquierda (sigue la palabra inmediata)
7415 - ASR - Desplazamiento aritmético a la derecha
7417 - LSR - Desplazamiento lógico a la derecha

Control de memoria [ editar ]

Pila de memoria central PDP-8 / I
Uno de los tres módulos interconectados que componen un plano de memoria de núcleo PDP-8.
Uno de los tres módulos interconectados que componen un plano de memoria de núcleo PDP-8. Este es el medio de los tres y contiene la matriz de núcleos de ferrita reales.
Uno de los tres módulos interconectados que componen un plano de memoria de núcleo PDP-8.

Una palabra de 12 bits puede tener 4096 valores diferentes, y este es el número máximo de palabras que el PDP-8 original puede direccionar indirectamente a través de un puntero de palabra. 4.096 palabras de 12 bits representan 6.144 bytes en terminología moderna, o 6 kB. A medida que los programas se volvían más complejos y bajaba el precio de la memoria, se hizo deseable ampliar este límite.

Para mantener la compatibilidad con programas preexistentes, el nuevo hardware fuera del diseño original agregó bits de alto orden a las direcciones efectivas generadas por el programa. El controlador de extensión de memoria expande la memoria direccionable en un factor de 8, hasta un total de 32,768 palabras. Se pensó que esta expansión era suficiente porque, con la memoria del núcleo costando alrededor de 50 centavos por palabra, 32K de memoria completa equivaldría al costo de la CPU.

Cada 4K de memoria se llama campo. El controlador de extensión de memoria contiene dos registros de tres bits: el DF (campo de datos) y el IF (campo de instrucción). Estos registros especifican un campo para cada referencia de memoria de la CPU, lo que permite un total de 15 bits de dirección. El registro IF especifica el campo para búsquedas de instrucciones y referencias directas a memoria; el registro DF especifica el campo para accesos indirectos a datos. Un programa que se ejecuta en un campo puede hacer referencia a datos en el mismo campo mediante direccionamiento directo y datos de referencia en otro campo mediante direccionamiento indirecto.

El controlador de extensión de memoria maneja un conjunto de instrucciones de E / S en el rango de 6200 a 6277 y dan acceso a los registros DF e IF. La instrucción 62X1 (CDF, ​​Cambiar campo de datos) establece el campo de datos en X. De manera similar, 62X2 (CIF) establece el campo de instrucción y 62X3 establece ambos. Los programas preexistentes nunca ejecutarían CIF o CDF; los registros DF e IF apuntarían ambos al mismo campo, un campo único al que estos programas estaban limitados. El efecto de la instrucción CIF se aplazó para que coincidiera con la siguiente instrucción JMP o JMS, de modo que la ejecución de CIF no provocara un salto.

Fue más complicado para los programas de campo múltiple lidiar con los límites de campo y los registros DF e IF de lo que hubiera sido si simplemente pudieran generar direcciones de 15 bits, pero el diseño proporcionó compatibilidad con versiones anteriores y es consistente con la arquitectura de 12 bits. utilizado en todo el PDP-8. Compare el Intel 8086 posterior , cuyas direcciones de memoria de 16 bits se expanden a 20 bits combinándolas con el contenido de un registro de segmento específico o implícito .

El esquema de memoria extendida permite que los programas existentes manejen más memoria con cambios mínimos. Por ejemplo, 4K FOCAL normalmente tenía alrededor de 3K de código y solo quedaba 1K para el programa de usuario y los datos. Con algunos parches, FOCAL podría usar un segundo campo 4K para el programa y los datos del usuario. Además, se podrían asignar campos 4K adicionales a usuarios separados, convirtiendo 4K FOCAL en un sistema de tiempo compartido multiusuario.

Virtualización

En el PDP-8 / E y modelos posteriores, el controlador de extensión de memoria se mejoró para permitir la virtualización de la máquina. Un programa escrito para utilizar todos los recursos de un PDP-8 puede coexistir con otros programas similares en el mismo PDP-8 bajo el control de un administrador de máquina virtual. El administrador puede hacer que todas las instrucciones de E / S (incluidas las que operan en el controlador de extensión de memoria) provoquen una trampa (una interrupción manejada por el administrador). De esta manera, el administrador puede mapear referencias de memoria, mapear datos o campos de instrucción y redirigir E / S a diferentes dispositivos. Cada programa original tiene acceso completo a una "máquina virtual" proporcionada por el administrador.

Las nuevas instrucciones de E / S para el controlador de extensión de memoria recuperan el valor actual de los campos de datos e instrucciones, lo que permite que el software guarde y restaure la mayor parte del estado de la máquina a través de una trampa. Sin embargo, un programa no puede detectar si la CPU está en proceso de diferir el efecto de una instrucción CIF (si ha ejecutado un CIF y aún no ha ejecutado la instrucción de salto coincidente). El administrador debe incluir un emulador PDP-8 completo (no es difícil para una máquina de 8 instrucciones). Siempre que una instrucción CIF atrape al administrador, debe emular las instrucciones hasta el siguiente salto. Afortunadamente, como un salto suele ser la siguiente instrucción después de CIF, esta emulación no ralentiza mucho los programas, pero es una gran solución para una deficiencia de diseño aparentemente pequeña. [ cita requerida ]

En el momento del PDP-8 / A, los precios de la memoria habían caído lo suficiente como para que la memoria superara los 32K era deseable. El 8 / A agregó un nuevo conjunto de instrucciones para manejar más de ocho campos de memoria. El número de campo ahora podría colocarse en el AC, en lugar de codificarse en la instrucción. Sin embargo, en ese momento, el PDP-8 estaba en declive, por lo que se modificó muy poco software estándar para usar estas nuevas funciones.

Ejemplos [ editar ]

Los siguientes ejemplos muestran código en lenguaje ensamblador PDP-8 como se podría escribir para el ensamblador PAL-III.

Comparando dos números [ editar ]

El siguiente fragmento de código muestra lo que se necesita solo para comparar dos números:

 / Comparar números en memoria en OPD1 y OPD2 CLA CLL / Debe comenzar con 0 en AC y enlace TAD OPD1 / Carga el primer operando en AC (agregándolo a 0); el enlace sigue siendo claro CIA / Complemento, luego incrementa AC, negándolo TAD OPD2 / AC ahora tiene OPD2-OPD1; si OPD2≥OPD1, la suma se desborda y se establece el enlace SZL / Omitir si el enlace está claro JMP OP2GT / Saltar en algún lugar en el caso de que OPD2≥OPD1; / De lo contrario, siga el código siguiente.

Como se muestra, gran parte del texto de un programa típico de PDP-8 se centra no en el algoritmo previsto por el autor, sino en la mecánica de bajo nivel. Un problema de legibilidad adicional es que en saltos condicionales como el que se muestra arriba, la instrucción condicional (que salta el JMP) resalta lo contrario de la condición de interés.

Salida de cadena [ editar ]

Este programa completo en lenguaje ensamblador PDP-8 genera "¡Hola, mundo!" al teleimpresor.

 * 10 / Establecer el origen del ensamblaje actual en la dirección 10, STPTR, STRNG-1 / Un registro de incremento automático (uno de ocho en 10-17) * 200 / Establecer el origen del ensamblaje actual en el área de texto del programa HOLA, CLA CLL / Borrar AC y Link de nuevo (necesario cuando volvemos desde tls) TAD IZ STPTR / Obtener el siguiente carácter, indirecto mediante PRE-dirección de incremento automático desde la página cero SNA / Skip si no es cero (no al final de la cadena) HLT / Else detener en cero (final de cadena) TLS / Salida del carácter en el AC al teleimpresor TSF / Omitir si la teleimpresora está lista para el carácter JMP.-1 / Else retrocede y vuelve a intentarlo JMP HELLO / Retrocede para el siguiente personaje FUERZA, 310 / H 345 / e 354 / l 354 / l 357 / o 254 /, 240 / (espacio) 367 / semana 357 / o 362 / r 354 / l 344 / d 241 /! 0 / Fin de cadena $ HOLA / TERMINADOR POR DEFECTO

Subrutinas [ editar ]

El procesador PDP-8 no implementa una pila en la que almacenar registros u otro contexto cuando se llama a una subrutina o se produce una interrupción . (Se puede implementar una pila en software, como se demuestra en la siguiente sección). En cambio, la instrucción JMS simplemente almacena la PC actualizada (apuntando más allá de JMS, a la dirección de retorno) en la dirección efectiva y salta a la dirección efectiva más uno. La subrutina regresó a su llamador usando una instrucción JMP indirecta que se dirige a la primera palabra de la subrutina.

Por ejemplo, aquí está "¡Hola, mundo!" reescrito para usar una subrutina. Cuando la instrucción JMS salta a la subrutina, modifica el 0 codificado en la ubicación OUT1:

 * 10 / Establecer el origen del ensamblaje actual en la dirección 10, STPTR, STRNG-1 / Un registro de incremento automático (uno de ocho en 10-17) * 200 / Establecer origen de ensamblaje (dirección de carga) LOOP, TAD I STPTR / Preincrementar la ubicación de la memoria 10, buscar indirecto para obtener el siguiente carácter de nuestro mensaje SNA / Saltar en CA distinta de cero HLT / Else se detiene al final del mensaje JMS OUT1 / Escriba un carácter JMP LOOP / And loop back para más OUT1, 0 / Será reemplazado por la PC actualizada de la persona que llama TSF / Omitir si la impresora está lista JMP.-1 / Esperar bandera TLS / Enviar el personaje en el AC CLA CLL / Clear AC y Link para la siguiente pasada JMP I OUT1 / Volver a llamante STRNG, "H / A mensaje conocido "e / "l / NOTA: "l / "o / Las cadenas en PAL-8 y PAL-III eran de" seis bits " ", / Para usar ASCII, lo deletreamos, carácter por carácter "/ "con "o / "r / "l / "D / "! / 015 / 012 / 0 / Marque el final de nuestra cadena terminada en nulo (¡.ASCIZ aún no se había inventado!)

El hecho de que la instrucción JMS use la palabra justo antes del código de la subrutina para depositar la dirección de retorno evita la reentrada y la recursividad sin trabajo adicional por parte del programador. También dificulta el uso de la ROM con el PDP-8 porque el almacenamiento de dirección de retorno de lectura-escritura se combina con el almacenamiento de código de solo lectura en el espacio de direcciones. Los programas destinados a colocarse en ROM abordan este problema de varias formas:

  • Se copian a sí mismos en la memoria de lectura y escritura antes de la ejecución, o
  • Se colocan en tarjetas ROM especiales que proporcionan algunas palabras de memoria de lectura / escritura, a las que se accede indirectamente mediante el uso de un decimotercer bit de bandera en cada palabra ROM.
  • Evitan el uso de subrutinas; o use un código como el siguiente, en lugar de la instrucción JMS, para poner la dirección de retorno en la memoria de lectura y escritura:
 JUMPL, DCA TEMP / Deposite el acumulador en algún lugar temporal TAD JUMPL + 3 / Cargar la dirección de retorno en el acumulador: codificado JMP SUBRO / Vaya a la subrutina y haga que maneje el salto hacia atrás (a JUMPL + 3)

El uso de la instrucción JMS dificulta la depuración. Si un programador comete el error de tener una subrutina llamada él mismo, directamente o por una subrutina intermedia, entonces la dirección de retorno de la llamada externa es destruida por la dirección de retorno de la llamada subsiguiente, lo que lleva a un bucle infinito. Si un módulo está codificado con una dirección incorrecta u obsoleta para una subrutina, no solo fallaría en ejecutar la secuencia de código completa de la subrutina, podría modificar una palabra del código de la subrutina, depositando una dirección de retorno que el procesador podría interpretar como una instrucción durante una llamada correcta posterior a la subrutina. Ambos tipos de error pueden resultar evidentes durante la ejecución de código escrito correctamente.

Pila de software [ editar ]

Aunque el PDP-8 no tiene una pila de hardware , las pilas se pueden implementar en software. [36] A continuación, se muestran subrutinas PUSH y POP de ejemplo, simplificadas para omitir problemas como las pruebas de desbordamiento y subdesbordamiento de pila:

 EMPUJE, 0 DATOS DCA CLA CMA / -1 TAD SP DCA SP TAD DATA DCA I SP JMP I PUSH / Volver POP, 0 CLA CLL TAD I SP ISZ SP JMP I POP DATOS, 0 SP, 0

Y aquí está "Hello World" con esta "pila" implementada, y la subrutina "OUT":

 * 200 MAIN, CLA CLL / Establecer el puntero del mensaje TAD (MESSG / Al principio del mensaje (literal) DCA SP BUCLE, JMS POP SNA / Detener ejecución si es cero HLT JMS OUT / De lo contrario, generar un carácter BUCLE JMP MENSAJE, "H "mi "l "l "o ", " "w "o "r "l "D "! 015 012 0 OUT, 0 / Será reemplazado por la PC actualizada de la persona que llama TSF / Omitir si la impresora está lista JMP.-1 / Esperar bandera TLS / Enviar el personaje en el AC CLA CLL / Clear AC y Link para la siguiente pasada JMP I OUT / Volver a llamante

Lista vinculada [ editar ]

Otra posible subrutina para el PDP-8 es una lista enlazada.

 GETN, 0 / Obtiene el número al que apunta y mueve el puntero CLA CLL / Acumulador transparente TAD I PTR / Obtiene el número al que apunta TEMPERATURA DCA / Guardar valor actual ISZ PTR / puntero de incremento TAD I PTR / Obtener la siguiente dirección DCA PTR / Poner puntero JMP I GETN / regreso PTR, 0 TEMPERATURA, 0

Interrumpe [ editar ]

Hay una sola línea de interrupción en el bus de E / S del PDP-8. El procesador maneja cualquier interrupción deshabilitando más interrupciones y ejecutando JMSa la ubicación 0000. Como es difícil escribir subrutinas reentrantes, es difícil anidar interrupciones y esto generalmente no se hace; cada interrupción se ejecuta hasta su finalización y vuelve a habilitar las interrupciones justo antes de ejecutar la JMP I 0instrucción que regresa de la interrupción.

Debido a que solo hay una línea de interrupción en el bus de E / S, la ocurrencia de una interrupción no informa al procesador de la fuente de la interrupción. En cambio, la rutina del servicio de interrupción tiene que sondear en serie cada dispositivo de E / S activo para ver si es la fuente. El código que hace esto se llama cadena de omisión porque consiste en una serie de instrucciones de E / S de prueba de PDP-8 "y omitir si se establece el indicador". (No era extraño que una cadena de salto llegara a su final sin encontrar ningún dispositivo que necesitara servicio). La prioridad relativa de interrupción de los dispositivos de E / S está determinada por su posición en la cadena de salto: si varios dispositivos interrumpen, el dispositivo probado anteriormente en la cadena de salto recibe servicio primero.

Libros [ editar ]

Un libro de texto de ingeniería popular en la década de 1980, El arte del diseño digital de David Winkel y Franklin Prosser, contiene un problema de ejemplo que abarca varios capítulos en los que los autores demuestran el proceso de diseño de una computadora que sea compatible con el PDP-8 / I. Se explica la función de cada componente. Aunque no es un diseño de producción, ya que utiliza componentes SSI y MSI más modernos , el ejercicio proporciona una descripción detallada del funcionamiento de la computadora.

Clones sin licencia [ editar ]

La URSS produjo miniordenadores Saratov-1 y Saratov-2, respectivamente, PDP-8 y PDP-8 / E .

Referencias [ editar ]

  1. ^ a b "Resumen de modelos y opciones de PDP-8" . Sección - Qué es un PDP-5.
  2. ^ a b Douglas W. Jones . "The Digital Equipment Corporation PDP-8 - Preguntas frecuentes" .
  3. ^ Banco de la Reserva Federal de Minneapolis. "Índice de precios al consumidor (estimación) 1800–" . Consultado el 1 de enero de 2020 .
  4. ↑ a b Schein, Edgar H. (2004). DEC ha muerto, viva DEC: el legado duradero de Digital Equipment Corporation . San Francisco, Calif .: Berrett-Koehler Publishers. pag. 271. ISBN 1576753050.
  5. ^ Douglas W. Jones. "The Digital Equipment Corporation PDP-8" .
  6. ^ "PDP-8 1965" . History Wired . Institución Smithsonian . Archivado desde el original el 17 de febrero de 2015 . Consultado el 17 de febrero de 2015 .
  7. ^ a b "PDP-8 / S # 1" . Museo de la Computación de Rhode Island . 18 de agosto de 2020. Archivado desde el original el 26 de febrero de 2021 . Consultado el 7 de mayo de 2021 .
  8. ^ Glenn Rifkin; George Harrar (1988). El empresario definitivo: la historia de Ken Olsen y Digital Equipment Corporation . ISBN 978-1-55958-022-9.
  9. ^ Small Computer Handbook, NUEVA edición PDP 8 / I (adelante) . Corporación de Equipos Digitales . 1968.
  10. ^ "Evaluación comparativa de los idiomas" . Revista de PC . Vol. 4 no. 22. 29 de octubre de 1985. p. 112. el mejor uso del recurso informático más preciado de la actualidad: el tiempo de un programador ...
  11. ^ una frase utilizada en la Sección 1.1 de "Introducción a la Unidad Central de Procesamiento (CPU)" de un documento de 2007 sobre una microcomputadora de Texas Instruments. "Conjunto de instrucciones y CPU TMS320C28x (Rev. F)" (PDF) .
  12. ^ Torben Ægidius Mogensen (20 de agosto de 2010). Conceptos básicos del diseño del compilador (PDF) . pag. 1. Otra ventaja de utilizar un lenguaje de alto nivel es que el mismo programa se puede compilar en muchos lenguajes de máquina diferentes y, por lo tanto, ejecutarlo en muchas máquinas diferentes.
  13. ^ C. Gordon Bell ; JC Mudge; JE McNamara (1978). Ingeniería informática: una vista DEC del diseño de sistemas de hardware (PDF) . Prensa digital . pag. 175 . ISBN  0-932376-00-2.
  14. ^ Manual de referencia de programadores de sistemas de coma flotante PDP-8 (PDF) . Corporación de Equipos Digitales. Septiembre de 1969. DEC-08-YQYB-D.
  15. ^ "Sistema de composición tipográfica PDP-8" (PDF) . Corporación de Equipos Digitales. 1965.
  16. ^ C. Gordon Bell, et al .; Estructuras, principios y organización de la computadora, 1982, capítulo PDP-8
  17. ^ "Capítulo 8: Tipo de elemento aritmético extendido 182" . Manual del usuario de PDP-8 . Corporación de Equipos Digitales. 1966. p. 41.
  18. ^ "Capítulo 4: Descripción y funcionamiento del sistema". Introducción a la programación (PDF) . Corporación de Equipos Digitales. 1969. págs. 4-22.
  19. ^ PDP-8 / S Manual de Mantenimiento . Corporación de Equipos Digitales. 1971.
  20. ^ Remo J. Vogelsang (2013). "De primera mano: PDP-8 / E OMNIBUS Ride" .
  21. ^ "Resumen de modelos y opciones de PDP-8 (publicado cada dos meses)" . www.faqs.org .
  22. ^ "PDP-8 - Una computadora digital de alta velocidad" (PDF) . 1965. pág. 18.
  23. ^ PDP-8 / S Manual de mantenimiento (PDF) (5ª ed.). Octubre de 1970. p. 1-2.
  24. ^ "Tabla 11. Datos de instalación". Small Computer Handbook (PDF) (edición 1967-68). 1968. p. 290 (300).
  25. ^ "Tabla 13-1 Datos de instalación". Small Computer Handbook (PDF) (edición de 1970). 1970. p. 277 (291).
  26. ^ "Especificaciones de la familia PDP-8". Folleto de ventas de PDP-8 / e / f / m (PDF) . pag. 17.
  27. ^ "Especificaciones de la familia PDP-8". Folleto de ventas de PDP-8 / e / f / m (PDF) . pag. 17.
  28. ^ "Museo de la computadora de la fuente del sistema: PDP-8M" .
  29. ^ "Especificaciones de la familia PDP-8". Folleto de ventas de PDP-8 / e / f / m (PDF) . pag. 17.
  30. ^ "La explosión 1975-1976» AntiqueTech " . AntiqueTech.com. 2009-04-21. Archivado desde el original el 3 de julio de 2017 . Consultado el 19 de junio de 2017 .
  31. ↑ a b Bell, Gordon (1980), Family Tree of Digital's Computers , (Poster), Digital Equipment Corporation , consultado el 19 de junio de 2017
  32. ^ "SBC6120" . 2011-12-05 . Consultado el 14 de mayo de 2016 .
  33. ^ "Obsolescencia garantizada" . Consultado el 14 de mayo de 2016 .
  34. ^ Manual de programación FOCAL para PDP-8, PDP-8 / S, PDP-8 / I, LAB-8, LINC-8 (PDF) . Corporación de Equipos Digitales. 1968. DIC-08-AJAB-D.
  35. ^ Manual de computadoras pequeñas 1967-1968 . Corporación de Equipos Digitales. 1968. págs. 130-136.
  36. ^ Mark Smotherman. "Subrutinas DEC PDP-8" . 2002.
  • C. Gordon Bell y Allen Newell , 1971, Estructuras informáticas: lecturas y ejemplos , McGraw-Hill Book Company, Nueva York. Capítulo 5 El DEC PDP-8 , páginas 120-136. Con suficiente detalle para que un ingeniero eléctrico pueda construir uno (si puede encontrar las piezas).

Enlaces externos [ editar ]

  • Documentación pdp-8: The Small Computer Handbook (1966 Edition), Secciones 1 y 2 y otras están disponibles en Simon Fraser University
  • "Preguntas frecuentes sobre el PDP-8" . www.faqs.org . Una sola página . 27 de marzo de 2014 . Consultado el 16 de diciembre de 2018 .CS1 maint: others (link)
  • http://homepage.cs.uiowa.edu/~jones/pdp8/
  • "Resumen de modelos y opciones de PDP-8" . www.faqs.org . Una sola página . 27 de marzo de 2014 . Consultado el 16 de diciembre de 2018 .CS1 maint: others (link)
  • pdp8online.com tiene un PDP8 en ejecución que cualquiera puede controlar a través de un subprograma de Java, además de una cámara web para mostrar los resultados.
  • dpa , un ensamblador cruzado PDP-8 portátil
  • Computadora compatible con PDP-8 SBC6120 PDP-8 de Spare Time Gizmos con panel frontal opcional
  • Sigue funcionando Classic 8, PDP 8e y 8i en un museo informático alemán
  • El elegante simulador PDP-8 / E de Bernhard Baehr para Macintosh
  • Simulador PDP-8 / E de Willem van der Mark en Java
  • http://simh.trailing-edge.com un simulador muy portátil para PDP-8, que funciona en prácticamente cualquier sistema operativo moderno.
  • Réplica de código abierto PiDP-8 del PDP-8 usando una Raspberry Pi que ejecuta SIMH conectada a una réplica del panel frontal del PDP-8.
  • The Digital Equipment Corporation PDP-8, 1965  - Colección de historia de la computadora del Smithsonian
  • Aplicación histórica de PDP8 en Alemania para todos los centros de Deutsche Bank y otras instituciones financieras: Olympia Multiplex 80 (Olympia Business Systems)
  • Una guía para la preservación y restauración de computadoras PDP-8
  • PDP-8 de Digital Equipment Corporation Explicación de Steve Gibson sobre cómo funciona el PDP-8 y cómo programarlo.
  • YouTube tiene una serie de videos que muestran el PDP-8.
  • "Índice de documentos PDP-8" . Sitio web BitSavers.Org . Consultado el 29 de mayo de 2011 .