Movitz 続き
まだ全然ドキュメントを読んでいないが、movitz を調べると
- Common Lisp での機械語へのコンパイルについて
- ハードウェアをどのように抽象化しているか
- C なみの層を扱う言語としての Common Lisp
などということが少し分かると思う。
ためしに movitz/losp/los0.lisp に define-toplevel-command なる定義がいくつかあったので、真似して独自のトップレベルコマンドを定義し、movitz:create-image, movitz:dump-image を実行。できた新しい img ファイルをもとに Q(qemu) を起動。正しく動作した。
より楽しそうなのは movitz/losp/x86-pc の下にある x86 関連の lisp ファイルや、
- vga.lisp Low-level VGA interface
- textmode.lisp A primitive VGA text-mode console driver
- ne2k.lisp ISA NE2000 ethernet NIC driver
Common Lisp run-time である Muetre(?)を定義する movitz/losp/muetre 以下。CLOS もサポートしているらしい。
Movitz の全体の構成がまだよくわかっていないなぁ。日本語ドキュメントはほとんど見つけられなかったので、英語ドキュメントとソースを読むしかなさそう。