Linked by Thom Holwerda on Sun 4th Nov 2007 15:45 UTC
OSNews, Generic OSes "Bill Buzbee offered the first public demonstration of the Minix OS - a cousin of Linux [I beg your pardon?] - running on his homebrew minicomputer, today at the Vintage Computer Festival in Mountain View, Calif. Magic-1, built with 74-series TTL ICs using wire-wrap construction, implements a homebrew, 8086-like ISA."
Order by: Score:
Nice to see
by Downix on Sun 4th Nov 2007 16:30 UTC
Downix
Member since:
2007-08-21

I'd classify this as more interesting than any of the latest "umpteenth-power" processors I find on the market. While not as sexy, there's something wholesome and more entertaining with knowing how every bit of your system works, and how to change it.

Reply Score: 8

"implements a homebrew, 8086-like ISA"
by meianoite on Sun 4th Nov 2007 17:04 UTC
meianoite
Member since:
2006-04-05

Now that's a glutton for pain. Why not something like Z80 or 68k, if one wants to keep oneself in the microcode realm?

I guess it's a matter of taste, after all. All I can say is that I'd never use 8086 for inspiration.


(Unless the article is regarding ISA as the instruction set mnemonics, and not the actual machine code representation.)


All IMHO, of course.

Reply Score: 7

Javier O. Augusto Member since:
2005-08-10

Actually, the first thing that came to my mind after seeing the Magic-1 block diagram was the almighty Z80 ;)

Reply Score: 1

whartung Member since:
2005-07-06

I think it started out as a Z80, that's what he mentions, but then he morphed it more towards the 8086. Most likely just to get the architecture closer to what something like Minix was designed to work with.

I think the novelety of going in both directions to get code running is interesting. Basically he had a blob of software (minix) that he wanted to get running, so he hacked botht the software AND his CPU to get it to work.

Can you imagine how nice it would be when you ran in to a problem with the chipset to fix that instead of have to write code around it?

Reply Score: 3

Wow.....
by Phloptical on Sun 4th Nov 2007 17:40 UTC
Phloptical
Member since:
2006-10-10

That's surprisingly clean for a DIY job. Hats off to the guy who did that. I'd like to know what he spent on it.

What's in that box represents my worst nightmare back in tech school.

Reply Score: 5

RE: Wow.....
by RIchard James13 on Sun 4th Nov 2007 22:59 UTC in reply to "Wow....."
RIchard James13 Member since:
2007-10-26

That's surprisingly clean for a DIY job

Maybe if they showed the other side of the boards where the wire-wrap is it would not look so clean.

Reply Score: 2

RE[2]: Wow.....
by umccullough on Mon 5th Nov 2007 00:10 UTC in reply to "RE: Wow....."
umccullough Member since:
2006-01-26

Maybe if they showed the other side of the boards where the wire-wrap is it would not look so clean.

Like this?

http://www.homebrewcpu.com/Pictures/alu_12.JPG

and these:

http://www.homebrewcpu.com/photo_gallery.htm

Honestly, it's still a pretty clean deal ;)

(edit: added quote at top)

Edited 2007-11-05 00:14

Reply Score: 2

Why minix?
by bsharitt on Sun 4th Nov 2007 18:27 UTC
bsharitt
Member since:
2005-07-07

If you're going to build a CPU and computer from scratch, why use and off the shelf OS?

Reply Score: 2

RE: Why minix?
by jessta on Sun 4th Nov 2007 20:21 UTC in reply to "Why minix?"
jessta Member since:
2005-08-17

To show everyone that you got the specs correct.

Reply Score: 6

RE: Why minix?
by Darian on Sun 4th Nov 2007 23:36 UTC in reply to "Why minix?"
Darian Member since:
2007-07-24

If you're going to build a CPU and computer from scratch, why use and off the shelf OS?


He did write his own OS. It was only recently that he ported minix.

This project would be no less interesting if he really had just used minix from the beginning. It simply isn't practical to undertake a project at this level of technology without relying on the work of others. Very long chains of specialized skills are needed to design/manufacture/program a working computer, and the particular set of skills that Buzbee synthesized to build this system by himsef is already quite uncommon.

The point of a project like this isn't to show off to the world that one man is a technological island any more than it is to create a fabulous new consumer product. Bill Buzbee is now smarter than he was before he started the project. The machine itself, the software that runs on it, and the opinions of onlookers are just secondary artifacts. One could easily buy a better computer anywhere, but the insight he must have gained can only be earned.

Reply Score: 5

Pardoned
by atsureki on Sun 4th Nov 2007 19:01 UTC
atsureki
Member since:
2006-03-12

Minix OS - a cousin of Linux


I don't read that as an accusation at all. It's for people who haven't heard of Minix to have some idea of what it is, and it's a pretty good choice of analogy: they share a grandfather in Unix.

This guy's pretty amazing. I was beginning to think these low-level skills had been lost now that the technology pyramid is built so high and the goal is to keep heaping things on top. I would love to have such a thorough understanding of technology.

Reply Score: 5

RE: Pardoned
by Mukunda on Mon 5th Nov 2007 11:49 UTC in reply to "Pardoned"
Mukunda Member since:
2006-11-05

Grab yourself a copy of 'Code' by Charles Petzold, sure it's from Microsoft press, but the contents has nothing at all to do with them. It will explain exactly how a CPU works right down at the low level, and will very quickly get you to a place where you could think about building a project similar to this, though a not as fancy. After that, 'Inside the Machine' by Jon Stokes will give you a more abstracted understanding of how modern processors work. I really can't recommend Code enough, just get it, seriously!

Reply Score: 1

He's had this working for a long time...
by BSDfan on Sun 4th Nov 2007 19:04 UTC
BSDfan
Member since:
2007-03-14

If you look at his site.. He's spent months hacking the old Minix code-base to his homebrew architecture.

It's a great accomplishment, but it's a shame he didn't implement paging in time for the demonstration.

Reply Score: 2

Minicomputer?
by matt.britt on Sun 4th Nov 2007 22:44 UTC
matt.britt
Member since:
2005-11-01

It does certainly bear a resemblance (intentional?) to some of the PDPs (especially the LSI-11), but I don't think I'd call it a minicomputer. For me, that term brings to mind images of the VAX and AS/400.

Personally I think it's a much cooler project to restore one of the minicomputers that this thing resembles, like Robert Krten has: http://www.parse.com/~museum/pdp8/pdp8i/index.html

To each his own, of course, but Harry Porter's electromechanical monstrosity is still my favorite homebuilt computer. The convenience of SSI and MSI TTL ICs be damned, he built a tribute to the venerable Harvard Mark I (okay, he used an SRAM IC... I can't blame him for that):
http://web.cecs.pdx.edu/~harry/Relay/index.html

Reply Score: 1

RE: Minicomputer?
by Doc Pain on Mon 5th Nov 2007 06:20 UTC in reply to "Minicomputer?"
Doc Pain Member since:
2006-10-08

"Personally I think it's a much cooler project to restore one of the minicomputers that this thing resembles, like Robert Krten has: http://www.parse.com/~museum/pdp8/pdp8i/index.html "

I like these ones: http://www.parse.com/~museum/misc/index.html

I've resored robotron computers (built in the GDR) for a museum in Schwerin, northern Germany, many years ago. This really was fun, and hard work, because you barely find information material on this very special topic, but still very interesting. Toying around with relay based "computers" was cool, too. If you wanted some real basics (not BASIC), the U880 based Polycomputer 880 - http://www.robotrontechnik.de/index.htm?/html/computer/poly880.htm - and the Lerning Computer 80 - http://www.robotrontechnik.de/index.htm?/html/computer/lc80.htm - were a good point to start. But they are not x86 and don't run a specific known OS such as Minix.

When I get some time, I'll try to revice an ancient dec VT-101 terminal that's still waiting in the cellar, waiting for resurrection, waiting for better days... can wait some more... :-)

Reply Score: 2

Seeing that gives me encouragement
by RIchard James13 on Sun 4th Nov 2007 22:46 UTC
RIchard James13
Member since:
2007-10-26

To build a system using either (transistors or relays). Though I doubt that my system would have MMU type features. Its instruction set would be more along the lines of a 65XX or 6809.

Of course the two big problems building a system like this are design tools and cost. I haven't seen a 74XX in ages. Just looking at a suppliers site though I see I can buy both 4000 CMOS and 7400 TTL range of components.

I don't know what sort of design tool lets you snap together 1000's of transistors and put them in a block so they appear as like an IC and then you can go on and work with another block. No I have not done any research into these tools, maybe when I have a job again.

Reply Score: 1

smashIt Member since:
2005-07-06

I don't know what sort of design tool lets you snap together 1000's of transistors and put them in a block so they appear as like an IC and then you can go on and work with another block. No I have not done any research into these tools, maybe when I have a job again.

ever heard of pen&paper?

Reply Score: 2

RIchard James13 Member since:
2007-10-26

ever heard of pen&paper?

Yeah I thought of that but I don't have a wall big enough in my house to put everything on it. And I would not use pen I would use a pencil since it it easier to erase.

I have tried to do some prototypes but the models just get too complex too easily. I was hoping there was an automated way of plugging all those thousands of components together.

See you start with a few relays and you can make a simple gate like a flip-flop or nand. then you add a few gates together to make a more complex system. Then eventually you might have something like a 8-bit buffer or a 8-bit shifter. Then you add those components together to make say the ALU. But then you think some of those components are redundant and you try to use Boolean Algebra to clean it all up. So how many relays does it take to make a register?

Of course all the while you have to take into consideration the speed at which all these components communicate. If a buffer does not open for writing while some other component is sending it data then the system just won't work.

The solution to this problem is to write a simulator that calculates the time it takes for each component to respond.

Reply Score: 1

Freebasen Member since:
2006-01-11

Logic Works has a software simulator, which you may find handy.

http://www.logicworks5.com/

Reply Score: 2

Doc Pain Member since:
2006-10-08

"ever heard of pen&paper?"

Problem to be solved by recursion:

In order to make a running CPU, I need a running CPU.

:-)

Reply Score: 2

RIchard James13 Member since:
2007-10-26

Does doing it without CAD make me nerdier or what ;)

Reply Score: 1

Nice!
by ntl_ on Mon 5th Nov 2007 05:24 UTC
ntl_
Member since:
2005-07-09

Although, I must say, if I went about a project like this, I would start with a Xilinx Spartan fpga development board and code up the microprocessor in Verilog.

Might be less "homebrew" that way, though.

Reply Score: 1

RE: Nice!
by Morin on Mon 5th Nov 2007 20:22 UTC in reply to "Nice!"
Morin Member since:
2005-12-31

In case anyone wants to try this, these guys are selling the best development boards I've seen:

http://www.xess.com/

I recommend the XSA-3S1000 to start with, and the XST-3.0 as an add-on to the former to add some peripherals. They are $200 each. Don't forget the software ($1 for the cd) and power supply (<$10).

BTW, even if your goal is building the hardware from 74xxxx, the FPGA development boards make some good hardware debuggers.

Reply Score: 2

Hard path
by Treza on Mon 5th Nov 2007 11:49 UTC
Treza
Member since:
2006-01-11

Early hand crafted computers were done with LSI gates and wire wrapping, today, the easy path for hobby CPU design is using FPGAs.

He deliberately chose the hard path, like climbing a mountain ( which is enjoyable ) instead of using a tunnel.

One could also do funny things with FPGA CPUs, a Lisp machine project would be great as well.

Reply Score: 2

RE: Hard path
by transputer_guy on Mon 5th Nov 2007 16:31 UTC in reply to "Hard path"
transputer_guy Member since:
2005-07-08

I did wire wrapping TTL before I became a chip designer, I really would not ever want to work at that level again. Signal conditions are just awefull in TTL, a few MHz is doing well. A better approach if low level gates is a must is to use CMOS 7400 equivalents or better use ECL, both will have much better signals and ECL can also give pretty good speeds too.

Also using FPGAs is still a really good idea, prototype in the Spartan or Cyclone on one of the widely available edu boards and if you can get the architecture to work then redo the correct logic in gate level logic of choice. One might expect to reach logic speeds closer to 50-100MHz and use SDRAM memory. Several homebrew FPGA cpus run GNU tool chains and some can boot Linux.

That allows you to use a modern language like Verilog or VHDL and when high level RTL code works, rewrite the code to use lower gate level primitives to the same effect. The synthesized gate logic in Luts will then be much closer to wired gates on a board. The tools are essentially free to use from Xilinx, Altera, Lattice etc when low end target FPGAs are used even if you retarget to logic gates.

In the hobby world of true homebrew computers though it is rare to see someone with the deep software skills this Transmeta guy has, most of these machines get to run far less code.

Also ofcourse the Z80 and early 8086 were pretty close cousins both being revamped 8080s, 1 in the 8 bit direction, the other 16bit. And this guy has an inside track on the 86 architecture nuances so it is hardly surprising what he produced!

BTW, almost all the early micro processors were designed with pencil & paper tools with only a minimal use of CAD. Even the 68K and 8086 were done that way IIRC. These were usually prototyped with TTL or CMOS gate chips although the silicon for them arrived before the wirewrap proto's even worked so their usefullness was limited. After that it was CAD all the way.

On Lisp, there is a project to redo the Symbolics design in FPGA.

Reply Score: 4

I think it's wonderful!
by Mage66 on Mon 5th Nov 2007 17:14 UTC
Mage66
Member since:
2005-07-11

Projects like this, and the recreation of things like the Altair, the Apple I, and other 1st Generation Personal Computers are great!

I can think of the guys name right now, but there's an incredibly smart man who built his own 6809 system and wrote his own OS for it and offers both for free from his website (plans to build your own system, not the actual system itself).

He built one into a wooden desktop formfactor, and a second one into a Wooden Compaq-Portable type box.

I envy people like that who have skills I don't.

I have to say that the early 80's were a lot more exciting time in Personal Computing than it is today.

I liked hot-rodding my TRS-80 Model I and Color Computers to add things like Turbo Speed, Lowercase, Composite Video, etc...

Reply Score: 1

Bad dreams about wire-wrap boards
by explainer on Mon 5th Nov 2007 19:19 UTC
explainer
Member since:
2006-11-28

I had to deal with wire-wrap boards in the 1970's. I found that no two wire wrap boards are alike, they are extremely fragile, and though they are supposedly prototypes for production PC boards, they never operate the same way and always require mods to my driver code. I was pleased when I went to work at a company that went directly from drafting to PC boards, they were so much more reliable.

Reply Score: 1

Y'all miss the point!
by StychoKiller on Tue 6th Nov 2007 17:06 UTC
StychoKiller
Member since:
2005-09-20

The main thing is the toggle switches and the LEDs as a user-interface. I can still remember the PDP-11 and the Imsai 8080.

Reply Score: 1