was designed and built in 2012 by Gianluca G. (an Italian electronic engineer, author of the homemade Z80/AM95 8-bit NANO
COMPUTER) adopting early 1970s TTL technology and using original vintage components, with retro style layout. One
of the goals was in fact to obtain as much historical accuracy as was possible.
The machine was built using extremely
accurate soldering with a miniature iron and sockets for over sixty TTL integrated circuits on a single square
foot perfboard. Designed and tested with the aid of a hardware simulator, APOLLO181 originally run at 2.5 MHz, by
using Low Power Schottky 74LS family chips.
Then, after being tested, nearly
all integrated circuits were changed into pure Schottky 74S technology: a previous,
but faster TTL logic family, introduced by Texas Instruments in 1971, which allowed APOLLO181 to run up to 3 MHz.
The project is based on the famous SN74181
Integrated Circuit that is a TTL Arithmetic and Logic Unit, frequently used in the 1970s during the third generation of computers.
This chip is the hub of datapath activity with its output the primary feedback path to the registers: as early minicomputers,
APOLLO181 uses the content of a memory location as one operand of the 74181, and an accumulator as the second operand. The
result is stored back in the accumulator.
You can find
author’s research about history of
the 74181 chip in commercial minicomputers on the following pages.
APOLLO181 uses 8-bit instruction word and
8-bit address bus which can access 256 Byte of user program memory. The reason we classify it a 4-bit processor is that the
internal registers and the arithmetic logic unit perform computations on 4-bit (or nibble) intermediate results: advantages
of a shorter word are simpler circuits and higher speed. Multi-nibble operations can be anyway performed by propagating
carry or borrow flag, permitting powerful 8-, 16-, 24-, and even 32-bit computations (at reduced speed).
The symple set of instructions consists of
sixteen basic commands, which perform input and output interfacing, conditional
jumps and arthmetic and logic operations like addition, subtraction, increment, decrement, operand shifting, magnitude
comparison, Exclusive-OR, AND, NAND, OR, NOR, on 4-bit data words.
The move time for register-to-register transfers
is 2,7 microseconds, which requires two instructions and eight clock cycles. Just as a performance indicator, APOLLO181 processor
is able to perform a 12-bit integer multiplication (giving a 24-bit long result) in less than 1,2 milliseconds.
A famous benchmark ("BM9", a Tom Fox algorithm
to find out prime numbers, written in BASIC in 1980) has been implemented on APOLLO181 to test the performance:
the nice result obtained proved its capability.
APOLLO181 is a multi-chip board and its peculiarity
is that each TTL component here employed was described in the Bugbook® I &
II (LOGIC & MEMORY EXPERIMENTS USING TTL INTEGRATED CIRCUITS, written by Dr. Peter R. Rony © 1974, 1st edition), as a
Gianluca's personal tribute to these books. By happy coincidence we are also approaching, in 2014, the 40 years Bugbook® publication
This project obviously aims to be more educational
and recreational than being a practical useful processor: the major limitations, compared with normal CPUs, are the maximum
program length of only 256 instructions, the lack of subroutine calls and the absence of memory manipulation instructions.
The 256 Byte of RAM contains only the user program, but we can use up to sixteen internal registers to store 4-bit temporary
results. The processor is anyway capable of driving sixteen 4-bit independent input and latched output ports and includes
also a digital to analog converter, thus theoretical areas of application of APOLLO181 could be the same as
microcontrollers: small domestic appliances, white and brown goods, security systems, toys, office equipment and industrial
In the following pages you will
find algorithm examples showing computation of the four basic arithmetic operations, a light dimmer, a stepper-motor
control, a chronograph and a basic sound generator.