1.6 KiB
A prototype shell for the Mu computer
Currently runs a tiny subset of Lisp. Steps to run it from the top-level:
- Build it:
$ ./translate shell/*.mu # generates code.img
- Run it:
$ qemu-system-i386 -m 2G code.img
or:
$ bochs -f bochsrc # _much_ slower
To save typing in a large s-expression, create a secondary disk for data:
$ dd if=/dev/zero of=data.img count=20160
Load an s-expression into it:
$ echo '(+ 1 1)' |dd of=data.img conv=notrunc
You can also try one of the files of definitions in this directory (*.limg
).
$ cat iterative-definitions.limg |dd of=data.img conv=notrunc
Now run with both code and data disks:
$ qemu-system-i386 -m 2G -hda code.img -hdb data.img
or:
$ bochs -f bochsrc.2disks
You can type in expressions, hit ctrl-s
to see their results, and hit Tab
to focus on the ...
below and browse how the results were computed. Here's
a demo. The bottom of
the screen shows context-dependent keyboard shortcuts (there's no mouse in the
Mu computer at the moment).
Improvements
If your Qemu installation supports them, one of these commandline arguments may speed up emulation:
-enable-kvm
-accel ___
(run with-accel help
for a list of available options)
As a complete example, here's the command I typically use on Linux:
$ qemu-system-i386 -m 2G -enable-kvm -hda code.img -hdb data.img
Known issues
-
There's no way to save to disk.
-
Don't press keys too quickly (such as by holding down a key). The Mu computer will crash (and often Qemu will segfault).