https://github.com/akkartik/mu/blob/main/linux/tui.mu
1
2
3
4
5
6
7 fn main -> _/ebx: int {
8 var nrows/eax: int <- copy 0
9 var ncols/ecx: int <- copy 0
10 nrows, ncols <- screen-size 0
11 enable-screen-grid-mode
12 move-cursor 0/screen, 5/row, 0x22/col
13 start-color 0/screen, 1/fg, 0x7a/bg
14 start-blinking 0/screen
15 print-string 0/screen, "Hello world!"
16 reset-formatting 0/screen
17 move-cursor 0/screen, 6/row, 0x22/col
18 print-string 0/screen, "tty dimensions: "
19 print-int32-hex 0/screen, nrows
20 print-string 0/screen, " rows, "
21 print-int32-hex 0/screen, ncols
22 print-string 0/screen, " rows\n"
23
24 print-string 0/screen, "press a key to see its code: "
25 enable-keyboard-immediate-mode
26 var x/eax: grapheme <- read-key-from-real-keyboard
27 enable-keyboard-type-mode
28 enable-screen-type-mode
29 print-string 0/screen, "You pressed "
30 var x-int/eax: int <- copy x
31 print-int32-hex 0/screen, x-int
32 print-string 0/screen, "\n"
33 return 0
34 }