The Virtual Motherboard Homepage
The Virtual Motherboard is hosted under sourceforge
http://sourceforge.net/projects/vmb/). There you can get
source code and browse the CVS repository.
Here you find documents, specifications for individual devices
and links to ready to run binary examples.
Latest Version: 1.7
- mother - the motherboard herself
- serial - a simple serial
- winvram - Framebuffer Device with Mouse and GPU
- timer - Timer Device to generate interrupts and get the current time and date.
- led - LEDs to turn on and off
- button - push button sending interrupts to the system
- sevensegment - a sevensegment display for numbers
- screen - serial output device to display characters
- keyboard - serial input device to read characters from the keyboard or from a File
- disk - hard disk controller to read and write blocks in a disk (image).
- RAM - from 1 Byte to 4 GByte RAM
- ROM - Read only memory defined by an image file
- FLASH - Read/Write memory made persistent through an image file
- mmix - the MMIX CPU
Currently, the simplest way to install the VMB devices is available for Windows users.
double click it, and you are done.
If all goes well, it will start a simple
configuration: from the file
readme.vmb: a screen, a
keyboard, a MMIX CPU, a ROM,
and a ROM image. The
keyboard will initially take
input from the file
readme.txt. The CPU will take
instructions from ROM, and
these will take input from the
keyboard and send it to the
screen. So you should see the
You can also load the executables individually from this
To compile the executables yourself, you need to download the sources
(see below) and use Visual Studio. The sources contain the necessary
project and solution files.
Linux users have to compile the
devices from sources. Either obtained from cvs
http://sourceforge.net/projects/vmb/) or as
The sources come with Makefiles. If you have make
and gcc, just execute make in the top source directory.
Known Bugs and Fixes
- Currently, the support for OS X is not very good. But demand for this platform
is increasing, and I hope to be able to take care of a basic working set of devices
soon. For now,
I post here an email to me summarizing the current state of affairs.
Any improvements or suggestions are welcome.
To avoid duplication of efforts, examples and binaries have moved to the MMIX Homepage.