Había una vez, un mundo donde no solo convivían reyes estúpidos y princesas hermosas, no sólo bandidos del bosques y juglares alegres, sino también maravillosas PDP-11. Y hete aquí... un sueño preciado hecho realidad. Finalmente, armé una PDP-11 "burguesa" verdadera. Intentaré contar cómo se puede armar una DEC PDP-11/83. Llevaba mucho tiempo intentando armarme algo soviético, pero o soy demasiado vago o "necesito conocer los lugares", o ambas cosas al mismo tiempo. Lo máximo soviético que pude consignarme fue una Elektronika BK-1000 de la RS de Armenia (ex URSS), que me regaló una empleada de la casa Kalpakian (famosa fabricante de alformbras en la Argentina). Fuera de eso es es muy difícil o incluso imposible montar algo soviético de este nivel. Con el DEC PDP-11 todo resultó fácil y sencillo, pues la coneguí por un conocido de resabio, y sólo necesitabas que alguien le diera una buena lectura a los manuales de Bitsavers.org. Espero que estoy ayude a alguien a convertirse en un feliz propietario de la máquina PDP-11, o al menos reduzca el tiempo dedicado desglosar la información necesaria. Todos los componentes (a excepción de la fuente de alimentación, conectores y los cables) me los dieron. No describiré aquí el proceso de compra; pero la realidad es que estos equipos se pueden encontrar en Internet. Personalmente no compré nada, salvo algunos componentes de conectores para armar los cables, para los cuales pude hacer uso de muchos cables planos tipo IDE o Floppy que tengo guardado desde tiempos inmemoriales (y mediante adaptación, son compatibles y fundamentales para hacer funcionar "el lavarropas"). Mother CPU Memoria Controlador de disco Controlador de red Ethernet Terminales adicionales, impresoras serie, DECtape II (TU58) Impresora paralela unidad de alimentación de energía Armado Conexión de dispositivos externos Arrancar el sistema en una computadora vacía Formateo de discos MFM para RQDX3 Motherboard Lo más importante y más difícil es el motherboard. Probablemente sea lo más difícil de encontrar, pero no imposible. Es distinta a la de la PC, pues simplemente es un soporte eléctrico para ensamblaje, con algunos aditamentos. En si no vino toda la mother como tal, pero sí la parte principal: el panel de conexión. Cabe destacar que para este propósito se necesita un panel que cuente al menos tres ranuras PMI. Me vino con el panel H9278-A que cumple tal premisa. CPU Necesitamos un plaqueta de procesador con CPU KDJ11-BF (M8190-AE). Este tiene mas o menos el tamaño de un motherboard de PC AT, y es el procesador utilizado tanto en la PDP-11/83 como en la PDP-11/84. Admite hasta 4 MB de memoria, separación de espacio de instrucciones/datos, modo supervisor, conjunto de instrucciones básicas (BIS) y conjunto de instrucciones extendidas (EIS), instrucciones del procesador de coma flotante (FPP), así como conjuntos de instrucciones adicionales: MTPS, MFPS, MFPT, CSM, TSTSET y WRTLCK. Se le puede instalar un coprocesador matemático en forma de chip acelerador de coma flotante (o FPA). El direccionamiento de memoria se hace posible tanto a través de Q-Bus como a través de PMI. La placa módulo consta de un puerto para consola de terminal incorporado, que soporta tanto RS232 como programas de diagnóstico, descarga y bucle de corriente (current loop de 4/20 miliamperes). El KDJ11-BF permite montar una configuración flexible de los parámetros del sistema, así como agregar programas de cargador de arranque propios para dispositivos. Memoria La PDP-11/83 utiliza memorias MSV11-JD (M8637-DA) o MSV11-JE (M8637-EA). Este es un módulo de memoria RAM de tipo ECC con interfaz PMI en placa. El módulo MSV11-JD tiene una capacidad de 1 MB de memoria, mientras que el módulo MSV11-JE tiene 2 MB de capacidad. En la PDP-11/83 se pueden montar uno o dos de estos módulos de memoria. Controlador de disco Existen muchos controladores de disco que se pueden utilizar en el PDP-11/83. Muy convenientemente vinieron dos de ellos. El primer controlador que tuve en mis manos fue el RQDX3 (M7555). Esta placa admite hasta cuatro discos rígidos MFM o bien dos discos rígidos y dos disketteras de 5,25" RX50. Los discos rigidos MFM deben ser de ciertos modelos, correspondientes a RD51, RD52, RD53 y similares en la nomenclatura de DEC. Conseguí e instalé exitosamente los viejos modelos Seagate ST251 y Seagate ST277 de máquinas XT, correspondientes a modelo que se vendía como DEC RD32 en los 80s. Al respecto, los modelos Seagate ST506 (DEC RD50), Seagate ST412 (DEC RD51), Quantum 540 o ATASI 3046 (DEC RD52), Maxtor XT-2190D (DEC RD54) y Seagate ST225 (DEC RD31) deberían funcionar sin problemas. Para ello se utiliza una plaqueta de expansión (M9058) para conectar unidades al RQDX3. Se puede utilizar un cable SCSI común de 50 hilos para conectar el controlador de disco a la placa de expansión. Para conectar los discos rígidos se usan directamente cables IDE estándar de 40 hilos y cables de control de 20 hilos. Este último es más difícil de conseguir; si no se consiguen cables originales para para discos duros MFM, se puede adaptar los más comunes cables de disketteras de 34 hilos dotándolos de conectores hembra unidades de disquete de 5,25 de tipo IDC-20 en la parte posterior (el conector se consigue, y se arma simplemente cerrando su traba a presión). Aún mejor usar un controlador SCSI. Este es mas caro, pero vino con la máquina y vale la pena por la facilidad de adosarle hardware hoy en día. Vino el SCSI-2 CQD-420/TM que admite hasta 7 dispositivos SCSI (discos o cintas). La configuración estándar es de 4 discos/3 cintas, pero se pueden configurar otras opciones. También admite la subdivisión por hardware del disco rígudo en dos o cuatro particiones del mismo tamaño. De esta forma se pueden usar casi todos los discos rígidos SCSI, floppys, unidades magneto-ópticas, unidades de CD-ROM y unidades de cinta relativamente modernas que tengan conectores de 50 pines. Controlador de red Ethernet Hoy en día es imposible vivir sin integrar la máquina a una red de datos. Los controladores más comunes para sistemas Q-Bus son el DEQNA-AA (M7504) y el DELQA-M (M7516). Se trata de plaquetas controladores Ethernet con la vieja interfaz AUI de tipo DB15 (por los que también se requiere un transceptor AUI-TP). Vino el controlador DELQA-M. Si tienen la suerte de conseguir un controlador con un kit de interfaz nativo, genial. De lo contrario, se puede fabricar uno usando un cable plano de 20 hilos con un conector tipo floppy IDC-20 y un conector DB15 (de tipo gamport/MIDI). Terminales adicionales, impresoras serie, DECtape II (TU58) Por supuesto, es posible arreglarse con un terminal de consola. Pero es mejor contar con un conector de reserva. Vino con un controlador DLV11-J con cuatro puertos terminales que admiten conexión serial RS232 y bucle de corriente. Las interfaces se pueden configurar a velocidades de hasta 38.400 baudios por segundo. Este controlador permite conectar terminales adicionales, impresoras de interfaz serial, terminal teletipo DECtape II (TU58) o, más realista en nuestro tiempo, su emulador, así como conectar otras computadoras. También es posible utilizar multiplexores para conectar terminales adicionales. Los multiplexores permiten trabajar de manera más óptima con las líneas y también le permiten utilizar funciones adicionales, como la configuración por software de la velocidad y los parámetros de conexión, trabajar con señales de módem (lo cual es sumamente útil cuando se utilizan líneas para la comunicación entre computadoras). Obtuve un multiplexor DZQ11 bastante simple, que admite unas 4 líneas de terminales. Impresora paralela Las impresoras matriciales con interfaz serial ya son difíciles de conseguir. Pero es fácil encontrar impresoras matriciales con interfaz paralela. Para conectar una impresora de este tipo, se utiliza el controlador LPV11 (M8027). Fuente de Alimentación Parece que nos olvidamos de algo. La fuente de alimentación. Sin ella, nada de lo descripto anteriormente funciona. Se puede intentar buscar una fuente de alimentación original o bien podemos improvisar una con una fuente de PC. Seguí el segundo camino. Existe el mito de que la máquina PDP-11 debe funcionar con su fuente de alimentación propietaria, ya que durante el arranque es necesario configurar correctamente las señales de estado de energía. De hecho, toda la "dificultad" radica en configurar las señales BDCOK y BPOK una tras otra después de conectar la alimentación. En este caso, el único requisito es que pase suficiente tiempo entre estas dos señales (ni siquiera entraré en la documentación para aclararlo). A grandes rasgos no hay restricciones. La opción más tosca es activar estas señales con simples interruptores de conmutación. Más confiable es conectar disparadores simples a los interruptores de palanca para suprimir el rebote. Finalmente, es posible forzar que estas señales se establezcan automáticamente, lo cual hice, sin importarme mucho los detalles de esto; simplemente tomé lo que encontré con mis manos en el lugar. Estos detalles resultaron ser el chip K555LN2, 3 resistencias de 680 ohmios y un condensador electrolítico de 470 uF (posteriormente el circuito se complementó con tres LED, para lo cual se requirieron 3 resistencias más de 680 ohmios). Este diabólico circuito estaba conectado a una fuente de alimentación AT ordinaria desde una computadora. Los conectores de salida de la fuente de alimentación se reemplazaron por conectores que estos mismos bloques AT conectan a la placa base; se colocan de manera muy conveniente en el conector del panel H9278-A. El diagrama anterior no muestra un LED con una resistencia que denota la presencia de energía. Por lo demás el diagrama corresponde a lo que se muestra en la fotografía. Ensamblado Primero, veamos cómo conectar el panel H9278-A a la fuente de alimentación. El conector J1 está conectado a la fuente de alimentación (y al iniciador), el conector J2 está conectado al panel frontal de la computadora (todavía no lo he conectado a ningún lado). Panel de conexión H9278-A J1 J2 +-+ +---+ 1 |o| +5 VDC (rojo) BDCOK (H) 10 |o o| 9 BHALT (L) 2 |o| +5 VDC (rojo) +5 VDC 8 |o o| 7 +5 VDC 3 |o| +5 VDC (rojo) GND 6 |o o| 5 GND 4 |o| +5 VDC (rojo) 4 | o| 3 SRUN (L) 5 |o| +5 VDC (rojo) BEVNT (L) 2 |o o| 1 +12 VDC 6 |o| +5 VDC (rojo) +---+ 7 |o| GND (negro) 8 |o| GND (negro) 9 |o| GND (negro) 10 |o| GND (negro) 11 |o| GND (negro) 12 |o| GND (negro) 13 |o| GND (negro) 14 |o| BDCOK (H) (naranja) 15 |o| BPOK (H) (azul) 16 |o| BEVNT (L) (blanco) 17 |o| +12 VDC (amarillo) 18 |o| sin uso +-+ Las señales BDCOK y BPOK van a la placa de arranque, la señal BEVNT no se utiliza en nuestro caso ya que la placa KDJ11-BF cuenta con su propio oscilador de reloj. Los cables restantes están conectados a las salidas correspondientes de la fuente de alimentación. La salida PG de la fuente de alimentación está conectada a la entrada de la placa de arranque. Los conectores para conectar a J1 van soldados a tres conectores estándar que la fuente de alimentación AT conecta a la placa base: 6x5V, 6xGND, GND+BDCOK+BPOK+BEVNT+12V. Ahora expliquemos cómo conectar el procesador, la memoria y otros controladores. Los tres pares superiores de ranuras del H9278-A van destinados a conectar dispositivos PMI (procesador KDJ11-B, memoria MSV11-J). Bajo ninguna circunstancia se deben instalar estos dispositivos PMI en las otras ranuras diferentes. De lo contrario, fluirían 12 voltios de la fuente de alimentación hasta las entradas de señal de la placa, lo que probablemente las queme. También es importante el orden en el que se encienden el procesador y la memoria. La memoria MSV11-J debe alimentarse antes que el procesador. De lo contrario, la comunicación con la memoria se realiza a través del Q-Bus en lugar de hacerlo por PMI, lo cual hace que la PDP-11 sea mucho más lenta. También debe recordarse que no debe haber interrupciones en las líneas Q-Bus entre los dispositivos conectados. De lo contrario, se interrumpirá el funcionamiento de las IRQ y DMA. CÓMO CONECTAR DISPOSITIVOS Q-BUS AL H9278-A +--------------------------------++--------------------------------+ | 1 AB || PMI | +--------------------------------++--------------------------------+ | 2 AB || PMI | +--------------------------------++--------------------------------+ | 3 AB || PMI | +--------------------------------++--------------------------------+ | 4 AB || 5 CD | +--------------------------------++--------------------------------+ | 7 AB || 6 CD | +--------------------------------++--------------------------------+ | 8 AB || 9 CD | +--------------------------------++--------------------------------+ | 11 AB || 10 CD | +--------------------------------++--------------------------------+ | 12 AB || 13 CD | +--------------------------------++--------------------------------+ Como ya se mencionó, los tres pares de ranuras superiores son para memoria y procesador. La memoria debe ir antes que el procesador. Si solo se usa una ranura de memoria, el lado izquierdo (AB) del tercer par se puede usar para un dispositivo Q-Bus. Yo hice distinto: dejé el primer par de ranuras desocupadas (previendo el caso de querer conectar un segundo módulo de memoria mas adelante), e instalé una plaqueta de memoria en el segundo slot y una plaqueta de procesador en el tercero. Memoria y procesador El resto de dispositivos anteriores, en principio, se pueden ir conectados en cualquier orden. Sin embargo, según las recomendaciones del DEC, es mejor conectar así: DELQA-M, LPV11, DLV11-J, RQDX3 o CQD-420/TM. La placa de expansión M9058 no usa interrupciones ni DMA, así que se puede instalar en cualquier ranura. Los dispositivos PDP-11 se calientan bastante. Por eso a veces conviene dejar una ranura libre entre medio para mejor ventilación. Conexión de dispositivos externos CONEXIÓN DE TERMINALES RS232 AL PUERTO DE CONSOLA KDJ11-BF Y DLV11-J Signal ground DL11 DB9 DB25 | ------------------ | Rx- 3 ----- 2 3 | | 2 -+--- 5 7 | | Signal ground 4 -+ | | | 5 -+ | | | Tx+ 7 -+ | | | | 9 -+ | | | | Reloj UART 8 ----- 3 2 | | | | | +---------------+ | 9 7 5 3 1 | | 10 8 4 2 | +---------------+ | | | | | Rx+ | Signal ground | | +12v Tx- Los pines 2, 4, 5, 7, 9 del conector de interfaz de la placa están interconectados. El cable es plano, de 10 hilos con un conector IDC-10 en un extremo y un conector DB9 o DB25 estándar en el otro. Un cableado de este tipo permite conectar una PC como terminal a través de su puerto serial. Los conectores IDC se crimpean utilizando el engarce HT-214, con una pinza de crimpeo IDC. CONEXIÓN DE DISPOSITIVOS RS232 AL DZQ11 FBSY0 FBSY1 RTS3 | | | DTR0 | DCD0 DTR1 | DCD1 RTS2 RX2 GND | RX3 | | | | | | | | | | | TX0 | | N/C | TX1 | | N/C | GND | RI2 | GND | | RI3 | GND | | | | | | | | | | | | | | | | | | | | +-------------------------------------------------------------+ | 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 | | 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 | +-------------------------------------------------------------+ | | | | | | | | | | | | | | | | | | | | GND | RI0 | GND | RX1 | | GND | N/C | | TX2 | N/C | | RX3 | | | | | | | | | | | RX0 RTS0 GND RI1 | DCD2 FBSY2 | DCD3 FBSY3 | | | | RTS1 DTR2 DTR3 Para la conexión se utiliza un cable plano convencional con conector IDC-40. No deben quedar agujeros bloqueados en el conector. El conector puede enchufarse de cualquier manera; esto cambia los números de línea en el bucle, pero todas las señales encajan en su lugar. CONECTANDO AUI-TP A DEQNA/DELQA Ground Receive- DELQA AUI | | ---------------- Trasmit- | | Ground 1 --[~~~]-+- 13 | | | | 20 --------+ Ground | | | | Return (+12v) 4 ---------- 6 | | | | | | 5 ---------- 14 Collision- | | | | | | Power (+12v) 6 ---------- 5 | | | | | | | | 10 ---------- 3 +------------------------------+ 11 ---------- 10 | 19 17 15 13 11 9 7 5 3 1 | 12 ---------- 4 | 20 18 16 14 12 10 8 6 4 | 14 ---------- 2 +------------------------------+ 15 ---------- 9 | | | | | | | | 18 ---------- 7 | | | | | | | Return (+12v) 19 ---------- 15 FUSE OK | | | | | | | | | | | Receive+ | | | | | Ground | | | Ground | | | Collision+ | Transmit+ | Ground Para la conexión se utiliza un cable plano normal de 20 hilos con un conector IDC-20 en un lado y un conector MIDI (DB25) en el otro. Si tiene suerte, puede encontrar un conector AUI especial, que se diferencia solo por la presencia de un pestillo para el transceptor (por el contrario, el transceptor no va debajo del pin, sino debajo de los tornillos). El pin 1 del conector DEQNA/DELQA está conectado mediante un fusible al pin 13 del conector AUI/MIDI. Aquí también se conecta el cable que viene del pin 20 del conector DEQNA / DELQA (a la pata 13) (así el controlador verifica el estado del fusible). Encontré información que indica que el fusible debería ser de 1,5 Amperes, pero creo que es demasiado. Transceptor AUI-TP CONECTAR UNA IMPRESORA PARALELA A LPV11 2 40 +------------------------------------------------------------+ | B D F J L N R T V X Z BB DD FF JJ LL NN RR TT VV | | A C E H K M P S U W Y AA CC EE HH KK MM PP SS UU | +------------------------------------------------------------+ 1 39 Кабель LPV11 Centronics -------------------------- 3 C ---- 27 4 D ---- 9 5 E ---- 29 6 F ---- 11 12 N ---- 13 14 R ---- 32 15 S ---- 16 18 V ---- 14 19 W ---- 28 20 X ---- 10 23 AA ---- 22 24 BB ---- 4 25 CC ---- 26 26 DD ---- 8 27 EE ---- 23 28 FF ---- 5 29 HH ---- 20 30 JJ ---- 2 31 KK ---- 21 32 LL ---- 3 35 PP ---- 25 36 RR ---- 7 37 SS ---- 24 38 TT ---- 6 39 UU ---- 19 40 VV ---- 1 Para la conexión se utiliza cable plano de 40 hilos con conector IDC-40. El primer hilo del cable debe coincidir con el pin A del conector del LPV11. Los números de los pines del LPV11 están escritos en el conector. Por el lado de la impresora, va un conector Centronics normal de 36 pines (de cable paralelo común). CONECTORES DE INTERFAZ DEL PANEL Q-BUS H9278 S S S M M P S M M P B B S S S S S S B B B B S S S S B B D D p p p p p B p B D D D D p p p B B B p I I A A a a a a a B H B a D B A A A A a a a S I E + a R R L L r r r G r r G D A R + G r + C P L L L L r G r r G A R V 1 G r Q Q 1 1 e e e N e e N M L E 5 N e 5 O O 1 1 2 2 e N e e N C Q N 2 N e + 5 6 6 7 1 2 3 D A B D R T F B D 1 B K K 8 9 0 1 8 D B B D K 7 T B D 2 5 ||=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=||===|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=| 1 |A B C D E F H J K L M N P R S T U V| A B C D E F H J K L M N P R S T U V ||=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=||===|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=|=| 2 A/C B/D + - G + B B B B B B B B B B B B B B + - G + B B B B B B B B B B B B B B 5 1 N 1 D R D S W I I I B D D I D D 5 1 N 1 D D D D D D D D D D D D D D 2 D 2 O P I Y T R A A S M M N A A 2 D 2 A A A A A A A A A A A A A A U L N N B Q K K 7 G G I L L L L L L L L L L L L L L L L T Y C T 4 I O I O T 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 Realmente no es necesaria esta información sobre el conector Q-Bus para su armado, porque estos dispositivos ya no quedan prácticamente en existencia, pero puede ser útil para reparar o desarrollar dispositivos propios. Arrancar el sistema en una PDP-11 pelada Si usamos el controlador SCSI para discos rígidos de esta norma, entonces el arranque inicial no es difícil: simplemente podemos grabar lo que necesitamos en un disco rígido o imagen cinta usando cualquier emulador que pueda funcionar con dispositivos en caliente. Para este fin son adecuados los emuladores Ersatz-11, CHARON-11 o CHARON-TB. En cambio si utilizamos el controlador RQDX3, el proceso de escritura será bastante más complicado. No sirve grabar un disco en una PC. Es posible, cuando no tenemos otra forma, grabar los medios SCSI en una PC (está disponible una imagen). Aquí es donde el emulador TU58 viene al rescate. Se usa una PC con algún DOS instalado (FreeDOS, MS-DOS, PC-DOS). Conectamos el puerto serial de esta PC al primer puerto DLV11-J de la PDP-11, y bajamos el emulador TU58, lo descomprimimos a un directorio separado (por ejemplo C:\TU58), y editamos el archivo TU58.INI. CONFIGURACIÓN DEL EMULADOR TU58 COM1 COM2 --------------------------------------- port 0 port 1 baud 9600,N,8,1 baud 9600,N,8,1 irq 4 irq 3 Y ejecutamos el archivo necesario, dependiendo de lo que necesitemos: run-rt11.bat para conectar una imagen RT-11 mínima de inicialización, o bien run-xxdp.bat para conectar el medio del Monitor Extendido XXDP que tiene las utilidades necesarias para formatear discos MFM con el controlador RQDX3. Una vez que la DECtape II esté listo, sólo queda arrancar desde allí al PDP-11/83. Aparecerá lo siguiente: Commands are Help, Boot, List, Setup, Map and Test. Type a command then press the RETURN key: B DD Trying DD0 Starting system from DD0 BOOTING UP XXDP-XM EXTENDED MONITOR XXDP-XM EXTENDED MONITOR - XXDP V2.5 REVISION: F0 BOOTED FROM DD0 124KW OF MEMORY NON-UNIBUS SYSTEM RESTART ADDRESS: 152000 TYPE "H" FOR HELP !