En las primeras computadoras electrónicas se utilizaba un panel frontal para mostrar y permitir la alteración del estado de los registros internos y la memoria de la máquina . El panel frontal generalmente constaba de conjuntos de lámparas indicadoras , pantallas de dígitos [a] y símbolos, interruptores de palanca , diales y botones pulsadores montados en una placa frontal de chapa metálica. En las primeras máquinas, también podían estar presentes los CRT (como un osciloscopio o, por ejemplo, para reflejar el contenido de la memoria del tubo Williams-Kilburn ). Antes del desarrollo de las consolas de sistema CRT , muchas computadoras como la IBM 1620 tenían máquinas de escribir de consola.
Por lo general, el contenido de uno o más registros de hardware se representaba mediante una fila de luces, lo que permitía leer el contenido directamente cuando la máquina estaba detenida. Los interruptores permitían la entrada directa de datos y valores de dirección en los registros o la memoria.
En algunas máquinas, ciertas luces e interruptores estaban reservados para su uso bajo el control del programa. A menudo se los denominaba indicadores de detección , luces de detección e interruptores de detección . Por ejemplo, el compilador Fortran original para el IBM 704 contenía instrucciones específicas para probar y manipular las luces de detección y los interruptores del 704. El programa solía utilizar estos interruptores para controlar un comportamiento opcional; por ejemplo, la información podía imprimirse solo si se configuraba un interruptor de detección en particular.
Los sistemas operativos diseñados para computadoras con luces intermitentes , por ejemplo, RSTS/E y RSX-11 , con frecuencia hacían que una tarea inactiva hiciera parpadear las luces del panel de alguna manera reconocible. Los programadores de sistemas a menudo se familiarizaban con estos patrones de luces y podían saber a partir de ellos cuán ocupado estaba el sistema y, a veces, exactamente qué estaba haciendo en ese momento. El Programa de Control Maestro para el mainframe B6700 de Burroughs Corporation mostraba una gran letra "B" cuando el sistema estaba inactivo. [1]
Los interruptores y las luces requerían pocos circuitos lógicos adicionales y, generalmente, ningún soporte de software, lo cual era importante cuando los componentes de hardware lógico eran costosos y el software a menudo era limitado.
Mientras que otras máquinas de su época tenían paneles frontales elaborados para controlarlas, el 6600 solo tiene un panel de inicio muerto . [2] Hay una consola de sistema CRT dual, pero está controlada por el código del sistema operativo en un procesador periférico y no controla ni muestra el hardware directamente.
Las primeras microcomputadoras , como la Altair 8800 de 1975 , también dependían de paneles frontales, pero desde la introducción de Apple II , TRS-80 y Commodore PET durante el auge de las computadoras domésticas en 1977, la gran mayoría de las microcomputadoras venían con teclados y conexiones para pantallas de televisión u otros monitores.
Un operador utilizaría el panel frontal para iniciar la computadora, depurar programas en ejecución y encontrar fallas de hardware .
Muchas computadoras tenían controles, por ejemplo, botones, diales, teclados, interruptores de palanca para ingresar direcciones, controles para mostrar los datos en una dirección y controles para modificar el contenido de almacenamiento. Estos se usaban generalmente para iniciar y depurar.
Por lo general, el operador tendría un procedimiento escrito que contenía una serie corta de instrucciones de arranque que se ingresaban manualmente utilizando, por ejemplo, diales, teclado, interruptores de palanca. Primero, el operador, por ejemplo, presionaba el interruptor de dirección e ingresaba la dirección. Para facilitar la entrada y la lectura, en algunas computadoras (como la DEC PDP-8 o la MITS Altair 8800 ) los dígitos binarios se agrupaban en tres o cuatro en el panel frontal, y cada grupo de luces o interruptores representaba un solo dígito octal (entre 0 y 7) o hexadecimal (entre 0 y F). Algunas computadoras decimales [b] , por ejemplo, la IBM 1620 , usaban decimal codificado en binario para las direcciones de memoria.
A continuación, el operador introduciría el valor previsto para esa dirección. Después de introducir varias de estas instrucciones (algunas computadoras tenían un botón de depósito siguiente, que depositaría los valores subsiguientes en direcciones subsiguientes, liberando al operador de la necesidad de introducir direcciones subsiguientes), el operador establecería la dirección de inicio del programa de arranque y presionaría el interruptor de ejecución para comenzar la ejecución del programa. El programa de arranque generalmente leía un programa algo más largo de una cinta de papel perforada, tarjetas perforadas, cinta magnética, tambor o disco que, a su vez, cargaría el sistema operativo desde el disco.
Algunas máquinas aceleraban el proceso de arranque al permitir que el operador configurara los controles para que contuvieran una o dos instrucciones en lenguaje de máquina y luego ejecutara directamente esas instrucciones. Otras máquinas permitían que los dispositivos de E/S se controlaran explícitamente desde el panel frontal (por ejemplo, "Read-In Preset" en el PDP-10 o el acceso a dispositivos de E/S asignados a la memoria en un PDP-11 ). Algunas máquinas también contenían varios programas de arranque en ROM y todo lo que se requería para arrancar el sistema era iniciarlo para que se ejecutara en la dirección del programa ROM correcto.
Los paneles frontales se usaban a menudo para depurar programas cuando el soporte operativo era limitado y la mayoría de los programas se ejecutaban en modo independiente. Normalmente, un interruptor en el panel frontal podía hacer que la computadora ejecutara un solo paso , es decir, ejecutara una sola instrucción y se detuviera hasta que el programador presionara un botón para ejecutar la siguiente instrucción. Se podía configurar una parada de dirección para detener un programa en ejecución cuando intentaba ejecutar una instrucción o acceder a datos en una dirección específica. El contenido de los registros y la memoria se mostraba en las luces del panel frontal. El programador podía leer y alterar el contenido de los registros, cambiar las instrucciones del programa o los datos en la memoria o forzar una bifurcación a otra sección del código.
Cuando la multiprogramación se convirtió en la norma, ya no era aceptable utilizar una máquina entera para la depuración, salvo en situaciones especiales. Se escribieron programas denominados depuradores , que proporcionaban al programador el equivalente a las funciones del panel frontal sin necesidad de utilizar toda la máquina.
Para divertirse, los programadores aburridos creaban programas para mostrar espectáculos de luces animadas. Los paneles frontales a finales de los años 1960 y principios de los 1970 eran de colores bastante brillantes. A finales de los años 1970 y principios de los 1980, las ROM de arranque se volvieron comunes. Dado que las computadoras podían usarlas para iniciarse por sí mismas sin la intervención del operador, la mayoría de las computadoras se construyeron sin un panel de interruptores frontal. Las calculadoras de alta potencia, como la HP 9830 basada en ROM , estuvieron entre las primeras computadoras en prescindir de los paneles frontales y los operadores.
Enormes bancos de "luces intermitentes" y "bombillas de soplado" aparecieron en la televisión y en el cine como la imagen popular de la "computadora" durante los años 1950 a 1970. (Una Burroughs B205 se utilizó como utilería de Hollywood para muchos de estos programas).
El siguiente procedimiento arrancaría un sistema PDP-8 a partir de un disco magnético de cabezal móvil RK05 :
Este proceso funciona depositando un programa simple de dos instrucciones en la memoria y ejecutándolo. La primera instrucción ordena al controlador de disco que comience a leer el disco desde la dirección de disco actual a la dirección de memoria actual. La segunda instrucción es una instrucción JMP que salta a sí misma sin fin. Cuando se presiona "Borrar", la dirección de disco actual del controlador de disco se establece en el sector 0 y su dirección de memoria actual se establece en la ubicación de memoria 0000. Cuando se ordena la lectura, el programa almacenado en el sector 0 del disco se superpone al programa de arranque y, una vez que se superpone la instrucción JMP, el programa de disco toma el control de la máquina.