diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-04-10 17:42:27 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-04-10 17:42:35 -0700 |
commit | 90748fa45df64d1e12e0dcb46c3074e232914d71 (patch) | |
tree | 5264dbeeb9425031e1536affa850f1683bb21a95 /500text-screen.mu | |
parent | f6aeecdc483e07c2fdb81040d1e20b3288c3c9c3 (diff) | |
download | mu-90748fa45df64d1e12e0dcb46c3074e232914d71.tar.gz |
shell: render fake screens
'print' turns out to not be working yet.
Diffstat (limited to '500text-screen.mu')
-rw-r--r-- | 500text-screen.mu | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/500text-screen.mu b/500text-screen.mu index 92ea1d2f..fa85085e 100644 --- a/500text-screen.mu +++ b/500text-screen.mu @@ -221,6 +221,35 @@ fn clear-screen screen: (addr screen) { set-cursor-position screen, 0, 0 } +fn fake-screen-empty? _screen: (addr screen) -> _/eax: boolean { + var screen/esi: (addr screen) <- copy _screen + var y/eax: int <- copy 0 + var height/ecx: (addr int) <- get screen, height + { + compare y, *height + break-if->= + var x/edx: int <- copy 0 + var width/ebx: (addr int) <- get screen, width + { + compare x, *width + break-if->= + var g/eax: grapheme <- screen-grapheme-at screen, x, y + { + compare g, 0 + break-if-= + compare g, 0x20/space + break-if-= + return 0/false + } + x <- increment + loop + } + y <- increment + loop + } + return 1/true +} + fn clear-rect screen: (addr screen), xmin: int, ymin: int, xmax: int, ymax: int, background-color: int { { compare screen, 0 |