Skip to content

HeinrichHartmann/MIX.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

MIX

A MIX emulator in Emacs Lisp

MIX is a hypothetical computer used by Donald Knuth for his monograph TAOCP. It is a minimal register machine with two general purpose registers and 4000 words of memory.

This repository contains a MIX emulator for Emacs. It shows the current state of the machine, and allows to watch code execution.

Usage

Open the file in emacs, and hit C-c C-b (eval buffer). You should see a new buffer with output like this:

#
# MIX
#
rA:  +00.00.00.01.56
rX:  +00.00.00.00.00
rI1: +00.00.00.00.00
rI2: +00.00.00.00.00
rI3: +00.00.00.00.00
rI4: +00.00.00.00.00
rI5: +00.00.00.00.00
rI6: +00.00.00.00.00
rJ : +00.00.00.00.00
rIP: +00.00.00.00.38
cmp: G. overflow:0.
----------------------------------------------------
  M[ 0]: +00.00.00.00.03   M[20]: +00.00.00.01.18
  M[ 1]: +00.00.00.01.36   M[21]: +00.00.00.01.05
  M[ 2]: +00.00.00.01.56   M[22]: +00.00.00.01.19
  M[ 3]: +00.00.00.00.00   M[23]: +00.00.00.00.58
  M[ 4]: +00.00.00.00.00   M[24]: +00.00.00.00.32
  M[ 5]: +00.00.00.01.59   M[25]: +00.00.00.00.00
  M[ 6]: +00.00.00.00.00   M[26]: +00.00.00.00.00
  M[ 7]: +00.00.00.00.00   M[27]: +00.00.00.00.00
  M[ 8]: +00.00.00.00.00   M[28]: +00.00.00.00.00
  M[ 9]: +00.00.00.00.00   M[29]: +00.00.00.00.00
  M[10]: +00.00.00.00.00   M[30]: +00.00.00.00.08
  M[11]: +00.00.00.00.00   M[31]: +00.01.00.00.01
  M[12]: +00.00.00.00.00   M[32]: +00.03.00.00.03
  M[13]: +00.00.00.00.00   M[33]: +00.01.00.00.56
  M[14]: +00.00.00.00.00   M[34]: +00.31.00.04.39
  M[15]: +00.00.00.00.00   M[35]: +00.02.00.00.09
  M[16]: +00.00.00.00.00   M[36]: +00.20.00.00.60
  M[17]: +00.00.00.00.00   M[37]: +00.02.00.00.61
  M[18]: +00.00.00.00.00 > M[38]: +00.00.00.00.05
  M[19]: +00.00.00.00.00   M[39]: +00.00.00.00.00

The example MIX program is currently hard coded at the very end of the source file.

About

A MIX emulator in Emacs Lisp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published