about summary refs log tree commit diff stats
path: root/prototypes/tile/2.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-10-01 20:40:22 -0700
committerKartik Agaram <vc@akkartik.com>2020-10-01 20:40:22 -0700
commitd75b71297426ee2d63d5630d1ef9469de48aca84 (patch)
tree0d4c517526770343822d4f409a8e9c1b7ac0e51e /prototypes/tile/2.mu
parentf3ca0e3cb33d6c34dbe4c6941598d16d140be206 (diff)
downloadmu-d75b71297426ee2d63d5630d1ef9469de48aca84.tar.gz
6923
Diffstat (limited to 'prototypes/tile/2.mu')
-rw-r--r--prototypes/tile/2.mu84
1 files changed, 0 insertions, 84 deletions
diff --git a/prototypes/tile/2.mu b/prototypes/tile/2.mu
deleted file mode 100644
index 6339d61e..00000000
--- a/prototypes/tile/2.mu
+++ /dev/null
@@ -1,84 +0,0 @@
-# load test: animate a whole lot of text
-#
-# Requires a large file called "x" containing just ascii characters. One way
-# to generate it:
-#   cat /dev/urandom |base64 - |head -n 1000 > x
-# then merge pairs of lines.
-#
-# This prototype assumes it's in a window 185 characters wide.
-
-fn main -> exit-status/ebx: int {
-  var num-lines/ecx: int <- copy 0x10
-  clear-screen 0
-  # open a file
-  var f: (addr buffered-file)
-  {
-    var f-handle: (handle buffered-file)
-    var f-in/eax: (addr handle buffered-file) <- address f-handle
-    open "x", 0, f-in  # for reading
-    var f-out/eax: (addr buffered-file) <- lookup f-handle
-    copy-to f, f-out
-  }
-  # main loop
-  var row/eax: int <- copy 1
-  {
-    compare row, 0x10  # 16
-    break-if->
-    render f, row, num-lines
-    row <- increment
-#?     sleep 0 0x5f5e100  # 100ms
-    loop
-  }
-  # wait for a key
-  {
-    enable-keyboard-immediate-mode
-      var dummy/eax: grapheme <- read-key-from-real-keyboard
-    enable-keyboard-type-mode
-  }
-  # clean up
-  clear-screen 0
-  exit-status <- copy 0
-}
-
-fn render f: (addr buffered-file), start-row: int, num-rows: int {
-  var num-cols/ecx: int <- copy 0xb9  # 185
-  # if necessary, clear the row above
-$render:clear-loop: {
-    compare start-row, 1
-    break-if-<=
-    decrement start-row
-    var col/eax: int <- copy 1
-    move-cursor 0, start-row, col
-    {
-      compare col, num-cols
-      break-if->
-      print-string 0, " "
-      col <- increment
-      loop
-    }
-    increment start-row
-  }
-  # render rest of screen below
-  var row/edx: int <- copy start-row
-  var col/ebx: int <- copy 1
-  move-cursor 0, row, col
-$render:render-loop: {
-    compare row, num-rows
-    break-if->=
-    var c/eax: byte <- read-byte-buffered f
-    compare c, 0xffffffff  # EOF marker
-    break-if-=
-    compare c, 0xa  # newline
-    {
-      break-if-!=
-      row <- increment
-      col <- copy 0
-      move-cursor 0, row, col
-      loop $render:render-loop
-    }
-    var g/eax: grapheme <- copy c
-    print-grapheme 0, g
-    col <- increment
-    loop
-  }
-}