Improving Software for Society
News | Blog Post : ANDY’S WAR STORIES
The IAP at 50. Reflections from Andy Faithfull FIAP.
In the late ’70s I was a sponsored student at a large, now defunct, defence company. I worked my gap year there before starting my B.Sc. Most of my time during that year was taken up by building circuit boards for an IM6100 microprocessor system. The IM6100 was a CMOS implementation of the PDP8 instruction set and it needed a huge amount of supporting hardware for memory interfacing, basic i/o, interrupt handling etc, hence the need for lots of custom circuitry.
Each module was made on a prototyping board and hand wired. An ideal job for a student (cheap labour). The chips we used had, by today’s standards, very limited functionality. The RAM chips were 256 * 4 bits, so a 1K * 12 memory board contained 12 such chips, along with various buffers, decoders and some battery back-up circuitry (FLASH hadn’t been invented). The boards were so crowded that we drilled holes in a blank part of them and glued extra IC sockets on!
The hardware represented an enormous investment of time, effort and expensive materials. The boards were housed in an elaborate rack case, and a custom made front panel sported groups of 7-segment displays and octal thumb switches to enter and view code and data. Nobody knew then that such a machine would be virtually useless as there was no software available for it, at least not that we were allowed to buy.
The only way to program the beast was to laboriously hand assemble your code and load it in using the thumb wheels; set up the address, set up the data (or op-code) and press the “enter” button. Rinse and repeat. This meant that nobody was actually very keen to try programming ERNIE, as it was now referred to, so it sat glowering at us from its bench.
The along came “Ivor”, an engineer with an interest in programming and some spare time on his hands. Ivor connected one of ERNIE’s i/o pins to an amplifier and speaker and wrote a little program to toggle the pin at given rates. He constructed a table of these toggle rates corresponding to musical notes and then wrote a program to play a few bars of The Entertainer in an infinite loop. The rest of us were suitably impressed by this herculean effort (hand entered machine code remember), even though we still couldn’t do any useful work with the beast. Of course, we had to keep ERNIE powered up to keep the RAM board batteries topped up to retain the program.
One evening I was wiring up yet another memory card on overtime when one of the lab cleaners asked what “the big box with all the lights on” did. I proudly explained that it was a computer and that it could do lots of complex tasks. For instance, it can play music. The cleaner looked unconvinced, so I offered to demonstrate. I pressed the “RUN” button and we were greeted by the somewhat squawky sound of ERNIE rendering The Entertainer. As the loop repeated I noticed something odd; gradually the notes were failing and being replaced by a nasty rasp. After a few seconds, all the notes had been corrupted and ERNIE was now emitting a rather rude raspberry. The cleaner shrugged and wandered off unimpressed. I hit the “HALT” button, turned off my soldering iron and quietly left the building.
Some time later the disaster was discovered, but by then it couldn’t be attributed to anyone in particular. To this day I don’t know if I did something to upset the beast, or if it was a random hardware issue; a corrupt bit, a failed memory chip or what have you.
A few decades later I was on the tube heading into London to visit a client. Who should I meet but Ivor! “Hi, how are you?” I asked. “OK thanks, just on my way to Baker Street to put new software in the information board system.” he responded. We made small talk for the rest of the journey, then said our goodbyes. On my way home, arriving at Baker Street, the place was in chaos. “Boards are down.” I was told by a staff member. All of the information screens were showing a low-level system failure message… hey ho.