Voice Recognition in COBOL, 1980s style.

Around 35 years ago I began my first proper IT job as a programmer at Brannan Thermometers, a thermometer manufacturing company based in Cleator Moor in Cumbria. I was working with a couple of “mad geniuses”, Alastair and Tony (no, they weren’t hairdressers) programming mostly business applications in COBOL on an ageing Burroughs B3900 mainframe. These guys were good: even though nobody had ever taught them anything about computers beyond them reading a single book on assembler and (much later) having access to a COBOL manual, between them they had built a system which covered just about everything any manufacturing industry would require – and then some. It would put many of the large systems I’ve worked on since in the shade, and I sometimes wonder why they didn’t sell it on – I guess they didn’t realise just how good it was. But it was lean, fast, and did exactly what the users wanted – and in those rare cases where it didn’t it was so well organised that making changes to the code was a dream; user requirements could be coded in hours or days where on modern systems the changes might take weeks or months. I learned a lot in the couple of years I was there.

They also dabbled with hardware, and in fact some of their greater achievements involved interfacing with hardware – using jury-rigged electronics usually scavenged from broken bits of something totally inappropriate, and almost always using COBOL as the control language[1]. The most impressive of which was a program which interfaced via a re-jigged dumb terminal to a graph plotter, and printed logarithmic thermometer scales to fit varying lengths of tubes to incredibly small tolerances. Thermometer manufacture is a complex process[2] – buy me a beer[3] sometime and I’ll tell you all about it. But I digress.

Unisys (who by then owned Burroughs) often used Brannan’s as a case study when they wanted to sell someone a mainframe, and would frequently bring their potential customers on site visits for a demonstration of Brannan’s system. During one such visit, the IT team told the salespeople that they were experimenting with voice recognition – linking a microphone to a dumb terminal[4] – and would the salesman like them to demo the system to their clients? They cautioned that it was very much in the experimental stages, but nevertheless they were pleased with the results. Of course, the salesmen almost wet themselves in their excitement – a voice recognition system running on a B3900 – written in COBOL? You bet they wanted to see it!

The salesmen were led to a small office where Alastair – my boss – was seated at a terminal with no keyboard but with a microphone[5] attached. He explained with some embarrassment that the system had been having some problems, but he’d have a go at a demo.

He spoke loudly into the microphone: “Account: 655055”

After a couple of seconds delay, a customer record came up on the screen. Account 65505. A near miss.

He tried again, slowing down his speech and speaking very carefully and clearly: “ACCOUNT: 6 5 5 0 5 5”

This time the correct record appeared. Smiles all round.

“Wait,” he said “There’s more.”

“SALES HISTORY”

The sales history for the account appeared. More smiles and exclamations. The demo went on for several more minutes, with various aspects of the functionality being demonstrated, mostly successfully and, considering this was way beyond state of the art back in 1981, the salesmen were duly impressed.

“What do you call it?” asked one of the salesmen. He wanted to know what to tell his prospective clients he’d seen.

“URINEX”, replied Alastair without missing a beat.

An embarrased silence followed, until Alastair’s buddy Richard was heard in the adjacent room: “Are you finished yet? ‘cos I want to get my lunch and I can’t if I have to sit here typing your instructions.”

Oh, how we laughed[6].

[1] The single exception I remember was a tube measuring machine, whose control software was written in 6502 machine code and ran on a Commodore 64 – I kid you not. It had been written by a contractor and didn’t work. I had the task of disassembling the code, finding the bug, and rewriting it – all by hand, and in hex – even writing a Commodore Basic program to POKE the machine code back in. I’ll freely admit, thought I was the dog’s whassnames.
[2] An example: thermometer tubes can’t have their scales applied until after they have been filled (typically with mercury or alcohol) and the tube has been sealed because the scale varies greatly according to the precise amount of fluid in the tube. Some types of scales are applied by firing the tube in a kiln. But exposing a thermometer to the heat in a kiln will make the thermometer explode as the fluid within expands beyond the tube’s capacity to contain the fluid. How do you think this might be done?
[3] Jenning’s Snecklifter, please. Or failing that, almost any Real Ale. Ta.
[4] A dumb terminal, or “VDU”, is an input-output device consisting (usually) of a keyboard and a screen. It has just enough “intelligence” to send what you type at the keyboard to the mainframe, and return the mainframe’s response to the screen.
[5] It wasn’t actually a microphone, but a soil thermometer. It was the best they could come up with at short notice, but it looked the part.
[6] I’m being economical with the truth here – call it poetic licence. In fact, this all happened about a year before I joined the team, but it’s just as the story was told to me.
Advertisements

One response to “Voice Recognition in COBOL, 1980s style.”

  1. Will Nitschke says :

    I thought loading the compiler via tape, writing the program. Saving the program to tape. Compiling the program. Saving the compiled program to another tape. Closing the compiler. Loading the compiled program from tape. Running the compiled program. Crashing. Loading the compiler from tape, loading the program into the compiler from the other tape, correcting the error, saving the program code to tape, compiling the program and saving it to tape, etc., was bad.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: