I used to have a notebook of toggle in programs for the PDP8s and PDP11s, but it seems to be lost forever.
Not being a software person it takes me hours to write and debug the simplest routines. Is there a site with a list of toggle in maintenance programs? On Tue, May 24, 2016 at 11:23 AM, Charles Anthony < charles.unix....@gmail.com> wrote: > On Tue, May 24, 2016 at 8:38 AM, Swift Griggs <swiftgri...@gmail.com> > wrote: > > > > > Since I'm an igmo about most machines before the mid-eighties (and still > > fuzzy even on most of those), I'm curious about all these older machines > > with front panel buttons and switches. What all did they do? You could > > actually program them using the front panel right? Some of them > > bootstrapped this way, too? What kind of "language" was used for that > > (ie.. what were the basic mechanics)? Did the buttons ever change color? > > Were you considered a badass if you had switch flipping all memorized > down > > to an art? Were they mainly multi-position toggle switches or on/off > > buttons? > > > > They just seem to be a lot more important on older mainframes and minis. > > Also, what was the main reason for the blinkenlights? Was it to show > > system load or specific system states? > > > > Just curious. I'm learning a ton from reading these threads on older > > machines, but there is so much I don't know. > > > > > "Older machines" covers a lot of ground..... > > In my experience (PDP-11, PDP-8 PDP-15, Nova, IBM 709, DPS8 and others), > the panel switches and lights were for primarily for bootstrapping and > debugging. > > Typically, there was a set of data switches (0/1 toggles) that could be set > to an address or data value, and a set of command switches (momentary > contact) that copied the data switches to some data register or memory. > > For the earlier or cheaper systems, there was no 'bootstrap ROM'; so a > small program that was capable of reading the first record of a paper or > magnetic tape into memory and running it was needed. This program was > documented in ''machine language' -- a list of binary values that needed to > be placed in specific memory locations. Hypothetical example (in octal): > > Starting at location 0: > > 1456 > 3342 > 3300 > 3040 > 0070 > > (expressed in octal). > > To bootstrap the machine, you loaded a paper tape containing the program > you wanted to run in the reader. Next, you hit the 'RESET' on the console; > among other things, that would set the console 'next address' register and > the instruction counter to 0. > > You then set the data switches to 001100101110 (1456 in binary), and press > 'DEPOSIT'. Thus would copy the data switches to memory at the location in > the 'next address' register and increment the register. You then repeated > this for each data value -- toggle in the value, press deposit. When done, > you pressed 'START'. The RESET had set the instruction counter to 0, so the > CPU would start executing code at location 0, which contains the 1456 > instruction, and your bootstrap is off and running. It reads some number > of characters from the paper tape into memory, and then starts executing > them. Those characters will be a more complex boot strap loader that will > read them rest of the tape into memory and run it. > > Later or more expensive options of these machines would have a bootstrap > loader in ROM. Typically, you would toggle in the the address of the ROM > into the instruction counter and then boot device ID into the data toggles > and then start the CPU. > > For the DPS8 there was a bootstrap ROM, a set of switches specifying card > reader or tape boot, the device ID and a 'BOOT' button. The data switches > would be examined by the operating system during boot to enable debugging > (pause at certain points during boot, eg). > > The 709 had these massively over-engineered rocker switches, reminiscent > of circuit breakers, and a reset switch which activated a electric motor in > the console which physically set the switches back to 0. > > The PDP-15 had a 'CPU speed' knob. turning it would continuously vary the > CPU clock from 1Hz to full speed. > > The blinking lights typically would have at least the instruction counter > and the accumulator. Other registers might be displayed, as well as the > instruction being executed, operand address and value, condition code bits, > IO activity, interrupt status, and much more. > > Watching the instruction counter could reveal the CPU to stuck in a short > loop; or, if halted, what instruction it was at when it halted. > > The console switches and lights could be used to examine memory locations > as part of debugging. > > If the program was stuck in a loop, the console switches could be used to > halt the CPU and examine where in the program it was looping and the values > of the variables that controlled the loop. > > Some of the mainframes had hundreds and hundreds of lights, detailing the > internal state of the machine; mostly of interest to field engineers. > > -- Charles >