MDK, the MIX development kit  
   

Download
Documentation
MDK at SourceForge
CVS repository

Thanks to
SourceForge Logo

What is the MIX?

MIX is Donald Knuth's mythical computer as described in his monumental work The Art Of Computer Programming. As any of its real counterparts, the MIX features registers, memory cells, an overflow toggle, comparison flags, input-output devices, and a set of binary instructions executable by its virtual CPU. You can programme the MIX using an assembly language called MIXAL, the MIX Assembly Language.

So, what's the use of learning MIXAL? Well, if you're interested in programming, please buy, borrow or steal a copy of TAOCP, and you'll see the use.  
 

What is the MDK?

The MIX Development Kit offers an emulation of MIX and MIXAL. The current version of MDK includes two applications:
  • mixasm A MIXAL compiler, which translates your source files into binary ones, executable by the MIX virtual machine.
  • mixvm A MIX virtual machine which is able to run and debug compiled MIXAL programs, using a command line interface with readline's line editting capabilities.
Using the MDK tools, you'll be able to
  • write, compile and execute MIXAL programs,
  • set breakpoints and run your programs step by step,
  • inspect and modify the MIX registers, flags and memory contents at any step,
  • simulate MIX input-output devices using the standard output and your file system.
See the MDK user's manual for a complete description of the toolkit. The MDK utils will run on any GNU/Linux box (see requirements) and, of course, are free software.

Planned features

MDK is currently under active development, and there are some planned additional features I have in mind, e.g.
  • tracing of executed instructions in mixvm,
  • allow MIXAL instructions as commands at the mixvm prompt,
  • include execution timing statistics,
  • ncurses based frontend,
  • GTK++/GNOME support,
  • MMIX support
Please, let me know which of these features would you like better.

Contact the author.