Constructing an Intel 8008 Pc “Clock”
Introduction
About yearly I design and construct a brand new clock. This yrs venture is a clock based mostly on an Intel 8008
first technology 8 bit microprocessor. As a result of it’s a pretty distinctive venture Im placing extra effort into
the documentation. Im additionally completely opening the design, {hardware} and software program, to anybody desirous to be taught
extra in regards to the 8008. The one requirement I’ve is that this: when you copy or reproduce my data please
give me the credit score. I spent a very good quantity of effort and time designing and constructing the 8008 clock
prototype. Ive additionally tried to do that once Ive used different’s data. Should you see one thing on my
website the place correct credit score has not been given, let me know.
Please word that I’ve achieved my greatest to make sure the accuracy of the schematics and PLD algorithms. Every
time I made design adjustments I did so by updating the schematics first after which the precise prototype. Even
at that there may very well be errors. I make no ensures or guarantee that constructing your individual 8008 clock will
work. I can solely let you know that mine works. If you’re pretty skilled and are cautious try to be
fantastic.
Background
I apologize if I wax philosophical too typically on this web page. Constructing this clock introduced again many
reminiscences that occurred over thirty years in the past. I used to be fortunate to be a teen within the 70s throughout the delivery
of the micro-computer chip. Throughout that interval one couldn’t drive right down to a retailer and buy a house
laptop as one can in the present day. The computer systems of that period have been college foremost frames and minis, just like the
PDP11s, utilized by Firms. My first entry to a pc started whereas I used to be in junior highschool.
I found that I may purchase time on the College of Utahs
Univac 1108 for one greenback per hour!
Sadly, non-university college students have been solely allowed to purchase a most of ten hours per thirty days. So
I plunked down my cash and with punch card in handcrafted my method over to a mannequin 43 teletype and thus
started one of the vital attention-grabbing journeys of my life.
At about the identical time, articles started to appear in digital magazines that instructed of single chip
CPU-based computer systems. I learn in fascination in regards to the Intel 8008 microprocessor. As quickly as I may
get the tackle on an envelope I despatched a letter to Intel asking for a replica the 8008 consumers guide. I
spent tons of of hours studying and digesting each web page of that brief doc.
The Mark 8 version
of Radio Electronics turned certainly one of my most treasured possessions. I learn and reread each web page.
I fantasized about with the ability to afford a board set, and about constructing a Mark 8. However relatively than
constructing a Mark 8, I ended up, designing and constructing an 8008 laptop of my very own design, over a 3
yr interval. In actuality, I in all probability spent twice what a Mark 8 would have value. However the academic
worth of that endeavor was priceless.
Years later, within the late 1990s, I used to be lucky sufficient to alternate e mail with Jon Titus, the
designer of the Mark 8. I had lengthy since misplaced my authentic copy of Radio Electronics that contained
the Mark 8 plans. Jon was form sufficient to mail me a replica of the article and on the time I additionally
found that Jon can be touring to Salt Lake Metropolis. Whereas he was in Salt Lake, we met for lunch.
Assembly Jon was a really magical second. Im undecided if he remembers me, however I’ll at all times keep in mind him.
Thanks, Jon!
My authentic 8008 laptop utilized practically 100 TTL logic chips. The 16k of reminiscence was comprised
of 100 and twenty eight 2102 static rams. I spent tons of of hours meticulously wire wrapping
the processor and IO boards, in addition to the again airplane. The 16k of 2102 reminiscence chips discovered their house
on 4 business 4k S100 logic boards. For enter I used a South West Technical Merchandise ASCII keyboard.
For video output I constructed a textual content show from a equipment bought by Mini Micro Mart. It alone had over 50 ICs.
Its design used the identical shift register chip set because the Apple I. Despite the fact that I had a keyboard and a video
show, the true enter and output largely occurred on the entrance panel utilizing toggle switches and LEDS.
Lengthy earlier than I accomplished designing and wire wrapping my laptop I had hand assembled many traces of
code in anticipation of the day once I may really run the code alone laptop, though within the
finish, a lot of that code by no means was entered. Loading software program by way of the entrance panel switches was frustratingly
laborious! I did nonetheless validate that the pc labored. I loaded a monitor that may learn keystrokes
from the keyboard and show them on a video monitor. That occasion was the fruits of three years
work and proved to be very satisfying.
The motivation to design and construct a clock based mostly on the 8008 got here from many sources. For a number of
years Ive been designing and constructing distinctive clocks. To this point, all of them have been constructed round
modern-day micro-controller know-how whereas utilizing out of date show applied sciences. Utilizing the 8008
supplied big doses of nostalgia. It additionally turned out to be difficult! Not like microprocessors in the present day,
the 8008 seems nearly analog when trying on the slop of the indicators emitted by the 8008. To construct a
laptop round an 8008 it’s a must to use plenty of exterior logic. You additionally have to compensate for issues
that simply dont work as cleanly as youd anticipate. Wanting again in the present day Im really fairly impressed that my
authentic laptop ran. Within the 70s I used to be engaged on a shoestring finances. My take a look at bench consisted of a
low-cost low bandwidth single hint oscilloscope and LEDs. I didnt even have the flexibility to see the
delay from clock to sync output, as I do now, to not point out the usefulness of a logic analyzer in
understanding the 8008.
The opposite motivating issue was merely the dearth of historic design data printed elsewhere
or obtainable on the Web. I need anybody in search of data on tips on how to design or construct an 8008
laptop to have the ability to discover it extra simply than I did. The few sources of data I came across used
very laborious to seek out logic chips (not you could choose up an 8008 simply wherever). I used to be dissatisfied when
I discovered one website the place the writer would promote a dangling wall piece laptop, however solely made the knowledge
obtainable by NDA. I can perceive that method with one thing presently in manufacturing; however like
it or not, there will not be sufficient 8008s on this planet, not to mention sufficient curiosity, to make a residing. Additionally,
preserving know-how by NDA is akin to Microsofts method in killing of software program merchandise, like
DOS, by not publishing the supply code. I have a tendency to love preservation by openness, like that of the
Linux venture. So long as the supply is obtainable, the platform turns into moot. Despite the fact that my {hardware}
and software program in all probability comprise faults, I’d relatively open my design to public scrutiny, than see helpful
details about the 8008 die. So right here it’s
The Design
Remember that I cheated this time round, at the very least I really feel that method. On this design I exploit many modernly
obtainable shortcuts equivalent to programmable logic units and a excessive density ram. These units weren’t
obtainable again within the 70s. In doing so I don’t consider I compromised my objective. My objective was to construct a
clock, not turn out to be crippled and blind, wire-wrapping 200 ICs. Not like my teenage years, I dont
have limitless time, and I now have a mortgage
I now not mow lawns for a residing, as I did at
fourteen.
Please perceive this can be a totally operational 8008 laptop. Its 16k of reminiscence area may be configured
to make use of a number of combos or RAM and EPROM. I designed in 4 enter and 4 output ports. It additionally has
a completely practical entrance panel that can be utilized to look at or modify reminiscence, or jam in an interrupt
instruction. If you’re a purest, be happy to transform the PLD algorithms to random logic to construct a
extra genuine laptop, although doing so could require modifications to compensate for timing delays. Additionally
keep in mind you can not load the 8008 down with multiple TTL load. You could buffer all sign traces
coming from the CPU. You must also remember the fact that including extra logic chips will enhance the facility necessities.
System Clock
The 5 hundred kilohertz two section clock required by the 8008 is derived by dividing a two megahertz
crystal oscillator by 4 utilizing two flip flops. Two AND gates then mix the 1 MHZ sign from the
first divider stage and the outputs from the ultimate divider stage to provide a two section non-overlapping
clock. Please word that this clock produces a non-compliant sign. Since I AND the sign from the
first stage, the system clock produces indicators which can be shorter than these specified within the Intel spec
for the 8008. Every section is barely 500 nanoseconds vast. The Intel 8008 guide specifies a pulse width of
700 nanoseconds for section one and 550 ns for section two. Should you occur to have an 8008-1 you possibly can substitute
a 3.2 Megahertz oscillator to finish up with an 800 kilohertz clock. The spec on the 8008-1 requires a 350
nanosecond pulse on each phases of the clock. Once more the clock circuit would produce a shorter pulse of
round 313 ns per section.
For the purest I’ve included a clock circuit that produces the proper waveform. It makes use of a 74LS123
twin monostable multivibrator and some exterior elements. As soon as the circuit is constructed you want both
an oscilloscope or a logic analyzer to set the heart beat widths of the clock. To this point Ive observed no unwell
impacts from the shortened pulse size, though all chips is probably not created equal. Ive tried
a number of in my prototype and so they have all labored for me. Its your name what you employ
Logic management
Management indicators for the 8008 laptop are generated utilizing a 22V10 GAL. State traces S0, S1, and S2,
the sync line, in addition to the excessive order tackle bits D6 and D7 are mixed to provide bus, reminiscence, and
IO management indicators. When the pc is in a stopped state the addressed reminiscence location is displayed
on the entrance panel. Through the stopped state management indicators from the entrance panel are fed into the 22V10
that enable addressing random reminiscence places in addition to writing to them. The 22V10 additionally produces indicators
for interrupt processing. Utilizing the PLD actually cuts down the chip depend and likewise the facility necessities.
Knowledge Bus
A 74LS245 is used to buffer all knowledge coming to and from the 8008 CPU. When the 8008 is just not outputting
knowledge the 245 is configured to level knowledge to the CPU. This basically floats the principle knowledge bus. All
units solely speak when they’re addressed and the respective management sign is enabled. When the processor
is in a stopped state the reminiscence learn sign (MER) is lowered by default to permit the viewing of reminiscence
knowledge on the entrance panel. Most of the authentic 8008 designs used multiplexer chips relatively than a typical
knowledge bus. I voted for simplicity by having one frequent bus.
Deal with Bus
I exploit two 74LS273s to latch the tackle traces. That is achieved throughout the T1, T1I, and T2 system
cycles. The excessive tackle latch accommodates two bits, D6 and D7, which can be routed again and decoded by the
22V10. These bits are used to find out reminiscence learn, write and IO cycles.
I opted to make use of latches, however one may additionally use 4 74LS193s or equal. Should you plan to load
plenty of program knowledge by hand utilizing the entrance panel, utilizing the counter/latches makes the job a lot simpler.
You possibly can merely latch within the beginning tackle after which increment or decrement the tackle counters/latch
to the subsequent tackle after which load the information. This fashion you solely have to set the information switches, deposit the
worth, increment to the subsequent tackle, and repeat the method.
The opposite choice would to be to switch the entrance panel to interface with a printer port. A reasonably
easy program would let one add software program to the 8008s reminiscence from a PC.
Interrupt Circuitry
8008 Interrupt Processing Capture
Interrupt logic for my 8008 laptop lets you jam a single instruction into the CPU from the
entrance panel switches. When the interrupt swap is pressed, a sign toggles a 74LS76 flip flop.
Subsequent the output of the flip flop routes to a 74LS74 flip flop that’s synchronized with the section one
clock of the CPU. This forces the rising fringe of the interrupt to be synchronized for proper CPU
operation.
As soon as the CPU acknowledges the interrupt request, it outputs a T1I state, which is then latched by
one other 74LS76 flip flop to create the PINT state. (Course of Interrupt). When the PINT state is
lively the subsequent instruction fetched will come from the entrance panel. The PINT state is then cleared by
the /MER sign. The additional random logic is used to wash up just a few glitches inherent within the 8008.
As a result of the 8008 begins up in a stopped state an interrupt is required to get the pc working.
Reminiscence
The 8008 is able to addressing a most of 16k bytes of reminiscence. The system contains each RAM and
ROM. Utilizing the configuration switches you possibly can choose 0k, 2k, 4k, or 8k of ROM, the rest turns into
addressed as RAM. A 16V8 GAL chip supplies decoding for the reminiscence in addition to the mapping of the RTC if
enabled.
I used a 2764, 8k by 8 bit, EPROM for program area. When I’m creating packages I exploit the crash
and burn technique. That’s, write this system, burn it to EPROM, give it a strive, and if it crashes I do
it throughout. Quite that utilizing the 2764 EPROM you may swap it out for a FLASH chip of the identical measurement.
Youd nonetheless have to program the FLASH chip however youd be forward with the lowered erasure time.
The RAM chip is a Hitachi HM62256, 32k by 8 bit, static RAM. It really accommodates twice as a lot reminiscence
because the 8008 can tackle, so I solely use half. In comparison with what I used for reminiscence in my authentic laptop,
2102s that have been 1k by 1 bit, the 32k Hitachi chip is superb. Should you once more evaluate this chip to whats
obtainable in the present day in fashionable computer systems it makes you wish to snort, or cry. The simplicity {that a} single
reminiscence chip provides is implausible; it could have been unthinkable within the 1970s.
RTC
A Nationwide Semiconductor NS32FX211 RTC is mapped into the highest 16 bytes of reminiscence. This chip is out of date
and tough to seek out. I’ve a number of that have been manufactures samples. The interior oscillator
makes use of a 32.768khz crystal. The principle drawback of this chip is that there isn’t a provision for battery
backup with out utilizing exterior elements.
To make use of a distinct RTC chip can be moderately easy. Many of the newer chips I checked out used 32
inside registers, twice as many because the NS32FX211 16 registers. To handle extra registers doesn’t
require a logic change to the 16V8 PLD. To take action you’d merely tie the A4 tackle line to the RTC
chip. Then tie the enter on pin 13 of the triple enter AND gate excessive, doing so you’ll map the RTC to
the highest 32 bytes of reminiscence. Additionally, you will should rewrite the pattern code for the clock to make the most of the
completely different RTC.
I/O
The 8008 I/O is type of funky by in the present days requirements. Curiously sufficient, the output knowledge is distributed
throughout the T1 cycle of the CPU to the decrease tackle latch. The tackle of the port is then latched throughout
the T2 cycle within the excessive tackle latch. Through the T3 cycle, the 22V10 used the D6/D7 bits to decode the
IO operation and additional latches the information to the proper IO port latch. If an enter port was addressed,
the enter knowledge is learn from one of many enter buffers throughout the T3 cycle. The higher tackle byte can be
used to decode which enter port is being learn.
I/O port tackle decoding is completed utilizing a 16V8 GAL. The logic is designed to pick out the primary 4
enter and output ports, as designated by the 8008 directions. Should you want a distinct vary, or extra
I/O ports, you’ll want to make the required adjustments to the 16V8 logic, or add a further 16V8. The 8008
is able to addressing a most of eight enter ports and twenty 4 output ports.
Entrance Panel
Full conventional entrance panel performance exists in my design. LEDs show the tackle and knowledge
bus exercise whereas the pc is working. When the pc is in a stopped state, the contents of
the choose reminiscence location is displayed. 4 momentary switches are used to route the contents of the
knowledge switches on the entrance panel to the low tackle latch, the excessive tackle latch, the chosen reminiscence
location, or the 8008 knowledge bus throughout an interrupt request. A 16V8 GAL supplies the required glue logic
to make all of it work. As well as, a 74LS123 is used to generate bus and write pulses. There may be additionally an
LED that’s lit when the pc is working.
Within the early days a entrance panel simply appeared so pure. A number of flashing lights and switches to flip
made it so attention-grabbing. It was an enormous paradigm soar for me when computer systems began coming with out entrance
panels. When designing this laptop I knew it needed to have a entrance panel. Even with all the core
management indicators in PLDs, placing a entrance panel on the pc makes it really feel proper; there have to be mild.
Clock Show
The show is just not mandatory in case you are not focused on constructing a stand alone clock. The six 74LS47
LED show drivers are related utilizing limiting resistors to the seven section shows. The drivers
are related to output ports 0,1, and a pair of. The clock software program combines the 4 bit digit codes into one
byte for the writes. The show is the best a part of your entire clock. Ive toyed round with the
risk of utilizing nixie tubes. However within the 70s seven section LED shows have been properly in use.
Energy Provide
Constructed and configured as proven right here, an appropriate energy provide wants to supply 5 volts at roughly
1.25 Amps. The 8008 additionally requires 9 volts at 100 ma when working. To be on the secure aspect,exceed these
values by 50 to 100%. These present attracts are based mostly on a pc constructed utilizing LS TTL chips. Be certain that
you present your laptop with a properly regulated and filtered energy provide. I’m presently utilizing linear
regulators. Should you use a switching energy provide, confirm that the outputs are clear from all switching
noise.
Additionally remember that you’ll want to use a liberal variety of bypass capacitors; TTL may be very noisy. Bypass
capacitors will not be drawn into any of the schematics. I exploit one .1 uf 25 volt disc capacitor for about
each two ICs. Place bypass caps close to the VCC connections on the chips, maintain the leads brief between
VCC and floor.
Earlier than powering up your laptop confirm that every one energy connections and polarities are appropriate. Not
doing so will wreck your day, particularly when you destroy a tough to acquire IC, just like the 8008. Measure
twice, minimize as soon as.
Schematics
PLD Logic
Right here is the logic for all the PLDs. I exploit
WinCUPL, free from Atmel,
to compile the logic. And a common programmer constructed by Logical Gadgets to program the GALs.
Components
Almost all the components for the pc may be sourced from
The PLDs are Lattice 22V10Ds and 16V8Ds. One phrase on the place to purchase the 8008 chips: Ebay. At any
given time there are normally a number of 8008s listed for public sale. Ebay trace, dont bid early, doing so
solely raises the costs. Observe the chip till simply earlier than the closing of the public sale after which bid.
Through the years I’ve collected 8008s each time I’ve discovered them. The purple ceramic and gold chips
may be discovered for about forty to sixty {dollars}, the all black ceramic chips for about twenty {dollars} much less.
To this point Ive been fortunate; all of my processors work. Watch out when dealing with the 8008 chips, they’re
static delicate. TTL is pretty forgiving, however nonetheless use good practices; its a very good behavior to type.
When working, the processor will get HOT! It runs simply over 90 levels Fahrenheit. All different chips
needs to be comparatively cool to the contact, however in actuality do generate warmth and wish air flow. Hold
this in thoughts when you put your laptop in an enclosure.
All resistors are ¼ watt. Bypass caps are disc ceramic .1uf at 25 volts. The caps used on the
entrance panel pulse technology are additionally disc ceramic. The caps used within the crystal circuit of the
RTC needs to be increased high quality, I exploit silver mica.
8008 Manuals and Info
Ive scanned certainly one of my authentic 8008 consumer manuals. Im additionally together with others Ive discovered across the
web. My guide printed in 1974 lists the newer sort directions.
8008 Directions
There are two units of directions printed for the 8008. The pdf under got here from knowledge originating
from home.germany.net/nils.eilers/8008/.
The subsequent two information are Excel spreadsheets that comprise every instruction and their hexadecimal
equal.
Software program
To this point, the software program written for the venture has been very simple. Its foremost function was to
confirm appropriate operation of the {hardware}. The code right here merely initializes the RTC after which goes
right into a loop studying the RTCs knowledge change flag. If a change happens, the time is learn after which written
to the output ports related to the show. To set the time I toggle within the appropriate values into the
RTCs registers mapped in excessive reminiscence after which interrupt the pc with a restart 0.
The next downloads are for the Scelbi Primary Program from 1974, often called
SCELBAL. It was written by Mark Arnold and Nat Wadsworth.
M. G. Arnold and N. Wadsworth, SCELBAL: A Increased Degree Language for
8008/8080 Programs, Scelbi Pc Consulting (Milford, CT) 1976.
Assembler
Once I began this venture I searched to see if I may find an assembler for the 8008. I discovered
AS written by Alfred Arnold. I contacted Alfred about a difficulty on 8008 assist. He was form sufficient
to even add assist for the brand new instruction mnemonics. I run AS in a Linux setting.
Right here is the outline from his website:
AS is a conveyable macro cross assembler for quite a lot of microprocessors and controllers. Although it
is principally focused at embedded processors and single-board computer systems, you additionally discover CPU households within the
goal record which can be utilized in workstations and PCs.
AS works nice, thanks Alfred!
Instruments
Through the improvement of this venture I used the next instruments.
- Tektronix Twin hint 60 Mhz Oscilloscope
- BS310 BitScope Logic Analyzer and digital Oscilloscope.
I LOVE my Bitscope! Its a 100 Mhz twin hint oscilloscope. An eight bit logic analyzer. And
a spectrum analyzer. I run the Bitscope underneath Home windows XP. - Logical units Gadget Programmer Chipmaster 5800u
- Categorical Schematic
They provide free schematic and PCB design software program. Upon getting designed your boards, order
them over the Web. The PCB service is basically fast with a two or three day turnaround.
The boards may be two or 4 layer with plated by holes. The schematic seize software program
is straightforward to make use of and has an inexpensive components library. You possibly can add your individual customized elements.
Programming and Working
8008 Interrupt Processing Capture
In my setup I write code and burn it into the 2764 EPROM. It isn’t mandatory to make use of my methodology
in constructing your individual laptop. You possibly can both deselect the ROM and enter code instantly from the entrance
panel, or construct a PC interface to load the reminiscence from a printer port. Should you do, please share the
data again and Ill publish it for others to make use of.
The 8008 has eight restart vectors. They begin at reminiscence location 0 after which each eight bytes
from there on. It could be doable to design a extra advanced interrupt dealing with system the place a tool,
equivalent to a keyboard, would trigger the pc to vector to a selected handler. Since my plans will not be
that advanced Im glad simply jamming in a single instruction from the entrance panel.
One focal point somebody might be able to reply for me. As soon as Ive began the pc with a
restart instruction I’m unable to cease it by jamming in a HLT instruction. Curiously sufficient, I do
see the CPU go right into a stopped state, after which proceed on. To beat this I merely program a HLT into
the ROM at one of many restart vectors. Once I jam within the restart instruction the pc vectors
accurately and stops. Any perception on this might be useful.
Including a push/pop stack to the Intel 8008
Not like fashionable microprocessors the Intel 8008 lacks a {hardware} stack that may
be used to push and pop knowledge in an advert hoc method. Tom Pittman designed a
resolution for the 8008 that makes use of 6 TTL chips to create a 16 byte stack.
Hyperlinks
Copyright © 2004-2021, Len Bayles | Thu Sep 9 02:53:44 UTC 2021 |