• Please review our updated Terms and Rules here

Information on 386 system desgin

ajcc

Experienced Member
Joined
Aug 22, 2009
Messages
159
Location
Karlstad, Sweden
Hi!

I've been wanting to construct my own computer, from chips and wire, since I was a little kid. And I've been thinking and reading about many different ways of doing this. But finally I decided that a small Intel 386 based computer should be my goal.

Why the Intel 386?
It's just the perfect CPU, imho. It's fast enought and it's old enough. It got a very low pin-count and it's capable of running several Unixes. I know that Minix will infact run on a 286, but I have a very special place in my heart for the 386 (the first computer I remember using).

I've been trying to find information on the hardware design, the buses and so on. But I don't really know where to start looking. The things more specific are: how to connect things to the CPU, ram, buses and so on, in hardware.

There are things I would like to get clear, for example: I've read the the 386 only can address 16MB of ram, and that it got a 4GB maximum that it can address (this being due to the 32-bit address-bus). I'd like to know how this addressing works? Both in hardware and later in software.

What I found so far is information on how the IA-32 system boots. Where the CPU looks for the BIOS and the rest of the boot process. So the system would be kind off IBM PC-ish compatible, in the sense that it got a BIOS.

I know this will take a long time to learn and construct, but the learning process is the important thing for me. Although a finished computer would be a dream come through :)

Where should I start looking?
 
Maybe this will help.

There's a big difference between constructing a 80386 computer and an 80386 PC-compatible computer. A simple 80386 non-PC compatible SBC shouldn't be too hard, particularly if you employ a chip designed for embedded applications, such as the 80386EX.

Osborne-McGraw Hill published a series of Intel manuals on the 386, 386SX, 486... that make a good starting spot. Other than that, I'd start looking for some Intel Application Notes and Design Guides.
 
Maybe this will help.

There's a big difference between constructing a 80386 computer and an 80386 PC-compatible computer. A simple 80386 non-PC compatible SBC shouldn't be too hard, particularly if you employ a chip designed for embedded applications, such as the 80386EX.

Osborne-McGraw Hill published a series of Intel manuals on the 386, 386SX, 486... that make a good starting spot. Other than that, I'd start looking for some Intel Application Notes and Design Guides.

Thanks! I've managed find a list on 386 related Application Notes, mostly 386 EX related. So this is a great step forward! :) It seems like I could find most PDF's by just Googeling the name too.
I haven't yet decided the level of PC-compatibility I do require, I have to check how much different Unixes require it.

As a Unix geek there's so many things I don't like about the IBM PC design. But I think I'll have to learn more about the PC-design before I can make up my own.

I'll have a look after the Osborne McGraw Hill books, hopefully there's a library that still have them stored somewhere.

Thanks again for the help! I'll check back with updates.
 
I've found a lot of good info and after reading a general book on microprocessor. So I now have a deeper understanding of how things are connected and working around and inside the 386. The two combined: Intel's 386 documentation and the general microprocessor book really did the trick.
Many of the terms in the Intel documentation was completely new to me, so I had a hard time putting them into context, and to find a good starting point in the documentation.

I'm currently dreaming of a system with LEDs and switches like the IMSAI and the Altair, with the ability of stepping through instructions. Because I thought that would be the best way to study and debug the system before getting it into a higher level of computing.
(And as a teacher student you got this constant sickness of trying to make thing teachable and understandable to others).
But I have yet to decide on the system itself, I'm thinking about making it like an old Sun3 (m68k) or Sun4 (sparcstation). Manly because I like SUN (and Unixes in general), and because Sun made a 386 machine once.

I'm still trying to figure out how to halt the 386 and make a single step clock-pulse. And then resume normal clock operation.

So that's how far I've got so far :)
If anyone got any suggestions, inspiration, ideas or anything - feel free to write them.
 
Hi! Feel free to join us on the N8VEM project! We already have much of the capability you describe even though it is an 8 bit Z80 system.

If you are feeling ambitious the N8VEM system could serve as a platform for your project. Then you could utilize the existing infrastructure for your design. I think designing and building an N8VEM 8088 based SBC would be a good intermediate step towards making your own 80386 system.

Thanks and have a nice day!

Andrew Lynch
 
Hi! Feel free to join us on the N8VEM project! We already have much of the capability you describe even though it is an 8 bit Z80 system.

If you are feeling ambitious the N8VEM system could serve as a platform for your project. Then you could utilize the existing infrastructure for your design. I think designing and building an N8VEM 8088 based SBC would be a good intermediate step towards making your own 80386 system.

Thanks and have a nice day!

Andrew Lynch

Wow, that's really inspirational!
Thanks for the tip!
 
Providing a real-time "blinkenlights" interface to an 80386-family CPU like that on an Altair or IMSAI box is more than a bit daunting, owing to to the level of on-chip integration.

You might be able to provide a simulaton of that by employing the SMM (system maintenance mode) facilities of the 80386. It's basically a signal that saves the system state and forces the CPU into a real-mode servicing routine. The x86 family also has software single-step capabilities. So, while the result wouldn't be quite the real thing, it'll be close enough for show-and-tell.
 
So a lot of time have past and I've decided how to build my computer. Inspired by Andrew, and the early Sun machines, it will be a Single Board Computer. With CPU, SRAM, FlashROM and a UART. And for the CPU, maybe a m68k, they are UNIX-friendly!, or maybe a 80286 (they can be had in DIP and I like them for all the right reasons).

I've replaced the blinkenlights idea entirely with Chuck's idea of using a software simulation, which I modified into the idea of a "monitor". A monitor like the ROM Monitor on Swtpc machines, and it all should end up as a Forth interpreter (yes, just like SUN's firmware >), this being not only SUN inspired, but also by the Canon CAT. Dwight Elvey had written his own printer drivers in Forth on the Canon CAT, so that he could use his advanced printer, and being able to do that made my heart beat :)

And I also got the Apple-I replica book and there's a ton of m68k books out there, or 286 for that mater. So a lot of head scratching is coming slowly this way. It's going forward and I've not given up :)
 
So a lot of time have past and I've decided how to build my computer. Inspired by Andrew, and the early Sun machines, it will be a Single Board Computer. With CPU, SRAM, FlashROM and a UART. And for the CPU, maybe a m68k, they are UNIX-friendly!, or maybe a 80286 (they can be had in DIP and I like them for all the right reasons).

Congratulations on your decision to go ahead. But I've never seen an 80286 in DIP. Just the QFP, PGA, CLCC and PLCC versions.
 
Congratulations on your decision to go ahead. But I've never seen an 80286 in DIP. Just the QFP, PGA, CLCC and PLCC versions.

You're completely right about the 80286. Then my two first computers must have been 8086 or 8088, one of then had a CGA-RGB connector and broken monitor, the other one had a smashed hard drive (those with a vintage connector, like 5.25" floppy drives). So maybe I was never meant to become a DOS guru after all ;)
 
Back
Top