Instruction Group 4Group 4 is conditional and unconditional jumps. Functions 40 – 43 jump to the first instruction of a pair, and 44 – 47 to the second.
Instruction Group 5Group 5 is multiply, divide and shift instructions. Some of these use the 38-bit Auxiliary Register, which can be thought of as an extension of the accumulator at the least significant end. Multiplications and divisions regard a/ar as a signed fraction between -1 and one least significant bit less than +1. Despite the 803 Handbook saying "All odd functions in Group 5 clear the AR", function 57 does not clear it.
Instruction Group 6Group 6 is floating-point instructions. Floating-point numbers are represented in a 39-bit word or in the accumulator as :
- a 30 bit 2's complement signed mantissa a in the range ½ ≤ a < 1 or -1 ≤ a < -½
- a 9 bit signed exponent b represented as a positive integer 0 ≤ ≤ 511.
Zero is always represented by all 39 bits zero. Note that the test for zero and test for negative jump instructions are equally valid for floating-point.
All these instructions clear the auxiliary register.
Instruction Group 7Group 7 is input/output, with the exception of 73, which is used for subroutine linkage. There is a much more complete description of the Group 7 functions in the "Our Computer Heritage" link.
Digital Plotter Control:
| Instruction | Pen motion | | 72 7168 | No motion | | 72 7169 | EAST | | 72 7170 | WEST | | 72 7172 | NORTH | | 72 7176 | SOUTH | | 72 7173 | NORTH EAST | | 72 7174 | NORTH WEST | | 72 7177 | SOUTH EAST | | 72 7178 | SOUTH WEST | | 72 7184 | Pen Up | | 72 7200 | Pen Down |
Entry to a subroutine at address N is normally effected by the sequence:
73 LINK : 40 N
The return address has been stored in a link location and returns by using the sequence:
00 LINK / 40 1
Example programBy way of an example, the following is the Initial Instructions, hard-wired into locations 0 – 3, and used for loading binary code from paper tape into memory. In accordance with the 803 convention, it is written with two instructions on each line, representing the contents of one word. The colon or slash between them represent a B digit value of zero or one respectively.
0: 26 4 : 06 0 Clear loc'n 4; Clear A 1: 22 4 / 16 3 Increment loc 4; Store A in loc'n & clear A 2: 55 5 : 71 0 Left shift A 5 times; Read tape and "or" into A 3: 43 1 : 40 2 Jump to loc'n 1 if arith overflow; Jump to loc'n 2
There are several points to note in this very simple program:
- There is no count. The inner loop packs 5-bit characters into the accumulator until overflow occurs. Thus a 39 bit word is formed of eight 5 bit characters. The most significant bit of the first character is discarded but must be a 1, in order to provoke arithmetic overflow.
- The first word read is stored into location 4, and this is then used as the address into which subsequent words are stored.
- Blank leading and trailing tape is ignored since zeroes can be shifted left indefinitely without causing overflow.
- There is no provision to terminate the outer loop. The tape can be stopped manually, or allowed to run out through the reader. More usually, Initial Instructions are used to read a more sophisticated secondary bootstrap into the top of store. After writing to the last store location the address is allowed to wrap round to 0. Writing zero to locations 0 – 3 has no effect, and a special value is then written to location 4. This value has 22 in the function code bits and the secondary bootstrap entry point minus 3 in the address bits. This means that the B digit has the effect of transforming the 16 instruction in location 1 into a 40 instruction, and of adding 3 to the address bits. The net result is a jump to the entry point of the secondary bootstrap!
[|Interrupts]The 803 has a little-known interrupt facility. Whilst it is not mentioned in the programming guide and is not used by any of the standard peripherals, the operation of the interrupt logic is described in the 803 hardware handbooks and the logic is shown in the 803 maintenance diagrams. Interrupts are probably used mostly in conjunction with custom interfaces provided as part of ARCH real time process control systems. Since all input and output instructions causes the 803 to become "busy" if input data is not available or if an output device has not completed a previous operation, interrupts are not needed and are not used for driving the standard peripherals. Raising the interrupt input to the computer causes a break in execution as follows: as soon as the machine is in a suitable state, the next instruction pair is fetched from store location 5, without changing the Sequence Control Register. Location 5 is expected to contain a standard subroutine entry instruction pair, allowing the pre-interrupt execution address to be saved for later return. The external equipment raising the interrupt is relied upon to refrain from raising another interrupt until the first has been acknowledged by some suitable input/output instruction, so as to prevent interrupts from being nested. The Algol compiler does not regard location 5 as a reserved location, although this may have more to do with the unsuitability of Algol for process control applications than indicating that interrupts are never regarded as a mainstream facility.
CompilersThe Initial Instructions described as the Example Program above is effectively a primary bootloader which is normally used to read a secondary bootloader known as T23, prepended to all program tapes. T23 allows more flexible program loading facilities including sum-checking of the loaded code. Machine code programs are written in an octal/decimal representation exemplified in the Example Program above, and loaded by a rudimentary assembler known as the Translation Input Routine. It has no symbolic addressing facilities, but instead allows the source to be broken into blocks which can be manually relocated to allow for the expansion or contraction of a previous block in development. There is also an Autocode for simple programming tasks, allowing faster program development without the need for a knowledge of machine code. This has no formula translation facilities and requires all calculations to be reduced to a series of assignments with no more than a single operator on the right hand side. The 803B with 8192 words of memory is capable of running the Elliott ALGOL compiler, a major subset of the Algol60 language, capable of loading and running several ALGOL programs in succession. This was largely written by Tony Hoare, employed by Elliotts as a programmer in August 1960. Hoare recounts some of his experiences at Elliotts in his 1980 Association for Computing Machinery Turing Award lecture. The 803B at The National Museum of Computing is now working well enough to run this compiler again. There is a on YouTube of it compiling and running a simple program.
NCR involvementThe 803 was branded as the NCR-Elliott 803 when sold by NCR for commercial use. At this time, Elliott Automation were also making/assembling NCR 315's at Borehamwood.
Do-it-yourself computingElliott 803s were used in NCR-Elliott's joint venture "Computer Workshop" computer bureau. The unique feature of this bureau was that they ran 3-day courses to teach their customers to write their own programmes, and these were often donated to a library of programmes that could be used. Customers would come to Borehamwood to operate the computers themselves – an early example of personal computing. Prices per hour were £8 from 9 am to 5 pm, £6 from 5 pm to midnight, and £4 from midnight to 9 am. The most popular applications were in civil engineering and architecture, for structural analysis, cut and fill, survey correction, and bills of quantities.
ApplicationsThe following were among 803 users:
- RMIT University in Melbourne, Australia utilised an Elliott 803 Computer for student use in 1966.
- Brush Electrical Machines in Loughborough, UK used an 803 for design calculation on power transformers and motors.
- G.P.O. used an 803 at their Dollis Hill Research Labs for electronics design and telephone network simulations.
- G.P.O. used an 803 at their Goonhilly Downs satellite earth station for calculating satellite passes and punching tapes to steer dishes.
- Corah Knitware in Leicester UK used a pair of 803s for telephone order processing and production planning.
- Thornber Farms in West Yorkshire UK used an 803 to process egg production data for breeding of chickens.
- The UK Potato Marketing Board used an 803 to produce statistics and reports, from the records and accounts it held for 65,000 registered growers
- Vickers, da Costa, a London stockbroker, used an 803B for trade processing and payroll from 1961 to 1966 when it was replaced with a National Elliot 4300.
- The RAF No. 1 Radio School at RAF Locking used an 803 in 1968 to train the first RAF Computer Technician Apprentices.
- The Medical Research Council Biophysics Research Unit at King's College London in Drury Lane used an 803 for detailed calculations to verify the structure of DNA and in early attempts to sequence RNA.
- United Steel's Swinden House Laboratories in Rotherham took delivery of an 803 in 1963. It was used, in part, for simulating various processes in steel manufacture.
- Battersea College of Advanced Technology used an 803 for student training.
- Mullard Research Laboratories in Redhill used an 803.
- Banco Pinto de Magalhães, a Portuguese bank, took delivery of an 803-B, the first computer to be installed in Portugal, around late-1961. It was used, in part, to register and keep track of current accounts.
- The National Gas Turbine Establishment, Pyestock Farnborough used an 803B delivered in 1962 for performance and design calculations on aircraft and processing aerodynamic data.
- Brown Brothers Ltd in Swindon, a motor trade distributor, installed an Elliott 803B in their headquarters building on the Dorcan Estate for use in stock control. This was later donated to Swindon Technical College.
- Elliott Automation had a facility at Rochester Airport, Kent, where they ran an 803.
- The London Hospital, in Whitechapel, London, England, installed an 803 c1964, which was the first computer to be used in a British hospital.
A number of computers was delivered to foreign countries, i.e.:
- 1959 E.I. Du Pont de Nemours Inc., Beaumont, Texas, USA
- 1960 Northern Illinois Gas Corporation, Bellwood, USA
- 1961 Banco Pinto de Magalhais in Oporto, Portugal
- 1961 Technical University of Helsinki in Finland
- 1961 Hindustan Aircraft Ltd. in India
- 1961 Electrotechnical lnstitute in Warsaw, Poland
- 1961 Koch & Mazzuckin in Hannover, Federal German Republic
- 1962 Phenix Belge Insurance Co., Antwerp in Belgium
- 1962 Energoticky Dispecink in Czechoslovakia
- 1962 Ministry of Heavy Industry in Hungary
- 1962 University of Wroclaw in Poland
- 1963 Sovnarhozes, Moscow in U.S.S.R.
- 1963 CSIRO Chem. Research Labs. in Australia
- 1963 Monsanto Research S.A, Zurich in Switzerland
- 1964 Metalurski Institute in Yugoslavia
- 1964 Optische Industrie in Netherlands
- 1966 Tampere University in Finland.
A number of second-hand 803s found their way into schools in the UK.
- Banbury School had 2 Elliott 803Bs, one with 4096 memory and tape, and one with the 8192 memory. They were used to teach Elliott Autocode as a primary language but also had an ALGOL compiler. They were also used for CESIL coding. The machines last ran in 1980 when they were replaced by a classroom of seven Apple 2e machines. The school also acquired the machine from Loughborough University for spares.
- Felsted School once had two Elliott 803's, nowadays only the control console remains, it is hung up in the corner of one of the school's current IT rooms as a reminder to why the room is named "Elliott"
- Haydon School had two Elliot 803B's with 8192 words of core until the early-1980s, one being used for spare parts. One of them came from the nearby Brunel University. Peripherals included two film handlers, two optical readers, two punches and a teleprinter for output, a hardware square-root unit and a drum plotter. It was used for running Algol, Autoode and a BASIC and Fortran compilers were available. It was installed in the early 1970s under the care of the Physics Department. At the time it was still St Nicholas Grammar School for boys.
- Mill Hill School had an Elliott 803 with 8192 memory in the 1970s. It had five-track paper tape reader and printer but no other I/O devices. The school had Elliott 803 autocode and Algol compilers.
- Loughborough Grammar School was given the machine from Brush Electrical Machines mentioned above.
- Highbury Technical College had an Elliott 803B for student use in the early-1970s.
- Swindon Technical College had an Elliott 803B in the early 1970s given by Brown Brothers Ltd and used by local schools including Commonweal Grammar School for teaching.
- Wanstead High School parents bought an Elliot 803B for the school from Oldacres Computers Ltd. It was installed in autumn 1973 and had 8192 memory, five-track paper tape punch and tape reader, and four film handlers.
|
|
|
|
|