What is the Rainbow Project?
The Rainbow Project intends to design, construct and program an educational computer from scratch.
What do you mean from scratch?
The Rainbow Project is not based in ready made parts. It's not about "assembling" a computer, not in the way a modern PC is assembled from ready-made parts. It is designed from scratch using the basic components such as CPU, RAM, ROM and glue logic.
But is this really possible?
Obviously, otherwise we wouldn't have any computers right now :D The real question is whether it is feasible using the means available to a school hackerspace. And the answer is yes, as long as we limit ourselves to older technology components. We won't be able to manufacture a board using one of the latest CPUs, but we can definitely design and program an 80s era CPU like Zilog Z80. The Rainbow Project is a homebrew computer.
What is the usefulness of it?
While computers have obviously become faster and have a lot more storage since the 80s, it is still amazing that all the basic concepts are literally unchanged. Designing an 80s computer we can learn how a modern PC works. The Rainbow Project is an educational machine, teaching computer architecture and assembly language programming. It is designed to run at multiple speeds, from a few Hz or single stepping to a couple of MHz. It allows the user to actually watch the data being transferred (through a series of LEDs) and the instructions getting decoded. The completed Rainbow Project will be used for computer architecture classes.
How is the Rainbow Project programmed?
The Rainbow Project is equipped with a EEPROM, programmed with demos by us. The programs were developed in Z80 assembly in a simulated environment and programmed using and programmed through an EEPROM programmer.
You will be developing in assembly language? Are you nuts?
Obviously, and thanks for the compliment!
What are the specifications of the Rainbow Project?
The Rainbow Project uses the Zilog Z80 Processor. It is a good old processor used in many home systems of the 80s (ZX Spectrum, Amstrad CPC/PCW, MSX to name just a few). This is combined with 8Kb of ROM and 2Kb of static RAM. The system is expandable as we do have different ROM/RAM capacities available. It is also equipped with a display controller running on its own microcontroller (MSP430) and we have developed a communication protocol between the two systems. The Rainbow Project has three LED boards - we call them bus spies - that show the data moving in the address, data and control buses of the CPU (as long as the running speed is low, of course). The clock speed is adjustable from a few Hz to about 4MHz.
Is it complete yet?
As of April 2018 the Rainbow Project is functional and has been presented in two school exhibitions. Our basic unit includes the clock system, mainboard with CPU, RAM, ROM and glue logic, display interface with microcontroller and three LED status boards. There are few demo programs in ROM, programmed in Z80 assembly. We do plan to continue development, adding a hex keyboard, a complete ROM BIOS and probably some kind of wireless connectivity. We'll keep working on the project during summer 2018.
Yes, but does it run Crysis?
Can't tell for sure, would you like to port it to Z80 assembly? :D
Where did you get the idea?
The original idea was a personal project of 1990(!) and many of the original components were bought back then. It's only 27 years late!