Ventanas mineras litecoin pdp-11 página de Diane

Desafortunadamente, hoy no es tan fácil obtener hardware PDP real, es aproximadamente una década más antigua que todos los ataris y amigas. Sin embargo, hay al menos una posibilidad de encontrar un PDP-11/03. Han sido construidos en grandes cantidades para el control de la máquina desde mediados de los años 70 en adelante (hoy en día llamaríamos tal cosa "controlador incrustado"). Por cierto, los 11/03 todavía se están ejecutando en algunas máquinas industriales grandes en la actualidad (¡eso es más de 30 años! ¿Los chips modernos de control incrustado también soportarán eso?).

Todos los que no quieran recorrer este camino más costoso, o todos los que no confían en usar un soldador aún tienen la oportunidad de obtener algo del sabor de los viejos tiempos. Ahí está el emulador SIMH (ver enlaces). Entre una serie de computadoras antiguas famosas, también emula el PDP-11 en varias configuraciones. Solo por diversión, obtuve el Unix V5 en un 11/45 emulado y el RT-11 V4 en un 11/03 emulado con el disquete RX01 en funcionamiento.

Desde el punto de vista de la ingeniería, el PDP-11/03, producido por primera vez en 1975, es más interesante que los modelos modernos del PDP-11. Esto se debe a que es más similar al primer PDP, el 11/20 de 1970. A pesar de los chips integrados a gran escala de la CPU (4 o 5), el MMU faltante, el espacio limitado de direcciones de 16 bits de la aplicación ltc y el FIS y las extensiones de los conjuntos de instrucciones EIS (en lugar de la implementación de un coprocesador matemático) son propiedades bastante claras.

No hay mucha información sobre el viejo 11/03 en la web. Muchos fanáticos salvaron a uno de los grandes clásicos 11/44 o 11/45 de la papelera, ejecutándolos y sus sitios web con mucho entusiasmo (ver enlaces). También se encuentra un PDP-11/23 en muchas colecciones privadas. El 11/03 no se presenta con tanta frecuencia, incluso si tanto se utilizaron como controladores de máquinas. Esa es la razón por la que puse mis experiencias en un sitio web.

El primer plan sobre el viejo hardware de litecoin gui miner 11 era tener miradas frecuentes a las compañías de chatarra de electrónica para los chips LSI-11. Con un poco de suerte pronto hubiera tenido un set completo. La CPU LSI-11 tiene líneas de datos y direcciones multiplexadas, por lo que el uso de algunos de mis viejos chips SRAM fue una computadora muy primitiva similar a la marca 8 (construcción de aficionados basada en Intel 8008 de 1971). Pero antes de tener todos los chips, descubrí los módulos que uso ahora. No hace falta decir que no dejé de recoger los chips, ¡así que ahora tengo cuatro juegos completos, incluidos los micrófonos FIS / EIS en condiciones de trabajo! Vea una tabla de números de chips que he probado (se ejecutan en todas las combinaciones que probé):

Es necesario un poco de soldadura hasta que se recupere esta configuración mínima absoluta de un PDP-11. El poder se toma de una PSU de PC salvada. La CPU LSI-11 quiere un cierto ciclo de encendido, así que instalo una pequeña placa externa que está enchufada al conector de 10 pines en la placa posterior. El circuito está cerca de la sugerencia del manual DEC [1]. También se puede encontrar el pinout del conector del backplane.

Solo falta un poco para una comunicación exitosa: el conector DEC patentado en la placa del módulo tiene que estar conectado a un enchufe serie estándar. Esto se hace mediante el pequeño panel de parcheo y 3 cables (txd, rxd, tierra). Los soldé a un enchufe que también está presente en las placas base de PC, por lo que puedo usar un cable estándar. No visible en la foto es un enclavamiento en el conector DEC.

La configuración de la interfaz serial es fácil, si tienes uno de los antiguos "terminal de consola" tableros La consola debe usar el puerto IO (octal) 177560 y el vector de interrupción 60. Por lo tanto, si no tiene tanta suerte (como yo), tendrá que volver a conectar el módulo. Las revisiones de los tableros no son idénticas, así que necesitaba mucha investigación en la web para encontrar el manual adecuado para el mío. Resultó que el ejército estadounidense que tengo en realidad es un DLVE1, que es una revisión más reciente (y lógicamente compatible con) el DLV11-E. Se ha utilizado como interfaz de módem en 11 / 23s y algunos vaxs con ranuras qbus.

Después del desastre del 2012 con el emulador de disquetes, comencé a pensar qué tipo de interfaz aún tiene sentido para las computadoras viejas. Las experiencias tanto de las personas como de las mías muestran que el silicio en sí es casi inmortal si se maneja adecuadamente. Algunas personas de la lista de tarifas de ltc 80 se pusieron en contacto conmigo acerca de un reemplazo para sus psus DEC muertos (obviamente, mis comentarios en la pequeña placa adaptadora no fueron tan claros para algunos). La mayoría de las computadoras viejas se tiran al contenedor de basura para medios de almacenamiento externos muertos. Por lo tanto, los controladores de disco no tienen ningún sentido, también debido a los problemas con la emulación.

Solo hay un tipo de interfaz que es nativa de ambas arquitecturas (oldie ’11 vs. Modern PC): RS-232. Las tarjetas qbus serie se encuentran fácilmente, y los convertidores USB-serie modernos funcionan bien en la mayoría de los oses que vi en la PC. Y, al menos hay un medio de almacenamiento que se conectó a través de una interfaz en serie (la unidad de cinta TU-58), mientras que varios emuladores para PC funcionan con bastante éxito. Incluso es posible arrancar un PDP-11 de esta manera como se ha mostrado para algunos oses, como XXDP o RT-11.

La primera ejecución de prueba debe comenzar con una verificación de voltaje de la PSU adecuada; no hay problema si se usa una PSU de PC. El viejo psus original debe ser probado antes, por supuesto. Lo siguiente que necesitamos es una segunda computadora (moderna) que ejecute un emulador de terminal. Supongo que nadie de uso tiene acceso a un VT-100 antiguo o algo así. Conecte el puerto serie del emulador de terminal mediante un cable de módem nulo al 11/03.

Ahora estamos en modo ODT (técnica de depuración octal), un depurador de hardware integrado en la CPU. Es una versión más moderna de las bombillas y cambia los viejos mainframes de los años sesenta y setenta que tenían en sus paneles frontales. Con él, puede probar y configurar el contenido de los registros y la memoria o alternar en programas de prueba cortos o leer en cargadores absolutos (al menos si todavía tiene un lector de cinta perforado). El procesador en sí no se está ejecutando en ODT, i.E., el contador de su programa no se incrementa. Los chips de CPU modernos ya no poseen herramientas de diagnóstico tan elementales.

La ODT es algo críptica de manejar. No espera hasta que el usuario (operador) finalice una línea de entrada "entrar", pero escanea cada tecla escrita. Cada tecla numérica fuera del rango octal 0-7 es rechazada inmediatamente por un "?" mensaje de error. Para examinar las ubicaciones de la memoria, escriba la dirección octal seguida de la "/" llave. Luego, ODT devuelve en la misma línea el contenido de la ubicación de la memoria. Aún en la misma línea, espera a que configure un nuevo valor. Si lo haces y terminas por "entrar", estás de vuelta en el "@" rápido. Si presionas "linea de alimentación" (En una PC moderna que ya no tiene llave, use "control-j" en su lugar), ODT cierra el grifo de la línea y abre la siguiente ubicación de memoria en la siguiente línea. Si no ingresa un nuevo valor, el valor de memoria mostrado se conserva. Los registros se pueden examinar y configurar ingresando "R0" a "R7" seguido por "/" en el indicador @.

Sitio web "Consejos para probar un PDP-11 muerto" (ver enlaces) tiene algunos consejos muy útiles sobre cómo se pueden probar el procesador y la memoria. El primero "programa" Lo intenté fue el octal 5007 en la ubicación de memoria litecoin vs bitcoin 2017. Es solo un "claro PC" instrucción que, obviamente, realiza un bucle en la ubicación 0. Un 777 (rama -2) hace lo mismo, pero se puede colocar en cualquier ubicación de la memoria en la que el procesador realiza un bucle sin fin.

Si se hacen cosas más complejas que los programas de una sola instrucción, se debe hacer una inicialización antes. Esto ayuda a prevenir algunos descansos engañosos. Ciertas condiciones de error provocan trampas (interrupciones fijas). Sus vectores deben mantener los valores predeterminados, lo mismo es válido para el puntero de pila. Imagina que intentamos ejecutar un programa que contiene una instrucción octal no válida. Al alcanzarlo, el procesador quedará atrapado en un "opcode ilegal" – La PC y el estado se insertan en la pila, y la nueva PC se carga desde la ubicación 10. Si el puntero de la pila no se inicializa, es posible que apunte a una memoria no existente. Entonces, en el momento en que el procesador intenta guardar su vieja PC, se atrapa en un "error de bus". Esto puede ser molesto al probar funciones básicas.

La ejecución del programa siempre se detiene si el código de instrucción es 0 (detener). Normalmente, es la última instrucción en programas de prueba octal cortos que devuelve el control a ODT. La ubicación de la memoria vacía muy a menudo también descarga litecoin core contiene 0 – un salto a algún lugar en la memoria, mabe por un vector de captura no inicializado, generalmente también detiene la ejecución del programa (¡pero no confíe en eso!). Un truco que utilizo es usar la dirección del vector de captura menos 2 como el vector de captura y poner allí un 0. ODT luego devuelve exactamente la dirección de vector de la trampa si se produce.

De vuelta en sus buenos tiempos, los PDP-11 en ocasiones fueron ejecutados por unidades de cinta TU-58. Estas unidades no tenían mucho espacio (256k), eran bastante lentas, pero tenían la gran ventaja de que no necesitaban PCB de control especial. Los TU-58 se conectaron a una interfaz serial común. Para nosotros, los aficionados modernos, esto significa que ya no hay que soldar hardware especial, sino solo la necesidad de un simple cable de módem nulo entre la PC moderna que ejecuta un emulador y el viejo PDP.

Hoy en día, las PC modernas ya no tienen interfaces seriales. Pero hay adaptadores de serie a usb disponibles que están bien soportados por los sistemas operativos comunes. Para mí es Linux, y el núcleo de Linux reconoce automáticamente los dos adaptadores que uso como / dev / ttyusb0 y / dev / ttyusb1. Normalmente conecto / dev / ttyusb0 en la interfaz de la consola y / dev / ttyusb1 en la interfaz TU-58.

Imagen 6: la tarjeta serie cuádruple DLV11-J estaba disponible a un precio razonable en la descarga eléctrica de litecoin cpu miner electricbay. Sin embargo, tuve que reconfigurar casi todos los puentes posibles, como se ve aquí (todo lo que es rojo es mi trabajo). Lo puse de nuevo en el modo de fábrica, con modo RS-232, 9600 baudios, 8 bits, sin paridad, 1 bit de parada, puerto IO 176500 (octal), vector 300 (octal), uso el puerto 3 como consola (177560, vector 60 ).

Es bastante fácil ajustar el pinout de los enchufes de la interfaz en un SUB-D de 9 pines. Uno solo necesita las tres líneas rxd, txd y el terreno común. Los enchufes sub-D y los enchufes de dos filas en ráster de 2.54 mm son suministrados por las tiendas de electrónica comunes. Usé un cable de micrófono muy flexible para los tres cables entre los enchufes. Tiene dos líneas para rxd y txd y un blindaje (utilizado para el suelo).

Como se hizo anteriormente, la primera prueba se puede hacer muy bien usando ODT. Simplemente conecte la segunda línea serie e inicie un segundo emulador de terminal en el puerto (/ dev / ttyusb1 para mí). Entonces es bastante fácil ingresar algunos comandos de prueba en la consola y ver qué pasa en el segundo terminal. Un ejemplo: si / dev / ttyusb1 está conectado al puerto serie 0 del PDP, es posible ingresar un valor octal en la dirección del puerto del transmisor correspondiente y observar cómo aparece una char en el segundo terminal:

Si la capa de hardware se está ejecutando correctamente, es hora de ver el emulador. Descargué tu58em de ak6dn (ver enlaces). Las compilaciones sin problemas en Linux, justo cuando se ejecuta hay un problema: las definiciones en el archivo de cabecera del sistema termios.H parecen no ser las mismas en todos los sistemas operativos. En mi PC (ejecutando debian GNU / linux 6.0), la velocidad en baudios no se establece en absoluto si tu58em se inicializa. Hay una solución simple para ello: simplemente abra un segundo comando shell DESPUÉS de que se haya iniciado tu58em. A continuación, establezca la velocidad manualmente en él escribiendo "stty -F / dev / ttyusb1 9600" (ponga los valores que usa aquí) en el segundo shell. Entonces todo funciona bien.

Por supuesto, esto se puede colocar en un pequeño programa que funciona como un simple cargador de arranque en cinta. Una nota: en la web con bastante frecuencia se cita el gestor de arranque del manual técnico de DEC TU 58. Lo intenté, no funcionó para mí. Tu58em recibió solo un "nulo" y luego todo colgar. No estaba de humor para copiar el código de arranque de la ROM (también por razones legales). Por lo tanto, configuro mi propio código de inicio (código fuente para pdp11-aout-as crossassembler que puede encontrar aquí):

Como mencioné anteriormente, en la distribución litúrgica de la década de 1980, un PDP-11 ejecutando unix era un tipo sagrado para un hacker común. Hoy en día, los viejos unixes son gratuitos para uso privado no comercial. Por lo tanto, quería que tuviera para mis 11, también. Hay una versión capaz de ejecutarse en un 11/03: el "lsi_unix" o LSX. En 2009, cuando escribí esta sección por primera vez, no lo sabía y empecé a buscar un pequeño clon gratuito de Unix.

Al deambular por la web en mis vacaciones de verano en 2012, finalmente encontré que realmente había una variante de Unix para el PDP 11/03, también: LSX (abreviado para "LSI-UNIX"). Es una versión aún más reducida de mini-unix que a su vez fue una adaptación de unix V6 a máquinas sin MMU. Mientras que mini-unix puede servir a cuatro usuarios a la vez pero aún necesita un disco duro RK05, LSX sirve solo a un usuario y se puede convertir litecoin a bitcoin bittrex en dos disquetes RX01. Ya se puede ejecutar en 40kb de RAM y, por supuesto, tampoco necesita MMU. Sin embargo, es un sistema operativo completo que incluye un kit de desarrollo C Más de lo que anhelaba. ¡30 años después, el santo grial, finalmente ante mis ojos! 🙂

Sin embargo, las imágenes de disco SIMH son copias de sector liso 1: 1 de todos los sectores de disquete, incluyendo también el intercalado de sector de 3. Es bastante fácil escribir un convertidor para obtener imágenes de bloque plano adecuadas (que se pueden usar como imágenes de cinta), pero El intercalado sectorial también está codificado en los cargadores de arranque. Por lo tanto, no se pueden utilizar para un sistema de archivos raíz TU58.

Sin embargo, el archivo de imagen de bloque de root.Dsk parecía bastante sano. Comprobando con od, encontré que el superbloque, la lista de inodos y el directorio raíz están en los lugares donde se puede esperar (aprendí durante mis estudios cómo debería ser un sistema de archivos Unix). Por lo tanto, LSX toma la misma ruta que estaba planeada en 2009 para xinu: compile las fuentes del kernel en una PC, cargue el kernel a través del cargador de arranque de la cinta de papel de la consola y adjunte una imagen del sistema de archivos preparada previamente a través de un emulador. Solo que esta vez la interfaz de hardware será una segunda interfaz serial.

La adaptación de las fuentes del núcleo al gcc moderno fue esencialmente la misma que para xinu (ver más arriba). Ajusté los archivos fuente uno tras otro. Solo el controlador 4.3BSD de tu.C necesitaba un poco más de atención. Varias cosas cambiaron desde los días de Unix v6. Finalmente compiló, también. El problema principal es su tamaño, que es sustancialmente más grande que el controlador de disquete que reemplazará. El binario final del núcleo tenía 21.6k (bytes). Por lo tanto, el inicio del espacio de usuario ya no puede permanecer en octal 40000. Esto significa que todos los programas en el sistema de archivos también deben ser reconstruidos.

El anuncio de una señal se puede realizar mediante dos inversores comunes (debido al manual DEC, 7404, 74LS04, 74HC04 o lo que sea actualmente compatible con estos tipos antiguos). Un chip 7404 contiene seis de ellos. La salida resultante se debe convertir de la lógica TTL + 5V a la lógica DEC qbus + 3.4V. En el caso más simple, esto puede hacerse mediante un divisor de voltaje. Utilicé una pizarra ltc de resistencia de 47 ohmios en serie. Tal vez esto no sea un valor suficiente, ¡tome una medida en su plano posterior!

banner