This site documents the design and construction of a
"homebrew"
computer, dubbed
POC (
Proof-
Of-
Concept) and
powered by the Western Design Center's 65C816 microprocessor
(MPU).
As well as documentation of my single-board computing exploits, I have
provided some downloads for drawings, schematics and program source code
that you may find useful.
Periodically I will add to this content, the most recent update date to
the site being displayed in the top frame of all pages.
All content is copyright ©2009 by
BCS Technology Limited.
All rights reserved, unless otherwise noted. Please respect this work and do not use it for commercial purposes without my written permission.
Site Organization
I have tried to arrange this site so you won't have to wade through a
lot of previously-viewed material to get to the new stuff.
There is a simple table of contents on the left side of your screen to
aid in site navigation.
To return to the home page just click on the
BCS
logo in the top left corner.
At the bottom of each page are forward and reverse links so you can read from page to page.
Links embedded in the text that point to images and/or other websites will open in a new window or tab.
This site is being built during my spare time, so it's far from complete.
Please check back now and then to see what has been added.
I have not used any fancy
HTML,
Flash
or
JavaScript
in any of these pages and no, I didn't prepare these pages with any Microsoft abominations, such as FrontPage.
Therefore web browser compatibility shouldn't be a concern, as long as your browser supports HTML 4.01 or better.
If it doesn't, may I suggest
Firefox?
All testing was done in the Firefox browser; please don't complain if your non-standard browser doesn't correctly display pages.
In any case, be sure automatic image display is enabled in your browser.
Otherwise, you are going to be scratching your head and wondering what's going on as you stare at a lot of empty image boxes.
Speaking of browsers, I'm sure you know that wise owls do not use Microsoft or Google browsers— unless, of course, you enjoy having your computer infested with bots, spyware and other cruft.
Really wise owls use a UNIX-like operating system and avoid the endless hassles associated with Microsoft's bloated mess.
What is this all about?
During business hours I work on multiuser computer systems, machine
control hardware and electronics of all types, and have done so for
decades.
However, except for the construction of a relay-based calculator while
in high school, I had never scratch-designed and built a computer of
any kind.
Interested in doing so, but mindful of my limited experience in such an
endeavor, I went to work concocting a basic device so I could get my feet
wet, so to speak.
In doing so, I decided that this POC computer would be interfaced to an
ASCII terminal console, thus avoiding the necessity of having to devise a means to put a picture on a screen and scan a keyboard for typed input.
I reasoned it would be hard enough to get POC up and running without adding the complication of an embedded video and keyboard interface.
POC is powered by the Western Design Center's
W65C816S microprocessor, which was designed by microprocessor pioneer
Bill Mensch and
is a member of the highly successful 6502 family. The '816 can be described as a
65C02
on steroids, the 65C02 itself the enhanced
CMOS
version of the venerable
NMOS
6502.
The
'816 has a fully static core capable of running at 20 megahertz (MHz),
dual size registers, greatly expanded memory addressing capabilities, an
enhanced instruction set, enhanced hardware interfacing capabilities
and improved interrupt handling.
Although not intended to support
preemptive multitasking,
the '816's characteristics are such that it can be made to do so, even without a memory management unit (MMU), as long as applications observe certain rules while executing.
Developing such a system is my ultimate goal and something I will
discuss later on.
One of my guiding philosophies when undertaking any project of this type
is the concept of learning how to fly a single-engine airplane before
attempting to pilot a jumbo jet.
In other words, start small and work your way up.
Too often, I have read where someone is eager to build a homebrew
computer with capabilities rivaling those of an
IBM mainframe,
only to abandon the project due to a design snag or hardware bug that
couldn't be solved due to limited knowledge and/or experience.
That is not how I do things.
What will POC be good for?
Let me answer by asking you a question.
What is stamp collecting good for?
How about wood-carving?
Not everything that we do has to be "good for something."
Hobby computers are built for education and fun—it's a hobby, y'know!
I like building "stuff," whether "useful" or not.
For example, I am working on a one-eighth scale model of a
Diesel-electric locomotive
just for the fun of it.
This model is close to seven feet in length, weighs nearly a half ton,
and yes, actually runs and can pull a pretty long and heavy train.
Viewed from a practical sense, my locomotive won't be able to transport
passengers between major cities and my POC computer won't have the
capability to host Amtrak's rail passenger reservation system.
However, POC will be able to "compute," at least at the level of a
Commodore 64—minus the graphics and music, but with considerably greater performance.
Most importantly, thinking, planning and building will
be a constant mental challenge, especially in writing system software.
Therefore, to me it is good for something, which is cerebral fitness.
That said, I do have a more ambitious design in mind, which should be capable of performing at a higher level.
That's down the road, of course.
Why the W65C816S processor? Aren't 65xx processors obsolete?
Good questions!
I chose this microprocessor for a number of reasons:
- Familiarity.
I have been writing
assembly language
programs for the 65xx family almost since its inception.
Needless to say, I have a large body of accumulated knowledge that can be easily transferred to the '816.
Why start from scratch with a different processor and incur a huge learning curve?
- Performance.
The '816 can get a lot done when measured against
wall clock time.
Typically, an '816 running at 20 MHz can execute between 3 million
and 10 million instructions per second (MIPS).
That's very good for a design that was conceived in the early 1980s
and, in fact, better than most of its contemporaries.
Also, interrupt latency
is very low, much lower than similar designs, such as the
Motorola 68000.
Low interrupt latency is an important characteristic in any MPU that is to be used in real-time situations.
In fact, using the proper programming techniques, the '816's interrupt latency can be as short as one machine cycle.
At 20 MHz, that's a mere 50 nanoseconds.
- Adaptability.
The '816 uses the same basic
bus architecture
as the rest of the 65xx family, which makes it "hobby-friendly" and
highly adaptable to a variety of applications.
The '816 also includes some hardware management signals that are not
present on the eight bit family members.
These signals can ease the complication of adapting non-65xx family
peripheral silicon, as well as improve overall system stability and
performance.
- Scalability.
As it has a fully static CMOS core, the performance of the '816 is
in direct proportion to the phase-two (Ø2) system clock
rate.
In fact, the Ø2 clock may be halted in either phase and the
'816 will indefinitely maintain its state.
- Reentrancy and recursivity.
The '816 has
hardware stack
addressing capabilities not found in its eight bit cousins that
facilitate the creation of fully recursive/reentrant code. Also,
parameter passing via the stack is a breeze with the '816.
- Cost and availability.
The '816 is available in quantity from electronic parts sources such as Mouser for less than ten dollars US.
Other parts typically used with the '816, such as I/O devices and glue logic, are also inexpensive and readily available.
As for the question of obsolescence, both the W65C02S and W65C816S are
in current production and are found in numerous products, often as part
of a microcontroller or other custom chip.
You are probably using the 'C02 or '816 every day without knowing it, as
these processors are at the core of many consumer products.
The 65xx family is even found in medical devices, such as cardiac pacemakers.
So the
Why? is
Why not? and no, the 65xx family isn't at all obsolete.
Next Page