2021-02-21 06:37:44 +00:00
|
|
|
# Experimental Mu shell
|
2021-06-06 19:50:25 +00:00
|
|
|
# Currently based on Lisp.
|
2021-02-21 06:37:44 +00:00
|
|
|
|
2021-03-28 15:34:44 +00:00
|
|
|
fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) {
|
2021-06-04 03:28:46 +00:00
|
|
|
var env-storage: environment
|
|
|
|
var env/esi: (addr environment) <- address env-storage
|
2021-06-12 17:46:28 +00:00
|
|
|
initialize-environment env, 0x20/fake-screen-width, 8/fake-screen-height
|
2021-06-04 03:28:46 +00:00
|
|
|
load-state env, data-disk
|
2021-10-03 15:03:15 +00:00
|
|
|
{
|
2021-06-04 03:28:46 +00:00
|
|
|
render-environment screen, env
|
|
|
|
# no way to quit right now; just reboot
|
2021-02-21 06:45:10 +00:00
|
|
|
{
|
2021-03-27 05:47:44 +00:00
|
|
|
var key/eax: byte <- read-key keyboard
|
2021-02-21 06:45:10 +00:00
|
|
|
compare key, 0
|
|
|
|
loop-if-=
|
2021-11-09 16:12:11 +00:00
|
|
|
var key/eax: code-point-utf8 <- copy key
|
2021-06-13 04:11:22 +00:00
|
|
|
edit-environment env, key, data-disk
|
2021-02-21 06:45:10 +00:00
|
|
|
}
|
2021-02-21 06:37:44 +00:00
|
|
|
loop
|
|
|
|
}
|
|
|
|
}
|