Sunday, April 09, 2006

BEEP is louder than beep

Back in the early 80's when I worked for Hewlett Packard I learned to program the HP9825A[^] Programmable Calculator. It was considerably more than a calculator though! If we installed the HPIB interface card and the I/O ROM we could use it to control test instruments and I remember writing more than one program to ease the effort of calibrating a spectrum analyser.

Indeed, if I remember rightly, the major market for the 9825A was the instrument control market.

The programming language it used was called HPL, which as far as I remember was a variation on APL though, given that I've never seen an APL program, that may be no more than faulty remembrance.

Like many specialised languages HPL had a bunch of machine specific keywords. The only one I remember is 'beep' which did exactly what the name would suggest; it beeped the machine. Unlike a great many machines of the period, it was possible to specify the pitch and duration of the beep and you could, if sufficiently misguided, write a program to play monophonic and monotonal tunes on the machine.

The keywords in the language were defiantly lower case; it would accept lines written in upper case, parse them and convert keywords to lower case.

One of my colleagues, Gary, fancied himself a musician and he became interested in the possibilities of the machine. Many a lunch hour he'd spend playing around with the beep statement. He wasn't a programmer so he asked me to explain some of the more subtle nuances of reading data arrays from mass storage so he could store his tunes.

After a while he became unhappy with the lack of control over the volume and he asked me how he could vary it.

'Piece of cake, mate' I said. 'If you type beep in lower case you get low volume, if you type BEEP you get loud and if you type Beep you get something in the middle'. Obviously I'm paraphrasing but it would take way too long to type out the whole conversation.

He was convinced and went off to lunchtime programming happy. It took him ages to realise that no matter what case you used when inputting a program the machine would always convert keywords to lower case!

No comments: