|
The Mark-8 Minicomputer
Part 1: The Beginning
...being some memories of the machine from
its designer, Jon Titus
|
Jon Titus
This
shrine to the Mark 8 Minicomputer discusses the machine with its designer,
Jon Titus. Jon was gracious enough to write up most of the data you see
here, and also provide some of the diagrams and pictures. Jon is happy to discuss
the machine with you, but please look for your answer here, first! Jon Titus The
Beginning
I had been fascinated
with computers and electronics for some time, but I'll tell you about the
immediate events leading up to the Mark-8. (I still have some
high-school-years "computer" projects in the basement from the
early 60s.) I was a graduate
student at Virginia Polytechnic Institute and State University (Virginia
Tech) in Blacksburg, VA, working toward a Ph.D. in chemistry. My research
involved using minicomputers such as the Digital Equipment Corporation
(Maynard, MA) PDP-8/L. The people in my research group were using
minicomputers to control chemical instruments and experiments, and the
computers also acquired the experimental information and processed it. At
the time, acquiring 1 Msamples/sec (6- or 8-bits/sample) was considered
high speed! My project involved designing a high-speed interface that would
acquire 6-bit binary values, stack two values to form a 12-bit word and
then jam these words into the PDP-8/L's memory using direct-memory access
(DMA). The PDP-8 family operated on 12 bits at a time. I enjoyed using the
PDP-8/L computer for research and I had fun fooling around with it on my
own. I taught myself assembly-language programming and I enjoyed making the
computer do "neat" things. The neat things were controlling an
X-Y display, controlling an X-Y plotter, dialling a phone line so we could
get access to a mainframe, and so on. I often wondered how I could get my
own computer. I realized that buying a PDP-8/L was out of the question. The
computer alone cost about $5000 (US) in the mid 70s, and I would have
needed a teletypewriter, too, for an extra $1000! At the time, a group
called the Amateur Computer Society had quite a few members, and as I
recall, some members were trying to clone a PDP-8. I can't recall whether or
not they had any success. In those days, although some functions were
available on small-scale integrated circuits, the biggest roadblock was the
memory. The minicomputers of the time used core memory, which took quite a
bit of external circuitry to properly drive the individual magnetic cores
which actually stored information. Thus, memory was out of reach for almost
all amateur computer enthusiasts, and so were computers themselves. Intel
In 1971, Intel
introduced the 4004 microprocessor and some support chips for it. This
4-bit device seemed revolutionary, but with only four bits, it also seemed
limited to calculator-type applications. I studied the 4004 architecture,
the instruction set and the peripheral chips that provided I/O and memory
functions. I quickly decided against using a 4004 CPU as the basis for my
own computer. Intel's first 8-bit processor, the 8008 changed my mind. It
provided a nice instruction set, an interrupt, a small internal stack,
multiple internal registers, and it could address a whopping 16 kbytes of
memory. To put this in context, a basic PDP-8/L minicomputer could directly
address only 4 kwords. We were ecstatic when our basic PDP-8/L got an
upgrade to 8 kwords, but the extra memory took up about the same space as
the PDP-8/L computer itself. |
|
Intel provided a nice
databook for the 8008, and I devoured and lived with it for several months.
While driving to Canada for a vacation in 1973, I resolved to adapt a
demonstration circuit that Intel published in its book and use it as the
basis of my own computer. I wrote to Intel and asked for some sample
devices because the 8008 chips sold for $125 each from distributors who
carried the chips. (Not many distributors carried them, because they didn't
know what sort of market there was for them.) Although I used the
basic Intel circuit, a made some modifications. The Intel circuit provided
about 1 Kbyte of read-write memory (Intel 2102 chips) and about 2 Kbytes of
PROM (programmable read-only memory, in 1702 or 1702A devices, each of
which held 256 bytes of data or instructions). I expected to add more
memory, so I built in decoding for all 14 address bits. In effect, I could
expand the memory up to the entire 16 Kbytes that the 8008 could directly
address. At the time, that seemed like a tremendous amount of memory. Because the PROMs sold
for about $35 each and I had no way to either program them or erase them, I
decided that my computer--like a PDP-8/L minicomputer--would provide a set
of front-panel controls and indicators. By using the switches I could load
in short programs in binary using the switches. The programs I had in mind
would be short "loaders" or "monitors" that would then
let me use a keyboard or a display device, such as Don Lancaster's popular
TV Typewriter, to display information. Success and
Failure
In retrospect, the
front-panel design was the most innovative contribution I made. The design
was simple and elegant, and it used programmable counters to temporarily
store an address during front-panel use. The counters served double duty as
latches during normal operation. The design relies on simple debounced
momentary-action switches to increment the counters, load the counters from
the switch register, and so on. If you look at the
front-panel circuit on later computers such as the Altair, you can see what
a kludge the designer made of the circuitry. The Altair used the
next-generation 8-bit chip, the 8080, which provided for much simpler
control of the device. The front panel circuit, though, hardly takes
advantage of the chip's capabilities and instead relies on all sorts of
timing circuits to accomplish front-panel control. I don't mean to be mean
about the Altair's design, but it was a bit of a kludge. I also redesigned the
clock circuit. Intel's design relied on four monostables to create a
two-phase clock needed by the 8008. I used a crystal oscillator, figuring
that I might have difficulty finding a dual-trace scope to use during
prototyping and debugging. The monostable clock required a user to adjust
four trimmer resistors to get the timing right. I built a breadboard
version of the monostable clock and found that it didn't always start when
power was applied. So, this experiment provided another reason to scrap the
monostable clock circuit. The biggest failing
during the design was the input-port circuit. I simply took what Intel
provided and duplicated it. I could have used an three-state or
open-collector bus for input, but it didn't cross my mind to design the
input ports this way. The Signetics chips used to multiplex the input data
proved a bit difficult to find, so I suspect some people who built a Mark-8
modified the input ports so they could have more of them and so they
wouldn't use the Signetics chips. |
|
|
Copyright ©Andrew Davie (site
design) and Copyright ©1999 Jon Titus. |
|
||||||
|
The Mark-8 Minicomputer
Part 3: The After Effects
|
|||||||
Why Octal?
That's an interesting
question, and one I hear every once in a while. First, the PDP-8
minicomputers broke down instructions into four 3-bit words, using an octal
digit to represent each 3-bit group. The minicomputer had eight basic types
of instructions, so the octal system served well to represent codes and
addresses. Second, although you
can use almost any system you want to represent binary codes, why remember
16 codes in hexadecimal (0-9 and A-F) when the digits 0 through 7 work just
as well. Finally, the
instructions for the 8008 microprocessor chip broke down nicely into 2- and
3-bit groups; XXYYYZZZ. Here's an example that shows the beauty of using
octal notation with the 8008. The processor has seven general-purpose
registers, A, B, C, D, H, and L. A served as the accumulator. Registers H
and L operated as general-purpose registers, but they also served as
memory-pointer registers, thus the L, for the low-order eight bits, and H
for the high-order address bits. These registers were coded in binary as
follow:
Note that at this point
there's no register associated with code 111. In the 8008, there's an
instruction that lets you move the contents of any register to any other
register. It's coded in binary as: 1 1 D D D S S S
The
three D bits represent the destination register for the data, and the three
S bits represent the source register that holds the byte you want to move. So,
to move a byte from the C register to the E register, you need an op code
of: 1 1 1 0 0 0 1 0
If you
break this into octal groups you get: 11 100 010
or 342
. If
you want to reverse the order of the transfer, the bits look like this: 1 1 0 1 0 1 0 0
or 11 010 100
which in
octal comes to: 324
. You can see how you
simply reverse the digits in the octal number to reverse the flow of
information. After a short while, a programmer understands that the
300-series instructions are all used to move information to and from registers.
Compare these two
movements, register C to register E, and then the reverse, as noted in
hexadecimal: E2 and D4 No pattern there! Most of the other 8008
instructions broke down nicely into octal groups. It became easy to
"converse" in octal codes and to quickly look at a listing of
octal codes and immediately see what the instructions were supposed to do. Interestingly, Intel
continued with a similar format in the 8080 family, slthough the op codes
changed and there were more of them. In 1976, we made up some nice
cardboard slide rules that listed the codes for the 8080 and 8085
microprocessors. By sliding the cardboard insert you could quickly come up
with the proper op code for any operation. We produced the cards in both
octal and hexadecimal versions. In the 8080, the various conditional-jump
instructions in octal are 3X2, where X varies from 0 to 7. The octal codes
are easy to remember. In hexadecimal, the same codes are: C2, CA, D2, DA,
E2, EA, F2, and FA. They don't exactly show an easy-to remember pattern. I guess the computer
scientists at Intel got hold of the 8008 and 8080 op codes and decided to
force them into hexadecimal notation. One of the early Intel manuals used
decimal coding, of all things, but the company quickly switched to hex. Too
bad for the users. My colleagues and I stuck with octal for as long as we
programmed with Intel and Zilog processors. And we taught using it, too. As
far as I can remember, the students caught on quickly and were remembering
op codes in no time. I can still remember octal op codes for the 8080 and
when I fool around with assembly-language programming for the 8085 or Z-80,
I automatically revert to octal. It's a snap. |
|
Early
Reactions
Well, the computer
caused quite a stir in the hobbyist-experimenter circles. Remember that at
that time there were no--or almost no--hobbyists who had their own
computer. Here comes one that they can build for about $350. Experimenters
aren't sure what to do with the Mark-8 at first, but lots of people want
one. Keep in mind that 4-function 8-digit calculators cost about $100, and
the first scientific calculator, the Hewlett Packard HP-35 costs $325 to
$350. I liken this to
inventing the egg beater when no one knows you can eat eggs, or that eggs
are good to eat. It can take years of missionary work to convince people to
eat eggs and then the egg beater catches on. The Mark-8 came along at just
the right time. Several "user
groups" started in the US, and one published the Mark-8 Newsletter,
later changed to the Micro-8 Newsletter. One of the founders, John Craig,
went on to become the first editor of InfoWorld. My copies of the Mark-8
Newsletter went to the Smithsonian years ago. I can't recall any
specific reviews of the Mark-8, because after all it was not a kit, but a
collection of circuit-board layouts and information on what to do with
them. Radio-Electronics magazine sold several thousand of the $5
supplemental booklets that they offered for sale in the magazine article. I
had contracted with a circuit-board company (Techniques) in New Jersey to
sell sets of circuit boards for about $50. As best I can recall, they sold
a couple of hundred sets of boards. I got a royalty of the booklets and on
the circuit boards, and I got paid several hundred dollars for the magazine
article. The extra money was nice--I bought an IBM Correcting Selectric
typewriter with some of the money. We didn't have word processors yet! We didn't have email
either, but I corresponded and talked with many people who needed a bit of
help, or who had ideas for projects, improvements, and so on. One of the
nice things about the Mark-8 was its robust electronic design. The computer
worked flawlessly every time. It never received any criticism for a flawed
design, circuit problems, and so on. Other later computers, in particular
the MITS Altair (and the S-100 bus), had a reputation for severe electrical
and electronic problems. I know of several people who never got their
Altairs to run properly. Anyone who knows the details of the S-100 bus can
tell you what a mess it was. I have never since seem a poorer bus design. I
never received one complaint that the Mark-8 wouldn't run. By the way, a mail-order electronics-parts company in Texas offered a
kit of the hard-to-get components. I never received any royalty from them,
but I didn't expect to. Anyone could put together a bag of parts and sell it,
as far as I was concerned. Plans For Improvement
I had no plans to improve it. I just wanted to show people that they
could build their own computer. It was an educational project as far as I
was concerned. After R-E published the design, I figured it was up to
others to improve it, add to it, modify it, and so on. One fellow in Syracuse, NY (Maury Goldberg?) asked me to send him the
printed-circuit tape ups. Those are the layouts that eventually get
photographed and reduced to form the basis of the copper traces on the
printed-circuit board. He wanted to add edge connector "fingers"
to the bottom of the boards so that people could plug them into a real bus.
He was going to lay out a simple bus, too. The original boards got connected by wires threaded from board to board
along one edge. Soldering in the boards made it difficult to make
modifications. But the board-to-board wiring proved very reliable and it
was a lot cheaper that using gold-plated fingers on the cards and edge
connectors on a bus. The Mark-8, after all, was a low-budget approach to
getting your own computer. Maury modified the tape ups to add the fingers, but for whatever reason,
he never actually made any boards, nor did he devise the required bus.
Later he returned the tape ups to me, but over time they deteriorated and I
threw them out. I'm Rich!
One thing you didn't ask that others often do is, "Why didn't you
get rich?" First, there was no market for small computers, so no one
was going to sell a lot of them. Second, I did get rich, but not in terms of money. I'm rich because I
enjoyed helping people start using small computers and I made them aware
that they could get their hands in them and get the computers to do
interesting things. I'm rich because I met and talked with a lot of interesting people. I'm rich because the Mark-8 helped launch me into a new career of
developing educational hardware and software, technical writing, teaching,
and editing. Overall life has been a lot of fun. Every once in a while I
run into someone who remembers some of the early work my colleagues and I
did the area of educating them about digital electronics and computers.
Hearing them say that we helped them get started in a rewarding career
makes me feel really good. I wrote this in one sitting and spent little time editing it or
polishing it. By the way, I'm not an electrical engineer. My college
degrees are all in chemistry, but I have always been involved with
electronics in some way. People are welcome to drop me a note. I can't guarantee a reply, but
will try. Cheers, Jon Titus |
|
|
Copyright ©Andrew Davie (site
design) and Copyright ©1999 Jon Titus. |
|