Elliott 803

Last updated

Parts from an Elliott 803B Elliott 803.jpg
Parts from an Elliott 803B

The Elliott 803 is a small, medium-speed transistor digital computer which was manufactured by the British company Elliott Brothers in the 1960s. About 211 were built. [1]

Contents

History

The 800 series began with the 801, a one-off test machine built in 1957. The 802 was a production model but only seven were sold between 1958 and 1961. The short-lived 803A was built in 1959 and first delivered in 1960; the 803B was built in 1960 and first delivered in 1961.

Over 200 Elliott 803 computers were delivered to customers, at a unit price of about £29,000 in 1960 [2] (roughly equivalent to £710,000in 2021 [3] ). Most sales were of the 803B version with more parallel paths internally, larger memory and hardware floating-point operations.

The Elliott 803 was the computer used in the ISI-609, the world's first process or industrial control system, wherein the 803 was a data logger. It was used for this purpose at the US's first dual-purpose nuclear reactor, the N-Reactor.

A significant number of British universities had an Elliott 803. [4]

Elliott subsequently developed (1963) the much faster, software compatible, Elliott 503.

Two complete Elliott 803 computers survive. One is owned by the Science Museum in London but it is not on display to the public. The second is owned by The National Museum of Computing (TNMoC) at Bletchley Park, is fully functional, and can regularly be seen in operation by visitors to that museum. [5] [6]

Hardware description

The 803 is a transistorised, bit-serial machine; the 803B has more parallel paths internally. It uses ferrite magnetic-core memory in 4096 or 8192 words of 40 bits, comprising 39 bits of data with parity. [7] The central processing unit (CPU) is housed in one cabinet with a height, width, and depth, of 56 by 66 by 16 inches (142 by 168 by 41 cm). Circuitry is based on printed circuit boards with the circuits being rather simple and most of the signalling carried on wires. There is a second cabinet about half the size used for the power supply, which is unusually based on a large nickel–cadmium battery with charger, an early form of uninterruptible power supply. A third cabinet (the same size as the power cabinet) holds the extra working store on machines with 8192 word stores. There is an operator's control console, Creed teleprinter and high-speed paper punched tape reader and punch for input/output, using 5-track Elliott telecode code, not Baudot. Tape is read at 500 characters per second and punched at 100 cps. The operator's console, about 60 inches long, allows low-level instructions to be entered manually to manipulate addresses and data and can start, stop and step the machine: there is a loudspeaker (pulsed by the top bit of the instruction register) which allows the operator to judge the status of a computation. The system requires air conditioning, drawing about 3.5 kW of power in a minimal configuration. A minimal installation weighed about 1,800 pounds (820 kg). [8]

35 mm magnetic film handler Elliott 803B.jpg
35 mm magnetic film handler

Optional mass storage is available on an unusual magnetic tape system based on standard 35 mm film stock coated with iron oxide (manufactured by Kodak). At the time this was in use by the film industry to record sound tracks. Elliott's factory at Borehamwood was close to the Elstree film studios which explains the use of the 35mm sprocketed media. The 1000-foot reels held 4096 blocks of 64 words per block (4096 x 64 x 39 = 10,223,616 bits, or the equivalent of about 1.3 megabytes).

Another unusual feature is the use of magnetic cores not only for memory but also as logic gates. These logic cores have 1, 2 or 3 input windings, a trigger (read) and an output winding. Depending on their polarity, current pulses in the input windings either magnetise the core or cancel each other out. The magnetised state of the core indicates the result of a boolean logic function. Two clock phases designated alpha and beta are used to trigger (reset to zero) alternate cores. A change from a one to a zero produces a pulse on the output winding. Cores which receive alpha trigger pulses (alpha cores) have inputs fed from gates which are triggered on the beta phase (beta cores). Transistors were expensive at the time and each logic gate requires only one to amplify the output winding pulse; however a single transistor drives the inputs of a small number of (typically 3) other cores. If more than 3 inputs are to be driven, up to two more transistors can be driven by each core.

Instruction set

Instructions and data are based on a 39-bit word length with binary representation in 2's complement arithmetic. The instruction set operates on a single address and single accumulator register, with an additional auxiliary register for double length integer multiply and divide. Although it is believed that the single length divide and square root instructions were only enabled in 803s destined for process control applications, the one remaining operational 803B has been found to have these instructions enabled, probably because it was used by a software house to develop real time and process control applications. An instruction is composed of a 6-bit function field (conventionally represented in octal) and a 13 bit address. This gives 64 instructions organised as 8 groups of 8 instructions. The 13-bit memory address field gives an addressable range of 8192 words. These 19-bit instructions are packed two to a word with an additional 39th bit between them, the so-called B-line or B digit (the term is a legacy from the Ferranti Mark 1 computer, where the A-line represented the accumulator and the B-line an instruction modifier, both stored on a Williams tube). Setting the B digit has the effect of adding the contents of the memory address of the first instruction to the second instruction at execution time, enabling indexing, indirect addressing, and other run-time instruction modifications. The bit time is 6 microseconds, jumps execute in 288 microseconds and simple arithmetic instructions in 576 microseconds. Floating-point operations take several milliseconds. IO is direct. Interrupts were not used by standard peripherals or documented in the programming guide.

In the following descriptions, A and N represent the accumulator and the literal address, a and n represent the (initial) contents of the accumulator and addressed store location, and a' and n' the resultant contents.

Instruction Groups 0 – 3

These are fixed point arithmetic with 4 different combinations of operand and result destination:

Groups 0 – 3
FnOperationa'n'
FnOperationa'n'
00Do nothingan
01Negate-an
02Replace & countn + 1n
03Collatea & nn
04Adda + nn
05Subtracta - nn
06Clearzeron
07Negate & addn - an
10Exchangena
11Exchange and negate-na
12Exchange and countn + 1a
13Write and collatea & na
14Write and adda + na
15Write and subtracta - na
16Write and clearzeroa
17Write, negate and addn - aa
20Writeaa
21Write negativelya-a
22Count in storean + 1
23Collate in storeaa & n
24Add into storeaa + n
25Negate store and addaa - n
26Clear storeazero
27Subtract from storean - a
30Replacenn
31Replace and negate storen-n
32Replace and count in storenn + 1
33Replace and collate in storena & n
34Replace and add to storena + n
35Replace, negate store and addna - n
36Replace and clear storenzero
37Replace and subtract from storenn - a

Instruction Group 4

Group 4 is conditional and unconditional jumps. Functions 40 – 43 jump to the first instruction of a pair, and 44 – 47 to the second.

Group 4
FnOperation
40Transfer to 1st instruction unconditionally
41Transfer to 1st instruction if a is negative
42Transfer to 1st instruction if a is zero
43Transfer to 1st instruction if overflow set, and clear it
44Transfer to 2nd instruction unconditionally
45Transfer to 2nd instruction if a is negative
46Transfer to 2nd instruction if a is zero
47Transfer to 2nd instruction if overflow set, and clear it

Instruction Group 5

Group 5 is multiply, divide and shift instructions. Some of these use the 38-bit Auxiliary Register (AR – contents denoted by ar), 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.

Group 5
FnOperation
50Arithmetic right shift a/ar N times
51Logical right shift a N times, clear ar
52Multiply a by n, result to a/ar
53Multiply a by n, single length rounded result to a, clear ar
54Arithmetic left shift a/ar N times
55Logical left shift a N times, clear ar
56Divide a/ar by n, single length quotient to a, clear ar
57Copy ar to a, set sign bit zero, do NOT clear the ar

Instruction Group 6

Group 6 is floating-point instructions (if a floating-point unit is installed).

Floating-point numbers are represented in a 39-bit word or in the accumulator as (from most to least significant end):

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.

Group 6
FnOperationa'n'
60Add n to aa + nn
61Subtract n from aa - nn
62Negate a and add nn - an
63Multiply a by na * nn
64Divide a by na / nn
65N = 4096: Convert fixed point integer in the accumulator to floating-point
65N < 4096: Fast left (end round) shift N mod 64 places
66(Spare)
67(Spare)

All these instructions clear the auxiliary register.

Instruction Group 7

Group 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.

Group 7
FnOperation
70Read the keyboard number generator to the accumulator
71Read one character from the tape reader and logically "or" it into the least significant 5 bits of the accumulator
72Output to optional peripheral device such as the digital plotter:
73Write the address of this instruction to location N
74Send a character represented by N to the punch
75Channel 2 function
76Channel 2 function
77Channel 2 function

Digital Plotter Control:

InstructionPen motion
72 7168No motion
72 7169EAST
72 7170WEST
72 7172NORTH
72 7176SOUTH
72 7173NORTH EAST
72 7174NORTH WEST
72 7177SOUTH EAST
72 7178SOUTH WEST
72 7184Pen Up
72 7200Pen 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 (typically the location before the start of the subroutine (e.g. N-1) )

and returns by using the sequence:

00 LINK / 40 1 

Example program

By 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 (3 + content of loc'n 4) & 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:

(The data values for the wrapped-around locations 0 – 3 must be zero since counter values 8192, 8193 etc. change the B-modified second half of location 1 from a 16 to a 17 instruction, which sets a to n - a instead of clearing it, as required by the inner loop.)

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 (Diagram 1:LB7 Gb). 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 (in particular, when not "busy" and only in certain states of the fetch/execute cycle), the next instruction pair is fetched from store location 5, without changing the Sequence Control Register (SCR). Location 5 is expected to contain a standard subroutine entry instruction pair (73 LINK : 40 N – see above), allowing the pre-interrupt execution address (still in the SCR) 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.

Compilers

The 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 sumchecking 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, [9] 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 (ACM) Turing Award lecture.

The 803B at The National Museum of Computing is now working well enough to run this compiler again. There is a short video on YouTube of it compiling and running a simple program.

NCR involvement

The 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 computing

Elliott 803s (and later Elliott 4100s) 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 (and later Greenford) to operate the computers themselves – an early example of personal computing. Prices per hour were £8 (equivalent to £196in 2021) from 9 am to 5 pm, £6 (equivalent to £147in 2021) from 5 pm to midnight, and £4 (equivalent to £98in 2021) from midnight to 9 am. [3]

The most popular applications were in civil engineering and architecture, for structural analysis, cut and fill, survey correction, and bills of quantities.

Applications

The following were 803 users: [2]

A small number of second-hand 803s found their way into schools in the UK.

See also

Related Research Articles

<span class="mw-page-title-main">Data General Nova</span> 16-bit minicomputer series

The Data General Nova is a series of 16-bit minicomputers released by the American company Data General. The Nova family was very popular in the 1970s and ultimately sold tens of thousands of units.

<span class="mw-page-title-main">EDSAC</span> 1940s–1950s British computer

The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal First Draft of a Report on the EDVAC, the machine was constructed by Maurice Wilkes and his team at the University of Cambridge Mathematical Laboratory in England. EDSAC was the second electronic digital stored-program computer to go into regular service.

<span class="mw-page-title-main">PDP-8</span> Minicomputer product line

The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering LINC but has a smaller instruction set, which is an expanded version of the PDP-5 instruction set. Similar machines from DEC are the PDP-12 which is a modernized version of the PDP-8 and LINC concepts, and the PDP-14 industrial controller system.

<span class="mw-page-title-main">LINC</span> Laboratory Instrument Computer (1962)

The LINC is a 12-bit, 2048-word transistorized computer. The LINC is considered by some to be the first minicomputer and a forerunner to the personal computer. Originally named the Linc, suggesting the project's origins at MIT's Lincoln Laboratory, it was renamed LINC after the project moved from the Lincoln Laboratory. The LINC was designed by Wesley A. Clark and Charles Molnar.

<span class="mw-page-title-main">IBM 700/7000 series</span> Mainframe computer systems made by IBM through the 1950s and early 1960s

The IBM 700/7000 series is a series of large-scale (mainframe) computer systems that were made by IBM through the 1950s and early 1960s. The series includes several different, incompatible processor architectures. The 700s use vacuum-tube logic and were made obsolete by the introduction of the transistorized 7000s. The 7000s, in turn, were eventually replaced with System/360, which was announced in 1964. However the 360/65, the first 360 powerful enough to replace 7000s, did not become available until November 1965. Early problems with OS/360 and the high cost of converting software kept many 7000s in service for years afterward.

<span class="mw-page-title-main">IBM 1130</span> 16-bit IBM minicomputer introduced in 1965

The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding the decimal IBM 1620 in that market segment. Typical installations included a 1 megabyte disk drive that stored the operating system, compilers and object programs, with program source generated and maintained on punched cards. Fortran was the most common programming language used, but several others, including APL, were available.

<span class="mw-page-title-main">HP 2100</span> Mid-1960s 16-bit computer series by Hewlitt Packard

The HP 2100 is a series of 16-bit minicomputers that were produced by Hewlett-Packard (HP) from the mid-1960s to early 1990s. Tens of thousands of machines in the series were sold over its twenty-five year lifetime, making HP the fourth largest minicomputer vendor during the 1970s.

<span class="mw-page-title-main">English Electric DEUCE</span>

The DEUCE was one of the earliest British commercially available computers, built by English Electric from 1955. It was the production version of the Pilot ACE, itself a cut-down version of Alan Turing's ACE.

KDF9 was an early British 48-bit computer designed and built by English Electric. The first machine came into service in 1964 and the last of 29 machines was decommissioned in 1980 at the National Physical Laboratory. The KDF9 was designed for, and used almost entirely in, the mathematical and scientific processing fields – in 1967, nine were in use in UK universities and technical colleges. The KDF8, developed in parallel, was aimed at commercial processing workloads.

<span class="mw-page-title-main">Z22 (computer)</span> German 1950s computer

The Z22 was the seventh computer model Konrad Zuse developed. One of the early commercial computers, the Z22's design was finished about 1955. The major version jump from Z11 to Z22 was due to the use of vacuum tubes, as opposed to the electromechanical systems used in earlier models. The first machines built were shipped to Berlin and Aachen.

The Burroughs B2500 through Burroughs B4900 was a series of mainframe computers developed and manufactured by Burroughs Corporation in Pasadena, California, United States, from 1966 to 1991. They were aimed at the business world with an instruction set optimized for the COBOL programming language. They were also known as Burroughs Medium Systems, by contrast with the Burroughs Large Systems and Burroughs Small Systems.

<span class="mw-page-title-main">WDC 65C02</span> CMOS microprocessor in the 6502 family

The Western Design Center (WDC) 65C02 microprocessor is an enhanced CMOS version of the popular nMOS-based 8-bit MOS Technology 6502. It uses less power than the original 6502, fixes several problems, and adds new instructions. The power usage is on the order of 10 to 20 times less than the original 6502 running at the same speed; its reduced power consumption has made it useful in portable computer roles and industrial microcontroller systems. The 65C02 has also been used in some home computers, as well as in embedded applications, including medical-grade implanted devices.

<span class="mw-page-title-main">DASK</span> First computer in Denmark, 1957

The DASK was the first computer in Denmark. It was commissioned in 1955, designed and constructed by Regnecentralen, and began operation in September 1957. DASK is an acronym for Dansk Aritmetisk Sekvens Kalkulator or Danish Arithmetic Sequence Calculator. Regnecentralen almost didnot allow the name, as the word dask means "slap" in Danish. In the end, however, it was named so as it fit the pattern of the name BESK, the Swedish computer which provided the initial architecture for DASK.

NAR 1 or just NAR was a theoretical model of a computer created by Faculty of Mathematics of University of Belgrade professor Nedeljko Parezanović. It was used for Assembly language and Computer architecture courses.

The Little Man Computer (LMC) is an instructional model of a computer, created by Dr. Stuart Madnick in 1965. The LMC is generally used to teach students, because it models a simple von Neumann architecture computer—which has all of the basic features of a modern computer. It can be programmed in machine code or assembly code.

<span class="mw-page-title-main">Apollo Abort Guidance System</span> Backup system for Apollo PGNCS

The Apollo Abort Guidance System was a backup computer system providing an abort capability in the event of failure of the Lunar Module's primary guidance system during descent, ascent or rendezvous. As an abort system, it did not support guidance for a lunar landing.

<span class="mw-page-title-main">Atlas (computer)</span> Supercomputer of the 1960s

The Atlas Computer was one of the world's first supercomputers, in use from 1962 to 1972. Atlas' capacity promoted the saying that when it went offline, half of the United Kingdom's computer capacity was lost. It is notable for being the first machine with virtual memory using paging techniques; this approach quickly spread, and is now ubiquitous.

Ferranti's Sirius was a small computer released in 1961. Designed to be used in smaller offices without a dedicated programming staff, the Sirius used decimal arithmetic instead of binary, supported Autocode to ease programming, was designed to fit behind a standard office desk, and ran on UK standard mains electricity with no need for cooling. It was also fairly slow, with instruction speeds around 4,000 operations per second, and had limited main memory based on delay lines, but as Ferranti pointed out, its price/performance ratio was difficult to beat.

<span class="mw-page-title-main">SDS 9 Series</span> Backward compatible line of transistorized computers

The SDS 9 Series computers are a backward compatible line of transistorized computers produced by Scientific Data Systems in the 1960s and 1970s. This line includes the SDS 910, SDS 920, SDS 925, SDS 930, SDS 940, and the SDS 945. The SDS 9300 is an extension of the 9xx architecture. The 1965 SDS 92 is an incompatible 12-bit system built using monolithic integrated circuits.

The 12-bit ND812, produced by Nuclear Data, Inc., was a commercial minicomputer developed for the scientific computing market. Nuclear Data introduced it in 1970 at a price under $10,000.

References

  1. Lavington, Simon (19 May 2011). Moving Targets: Elliott-Automation and the Dawn of the Computer Age in Britain, 1947–67. Springer Science & Business Media. p. 662. ISBN   9781848829336.
  2. 1 2 "Version 3, November 2011 E3X1, Delivery lists and applications of the Elliott 800 series and 503 computers" (PDF). Archived from the original (PDF) on 2 April 2012. Retrieved 13 April 2012.
  3. 1 2 UK Retail Price Index inflation figures are based on data from Clark, Gregory (2017). "The Annual RPI and Average Earnings for Britain, 1209 to Present (New Series)". MeasuringWorth. Retrieved 11 June 2022.
  4. Roberts, Goronwy (6 March 1967). "Computers". Parliamentary Debates (Hansard) . HC. Retrieved 8 July 2017.
  5. "Mainframes & large systems". TNMOC. Archived from the original on 14 February 2014. Retrieved 9 November 2018.
  6. Elliott 803 news, more tidbits from the archive and several generous donations to boot Archived 17 July 2018 at the Wayback Machine , 2010-09-19, The National Museum of Computing
  7. "Reference Information: Survey of European Computers, Part 3 (Concluding Part) – United Kingdom – N.C.R. Co.: National-Elliott 803" (PDF). Computers and Automation. 9 (4): 27. April 1960. Retrieved 5 September 2020.
  8. Weight of central processor (680), power unit (380 + 200 [battery charger]), paper tape station (450?), keyboard (66?):
  9. Purvis, Bill (5 October 2005). "Elliott 803 Algol".
  10. Science and the Egg, Aka Chick Automation: Science Aids The Egg, Issue Date: 12/02/1962 – British Pathé
  11. The British Computer Society magazine iTNOW, 'celebrating 60 years', Summer 2017, p49 doi:1093/itnow/bwx049 www.bcs.org/itnow
  12. Described in 'University of London King's College Biophysics Laboratories' (1964) HMSO pp 9-11.
  13. "Primeiro computador instalado em Portugal faz 50 anos". 19 December 2011.
  14. Humbert, Pete. "Practical Applications for School-based Intranets".
  15. Elliott 803, The first computer I programmed, Created 2003-12-01

Further reading