<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

  <head>
    <title>MIX Development Kit</title>
  </head>

  <body bgcolor="white" link="#ff0000" vlink="#a00000">
    <a  name="top"></a>
    <table  cellspacing="0" cellpadding="5" border="0" align="center">
	<tr>
	  <td width="100" bgcolor="#696969">&nbsp;</td>
	  <td bgcolor="#696969" width="600" align="center"> 
	    <font color="white"><b>MDK, the MIX development kit</b></font>
	  </td>
	  <td bgcolor="#696969" width="10">&nbsp;</td>
	</tr>
	<tr>
	  <td colspan="2">&nbsp;</td>
	  <td bgcolor="#696969" >&nbsp;</td>
	</tr>
	<tr>
	  <td  bgcolor="#909090" valign="top">
	    <br>
	    <a href="news.html">News</a><br>
	    <a href="download.html">Download</a><br>
	    <a href="mdk.html">Documentation</a><br>
	    <a href="lists.html">Mailing lists</a><br>
	    <a href="http://sourceforge.net/projects/mdk">
	      MDK at SourceForge</a><br>
	    <a href="http://sourceforge.net/cvs/?group_id=13897">
	      CVS repository</a><br><br>
	    <p align="center">Thanks to<br>
	      <A href="http://sourceforge.net"> 
		<IMG src="http://sourceforge.net/sflogo.php?group_id=13897&type=1"
		     width="88" height="31" border="0"
		     alt="SourceForge Logo"> </A> 
	  </td>
	  <td >
	    <p align="right"><font color="#000069" size="+1">
		Latest news
	      </font></p>
	    <ul>
	      <li>(26/11/00) <i>Documentation update.</i>
		<a href="news.html#new2">Read more...</a>
	      <li>(18/11/00) 
		<i>MDK 0.1.1 release. </i>
		New version of MDK.
		<a href="news.html#new1">Read more...</a>
	    </ul>
	    <p align="right"><font color="#000069" size="+1">
		What is the MIX?
	      </font></p>
	    <b>MIX</b> is Donald Knuth's mythical computer as described
	    in his monumental work <a
				      href="http://Sunburn.Stanford.EDU/~knuth/taocp.html"> The
	      Art Of Computer Programming</a>. 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 <b>MIXAL</b>, the MIX Assembly Language.
	    <p> So, what's the use of learning MIXAL? The MIX computer is a simplified
	      version of real CISC computers, and its assembly language 
	      closely resembles real ones. You can learn MIX/MIXAL as an introduction
	      to computer architecture and assembly programming:
	      see the <a href="mdk.html">MDK documentation</a>
	      for a <a href="mdk_2.html">tutorial</a> on MIX and MIXAL. </p>
	    &nbsp;<br>&nbsp;<br>
	    <p align="right"><font color="#000069" size="+1">
		What is the MDK?
	      </font></p> 
	    The <b>M</b>IX <b>D</b>evelopment <b>K</b>it offers an emulation of
	    <b>MIX</b> and <b>MIXAL</b>. The <a href="download.html">
	      current version</a> of MDK includes two applications:
	    <ul>
	      <li><b><i>mixasm</i></b> A MIXAL compiler, which
		translates your source files into binary ones, executable
		by the MIX virtual machine.
	      <li><b><i>mixvm</i></b> 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.
	    </ul>
	    Using the MDK tools, you'll be able to
	    <ul>
	      <li>write, compile and execute MIXAL programs,
	      <li>set breakpoints and run your programs step by step,
	      <li>inspect and modify the MIX registers, flags and memory
		contents at any step,
	      <li>simulate MIX input-output devices using the standard
		output and your file system.
	    </ul>
	    See the MDK <a href="mdk.html">user's manual</a> for a complete
	    description of the toolkit.
	    The MDK utils will run on any GNU/Linux box (see
	    <a href="download.html#reqs">requirements</a>) and, of course, are
	    <a href="http://www.gnu.org/copyleft/gpl.html">free software</a>.
	    <p align="right"><font color="#000069" size="+1">
		Planned features
	      </font></p>
	    MDK is currently under active development, and there are some
	    planned additional features I have in mind, e.g.
	    <ul>
	      <li> tracing of executed instructions in <b><i>mixvm</i></b>,
	      <li> allow MIXAL instructions as commands at the
		<b><i>mixvm</i></b> prompt,
	      <li> include execution timing statistics,
	      <li> ncurses based frontend,
	      <li> GTK++/GNOME support,
	    </ul>
	    Please, <a href="mailto:jaortega@acm.org">let me know</a> which
	    of these features would you like better.
	    <p align="right">
	      Contact the <a href="mailto:jaortega@acm.org">author.</a>
	    </p>
	  </td>
	  <td bgcolor="#696969" >&nbsp;</td>
	</tr>
	<tr>
	  <td bgcolor="#909090">&nbsp;</td>
	  <td colspan="2">&nbsp;</td>
	</tr>
	<tr>
	  <td bgcolor="#909090">&nbsp;</td>
	  <td colspan="2" bgcolor="#909090" align="right">
	    <i>last updated Mon Nov 27 00:30:40 </i>
	  </td>
	</tr>
    </table>
    
  </body>
</html>