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.5
- 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.
setup file, 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 readme file.
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 (see:
http://sourceforge.net/projects/vmb/) or as a tgz file. 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.