Several years back I was working at a HMO and we had a lot of 8080 micros using ADM3A dumb terminals. These terminals were so dumb that all they had were upper case character sets. Eventually, upper managment was talked into upgrading them to the ROM's with upper and lower case characters. Well, one day we received this big three foot square box from the terminal manufacturer. Everyone was puzzled as to what they could be sending us. The person with the order said he had asked for 30 lower case options. The ADM3A terminal has an upper and lower clamshell like case. When the box was opened we found they had sent us 30 lower halfs to the terminal case.
One time, in a college library, I ran across a book of computer folklore. It had a story about a young whiz kid hired as a computer programmer, who didn't like the way that computer operators were ordered to blindly follow directions. So he took a scratch removable disk pack apart, replaced the platters with phonograph records, and put it back together. Then, from his terminal, he called for it to be mounted. The operator could tell that the disk pack was different (plastic is lighter than a disk platter) but mounted it anyway, destroying a disk drive. In the late '60s, Georgia Tech went to a computer registration system. In Spring, 1969, George P. Burdell (the mythical Georgia Tech student created during the war years) was registered for every class on campus. I've heard that he aced them all, too. Finally, in the early '70s, Georgia Tech installed a Univac 1108, so we heard all the Univac stories. One of the stories revolved around an operator, sitting sleepily at his computer console about 2am, watching the backups. The status messages disappear from his screen, a large (CBS-style) eye appears on the screen, it winks, and then the screen pops back to normal. Those were the days of fast memory and memory mapped screens, so its possible... Just one more. On that same Univac, a friend discovered a security hole. It seems you could checkpoint (stop and save) a job to tape to, say, shut the machine down for maintenance. You could later restart the job from the tape at the exact point you stopped it. My friend discovered that you could checkpoint the job, change the privileged mode bit (guard mode, supervisor mode etc. -- the thing that prevented students from breaking into the machine) to 1, and restart it -- as a privileged job. He was found out, though -- operators became suspicious when they went from 0 checkpoints per month to several check-point tapes per day.
Our company bought a text processing package and a salesman came to us to install it. He had some difficulties in the first time to install it, so he decided to delete all his files and start over. But alas, instead of typing "DELETE [...]*.*.*" (Yes, it's in VAX/VBMS), he typed DELETE/NOLOG [*...]*.*.* A few moments later I noticed that I had much more disk quota left than i should have and noticed that all my files with DELETE privilege for same user group had gone. And for everybody else too.
...Aw shucks, we did this with a PDP-8. The accumulator was displayed in fairly large incandescent bulbs on the front panel, which needed high powered drivers. Turning the bits on and off made plenty of radio noise. I've heard legends of PDP-9 programmers who would routinely leave a radio on the console as a debugging aid. ...There was a legendary card deck that, when run through an old electromechanical accounting machine, would print out an American flag while playing the Star Spangled Banner. Speaking of printers, here are two silly stories from about 1969. At that time they used 360/20s as RJE terminals to the 360/91 mainframe. The '91 crashed all the time, so while waiting for the '91 to come back up we would toggle in little programs from the console, or laboriously punch an up to 80 byte program on a card, then use the "load" button to read and start the program. There was constant competition for the most interesting single-card program. My best was an expensive mimeo machine that read in a deck of cards and listed it over and over. In one case, we experimented with the Universal Character Set buffer in the printer. The 1403 printer had interchangeable print trains, but different trains would have different character layouts. The UCS buffer told what character was at what position on the train. When it printed a line, it would see what characters were at the right position, fire the appropriate hammers, move the train ahead one position, fire the appropriate hammers, and so on until the entire line was printed. So as an experiment, we filled the entire UCS buffer with the same character, then printed lines of that character. It printed about a page and a half real fast, then the cover opened about half way (it automatically opened whenever the printer ran out of paper, to warn the operator and dump ever-present coffee cups on the floor) and then blew a fuse. We cleared out. It hadn't occurred to us we could blow fuses with software. In another case, we experimented with the carriage control tape. Things like "skip to new page" or "vertical tab" were implemented with a loop of paper tape that had 66 rows, one for each line on a page, and 12 columns. You could do a skip to channel 1, and it would advance the paper and the tape until it found a hole in column 1. By convention, column 1 was top of page, column 2 top and middle of page, but you could program it any way you want. We tried various combinations and everything worked just fine until we tried a skip to channel 12. Unfortunately, there weren't any punches in column 12, so the paper just whizzed through the printer at full speed. We pushed the printer stop button. Nothing. We pushed the CPU stop button. Still nothing. Finally the CPU System Reset button stopped the printer. Being good ecologists, we fed the paper back into the feed box, then ran.
Back in the early days, I was using an ADM-3 from a friend's house (hi Greg Jorgenson!) with an old acoustical-coupled modem. The modem was attached used on the house phone... a party line (!). We were accustomed to getting bumped with funny little noise characters when the party-liners would try to pickup the phone for a call, but otherwise tied up the line for the usual hours-on-end we hackers are known for. One day, we picked up the phone to make a call, and found that the party-liners were on it (two female voices). Since we had nothing better to do, we decided to listen in. The conversation went something like: Voice 1: Did you just hear that? Voice 2: Yeah, it was a click. Must be our party line. Voice 1: A party line? Does that mean they are listening to us? Voice 2: I don't think they can. All I can hear when they are talking is some beeps. We scrambled to hang up the phone to cover our instant hysterical laughter. Little did they know... :-)
Yet another true IBM story: My girlfriend's father is a service tech for IBM. He had one computer that would periodically lock up for no apparent reason. He tried replacing all sorts of boards, drives, and other hardware to no avail. Finally, he called in the specialists. The specialists arrived with many special tools, and in one case a very special tool. In an old style case, in a custom-molded velour covered interior, sat the Vibra-matic -- a rubber mallet. They had brought this as a joke, but.... It turned out that the power supply wasn't completely welded to the ground, and the vibration of the machine caused intermittent power failures of extremely short duration. This was fixed, and tested with the specialists banging on the chassis with the Vibra-matic while my girlfriend's father stuck his head inside to look for vibration. Luckily the owners of the machine never saw them.
Heard recently from an IBM field service manager: A huge travel agency in Florida (a major booker of Caribbean cruises for blue-haired retired ladies) recently bought an IBM 3090 to handle the reservation database. When the deal was consummated, the proud new owner asked IBM to install it in a big glass room right behind the receptionist's area so all the customers could see the flashing lights and spinning tape reels as they walked in -- a testimony to the modernity of the agency. Good idea, except there are no blinking lights on a 3090. So the service manager offered to build some. They hired a theatrical designer to come up with a suitably futuristic "set", got curved glass walls to minimize reflections, and installed the mainframe behind the "real-looking" facade. The customer declared that it was exactly what he had in mind, regardless of what the actual computer looks like. Moral: the customer is always right.
(This is just a rumor, but it's a *neat* rumor....) It seems (allegedly) that certain Microsoft compilers are smart enough to figure out when they are being benchmarked. Any time the parser sees the "standard" 10,000-prime-numbers algorithm, it dumps that section of code and substitutes a set of hand-tuned, gut-level machine code designed to do that one thing as fast as possible! I don't think it actually just printed them out from a table, but you get the idea.... Also: (this is true) One has to be careful when trying to benchmark optimizing compilers. These things *are* smart enough to notice that while you're doing all those expensive floating point calculations, you're never actually doing anything with the answer... so the compiler just figures it all out once, and replaces all the calculations with a simple assignment. Prime Computer once had a compiler optimize their competitor's benchmark down to a single NOP -- and for several years they gleefully used this "performance" figure in their ads.
Back in the good ol' days of card readers, a game we discussed was how to obtain passwords. Jobs were submitted by setting your deck of cards on a counter. An operator would grab all the jobs on the counter, run them through the reader, and return them with their output later. We're talking CDC hardware here, so various combinations of 6-7-8-9 or 7-8-9 punches indicated End of Job, or End of Record. Well, there was a magic combination (6-8-9?) that was interpreted as "read binary, and ignore other control punches except the magic combination." So, the devious programmer submits two jobs, the first has a program to read binary data, followed by a 6-8-9 and (for the operator's consumption only) a 6-7-8-9. The second job just has a 6-8-9 to switch the system out of binary mode. The two jobs are placed on the counter is such a way that the first job will be the first one through the card reader and the second job will be the last one through the card reader, with other students jobs in between. Viola', you've got a whole list of accounts and passwords. Of course, the operator might become suspicious when 10 jobs go in and only one comes out. Or, he might scramble the order of the jobs left on the counter defeating the plan. I'm not sure anybody actually did this, but it strikes me as an easy way to breach security.
Another subclass of computer folklore is the occasional barbed comment that one can find when reading through source code. Operating-system programmers seem particularly prone to witty, shamefaced, or other slightly-off-center comments in their code. Some examples come to mind (some of the details may be incorrect; it's been a long time since I read any of this code): 1) DEC RSX-11M (???) operating system. System fault handler module. If a bus-check fault occurs (indicating possible hardware problems with some device on the bus), the O/S traps to a fault-handler routine that tries to identify the offending hardware and reset it. If, while attempting to recover from a bus-check fault, a second such fault occurs, the system traps again... this time to a routine which simply masks off all processor interrupts and hangs in a tight loop. It's necessary to manually reset the machine to unhang it. The comment on the loop reads, "The death of God left the angels in a strange position." 2) There are a couple of comments in the output-symbiont (print spooler) code in the old Xerox CP-V operating system. At the top of a long block of convoluted and otherwise undocumented code, there appears a taunting: "See if you can figure out what I'm doing here." Somewhat further on, there's a really dubious code-construct (I don't recall just what was being done), adorned with the comment: "I'm ashamed of this" 3) In the synchronous-terminal (BISYNC) module in the CP-6 operating system's communications software, there's a routine that constructs synchronous data blocks (the ones that start out with the characters "syn, syn, dle", and so forth). The code comment reads "With a SYNC SYNC here... and a SYNC SYNC there..." The module is labeled "EIE_IO". 4) A related module, which was responsible for driving the Unit Record Peripheral printer, was labeled "Y@URP".
At Carnegie-Mellon, the standard carriage tape had an empty channel. An easy way to get on the bad side of the operators was to use the right character as a FORTRAN print control character. (The tape was designed so that the printer implemented nearly all of the FORTRAN carriage control features.) It was never a problem until someone wrote a SNOBOL program and forgot to print a space at the beginning of each line. The operator wasn't near the machine at the time and 1403 fed the paper faster than it could stack! ...I hereby claim the best sound of any printer music. At Sanders Technology, a defunct company that pioneered the letter quality dot matrix printer, I decided to come up with some real music. After a disappointing start, I designed some fonts that were variable numbers of vertical bars in 1/2 inch wide characters. The printer's horizontal resolution was 0.001", better than laser printers, but not good enough for decent music. I had to compute line spacings in 0.0001" units and round to the nearest 0.001". About an octave and a half would fit in a 2Kb PROM (this was before 16K ram chips made down-loaded fonts practical). Next I arranged "A Bicycle Built for Two", since that was the first song a computer ever played (you've heard it in the movie 2001). It also was a hack on Daisywheel terminals, our main competition. It was impressive. And attracted a fair amount of attention at the trade shows. I later did three Christmas carols, and even a version of Le Marseilles (sp?) for a potential French customer. Since the only real language we had was Fortran, I wrote TECO programs to generate the font from a source file of frequency and character bindings, and another TECO program that read a simple music language and generated the lines of text needed to play the song. Not only could I set the meter, the program had to reverse the order of the characters for the right-left passes. I still have two of those printers. NH Mensa prints its newsletters on one. Unfortunately, I'm running out of ribbons and the pins are beginning to crack. Smart printer. Does its own justification, handles proportional fonts, mixed fonts, all sorts of stuff. Its control language is readable, inspired by runoff. Between the printer, a CP/M system and a screen editor (written as a macro for a TECO variant), who needs an IBM PC?
Contact Ric Werme or return to his home page.
Last updated 2001 May 1.