mu/baremetal/503manhattan-line.mu
Kartik Agaram 6e36ce06dd 7521 - new plan for tests
It's not really manageable to make the fake screen pixel-oriented. Feels
excessive to compare things pixel by pixel when we will mostly be
writing text to screen. It'll also make expected screen assertions
more difficult to manage.

So I'm not sure how to make assertions about pixels for now. Instead
we'll introduce fake screens at draw-grapheme.
2021-01-15 20:30:07 -08:00

29 lines
728 B
Forth

fn draw-box-on-real-screen x1: int, y1: int, x2: int, y2: int, color: int {
draw-horizontal-line-on-real-screen x1, x2, y1, color
draw-vertical-line-on-real-screen x1, y1, y2, color
draw-horizontal-line-on-real-screen x1, x2, y2, color
draw-vertical-line-on-real-screen x2, y1, y2, color
}
fn draw-horizontal-line-on-real-screen x1: int, x2: int, y: int, color: int {
var x/eax: int <- copy x1
{
compare x, x2
break-if->=
pixel-on-real-screen x, y, color
x <- increment
loop
}
}
fn draw-vertical-line-on-real-screen x: int, y1: int, y2: int, color: int {
var y/eax: int <- copy y1
{
compare y, y2
break-if->=
pixel-on-real-screen x, y, color
y <- increment
loop
}
}