Bibliography History Software Engineering

Byte Magazine Volume 00 Number 01 – The Worlds Greatest Toy

Return to Timeline of the History of Computers, BYTE Magazine, BYTE Magazine Issues

Which Microprocessor 

National Semiconductor's IMPS and IMP-16 computers were originally offered as completely- 
populated subsystem cards such as the one pictured here. 


Hal Chamberlin 

Box 295 

Cary NC 27511 

At this time there are 
three microprocessor chips or 
chip sets readily available to 
the hobbyist: the 8008, the 
8080, and the IMP-16. The 
first two were pioneered by 
Intel and the last is a National 
Semiconductor invention. 
Chips and/or kits utilizing 
each of the three 
microprocessors are available 
from at least two sources 
catering to hobbyists as of 
this writing. This level of 
availability and popularity is 
not even approached by other 
microprocessors, therefore 
this discussion is being 
confined to these three. 

Comparing computers is 
like comparing people: the 
conclusions depend on the 
application, the 
circumstances, and personal 

preference. The comparisons 
made will be based on use of 
the microprocessor as a 
general purpose computer. 
For our purposes a. general 
purpose computer is one 
which has read-write memory 
for the bulk of its storage, 
which is expected to run a 
variety of programs, and for 
which the end use is the 
development and execution 
of programs written by the 
user. General purpose 
computers are also expected 
to be able to control a variety 
of input-output equipment. 
Instruction sets will be 
compared on the basis of 
assembly language 

programming. Speed will be 
compared on the basis of the 
time 1 necessary for the 
machine to complete a 
non-trivial task. Complexity 
will be compared on the basis 
of ease of understanding 
microprocessor operation as 
well as the sheer number of 
parts required to implement a 
system. Finally, cost will be 
compared on the basis of 
minimum systems capable of 
assembling programs for 
themselves given the 
existence of suitable I/O 

Before getting into 
comparisons, we will take a 
brief look at the leading 

Reprinted from The Computer Hobbyist, Box 295, Cary 
NC 27511. 


for You? 

The MITS Altair 8800 is one package in which you can purchase an 8080 based system. 

features of each 
microprocessor. Then the 
comparisons will be made in 
each performance area 
elaborating on individual 
features as necessary. 

The Intel 8008 Processor 

The 8008 was the first 
microprocessor to be 
introduced and the first to be 
available to the hobbyist. It 
has an 8 bit instruction and 
accumulator length. There are 
essentially only two memory 
addressing modes: immediate, 
and zero displacement 
indexed. Subroutine and 
branch addresses are full 
length absolute, allowing 
branching anywhere with one 
instruction. Subroutine 
return addresses are saved on 
an internal 8 level stack 
which puts a 7 deep 
restriction on subroutine 
nesting. Much of the 
instruction set power is 
derived from the six 
additional 8 bit index 
registers which may count, 

save, or address memory. The 
maximum directly 
addressable memory is 1 6k 
bytes; in addition, 8 input 
and 24 output devices may be 
directly addressed with a one 
byte instruction. CPU speed 
is modest ranging from 20 
microseconds for a register 
operation to 32 microseconds 
for a memory operation to 44 
microseconds for a jump or 
call. A selected chip, the 
8008-1, reduces these times 
to 12.5, 20 and 27.5 
microseconds respectively. A 
single level of interrupt is 
provided but external 
hardware is necessary for 
complete status saving during 
interrupts. Interfacing the 
chip to the rest of the system 
is fairly involved and requires 
from 20 to 70 TTL packages 
depending on the system 
performance desired. The 
lower figure will barely 
function while the higher one 
includes a console, complete 
interrupt system, and 
dynamic memory interface 

with direct memory access 
capability. Most of the 
interfacing complexity can be 
blamed on overzealous 
designers trying to make-do 
with an 18 lead package. 
Present cost to the 
experimenter ranges from 
$40 to $80 with the "dash 
one" version bringing roughly 
50% more. 

The Intel 8080 Processor 

The 8080 is Intel's sequel 
to the 8008. Basically it has 
more of everything. The 
instruction set contains all of 
the 8008 instructions making 
it upward compatible at the 
assembly language level. 
Major additions to the 
instruction set include direct 
load and store of the 
accumulator, double 
precision (1 6 bits) add and 
increment for address 
calculation, and a pushdown 
stack of indefinite length in 
memory thus allowing 
unrestricted subroutine 
nesting. Addressable memory 

Comparing computers is 
like comparing people; 
the conclusions depend 
on the application, the 
circumstances, and per- 
sonal preference. 

has been increased to 64k 
bytes and addressable 1/0 
devices have been increased 
to 256 inputs and 256 
outputs at the expense of 2 
byte 1/0 instructions. 
Execution speed has been 
considerably improved also. 
Register operations take 2 
microseconds, memory 
operations require about 3.5 
microseconds, and subroutine 
calls consume 8.5 
microseconds. Interrupts 
work the same way as on the 
8008 but everything required 
for complete status saving is 
provided as well as an 
interrupt enable/disable flag. 
Interfacing an 8080 is 
generally regarded as being 
simpler than interfacing an 
8008. There is only a slight 


The 8080 is Intel's sequel to the 8008. Basically it 
has more of everything . . . 

improvement in the minimum 
system, about 15 chips, but a 
full-bore system may be cut 
in half to 35 chips. The 40 
lead package allows a separate 
16 bit address bus and 8 bit 
data bus, as well as simplified 
timing and control. Present 
cost to the hobbyist is about 

The National IMP-16 

The IMP-16 is one of the 
older microprocessors and for 
a long time the only one 
with a 16 bit wordlength. 
The programmer is supplied 
with four 16 bit accumulators 
and a 16 word stack. The 
instruction set is typical of 
many 16 bit minicomputers, 
and in many ways resembles 
that of a NOVA. Four general 
address modes are provided, 
base page direct, program 
counter relative, and indexed 
using either accumulator 2 or 
accumulator 3. In addition, 

The IMP-16 is the first 
of the 16-bit micros . . 

A good instruction set 
should be well organ- 
ized . . . 

CALL can be indirect 
addressed using any of the 
addressing modes to get to 
the address pointer. Two 
memory modification instruc- 
tions are provided, ISZ 
(Increment memory, Skip if 
Zero), and DSZ which allows 
much counting and indexing 
to be done in memory freeing 
the registers for arithmetic. 
The stack is used for 
subroutine return addresses 
but can also be used for 
saving registers and status. A 
unique feature is the 
availability of an extended 
instruction set chip which 
provides automatic multiply, 
divide, double word add and 
subtract, and byte 
manipulation. The CPU can 
address 64k words but this 
should be held to 32k if the 
byte instructions are used. 
The I/O instructions can also 
address 64k devices. Another 
unique feature is that several 
bits of input and output are 
provided by the 
microprocessor itself making 
communication with a 
teletype possible without any 
interface at all. Speed is good 
ranging from 4.2 
microseconds for a register 
operation to 7 microseconds 
for a memory operation. A 
multiply takes about 160 
microseconds which is still 
considerably faster than a 
software routine would be. 
The IMP-16 provides two 
priority levels of interrupt 
and all of the hardware 
necessary for complete status 
save/restore. Interfacing is 
conceptually simple and 
requires 25 to 50 packages 
depending on system 
sophistication. Part of this 
number is due simply to the 

fact that 16 bits are to be 
handled rather than 8. The 
microprocessor is in the form 
of five 24 lead packages 
which for the most part are 
simply wired in parallel. The 
extended instruction set 
resides in a sixth package. 
Present cost of the standard 
chip set is about $160. The 
extended instruction set chip 
is available only from 
National at this time for $80. 

Comparisons — Instruction 

One of the most important 
performance areas of a 
microprocessor is the 
instruction set. A good 
instruction set should be well 
organized so that it is easy to 
learn, powerful so that 
complex routines can be 
coded with a small number of 
instructions, memory 
efficient so that complex 
routines require only small 
amounts of memory, and 
time efficient so that only a 
small number of memory 
cycles is necessary to 
complete a task. In addition, 
performance should be 
equally high on both 
character oriented tasks and 
numerically oriented tasks. 

Instruction set 
organization is best on the 
8080 closely followed by the 
8008 with the IMP-16 being 
somewhat disorganized. 
Consequently, the beginner 
will find the 8008/8080 the 
easiest to learn. Experience 
has shown that beginners 
prefer simple instruction sets 
and that they retain a certain 
"fondness" for their first 
machine long after they have 
graduated into much more 
sophisticated endeavors. The 
experienced programmer 
however should experience 
little difficulty keeping the 

little quirks, distinctions, and 
special cases straight when 
working with the I MP-1 6. 

Instruction set power is 
best on the IMP-16, followed 
by the 8080 with the 8008 a 
distant third. Based on actual 
experience, it may require as 
few as one half as many 
IMP-16 instructions to 
program a task as 8008 
instructions. The 8080 falls 
about midway between the 
extremes. There are many 
reasons why the IMP-16 is 
superior. Memory addressing 
is much more flexible due to 
the four addressing modes 
and indirect addressing 
capability. An additional 
advantage is that the 
arithmetic word length is the 
same as the address length. 
Since the return addresses are 
put on a stack in all three 
machines, multiple 
entrypoint subroutines are 
easy but the IMP-16 also 
allows multiple return points 
(return to CALL+1 on error, 
CALL+2 otherwise, etc.) with 
no additional instructions. 
The 8080 is a big 
improvement over the 8008 
because registers may be 
saved on the stack when they 
are used by a subroutine and 
then restored unaltered upon 
return. This allows 
subroutines to be called as 
needed without regard to 
which registers they may 
destroy. Note, however, that 
this capability may be added 
to the 8008 quite simply. The 
direct load and store 
instructions of the 8080 
reduce the number of lines of 
code in a program. 

Memory efficiency of the 
instruction set is best on the 
IMP-16 but is closely 
followed by the 8080. The 
8008 is not as bad as might 
be presumed but is definitely 

Instruction set organization and memory efficiency 
are usually conflicting requirements. 


* ki. 

inferior. I n terms of numbers, 
the 8080 may require 10 to 
1 5 percent more memory bits 
and the 8008 20 to 40 
percent more. Note that these 
figures are based on 
optimized programs written 
by experienced programmers. 
The spread can be much 
greater with inexperienced 
programmers or hastily 
written programs. It is also 
interesting to note that 
instruction set organization 
and memory efficiency are 
usually conflicting require- 
ments. This is because 
many of the lesser used 
possible operation 
combinations have been 
culled from a memory 
efficient set in order to 
reduce the number of bits 
required to encode the 
instruction. Implied operands 
are also utilized in order to 
free up bits for other uses. 
Experienced programmers are 
able to plan ahead and avoid 
having these restrictions 
become restrictive. The 8008 

and 8080 are as good as they 
are because many of the 
instructions are a single word 
(8 bits) long whereas the 
minimum instruction length 
in the IMP-16 is 16 bits. This 
is somewhat offset by the 
three word (24 bit) 
instructions of the 8008 and 
8080 which in most cases 
would only require 16 bits in 
the IMP-16. A fringe benefit 
of high memory efficiency is 
that the shorter programs will 
load faster regardless of the 
loading method. 

Time efficiency is by far 
the best on the IMP-16 with 
the 8008 a distant second and 
the 8080 a slightly poorer 
third. On a classic 
minicomputer, a machine 
cycle was the same as a 
memory cycle in most cases. 
As a result, a time efficient 
instruction set meant a faster 
machine without faster 
hardware. Microcomputers on 
the other hand may have very 
few of their machine cycles 
being memory cycles. As a 

result, time efficiency may 
have little relation to actual 
machine speed but does 
represent the potential speed 
with an optimized CPU. Time 
efficiency can be important 
in multiprocessor systems 
with a shared memory where 
more memory cycles 
increase the probability that 
a CPU will have to await its 
turn. The IMP-16 has a high 
time, efficiency mainly 
because twice as much data is 
fetched in each memory 
cycle. Further improvement 
is due to the instruction set 
power, requiring fewer 
instructions to be fetched. 
The 8080 has poorer time 
efficiency than the 8008 
mainly because the stack is in 
memory. A subroutine call, 
for example, requires 5 
memory cycles, 3 to fetch the 
instructions and two to stack 
the return address. 

Historically some 
minicomputers were better at 
handling character oriented 
tasks and others were well 

Scelbi Computer Consulting 
Inc. is one of a number of 
companies who take the Intel 
8008 computer, package it 
into a system design, and 
sell the result as a system. 
The photograph supplied hy 
Scelbi with a press release 
shows you the result of 
assembling their new 
"SCELBI-8B" version of the 
8008. As a supplier to the 
computer enthusiast market 
from the start, Scelbi has 
done a very credible job 
of assembling a true system 
product as opposed to a 
bare-bones CPU which 
merely blinks its lights 
after assembly. 

adapted to number crunching 
tasks. Microcomputers are no 
exception. Most micros have 
been optimized for character 
handling because of expected 
high usage in terminals and 
the 8008 and the 8080 
belong to this class. The 
IMP-16 on the other hand is 
much better at numerically 

Most micros have been 
optimized for character 
handling because of ex- 
pected high usage in 

oriented tasks and was aimed 
more toward machine tool 
control and industrial 
monitoring. Interestingly, use 
of the extended instruction 
set on the IMP-16 greatly 
improves both character 
handling and arithmetic 

How About Running System 

One performance area of 
interest to hobbyists is the 
suitability of a machine for 
running a BASIC system. The 
IMP-16 and the 8080 are 
about equal in their ability to 
compile BASIC quickly but 
the IMP-16 without the 
extended instruction set may 


Speed in a hobby com- 
puter system can be a 
two-edged sword. 

execute BASIC twice as fast. 
This is due mainly to the all 
floating point arithmetic that 
BASIC r eq ui res. The 
extended instruction set may 
double the speed again if a lot 
of multiplies and divides are 
done. The 8008 can of course 
run BASIC also but compile 
and execution speeds are 
likely to be one tenth of the 

One other property of an 
instruction set is the ease 
with which it may be 
assembled, either by hand or 
with an assembler program. 
In this respect, the 8008 
comes out on top with the 
8080 next and the IMP-16 
last. Use of the mnemonics 
and format recommended by 
the manufacturer is assumed 
in making this comparison. 
8008 code is easy to hand 
assemble because the octal 
notation used corresponds to 
the various fields in the 
instruction word. Assemblers 
for 8008 code can also be 
quite simple because 
instructions require at most 
one operand and very few 
instruction formats exist. 
Further simplification results 
from all addresses being 
absolute and all mnemonics 
being three characters. 8008 

assemblers run on an 8008 
can be as small as 2.5k bytes 
for a limited implementation 
but 4k bytes is more realistic 
when providing an easy to use 
assembler. If the hexadecimal 
notation recommended by 
Intel is used with the 8080, 
hand assembly is definitely 
more difficult. The assembler 
also has a tougher time with 
the two operand format and 
other niceties defined for the 
8080. The Intel version of the 
8080 assembler requires 8k 
bytes but it should be noted 
that it provides macro 
capability. Hand coding and 
assembling for the IMP-16 is 
harder yet due mainly to 
relative addressing 
considerations and a wider 
variety of instruction 
formats. National's version of 
the assembler requires 4k 
words and can produce 
relocatable object code and 
handle external symbols. 

Is Speed Useful? 

Speed in a hobby 
computer system can be a 
two-edged sword. A high 
speed microprocessor requires 
higher speed in other system 
components such as memory 
in order to realize its higher 
speed. An 8008 for example 
can run at full speed with 
memories as slow as 3 
microseconds access but the 
8080 will have to wait on 
memories slower than 520 
nanoseconds and the IMP-16 
requires 420 nanoseconds. If 
the ready line is used on the 
8008 and 8080 to permit the 
use of slower memories, the 
wait will be in increments of 
whole machine cycles which 
is 4 microseconds on the 
8008 and 500 nanoseconds 
on the 8080. Thus if 
memory is a tad slow, one 
cycle will be added to each 
three cycle memory access 
sequence slowing the system 
down an average of 25 
percent to 30 percent. The 
IMP-16 does not have a ready 
line, rather the user stretches 
one of the clock periods in a 
cycle long enough to permit 

memory access. This scheme 
has the advantage that the 
stretch can set to the exact 
amount needed. The higher 
time efficiency of the IMP-16 
instruction set will greatly 
reduce the performance 
impact of a slow memory as 
compared to the 8080. 

How Complex is the Interface? 
The ranking on interface 
complexity is 8080 (least), 
IMP-16, and 8008. The 
comparison is based on 
sophisticated general purpose 
implementations having a 
complete 1/0 interrupt 
facility, software console 
using ASCII 1/0, and a 
generalized input/output 
memory bus allowing 
simultaneous direct memory 
access without affecting the 
CPU. The ranking is the same 
whether parts count or 
conceptual complexity is 
being considered. The 
difference between the 8080 
and the IMP-16 is primarily 
due to the wider word of the 
IMP-16 and less confusing 
discussion of chip interfacing 
in the Intel manual. The 8008 
is just plain difficult to 
understand and interface 
correctly but once that is 
done, either by the user, a 
magazine, or a manufacturer, 
the system should operate 
just as well. 


Software support is often 
a big issue among industrial 
users of microprocessors. 
Unfortunately, the majority 
of the software they are 
fighting over is unavailable to 
the hobbyist because of high 
prices. It is not unusual for a 
program such as an 
assembler to cost as much as 
a handful of microprocessors. 
8008 and 8080 users can look 
to Scelbi and MITS for some 
software at reasonable prices 
even if they did not purchase 
their machines from these 
sources. National has an 
excellent body of software 
for the IMP-16 but the 
package price is $200 for 
object tapes and source 

listings. The hobbyist will 
have to depend on himself, 
kit manufacturers, and 
publications for most of his 
software in the near future. 
Ultimately, the level of 
software support will be 
directly proportional to the 
popularity of the 

And Finally . . . 

There are a number of 
other performance areas that 
are only of minor interest to 
hobbyists. Although there is a 
large spread in the maximum 
memory size, all three 
machines are likely to have 
ample addressing capability 
for the hobbyist's memory 
budget. The same may be said 
relative to addressable I/O 
devices. Power supply 
voltages and power 
consumption are also usually 
of minor importance. All of 
the microprocessors can be 
successfully operated from 
standard +15, +5 and -15 
system supply voltages using 
simple, •.■ fail-safe, zener 
regulators. Package size and 
pinout are unlikely to be 
factors in hobbyist use. 

This brings us to a 
comparison of overall system 
cost. First, the spread in chip 
cost is roughly from $50 to 
$1 50, so the spread in system 
cost would be $100 at most. 
An 8008 requires more 
interfacing circuitry however 
which reduces the spread 
somewhat. After enough 
memory to do assemblies or 
run BASIC and a few I/O 
devices are added, the $75 
difference left may be small 
compared to the total 
investment. Nevertheless, an 
8008 system will be the least 
expensive followed by an 
8080 system closely followed 
thereafter by an IMP-16. 

Which microprocessor for 
you? The answer still depends 
on the application, 
circumstances, and personal 
preference, but hopefully the 
decision can be made with 
more authority after reading 
this article. 


Last Chance - 


This is the last opportunity to become a CHARTER SUBSCRIBER to BYTE ... at the 
special Charter rate of $1 per year. 

Perhaps you've held off to see the first issue . . . perhaps you've just seen a friend's copy of 
BYTE . . . whatever the reason . . . send in your $10 and be sure to get your next issue of BYTE 
hot off the presses. 

If you are reading a pass-along copy, just mark the subscription order that you'd like your 
subscription to start with issue number 1 . 




| ~] BILLME 

[~| Start with #1 BYTE 

My occupation. 



□ Check for $10 enclosed 

j_] Bill BankAmericard or MasterCharge # 

D Start with #2 BYTE 

BYTE Peterborough NH 03458 

Fair Use Source:,