Electrologica X1

Last updated
Electrologica X1
Detail of a 1Kb ferrite core RAM-module of an 1960s Electrologica X1 computer.jpg
Memory of the X1
Also known asEL X1
Developer Mathematical Centre in Amsterdam
Manufacturer Electrologica
Type Transistorized computer
Release date1958;66 years ago (1958)
Discontinued1965;59 years ago (1965)
Units soldabout 30
Successor Electrologica X8

The Electrologica X1 was a digital computer designed and manufactured in the Netherlands from 1958 to 1965. [1] About thirty were produced and sold in the Netherlands and abroad. [2]

Contents

The X1 was designed by the Mathematical Centre in Amsterdam, an academic organization that had been involved in computer design since 1947, and manufactured by Electrologica NV, [3] a company formed expressly for the purpose of producing the machine.

The X1 was a solid-state binary computer ("completely transistorized" [1] ) with magnetic core memory. Word-length was 27 bits and peripherals included punched and magnetic tape. [1] It was one of the first European computers to have an interrupt facility.

The X1 was the subject of Edsger Dijkstra's Ph.D. dissertation, [4] and the target of the first complete working ALGOL 60 compiler, completed by Dijkstra and Jaap Zonneveld. [5] In 1965, the X1 was superseded by the X8. Electrologica was taken over by Philips a few years later. [1]

Instruction set

The X1 allowed conditional execution of every instruction, not just branches as is the case in most computers. A similar capability existed in the Zuse Z22 and the ZEBRA, and much later in the ARM architecture. The approach used in the X1 is more flexible than these others: it makes execution conditional on the current state of the condition flag that is set by a previous instruction if it includes a modifier for that purpose, but untouched otherwise. [4] As a result, conditional execution can be based on tests made some number of lines earlier, rather than being conditional only based on the result of the most recent arithmetic operation. This allowed for compact expression of programs. The following example demonstrates the loading of the value of memory at n into the accumulator A, calling a subroutine (which presumably uses that value in A), and finally setting A to be the absolute value of the number read:

   2A n P   // copy [n] to A, set condition flag to "yes" if positive    6T fn 0  // call the function at fn, which will return with the condition flag preserved  N 5P AA    // if condition flag is "no", copy -A to A

The X1 arithmetic operators used binary ones' complement arithmetic.

Assembler

The X1 included a simple assembler in its read-only memory. [4] It has rather basic features: symbolic addresses may be defined, but symbols are only two letters long. Instructions are named by a combination of a digit representing the operation, and a letter designating the register to be operated on, or one or two letters indicating an operation class. For example, "0A" means "add memory content to accumulator A", and "5P" means "set an accumulator to the negative of another accumulator". The normal use of symbolic addresses is to name "paragraphs", i.e., related blocks of code or data. The symbolic addresses would be modified by a "line number" (a numeric offset) and a "page number" (a number in the range 0 to 31). For example, "3 FE 6" is line number 3, page number 6, representing an offset of 195 (6 * 32 + 3) from the start of paragraph FE. This address notation is a peculiarity of the assembler; the hardware addressing simply uses 15 bit addresses.

Related Research Articles

<span class="mw-page-title-main">ALGOL</span> Family of programming languages

ALGOL is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the Association for Computing Machinery (ACM) in textbooks and academic sources for more than thirty years.

<span class="mw-page-title-main">Accumulator (computing)</span> Register in which intermediate arithmetic and logic results of a CPU are stored

In a computer's central processing unit (CPU), the accumulator is a register in which intermediate arithmetic logic unit results are stored.

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

In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, such as a central processing unit (CPU), is called an implementation of that ISA.

A one-instruction set computer (OISC), sometimes referred to as an ultimate reduced instruction set computer (URISC), is an abstract machine that uses only one instruction – obviating the need for a machine language opcode. With a judicious choice for the single instruction and given arbitrarily many resources, an OISC is capable of being a universal computer in the same manner as traditional computers that have multiple instructions. OISCs have been recommended as aids in teaching computer architecture and have been used as computational models in structural computing research. The first carbon nanotube computer is a 1-bit one-instruction set computer.

In computer architecture, predication is a feature that provides an alternative to conditional transfer of control, as implemented by conditional branch machine instructions. Predication works by having conditional (predicated) non-branch instructions associated with a predicate, a Boolean value used by the instruction to control whether the instruction is allowed to modify the architectural state or not. If the predicate specified in the instruction is true, the instruction modifies the architectural state; otherwise, the architectural state is unchanged. For example, a predicated move instruction will only modify the destination if the predicate is true. Thus, instead of using a conditional branch to select an instruction or a sequence of instructions to execute based on the predicate that controls whether the branch occurs, the instructions to be executed are associated with that predicate, so that they will be executed, or not executed, based on whether that predicate is true or false.

<span class="mw-page-title-main">Conditional (computer programming)</span> Control flow statement that executes code according to some condition(s)

In computer science, conditionals are programming language constructs that perform different computations or actions or return different values depending on the value of a Boolean expression, called a condition.

The Centrum Wiskunde & Informatica is a research centre in the field of mathematics and theoretical computer science. It is part of the institutes organization of the Dutch Research Council (NWO) and is located at the Amsterdam Science Park. This institute is famous as the creation site of the programming language Python. It was a founding member of the European Research Consortium for Informatics and Mathematics (ERCIM).

Addressing modes are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how the machine language instructions in that architecture identify the operand(s) of each instruction. An addressing mode specifies how to calculate the effective memory address of an operand by using information held in registers and/or constants contained within a machine instruction or elsewhere.

A branch, jump or transfer is an instruction in a computer program that can cause a computer to begin executing a different instruction sequence and thus deviate from its default behavior of executing instructions in order. Branch may also refer to the act of switching execution to a different instruction sequence as a result of executing a branch instruction. Branch instructions are used to implement control flow in program loops and conditionals.

<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 ZEBRA was one of the first computers to be designed in the Netherlands, and one of the first Dutch computers to be commercially available. It was designed by Willem van der Poel of the Netherlands Post, Telegraph and Telephone, and first delivered in 1958. The production run consisted of fifty-five machines, manufactured and marketed by the British company Standard Telephones and Cables, Ltd.

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.

NAR 2 is a theoretical model of a 32-bit word computer created by Faculty of Mathematics of University of Belgrade professor Nedeljko Parezanović as an enhancement to its predecessor, NAR 1. It was used for Assembly language and Computer architecture courses. The word "nar" means Pomegranate in Serbian. Many NAR 2 simulators have been created — for instance, one was named "Šljiva" as that fruit grows in Serbia, while "nar" does not.

<span class="mw-page-title-main">Electrologica X8</span> Computer manufactured between 1964 and 1968

The Electrologica X8 was a digital computer designed as a successor to the Electrologica X1 and manufactured in the Netherlands by Electrologica NV between 1964 and 1968.

<span class="mw-page-title-main">Elliott 803</span>

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.

Carel S. Scholten was a physicist and a pioneer of computing.

<span class="mw-page-title-main">Electrologica</span>

N.V. Electrologica was a pioneering Dutch computer manufacturer from 1956 to 1968, when it was taken over by Philips.

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.

Jacob Anton "Jaap" Zonneveld was a Dutch programmer who, with Edsger W. Dijkstra, wrote the first Algol 60 compiler.

References

  1. 1 2 3 4 The Electrologica X1 and X8 computers
  2. Gerard Alberts; Jan Friso Groote, eds. (2023). Tales of Electrologica: Computers, Software and People. Germany: Springer. p. 40. ISBN   978-3-031-13033-5 . Retrieved 8 February 2024.
  3. "COMPUTERS, OVERSEAS: 2. N. V. Electrologica, Amsterdam, Holland". Digital Computer Newsletter. 9 (3): 15–16. Jul 1957.
  4. 1 2 3 "Communication with an Automatic Computer", Dijkstra's Ph.D. thesis
  5. "The Dijkstra-Zonneveld ALGOL 60 compiler for the Electrologica X1" (PDF). Archived from the original (PDF) on 2016-03-04. Retrieved 2015-08-18.