https://github.com/akkartik/mu/blob/main/shell/main.mu
1
2
3
4 fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) {
5 var env-storage: environment
6 var env/esi: (addr environment) <- address env-storage
7 initialize-environment env, 0x20/fake-screen-width, 8/fake-screen-height
8 load-state env, data-disk
9 {
10 render-environment screen, env
11
12 {
13 var key/eax: byte <- read-key keyboard
14 compare key, 0
15 loop-if-=
16 var key/eax: grapheme <- copy key
17 edit-environment env, key, data-disk
18 }
19 loop
20 }
21 }