diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-04-25 15:56:34 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-04-25 15:56:34 -0700 |
commit | 22a95bd813c284af582cac59a6ee490e2a0d4665 (patch) | |
tree | 166d4f60badd62bdddd6a6ccbee260d5875a07da /shell | |
parent | 8185a605c6cf1995477954aa7868785e770f1c69 (diff) | |
download | mu-22a95bd813c284af582cac59a6ee490e2a0d4665.tar.gz |
expand memory to 2GB
It requires more than 1GB to fill the screen with a chessboard pattern using the definition in shell/iterative-definitions.limg. I also speed up the chessboard program by clearing the screen up front and then only rendering the white pixels.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/README.md | 8 | ||||
-rw-r--r-- | shell/iterative-definitions.limg | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/shell/README.md b/shell/README.md index 20dc3615..2f6d6bd0 100644 --- a/shell/README.md +++ b/shell/README.md @@ -9,11 +9,11 @@ $ ./translate shell/*.mu # generates code.img 2. Run it: ```sh -$ qemu-system-i386 code.img +$ qemu-system-i386 -m 2G code.img ``` or: ``` -$ bochs -f bochsrc +$ bochs -f bochsrc # _much_ slower ``` To save typing in a large s-expression, create a secondary disk for data: @@ -34,7 +34,7 @@ $ cat iterative-definitions.limg |dd of=data.img conv=notrunc Now run with both code and data disks: ```sh -$ qemu-system-i386 -hda code.img -hdb data.img +$ qemu-system-i386 -m 2G -hda code.img -hdb data.img ``` or: ``` @@ -58,7 +58,7 @@ may speed up emulation: As a complete example, here's the command I typically use on Linux: ``` -$ qemu-system-i386 -enable-kvm -hda code.img -hdb data.img +$ qemu-system-i386 -m 2G -enable-kvm -hda code.img -hdb data.img ``` *Known issues* diff --git a/shell/iterative-definitions.limg b/shell/iterative-definitions.limg index 315f12b0..c54a1229 100644 --- a/shell/iterative-definitions.limg +++ b/shell/iterative-definitions.limg @@ -66,15 +66,19 @@ (chessboard . (fn () (screen px) (chessboard1 screen px 0 15))) (chessboard1 . (fn () (screen px y color) + (clear screen) (while (< y (height screen)) (chessboard2 screen px y 0 color) (set y (+ y px)) - (set color (- 15 color))))) + (chessboard2 screen px y px color) + (set y (+ y px))))) (chessboard2 . (fn () (screen px y x color) (while (< x (width screen)) (fill_rect screen x y (+ x px) (+ y px) color) (set x (+ x px)) - (set color (- 15 color))))) + (set x (+ x px))))) + (main . (fn () (screen keyboard) + (chessboard screen 16))) )) (sandbox . (+ 1 2)) ) |