about summary refs log tree commit diff stats
path: root/apps/ex12.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-07-16 08:09:42 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-07-16 08:28:56 -0700
commit44d26b77c45668c9b0c99894a4294cec004361fe (patch)
tree68a5dcd4971873efd4ce184e9bf9a531c2161813 /apps/ex12.mu
parentac45f097153afd3a89f43886e4124c5b2c26b98a (diff)
downloadmu-44d26b77c45668c9b0c99894a4294cec004361fe.tar.gz
.
Diffstat (limited to 'apps/ex12.mu')
-rw-r--r--apps/ex12.mu28
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/ex12.mu b/apps/ex12.mu
new file mode 100644
index 00000000..79c259b8
--- /dev/null
+++ b/apps/ex12.mu
@@ -0,0 +1,28 @@
+# Checking the timer.
+#
+# To build a disk image:
+#   ./translate apps/ex12.mu       # emits code.img
+# To run:
+#   qemu-system-i386 code.img
+# Or:
+#   bochs -f bochsrc               # bochsrc loads code.img
+#
+# Expected output: text with slowly updating colors
+
+fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) {
+  var fg/ecx: int <- copy 0
+  var prev-timer-counter/edx: int <- copy 0
+  {
+    var dummy/eax: int <- draw-text-rightward screen, "hello from baremetal Mu!", 0x10/x, 0x400/xmax, 0x10/y, fg, 0/bg
+    # wait for timer to bump
+    {
+      var curr-timer-counter/eax: int <- timer-counter
+      compare curr-timer-counter, prev-timer-counter
+      loop-if-=
+      prev-timer-counter <- copy curr-timer-counter
+    }
+    # switch color
+    fg <- increment
+    loop
+  }
+}