Henry Griggs Rambling
Recent TopicsVisit to Australia 2002
Sydney house 2002
Circular Quay 2004
Circular Quay 2002
Centrepoint Tower 2004
Oz Birds 2004
Oz Birds 2002
Bridge Climb 2002
Popular TopicsGallbladder removal
Photo of the day
Geek Alaska 2003
UK in 2003
Geek Caribbean 2002
Photo Of The Day
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.