What is it?
MixEmul is an emulator for the MIX computer that is described in The Art of Computer Programming (TAOCP) series of books from D.E. Knuth. MIX is a mythical, non-existent computer with features similar to those of real computers of the 1970s. It - or more accurately, its assembly language MIXAL - is used as the foundation for the text of aforementioned books.
MixEmul completely emulates the entire MIX instruction set. With that I mean that MixEmul not only performs the actions that an instruction should - like multiplying when it encounters a MUL instruction -, but it does it in the way MIX would. For example, the time unit ("tick") counts that are included in TAOCP Volume 1 are implemented as well. Also, as TAOCP specifies, I/O operations are performed in the background.
Speaking of I/O, all 21 MIX I/O devices (tapes, disks, card reader, card punch, printer, teletype and papertape) are implemented in MixEmul.
MixEmul lets you edit the contents of MIX's registers and memory before, during and after program execution using a number of editor types and review device status in a single glance. It includes a breakpoint feature and allows programs to be run in the background. It's even mildly configurable.
Oh, I'd almost forget, it incorporates a MIXAL assembler too. This means that you can write MIXAL programs using any text editor you like and then load them into MixEmul to debug and run them.
In a few words: MixEmul contains all features that I think I need to be able to better absorb the contents of the TAOCP books.
Can I get it?
Sure you can! You can download the current version 0.1.2995.24753, released March 14th 2008, by clicking this link. The program's documentation is included in the zip file.
You'll also need version 2.0 or newer of the Microsoft .NET Framework. Version 2.0 can be downloaded here. Links to the 2.0 Service Pack and other Framework downloads can be found there as well.