diff options
Diffstat (limited to 'prototypes/tile/2.mu')
-rw-r--r-- | prototypes/tile/2.mu | 84 |
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 - } -} |