I am interested in building a low-cost but powerful single board computer. The 8088 processor seems ideal for this purpose. There is a lot of programming info and development tools for the 8088 and huge amounts of sample code.
The plan is to build a simple reference design that is relatively modular and can be expanded from a library of additional functional blocks, i.e. serial/parallel interface, real time clock, NVRAM, parallel interface, A/D and D/A. The intent is not to recreate the whole hardware environment that PC-DOS runs on. The SBC will have a simplified architecture: some RAM and a ROM, and the peripheral I/O chips needed. Features like Timers, DMA, and complex Interrupt architectures can be added as needed, but should be bolt-on modular components.
Back when the XT line of motherboards were going obsolete, I salvaged a lot of 8088 processors and the support chips for them. These parts used to be virtually free, because the 8088, the 8284, the 8288, etc. were all socketed chips on most XT motherboards, and there was a period when you could almost get paid for hauling off XT motherboards.
(April 20, 2003) The schematics have been updated to final wiring
versions. The design has been split onto two boards (no longer
qualified as a single board design??) for flexibility. I want to build
up a core processor board and be able to design multiple I/O
applications for it, and splitting the design into CPU and I/O boards
made the most sense. The new CPU board is here (pdf) or here (jpeg
snapshot) and the new I/O board is here (pdf) or here (jpeg
The CPU board has been wired. I will post a photograph of it (it's UGLY) here soon.
(Update 1-29-06) The project has remained dormant for an extended period. I recently acquired a 'vintage' 8088-based single board computer that came complete with a manual that includes the schematic. It is a design that uses all TTL gates except for the CPU itself. This would be a big improvement over the design presently described on this page, because 8084 clock chips are far more scarce than the 8088 processor itself.
Further, I have found an embedded tools developer who has kindly made available a simple Intel 8086 assembler that makes it easy to map ROM firmware directly to hard-coded addresses. He also has offered to make available a monitor binary that could run on the Single Board Computer. The developer is Dave Dunfield at Dunfield Development Services. A ROM based monitor would be the ideal starting point for bringing up software on the SBC project. I need to graft on a serial port to the design to act as console. When this project 'rolls forward' (as I hope it soon will) it will incorporate the monitor in ROM.
I have put together an update page that you can go to, to see any news I have regarding the project. It's nothing fancy, I am maintaining this page right now using vi on a shell account.
Many professors have used the 8088 processor as the ensign's training ship processor for Undergraduate university courses, so there are resources all over the 'net, many in .edu webspace.
James L. Antonakos came out with a decent design for an 8088 SBC which has been incorporated into his textbook. This book is invaluable as a resource, and incorporates a detailed study of his 8088 SBC design. It also has most of the IC datasheets reprinted in it that are needed to complete a hardware design.
Also of value are several websites that feature datasheets for important TTL logic chips that will be used to 'glue' together the design.
The Homebrew Computers FAQ
There are many, many online resources for programming the Intel x86 processors. I am an old assembly language embedded programming enthusiast, so I tend to gravitate toward sites that aren't DOS-centric. There's nothing more frustrating to me than programming resources that over-emphasise BIOS or DOS Interrupt based programming. Some of us code closer to the bare metal than that.
A good place to start is The Art Of Assembly Language Programming website.
The FAQ for the comp.lang.asm.x86 is an essential reference.
Jack Klein provides some helpful links on his Intel x86 Page.
And of course, Andrew Tannenbaum used the IBM XT as the basis for his pedagogical Minix operating system, which really falls outside the scope of this SBC project.
I first got started thinking about this project after studying The 8088 Project Book by Robert Grossblatt. This book is a good user-friendly introduction, although he tends to stay mired at a very introductory level throughout the entire book. Also, I found myself disappointed by his limited coverage of how to get actual practical software up and running on his design. Still, it's cool to see a whole design implemented as a rats-nest of wire on an array of those solderless breadboard. I don't have the courage to try wiring up something that complex so casually (the soldering iron and a good supply of teflon #22 solid core wire is my best friend.)
The Antonakos book is the reference I am using the most now.
For general coverage of assembly language programming of the 80x86 family, the book I like the most is William B. Giles' Assembly Language Programming for the Intel 80xxx Family.
All three of these books are older, and used copies can usually be found at a low cost. In particular, Antonaoks and Giles' books have been used for years as Undergraduate Engineering textbooks at many schools, so good used copies should be readily available.