Gnome's Computers - Elliott 803

Gnome's Computers - Elliott 803

The year was about 1968, give or take a couple. I was badly afflicted with computer-mania, and I'd become friendly with a director of a local computer bureau: Bedford Computer Service. Like so many bureaux they no longer exist: but in their day they wrote custom programs, and ran them for small and medium businesses. It was before the micro; and mainframes were becoming more and more common. Management reports, sales and purchase ledger, payroll etc. was the bread-and-butter work of these bureaux.

I was teaching Physics at Bedford School: and on Saturday evenings I took a few interested sixth-formers to the computer-centre, where we taught each other programming and operation from the instruction manuals. About 11pm we switched everything off, turned out the lights and went home. It was a fabulous time! And we never had any trouble. Little did I realise that within a few years I would be offered a job with this company, would accept it and begin a very varied career in a string of different companies with various names; but always within ten minutes' drive of my home, and mostly working with one or more of a small group of friends I made while at the bureau. It was a close sort of community.

Incidentally, most of those boys who learned with me have now got jobs in or connected with computing.

We were allowed to use the two small mainframes. These were Elliott 803 machines, one with 4K memory and the other with 8K (the largest available!). In a dark corner of the room (the lights were on a separate switch) was a shiny new Honeywell computer. I don't remember the model, but we were not allowed to touch it. It had a CARD READER! And somebody said it was a WORD MACHINE. I think it was probably a model 200, which would not disgrace itself today*. Backing storage was three magnetic tape handlers:- adequate for the work in hand. Disks were for the larger bureaux with money to spare.

Elliot 803Picture by kind courtesy of Jack SmithThe 803s consisted of a row of 3 or 4 steel cabinets about 5ft high, 4ft wide and 3ft deep kind of proportions. In these were "the works". The circuitry was based on "minilogic" modules, forerunners of modern gate chips. These modules were potted and about 2ins.long and .5 in. square section. Hundreds of them were soldered to hundreds of boards which also included a great many transistors. The whole thing was powered by a large 12v, lead-acid accumulator on permanent trickle-charge. That battery gave more trouble than anything else. A moonlighting engineer appeared now and then to do maintenance, and he had a magic touch with the battery. I suspect he had in fact a magic potion: because the battery needed replacing too often.

Memory was ferrite cores - little rings threaded on cross-wires. So, with 8k locations, a 39-bit word, and a ferrite core for each bit, there were at least 8096x39 cores. The whole store occupied a heavy box on the bottom shelf of a cabinet. I think it was cube of about 8 or 10 ins. side. Massive cable harnesses plugged into it. At this time memory was costing about 1 pound per location; just the memory, never mind the rest.

There was a console table - no more than a steel office table (which wobbled), on which was "the WORDGENERATOR". I called it the "control panel" and I was corrected.

On another table beside the control panel (V-sign) were the punched-tape reader (input); the tape-punch (output); and the on-line teleprinter! Excitement! You could program error messages, progress reports ("This'll take another 10 mins"), anything, to the teleprinter for immediate information. Usually, however, the TP messages were complaints from system software. This was not an operating system: they were yet to come. It was the management-and-everything-else software you had to write for yourself. There were a few utilities available on paper tape: but input, output and backing storage (see later) were all handled by separate library routines. Programs were built up by reading the modules into specified memory areas, then saving all or parts back onto tape again. Some programs were kept on backing store, but it was so erratic (and expensive) that this was not considered satisfactory.

There was a system boot program, known as T1, built into - as ROM - the first 4 locations of the memory. This enabled the processor to read a program from tape and store it in memory where specified on the contr...word generator. The first program you read in was usually a full-blown input routine for paper tape, complete with data verification (sum checks etc.).

I said the word length was 39 bits. Numbers were held in floating-point form with two's complement for negative. Program instructions were held two to a word. You could set up a complete word on push-buttons on the word generator, then store this in a location indicated by further push-buttons. Manual programming like this was tedious, but wonderful for patching! Nowadays we would POKE, or LOAD"prog",8,1. [remember, this article was written in the late 1980s - David]

39 is, of course, an odd number. If 2 instructions occupy a word, there's a bit left over? Not so. 19 bits at each end of the word made an instruction comprising both function and address: equivalents to LDA 198 sort of thing. That makes the middle bit undefined? Yes - so far: but this'll slay you.... "If the middle bit of the word was set = 1 then the second instruction of the word would be modified without loss of speed by adding to it the content of the location specified in the address portion of the 1st instruction"! As each instruction is obeyed, the count in the sequence-control register is increased by one half, unless the instruction causes a transfer of control... (i.e. a jump). Jumps could be to the 1st or 2nd instruction of any location.

There were many amusing moments when we were learning how to program this machine. As we completed projects, we would invite others to test the program by "teasing it"; entering absurd data. One of the lads had been experimenting with delay loops, and asked me to try out his latest effort. The teleprinter said, "Enter any number except 7", so of course, as he expected, I entered 7. There was a burp from the tape reader in which was the program. Then the teleprinter said, "I told you not to enter 7. Pick up the tape and start again."

I asked the boy, "What does it mean, pick up the tape?" As I asked, there was a hoot and the tape shot out of the reader into a bin below it. The boys all collapsed laughing. So did I.

That auto-modification of a word in a program was fantastic to use (and to learn HOW to use!). It explains how the boot, T1, could reside in 4 locations. In fact it was recursive, re-running through itself twice with a mod each time to both instruction and location! The modification first made it rewrite itself into RAM (locations 4 upwards), jump into the new copy, modify itself and read the keyboard and tape. A real masterpiece of compact coding.

When you wrote a program, on a special code-sheet (I have some still), you left the middle bit as a colon on the sheet, meaning zero. If you put a slash / through it, this meant 1, and you then had a B-LINE. Once you could understand and use a B-line properly, you were in, feet under the table, one of the boys (or girls). In fact girls were often quicker to learn the B-Line - and many other things!

We used 803 machine-code for all serious work, but there were also an Autocode assembler and, wonder of wonders, an ALGOL compiler. The autocode was not unlike that for Pegasus, but with considerably improved facilities. I wrote a few programs with this but found it tedious and only suitable for number-crunching - which we didn't do much of. It could handle text defined as "TITLE" and embedded in the input data: OK for column headings and not much else.

The Algol (Algorithmic programming Language) was the version known as ALGOL 60, the year when it was defined. There have been several Algols since with so many changes that they seemed like different languages.

This particular implementation of Algol for the 803 was a very remarkable achievement. The compiler was written by C.A.R.Hoare, J.Hoare and J.S.Hillmore. I wish I could have met them. I was told that the two Hoares were husband and wife, and that they did most of the coding. I ran a disassembly of most of the compiler and it was fascinating. In the middle was a huge jump table not unlike the one at the end of the C64 system, but much larger. This was where the two authors of the compiler interfaced their work! I named it Clapham Junction. But the really astonishing thing was that the compiler was written before the computer was fully built. It was still a specification. I heard that when the first machine was completed and debugged, they tried the compiler on it. It ran perfectly the first time, and no bugs were found! I never did hear of any bugs. I have the 5th issue of the handbook, and there's no mention of any software re-issues, bugs or problems!

All software documentation for the 803 was a model of excellence. Every detail was covered in splendidly set out manuals. I quote a few headings:

Operating Instructions.
   During Running:
   Error Messages:
	 Condition   Action   Result
   Summary of Waits and Halts
	 Data Wait
	 Machine Wait
	 Dynamic stop

If the manual said something would happen, then it happened exactly as described. I never met better manuals later. The software all came on reels of paper tape, and the first thing you did was make a backup copy.

In all probability, the second thing you did was drop the spool of tape on the floor. The centre would fall out to form a spiral of tape across the room. I've seen a programmer and an operator spend most of a morning rewinding a long dropped tape. The best way was to untwist it and let it fall down the stair-well, with a colleague winding it slowly on a mechanical hand-winder in the foyer. Visitors were rather surprised as they dodged round this work to get to the reception desk.

On one occasion the bureau were persuaded by Elliotts that they should have a "very useful facility" added to their machine: a rapid end-around shift. The cost would be 500 pounds, and the offer was accepted. An engineer arrived, and spent a few minutes with his head and arms inside a cabinet, and his toolbag beside him. Here I must be careful what I say, but the rumour was that he took out some wire cutters and snipped one wire. The rumour was that this was all! That somebody at the factory had discovered this 'new instruction' by accident. I wonder. Certainly the rapid shift was quite useful in arithmetic, and perhaps worth the charge made.

Before I joined this company, I was once asked if I could fix their off-line printer. I did so, and sent them a bill which included two items I had always wanted to try and get away with:

   To clouting dodgy connector   £0 - 10
   To knowing where to clout     £2 - 90

They paid the bill! I forget the actual charges.