From 4eedb6803a75dd2623cb8ef506abd4e32053af8b Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Thu, 10 Sep 2020 20:14:17 -0700 Subject: 6763 --- apps/browse/paginated-screen.mu | 83 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) (limited to 'apps/browse') diff --git a/apps/browse/paginated-screen.mu b/apps/browse/paginated-screen.mu index 86ec5b6b..bed29dd8 100644 --- a/apps/browse/paginated-screen.mu +++ b/apps/browse/paginated-screen.mu @@ -358,6 +358,89 @@ fn test-print-multiple-pages-2 { # currently it's hard-coded that we avoid printing to the bottom-most row of the screen } +fn test-print-multiple-pages-with-margins { + var pg-on-stack: paginated-screen + var pg/eax: (addr paginated-screen) <- address pg-on-stack + initialize-fake-paginated-screen pg, 3, 6, 2, 1, 1 # 3 rows, 5 columns, 2 pages * 2 columns each + start-drawing pg +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x61 # 'a' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x62 # 'b' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x63 # 'c' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x64 # 'd' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x65 # 'e' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x66 # 'f' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x67 # 'g' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var c/ecx: grapheme <- copy 0x68 # 'h' + add-grapheme pg, c +#? { +#? var foo/eax: boolean <- done-drawing? pg +#? var foo2/eax: int <- copy foo +#? print-int32-hex-to-real-screen foo2 +#? print-string-to-real-screen "\n" +#? } + var screen-ah/eax: (addr handle screen) <- get pg, screen + var screen-addr/eax: (addr screen) <- lookup *screen-ah + check-screen-row screen-addr, 1, " ", "F - test-print-multiple-pages-with-margins/row1" + check-screen-row screen-addr, 2, " ab ef", "F - test-print-multiple-pages-with-margins/row2" + check-screen-row screen-addr, 3, " cd gh", "F - test-print-multiple-pages-with-margins/row3" + # currently it's hard-coded that we avoid printing to the bottom-most row of the screen +} + fn initialize-fake-paginated-screen _self: (addr paginated-screen), nrows: int, ncols: int, page-width: int, top-margin: int, left-margin: int { var self/esi: (addr paginated-screen) <- copy _self var screen-ah/eax: (addr handle screen) <- get self, screen -- cgit 1.4.1-2-gfad0