diff options
Diffstat (limited to 'apps/tile/main.mu')
-rw-r--r-- | apps/tile/main.mu | 45 |
1 files changed, 7 insertions, 38 deletions
diff --git a/apps/tile/main.mu b/apps/tile/main.mu index 7c7065fc..fdbb69ca 100644 --- a/apps/tile/main.mu +++ b/apps/tile/main.mu @@ -15,7 +15,7 @@ fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int { break-if-!= var tmp/ecx: (addr addr array byte) <- index args, 1 var tmp2/eax: boolean <- string-equal? *tmp, "test" - compare tmp2, 0 + compare tmp2, 0 # false { break-if-= run-tests @@ -33,46 +33,15 @@ fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int { fn interactive args: (addr array addr array byte) -> exit-status/ebx: int { enable-screen-grid-mode enable-keyboard-immediate-mode - var buf-storage: gap-buffer - var buf/esi: (addr gap-buffer) <- address buf-storage - initialize-gap-buffer buf - # - { - render 0, buf - var key/eax: byte <- read-key-from-real-keyboard - compare key, 0x71 # 'q' - break-if-= - var g/ecx: grapheme <- copy key - add-grapheme buf, g - loop - } + var env-storage: environment + var env/esi: (addr environment) <- address env-storage + initialize-environment env + render-loop env enable-keyboard-type-mode enable-screen-type-mode exit-status <- copy 0 } -fn render screen: (addr screen), buf: (addr gap-buffer) { - clear-screen screen - var nrows/eax: int <- copy 0 - var ncols/ecx: int <- copy 0 - nrows, ncols <- screen-size screen - var midcol/edx: int <- copy ncols - midcol <- shift-right 1 - draw-vertical-line screen, 1, nrows, midcol - var midrow/ebx: int <- copy 0 - { - var tmp/eax: int <- try-divide nrows, 3 - midrow <- copy tmp - } - var left-col/edx: int <- copy midcol - left-col <- increment - draw-horizontal-line screen, midrow, left-col, ncols - # initialize cursor - var start-row/ebx: int <- copy midrow - start-row <- subtract 3 - var start-col/edx: int <- copy left-col - start-col <- increment - move-cursor screen, start-row, start-col - # - render-gap-buffer screen, buf +fn real-grapheme? g: grapheme -> result/eax: boolean { + result <- copy 1 # true } |