Computers

21st May 1999

Computers are my life. I play with them for enjoyment. I work with them to earn a living. I'd be playing with them even if I wasn't paid.

University History

I was at University in the early 1970s in North Queensland. I started out to be a teacher and ended up a salesman. There were no Computer Science degrees in those days.

In 1974, I was at the James Cook University of North Queensland. I was doing an Education degree with an aim to be a teacher. I was losing interest, and my marks were reflecting that lack of interest. My brother, Peter, was doing an Engineering degree and we were sharing a flat. Peter was introduced to programming as part of his degree. Miditran, which was a cut-down version of Fortran. He kept bringing home this weird stuff called programming and somehow I got interested.

Next year, 1975, I did my first computer course at UNI. CP201. It was a half year course in Miditran. I got a Distinction, my highest mark so far at Uni. I was hooked. In my final year, 1976, I took the only course I could take that involved computers, and that was MA222, Numerical Mathematics. We did a few numerical methods, like solving simultaneous equations and evaluating constants using series, and finally simulations with queuing theory. I loved it. I got a High Distinction. My only High Distinction in my entire undistinguished University career.

Hewlett-Packard Calculators

While I was at University, doing the various Maths courses, I bought a Hewlett-Packard HP45 calculator. I can't remember the exact price, but I suspect that it was several hundred dollars. It was a chunky but stylish calculator with a black body and a red LED display. It had some hidden features, and one that I learnt about was the stopwatch. Press several buttons simultaneously and the LED display turned into a stopwatch that went into hundredths of a second. I spent a lot of time trying to get that stopwatch to stop with the hundredths counter set at 00. I could never do it. [HP45 Calculator]

I learnt Reverse Polish Notation, usually abbreviated as RPN, with this calculator, which is a way of entering complex calculations without using brackets. I got very efficient at this. Almost 30 years later, I still prefer calculators that have RPN notation.

Once I discovered programming, I also discovered programmable calculators. I bought a little HP25C, a tiny chunky calculator in fashionable beige. It wasn't the same stylish case as the HP45 but I could write programs for it. I wrote hundreds and hundreds of programs with that little thing, trying to squeeze large programs into such a small storage space. I learnt a lot about optimisation from that calculator. [HP25 Calculator]

Later still, I bought a HP67C, another programmable calculator with more storage space and a small card reader built in. Bliss. I could save my programs to the little cards and recall them later. I bought some pre-programmed cards and learnt how to write programs that were bigger than available memory. I discovered overlays and module swapping. [HP67 Calculator]

Today, I still have two Hewlett-Packard calculators. I have the HP11C, a programmable scientific calculator. It's a flat-bodied calculator, small and handy. And I have the HP16C, a programmable programmers calculator. I used this considerably till a few months ago when I bought my Palm Pilot. I found a shareware program called RPN that emulated the Hewlett-Packard calculators. I use this most of the time now. It's shareware, and I have even paid the shareware fee. That's how impressive the RPN program is.

[HP11C Calculator]

[HP16C Calculator]

Burroughs

[Burroughs logo]

On 22nd November 1976, before my final University exams, I saw a job in the Townsville Daily Bulletin that advertised for "Two Young Men". I still have the copy of that ad.

TWO YOUNG MEN
Burroughs Limited, a leader in the electronic industry, requires two young men to be trained in all facets of the marketing of our large range computer equipment. Full training will be provided to the successful applicants, both in North Queensland and Sydney. Good commencing salary and car allowance.

The applicants should preferably be university graduates, particularly in the fields of economics and commerce. The Company offers rapid promotion to successful young men and only serious minded young men genuinely seeking a total career development in the electronic industry should apply.

Please apply in first instance giving full details of education and working record to: The Manager, Burroughs Limited.

Today, I can read that ad and see what they were looking for. They wanted salesmen. I didn't see that at the time. I saw the magic words computer equipment and I was slavering. I wanted to do anything at all with computers.

I wrote my letter, mailed my application and had a reply and an interview the very next day. I was hired. I was sent to Sydney for months of training in their accounting machines and how to sell them. At that time, Burroughs in North Queensland sold calculators, some programmable, and they sold accounting machines. The calculators were expensive, especially as the tiny and cheap calculators of today were just starting to flood the market. We didn't sell many calculators. We did sell a few accounting machines. These were fun to program. They were the L series. If we wanted to program them, we would write the program in Assembler, hand assemble it to machine code, type the machine code directly into memory, and then cut a paper tape. There was supposed to be an assembler program, but we didn't have it. We hand-assembled, and that let us optimise and debug and patch away. Some of the newer models had magnetic tape cards. We programmed for them too, all in hand-assembled code. All self-taught of course. I did so much hand-assembling that I started to remember most of the assembler instructions. Sometimes, very, very occasionally, I could write small utility type programs directly into machine code. I was very proud of this.

This gave me great insights into memory storage, the difference between data and program areas. There wasn't any. I could use program instructions as constants. I could stick data in the middle of the code and jump over it. I could make calculations, store the results in memory, and then execute that data. I had a lot of fun writing completely obscure self-modifying code. I have managed to keep a copy of the small booklet of assembler codes, and the machine code translations, but I never kept any of the punched paper tape utilities, or the assembler pads. None of my programs survive. I am sad about that. If anyone ever finds those large, pads of paper with the Burroughs logo on them that were used for writing Assembler, please let me know. I would love a few pages as a memento.

To function with the L series accounting machines, you needed lots of utilities. These were all on punched paper tape. Because I am an obsessive packrat, I ended up with a small toolbox chock full of paper tapes. I had a complete set. I could do anything.

One of my favourite exploits occurred 1977 when I found some little used commands. One would open and shut the carriage of the machines, the parts where the cards were inserted, and another would turn the machine off. I wrote a little program that would flap the carriage back and forward a few times, print I don't feel very well, flap the carriage a few more times, print I feel sick, flap it even more agitatedly, and then print I'm dying, flap feebly, print Urrrrgggghhh.... and then switch itself off. I cut this program to paper tape, surreptitiously loaded it into a customer's machine one day, with a patch in her normal program that would trigger my little add-on after certain events. The user started the computer and worked away until suddenly, it all happened. She was screaming and crying and got incredibly upset. I quickly re-loaded the unpatched version of her program and cured her computer. She was very reluctant to touch the computer again.

Before I did this, I didn't realise the effect it would have had on her. I thought it was a cute trick. I did it because I could do it. That was when I realised just how much people fear computers. They don't understand them and they fear them. Even today, with the proliferation of home computers, most people still don't understand them and they still fear them.

Burroughs also had a real computer called the B700. This was soon replaced by the B80. This wasn't a bad computer. It was programmed in COBOL, and it came with a compiler. I taught myself COBOL. These machines had large 12" floppy disks, and large removable hard disk platters. And line printers. I had a lot of fun with these machines.

The B80s came with accounting software that had been developed in the USA. They were actually chopped down versions from the larger Burroughs equipment of the time, like the B1800 and B2800. The software had everything in it, but designed for the USA accounting system. It didn't quite fit the North Queensland market. We had the source code for it, and the compiler. The accounting system was broken into hundreds of small programs called names like ar110 and ap245. It was hard to remember what programs did what parts, and there was no menuing system. It was clumsy. So I started tinkering with the source code, and I got very frustrated with it because it was so huge and clumsy. I stopped looking at their source code, sat down with the customer and worked out exactly what they wanted. Then I wrote it from scratch. I wrote it in modules, and combined it into one large executable, with nice menus, and lovely input screens. The input screen was 32 characters by 8 lines, so it took an effort to pack input screens into that tiny space. I discovered why the other accounting system was broken into so many smaller programs. The total source code for my system was about 5,000 lines. It took 3.5 hours to compile.

I would start the programming effort on Friday afternoons after work. Write some code, fix some errors, add a report, add a screen, then set it compiling. I would go to sleep beside the computer. I set it up so that when the compile stopped, the bell would ring. This would wake me up. I would check for errors, test my work, add some more stuff, then set it compiling again, and sleep again. I would do this all weekend. I learnt the value of checking the work I had written before compiling. If I made a spelling or punctuation mistake, I wasted 3.5 hours. So I became very careful about checking my work.

There were benefits to spending this much time with these machines. I go to know the sounds they made. I knew the sound of the those big floppy disks in action; what they sounded like when they worked properly, what they sounded like when the floppy was scratched, what they sounded like when the belts fell off, and what they sounded like when the drive was broken. Several times, I answered service calls and they reported errors with floppy drives. I would ask them to hold the phone beside the computer while they repeated the action, and I could then tell them pretty much what the problem was. That was fun.

That compile time didn't irritate me at first. This wa smy first experience with big computers. What did I know? Then I was lured into a meeting with the local NCR representative, our direct competitor. He showed me the NCR equivalent of the B80, and proved that compiles of about 5,000 lines only took a matter of 10 minutes or so. I went into denial. It mustn't do as much. It can't be happening. It's faked. In retrospect, it probably did compile that quickly. Today, I can't imagine why the B80 was so slow at compiling.

In my time with Burroughs, I participated in the stock option scheme. You could forgo some of your salary and buy stock in the company. I ended up with 4 or 5 stock certificates. Some years after I left Burroughs, I sold my stock certificates. I didn't get much for them.

[Burroughs Stock]

Exidy Sorceror

Sometime in the late 1970s, Mum and Dad bought an Exidy Sorceror. This was a flaky little computer with cassette storage, small memory, BASIC, and you could buy a few games for it on cassette. More fun was typing in BASIC games and trying to save them onto cassette. It was Russian roulette doing that. Most of the time you couldn't retrieve the programs from cassette again. We had a lot of fun with that.

Apple Computers

I discovered Apples. I bought an Apple ][+. That cost me about $3,500. It had two single sided 140K floppies, 48K of RAM and a green screen monitor. I quickly upgraded to the Language card, which added an extra 16K, to give me a grand total of 64K of RAM. That was something to be proud of. I was a bit irritated when the Apple ][e was released a month later with more features and costing less. I was very irritated with the salesman for not telling me about the new release. My first experience with a computer salesman. Not the last, though.

I discovered computer games. I taught myself Applesoft BASIC and started writing programs. I attempted business programs in Applesoft and found many, many pitfalls, expecially with the way it stored data on disk. I attempted a large scale program for a tomato seedling grower, and that proved to be a horrible failure. Many things contributed to that failure.

[Apple IIe]

Shortly after, I found UCSD Pascal. That was much better than Applesoft for business programs. I fiddled around a fair bit, and got started with much better business programs. One problem. The Burroughs COBOL had ISAM built in. Indexing of data files. I was all self-taught with this stuff, no magazines, no books, just manuals. What did I know? I assumed that all programming languages had indexes built in, just like COBOL. Oh no, it didn't work that way. I fiddled around and tried all sorts of things. I started reading the early Apple magazines. I found a review of a Pascal unit that gave Btree support. I tried to contact the company, but they were out of business. I wrote to the reviewer, and explained my situation. He sent me his review copy and I got started. It almost did what I wanted. I used it for a while. But then it was time to upgrade the version of UCSD Pascal to get new features, and the unit was no longer able to be used. I had a premonition that this was going to happen to me a few more times.

So I knuckled under and I did some study. I tracked down Algorithms + Data Structures = Programs. No use to me. I read Donald Knuth's Art of Computer Programming Volume 3, and I got a lot of good information out of that. I started writing my own indexing scheme using Btrees. The hardest part was deleting an entry from the Btree. Knuth left this as an exrecise to the reader. I found another book that gave me some hints, and I sat down and developed it. I tested that unit so thoroughly. I ended up with automated tests, with standard data that would trigger edge conditions, error conditions, everything. I learnt a lot from that process. And it worked, and it was fast, and it was mine, and I had full source code. I was all set.

Not quite. Data entry was still pretty lousy. And then I read a magazine article in inCider on data entry. I typed in that program and saw the potential. I rewrote it and rewrote it and reworked it and developed my own screen input routines that were slick and powerful, and did COBOL like things. Now I was all set.

I wrote debtors systems and creditors systems and small general ledgers. Cheque account reconciliation programs, and invoicing systems. I churned out the accounting software. I made practically no money, but I wrote a lot of software and I refined my units and modules and was very happy. I did this on the Apple ][ series, and I also wrote a few things for the Apple III. The UCSD Pascal for the Apple III was more limited. The manuals had great Escher covers, but the software was nowhere near as advanced as that for the Apple ][s. The Apple IIIs were a bit more prone to damage. I liked the design but it was harder to get inside the IIIs and fiddle with them, and there wasn't as much addon stuff that you could do with them. It was a shame. [Apple III]

[Apple III Logo]

During this time, I worked for another computer equipment company in Townsville. I got to play with the first Apple Lisa to be sold in North Queensland. I think it went to Kidstone Gold Mine. It was a great machine, 5 meg hard disk, speedy graphics, interesting programs. When the Macintosh finally out, I was very disillusioned with it. No hard disk, slow, clunky, horrible chunky design. It had none of the class of the Lisa. I also got to see the first IBM PC. That was a horrible machine. Big and ugly and heavy, with 64K of memory, an operating system that didn't work too well, and practically no software. I didn't like it. [Apple Lisa]

IBM PCs

One day in the mid 1980s, a friend of mine, Tony, came to me and told me I had to dump Apples and get an IBM clone. I was pretty reluctant after my initial reactions to the original IBM PC, but he showed me his clone computer. By this time, it was an AT class and had 640K memory, which I thought was pretty amazing. He convinced me, and I bought it. It only cost about $1,500. Shortly after this, I did some programming for someone else, and ended up with a 40 meg hard disk drive for the machine. I thought I was in hog heaven with that machine. So much RAM, so much hard disk space.

I tried to convert all my UCSD Pascal accounting programs over to the IBM clone I had. My first attempt was to buy Pecan Pascal. This was a variant/descendant of UCSD Pascal. It worked, and I was able to do a serial cable transfer from my Apple to my clone of all my source code. I set about recompiling and rewriting the software. Lots of pitfalls and traps and lots of small irritating changes. For example, the Apple Pascal screen positioning was zero-based, and the Pecan Pascal screen positioning was 1 based. Or vice versa. That took a lot of tedious changing.

That was successful for a while, but ended up being expensive and limiting. Colour soon became a big thing with the IBM clones and Pecan Pascal didn't cater for that. Around this time, Turbo Pascal 3 was out and doing great things. I bought it and fiddled, but the conversion of my software from Pecan Pascal to Turbo Pascal would have been too great. When Turbo Pascal 4 was released, it had a whole bunch of new features. It had an IDE, something I was very familiar with from the UCSD Pascal. It had units finally, and it had good memory overlays. Now I could translate with ease and I did. And never looked back. I went from Turbo Pascal 4 to 5, and then to 5.5 when Borland introduced object oriented programming, then up to 6, and finally 7. I had a full set of accounting systems available, plus lots of custom-written applications.

Around this time, Windows 3.0 had been released and was becoming popular. I had seen Windows 1 and the many different versions of 2, and I was not impressed. It looked interesting but there wasn't any software for it that said Wow, I have to use this. Windows 3.0 changed that.

I attempted to get into Windows programming, but found it was just too bloody-minded. I bought the 4 volume Microsoft set of books, and I bought the SDK and I bought the compilers and I worked my way through the books, and found that programming for Windows was not fun. I persevered, but it beat me. I wrote a few small programs, and I contributed to a commercial Windows package that did large works estimating, but it was not fun. I gave in and didn't bother with Windows programming anymore.

For historical purposes, I have installable copies of Windows on CDROM. I have Windows 1.0, 2.0, 2.03, 2.1 (both 286 and 386 versions), 3.0, 3.1 and 3.11. I made the copies on the CDROM from the original floppies I owned, for all the versions except Windows 1.0. I got a copy of that from someone else.

I discovered Linux and didn't bother with Windows after that.

[Linux]