I said
Dan, there are some kids where the absolutely best place to start would be the console toggle switches and indicator lamps on an ancient mainframe, if you can find a live one in a computer museum, e.g.
The most amazing console I ever touched was the UNIVAC 1206 (a clone of a Seymour Cray design). Every flipflop in the CPU had a neon illuminated, complementing pushbutton. You could actually compute 1!, 2!, 3!, ... with ZERO instructions in memory, just by pressing single cycle after putting the CPU in a mode called Repeat Advance, with multiply-immediate 1 in the instruction register. Actually, there was one non-neon flipflop: FAULT. It was Big and Red and Shameful. The only way to turn it out was with the RESET button, which cleared every flipflop in the CPU unless the RUN light was on, whereupon it did nothing but extinguish the glaring FAULT of shame. A closely guarded secret, told only to a few Advanced Programmers, was that executing an unused op code, besides turning on FAULT, trapped to a fixed location and saved the processor state, just like the PDP-1 cal instruction, or the PDP-6,-10 U(n)U(sed)O(p), which eventually became the way to call the operaing system. But there were no operating systems on the early machines, nor were there stack-oriented subroutine calls, until the PDP-6. Few machine-language programmers understood the incredible benefits of a stack, but those who did rolled their own, using what PDP-1 people called a "cal handler". It was probably Cray's intent for UNIVAC to follow suit, but he left in disgust before convincing the UNIVAC Oberkommandants of the idea. Another little-known fact was that you could run the machine without clearing the FAULT light. Faced with a numerical triple integral with integrals in the limits, I wrote a recursive Simpson's rule which FAULTed every few milliseconds. The resident tweedy, pipe-smoking, infinitely self-assured Advanced Programmer (first name Fritz!) walked into the machine room and said, "Your program faulted," a UNIVACkers worst fear. I just said "Yep" and went on reading my Flexowriter listing. "Ah, I get it," he smiled, and walked over and pressed RESET, apparently expecting me to freak at the prospect of losing many cpu minutes, but instead, his smile disappeared when the light didn't even flicker. "You're wasting valuable machine time." "No I'm not." Whereupon he left to confer with my boss. By the time they returned, I had my answer (a submarine kill probability), and my boss deciding he didn't even need an explanation, shrugged and left, leaving Fritz to wonder if the whole thing was a trap. --rwg