All Purpose Electronic X-ray Computer

Computer published 66 years ago by Booth, Andrew D.

All Purpose Electronic X-ray Computer screenshot

Listed and emulated in MAME.

All Purpose Electronic X-ray Computer © 1955 Booth [Andrew D.].


The APEXC is an incredibly simple machine. Instruction and Data words are always 32-bit-long. The processor uses integer arithmetic with 2's complement representation. Addresses are 10-bit-long. The APEXC has no RAM, except a 32-bit accumulator and a 32-bit data register (used along with the 32-bit accumulator to implement 64-bit shift instructions and hold the 64-bit result of a multiplication). Instructions and data are stored in two magnetic drums, for a total of 32 circular magnetic tracks of 32 words. Since the rotation rate is 3750rpm (62.5 rotations per second), the program execution speed can go from as high as the theoretical maximum of 1 kIPS to lower than 100IPS if program instructions and data are not contiguous.

One oddity is that there is no program counter: each machine instruction includes the address of the next instruction. This design may sound weird, but it is the only way to achieve optimal performance with this cylinder-based memory.

The machine code is made of 15 instructions only, namely addition, subtraction, multiplication, load (3 variants), store (2 variants), conditional branch, right arithmetic bit shift, right bit rotation, punched-card input, punched-card output, machine stop, and bank-switching (which is never used on the APEXC, since it only has 1024 words of storage, and addresses are 10-bit-long). A so-called vector mode enables to repeat the same operation 32 times with 32 successive memory locations. Note the lack of bitwise and/or/xor and division. Also, note the lack of indirect addressing modes: dynamic modification of opcodes is the only way one may
simulate it.

Another oddity is that the memory bus and the ALU are 1-bit-wide. There is a 64kHz bit-clock and a 2kHz word-clock, and each word memory and arithmetic operation is decomposed into 32 1-bit memory and arithmetic operations: this takes 32 bit cycles, for a total of 1 word cycle.

The processor is fairly efficient: most instructions take only 2 word cycles (1 for fetch, 1 for read operand and execute), with the exception of stores, shifts and multiplications. Yes, the APEXC CPU is a RISC: there is no other adequate word. Note there is no ROM, and therefore no 'bootstrap loader' or default start-up program whatever.

No executive or operating system was ever written for the APEXC, although there were subroutine libraries of sorts for common arithmetic, I/O and debug tasks. Operation of the machine is normally done through a control panel which allows the user to start, stop and resume the CPU, and to alter registers and memory when the CPU is stopped. When starting the machine, the address of the first instruction of the program to be executed must be entered in the control panel, then the run switch must be pressed. Most programs end with a stop instruction, which enables to check the state of the machine, possibly run some post-mortem debugging procedures (a core dump routine is described in an APEXC programming book), then enter the address of another program and run it.

Two I/O devices were supported: a paper tape reader, and a paper tape puncher. The puncher output could be fed to a printer ('teletyper') unit when desirable. Printer output is emulated and is displayed on screen. Tape input was either computer-generated by the APEXC, or hand-typed with a special 32-key keyboard (each tape row had 5 data holes (<-> bits), which makes 32 different values).


The APEXC (All Purpose Electronic X-ray Computer) was designed by Andrew D. Booth at Birkbeck College, London, in the early 50's.

From 1943 on, he started working on the determination of crystal structures using X-ray diffraction data. The computations involved were extremely tedious and there was ample incentive for automating the process. In 1947, along with his collaborator and future spouse Kathleen Britten, he spent a few months with von Neumann's team, which was the leading edge in computer research at the time. Booth designed an electromechanical computer, the ARC, in the late 40's. Later on, they built an experimental electronic computer named 'SEC' (Simple Electronic Computer), and finally the APEC (All-Purpose Electronic Computer) series.


Designed by: Andrew D. Booth


Machine's Bios.