mu/shell
Kartik K. Agaram 18ef136b2c . 2021-03-28 08:36:03 -07:00
..
README.md bochs support for disk drives 2021-03-23 21:53:41 -07:00
cell.mu 7862 - shell: more informative traces for eval 2021-03-07 10:55:11 -08:00
eval.mu 7866 2021-03-07 19:46:21 -08:00
gap-buffer.mu 7842 - new directory organization 2021-03-03 22:21:03 -08:00
grapheme-stack.mu 7866 2021-03-07 19:46:21 -08:00
main.mu . 2021-03-28 08:36:03 -07:00
parse.mu 7866 2021-03-07 19:46:21 -08:00
print.mu 7866 2021-03-07 19:46:21 -08:00
read.mu 7849 - shell: literal numbers 2021-03-04 22:05:39 -08:00
sandbox.mu writes to disk now working 2021-03-23 00:32:49 -07:00
tokenize.mu strip spaces when tokenizing 2021-03-08 17:54:07 -08:00
trace.mu get rid of ctrl-d/ctrl-u when browsing trace 2021-03-08 16:27:41 -08:00
vimrc.vim 7842 - new directory organization 2021-03-03 22:21:03 -08:00

README.md

A prototype shell for the Mu computer

Currently runs a tiny subset of Lisp. Steps to run it from the top-level:

  1. Build it:
$ ./translate shell/*.mu      # generates disk.img
  1. Run it:
$ qemu-system-i386 disk.img

or:

$ bochs -f bochsrc

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

Now run with both code and data disks:

$ qemu-system-i386 -hda disk.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).

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).