From 90748fa45df64d1e12e0dcb46c3074e232914d71 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 10 Apr 2021 17:42:27 -0700 Subject: shell: render fake screens 'print' turns out to not be working yet. --- 500text-screen.mu | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to '500text-screen.mu') 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 -- cgit 1.4.1-2-gfad0