PDA

View Full Version : Homebuilt computer- plausible?



TandyMan100
August 13th, 2009, 08:36 AM
Okay, I want to build a computer. Not an N8VEM, but something that can run Windows 3.1. Is this even a remotely possible project?

per
August 13th, 2009, 08:53 AM
Okay, I want to build a computer. Not an N8VEM, but something that can run Windows 3.1. Is this even a remotely possible project?

I don't think you'll be able to do that from compleete scratch. To handle the 486, you need a lot of stuff like special memory mannagers and chipsets. Most if not all of therse memory managers from the 486 era where buildt into the chipsets, and buiding your own computer based on a 486-style chipset is nearly impossible for various reasons.


Making your own chipset requires a LOT of knowledge, extemely expensive and special equipment, and loads of space to store that equipment. In addition it takes very long time to put together because of the complexity of the internal cirquits of a chipset.
A chipset require it's own special BIOS code in order to work. Writing a fully functional BIOS takes quite some time, and it is usually pretty complex code.
Most 486 motherboards where usually built around the chipset, so you won't get seperate chipsets without the motherboard (usually).


You can of course put together a working 486 computer by getting the following parts:
A 486 motherboard (with CPU and RAM included), a chassis, a Power Supplying Unit, a floppy disk drive, an IDE drive, an 16-bit ISA-based IDE/floppy disk drive controller, an ISA-based VGA graphics card and some cables for the floppy /hard drives.

kb2syd
August 13th, 2009, 08:55 AM
Be more specific. Do you want to start with a bucket of sand and a few bits of metals and get a computer out?

Did you want to do a complete 386 computer using discrete components, like building even the 386 out of gates?

Do you want a bare board that you solder chips to and buy the 386 etc?

Or did you want to buy a motherboard and add some cards.

The last one is the easiest. The others are some what more difficult.

TandyMan100
August 13th, 2009, 09:01 AM
Be more specific. Do you want to start with a bucket of sand and a few bits of metals and get a computer out?

Did you want to do a complete 386 computer using discrete components, like building even the 386 out of gates?

Do you want a bare board that you solder chips to and buy the 386 etc?

Or did you want to buy a motherboard and add some cards.

The last one is the easiest. The others are some what more difficult.
#1 or #2, prob'ly #2

per
August 13th, 2009, 09:34 AM
#1 or #2, prob'ly #2

Exactly how much do you know about the following topics:


TTL logics
The Architecture of a PC/AT (Everything from the speaker interface to the ISA Bus)
The Intel 386/486 CPU (and it's support chips)
x(3)86 Assembly programming language
(E)EPROMs and the PC/AT BIOS.


---

You should know everything there is to know about the above topics before even consider to start on a project like that. If you aren't planning to spend the next year reading about it, I would say that you won't be able to get a working ressult.

Chuck(G)
August 13th, 2009, 09:55 AM
Are you dead-set on 32-bit Windows? And when you say "homebuilt", are you including all of the I/O boards, such as the display and disk controller and keyboard controller?

Yes, it can be done, but so much of what you'll be spending your time on will be PC-specific peripheral issues, which, while they're interesting, are basically necessary kludges of the original 5150 design.

If you want to make this manageable, you should be prepared to use programmable logic, such as CPLD and FPGA, otherwise the real estate involved will get out of hand fast (as an example, my Micron 386-16 board uses mostly LSTTL discrete logic and doesn't have room for the DRAM on a full-sized AT motherboard--memory on a separate card has to plug into a special slot.

On the other hand, if you want to stay in the 16-bit real mode, it's not difficult to build a MS-DOS capable system, since most of the I/O logic is abstracted into BIOS calls. An 80188/80186 or NEC V40/V50 contains timers, interrupt controller and DMA (and some, serial I/O) and it doesn't take much extra logic to get a system going.

If you can live with Linux or BSD, there are plenty of designs for other CPUs around, such as the ARM series.

But a 386 or higher system from scratch--not something that I'd want to tackle. About a quarter of the way through, I'd start wondering why I was doing it.

Ole Juul
August 14th, 2009, 02:05 AM
This level of computer understanding is way above my head, but I can't help but being fascinated by things like home built CPUs. There are actually quite a few people doing this. Check out the Homebuilt CPUs WebRing. These projects are obviously very real and doable. :)

I'm just an analogue audio guy, but even I can figure out how to use 74 Series TTL on a basic level. It's the computer logic which is beyond me. :( There is a home built TTL computer at http://www.homebrewcpu.com/ which serves web pages, although it probably won't run MS-Win. I think that's pretty cool!

NobodyIsHere
August 14th, 2009, 05:16 AM
Hi! If you are planning on building a home brew computer that can run Win 3.1 it probably means a CPU clock frequency 16 MHz or greater. That means the wavelengths of the switching fundamental frequency (and the harmonic frequencies) will be shorter than 20M in length. When the wavelength is relatively comparable (more than a percentage) to the size of the PCB trace lengths the transmission line considerations and impedance matching becomes critical to proper circuit performance.

In other words, the people who design digital circuits to work at higher clock frequencies spend as much time with microwave transmission line considerations as they do with the implementation of the digital logic. For really fast machines, correct signal propagation becomes absolutely paramount as a design constraint and starts to swamp out other stuff.

I think this is one of the major reasons (other than cost) which has pushed greater and greater integration of functions into fewer and fewer chips. If the connections are really short, like on the chip die itself, it really simplifies the task. Making a high speed computer from discrete components is very complex and not a trivial undertaking. Making a slow one, like the N8VEM, is relatively simple since it is essentially only a digital logic integration. Almost all the signal timing considerations are either simple or just ignored at 4 MHz.

My recommendation is that if you decide to pursue a home brew 32 bit computer is to set the CPU clock fundamental frequency low enough that you can get it working reliably. Probably someplace in the 1 to 8 MHz as any faster and things really start to get really hairy. Although there are some, almost all early microcomputers are less than 8 MHz because the use of SSI and MSI parts forced relatively wide component spacing and big bus structures like S-100, MultiBus, ISA, and the like. Even though the individual components could sometimes go faster, once you attach them to a large PCB or bus with long traces all hell breaks loose and signal timing goes nuts.

Of all the older buses, I think the best designed was Intel's MultiBus for addressing the situation but even with it there are major limitations. ISA, S-100, etc are just awful layouts and you'll rarely see a reliably performing system above 8 MHz.

Personally, I like to stick to 4 MHz and small PCBs for this reason. Another approach you might consider is using an SBC module like these from Glomation or any of the other manufacturers like Gumstix, etc. Embed the SBC module in your prototype board and route low frequency signals to it for IO.

http://www.glomationinc.com/

Another good solution would be to get a Xilinx Spartan 3A starter kit and blow the design into an FPGA. I know these are popular in industry for what used to be done with small uCs and SBC controllers. Personally, they don't thrill me but I recognize they are useful and might be worthwhile for what you are proposing.

I hope this helps. Thanks and have a nice day!

Andrew Lynch

carlsson
August 14th, 2009, 07:24 AM
So far nobody has considered if Windows can be ported to e.g. a 3 MHz Z80. :-D If that would be possible, the hardware side gets simplified since TandyMan100 only asked for the computer to be Windows compatible.

NobodyIsHere
August 14th, 2009, 07:52 AM
So far nobody has considered if Windows can be ported to e.g. a 3 MHz Z80. :-D If that would be possible, the hardware side gets simplified since TandyMan100 only asked for the computer to be Windows compatible.

Hi Anders! Thanks! Actually, that is a far more reasonable proposition. Have you considered the GSX extensions to CP/M? That would make for a windowing environment that could run on a Z80 style SBC. Its not windows 3.1 but it is much closer than the pure character console mode CP/M 2.2.

I am designing a VDU board for the N8VEM at the moment but it is character mode only. As a follow on project I'd like to make a TMS9918 color graphics board to go along with it; character mode on a monochrome composite monitor and color graphics on another separate monitor to get the best of both worlds. I know GSX has been ported to to the TMS9918 previously and I think the data package is up on the Gaby CP/M IIRC.

Thanks and have a nice day!

Andrew Lynch

barythrin
August 14th, 2009, 09:19 AM
So Andrew, since you're here and one of the leading folks in the SBC world :-) Is there some recommendation you would have for someone like myself or others on how to gain knowledge of the workings of a simpler computer based on one of your kits?

I feel like even with the WAM kit which is geared towards even middle school I can do the project but I don't get the background on what I'm doing or why. It's here's the code, plug these parts in here, and now it'll do X but I don't get a huge warm fuzzy on what happens if I don't use X part or have a different voltage LED (they don't mention if it's a 5V or 3.3 or what). Take that to a more extreme but multiple better project like your Kim or Apple 1 replica and while I can monkey see monkey do solder it together, what would you recommend if I wanted to really understand what I'm doing and why as I'm putting it together? Is there something better than finding the manual for all the components and trying to read about each chip?

- John

tezza
August 14th, 2009, 12:42 PM
So Andrew, since you're here and one of the leading folks in the SBC world :-) Is there some recommendation you would have for someone like myself or others on how to gain knowledge of the workings of a simpler computer based on one of your kits?


Good question John. I am one of the "others" also interested in this.

Tez

NobodyIsHere
August 14th, 2009, 01:25 PM
Hi! Well, that's a good question. If you are looking for a classic text on how to build a home brew computer from the ground up one subsystem at time I think this is probably the way to go.

http://www.scribd.com/doc/13388965/Build-Your-Own-Z80-Computer

It is the classic works of Steve Ciarcia and a pretty good home brew SBC at that. It starts out with the really important power supply design and fabrication, goes through CPU fundamentals, IO decoding, memory decoding, memory access, etc. I think it is one of the better books out there because it teaches more than just what to build but *why* you need to build it.

There are some parts obsolescence issues but nothing insurmountable. The design is for the most part still buildable today. I think the thought process of the ZAP and Steve's SBC is similar to the one I used on the N8VEM SBC and it was heavily influential. There are some variations but the underlying approach is familiar.

The key is to start some place and begin experimenting. There is no substitute for building your own circuits and just the familiarity of working with the parts will build up your understanding over time.

Chuck may have a wisened opinion on the subject so hopefully he'll share it. He's probably forgotten more about this subject than I'll ever know. I hope this helps. Thanks and have a nice day!

Andrew Lynch

tezza
August 14th, 2009, 01:32 PM
Excellent. Thanks Andrew.

Dr_Acula
August 16th, 2009, 08:08 PM
Our original poster said they didn't want to build a N8VEM. I'll try to post something without mentioning the N8VEM.... aargh...urgh.... no I can't do it!

Well there are lots of other boards and designs out there. One question - is the problem with learning to do with hardware or software? If it is hardware, well one place to start is to get a breadboard/protoboard, and get some TTL chips and start messing about with them. A 555 and a flip flop and some AND gates and you can build a traffic light circuit. That is a great way to understand logic. Re software, well you could get the Altair SIMH files and you can have a CP/M computer running as an emulation in no time, and then start tinkering with various languages like assembly and basic and C. That is a way to learn software for no cost at all.

Re windows emulations, one of the big problems is where to get the source code. CP/M seems fairly freely available, but windows code is still tightly guarded. And even if you did get it, it is a bit more complicated than CP/M (though still built on the same foundations, with the same BIOS/BDOS calls right in the heart of the operating system).

I'd start simple and work up. The first thing I did when I got a N8VEM board was to start cutting tracks and adding dead bug chips and rewiring it to do other things. That is the best way to learn - get right in and start hacking. Then, when the hacks get too messy, get some new boards made and incorporate the hacks.

As an aside, I spent an hour or so checking out Tezza's vintage computer collection. It is a fantastic group of machines and I am very impressed!

cosam
August 17th, 2009, 12:35 AM
Re. building simple computers, Steve Ciarcia's book is what first popped into my mind, too. You don't even have to build the whole thing at once - If you leave out the buffers, you can easily fit a complete Z80 system on a small breadboard. Instead of building your own clock circuit right away, you can use an integrated oscillator. At a push, you can even leave out the reset circuit. Add an off-the-shelf power supply and you're away. With the basics in place, you really can build as much or as little as you want. Something like this (http://z80.info/gfx/z80test.gif), with serial I/O you can hook up to a terminal, is only seven chips if you leave out the PIO.

The same goes for software. A bit of assembly to make an LED flash or send a string to a serial port is easy to write, especially if you designed the hardware yourself! With a cheap EPROM programmer and a bit of flash memory (an old Pentium's BIOS works great) you can hack away to your heart's content.