diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-07-16 08:09:42 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-07-16 08:28:56 -0700 |
commit | 44d26b77c45668c9b0c99894a4294cec004361fe (patch) | |
tree | 68a5dcd4971873efd4ce184e9bf9a531c2161813 /apps/ex10.mu | |
parent | ac45f097153afd3a89f43886e4124c5b2c26b98a (diff) | |
download | mu-44d26b77c45668c9b0c99894a4294cec004361fe.tar.gz |
.
Diffstat (limited to 'apps/ex10.mu')
-rw-r--r-- | apps/ex10.mu | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/apps/ex10.mu b/apps/ex10.mu new file mode 100644 index 00000000..05198738 --- /dev/null +++ b/apps/ex10.mu @@ -0,0 +1,42 @@ +# Demo of mouse support. +# +# To build a disk image: +# ./translate apps/ex10.mu # emits code.img +# To run: +# qemu-system-i386 code.img +# Or: +# bochs -f bochsrc # bochsrc loads code.img +# +# Expected output: +# Values between -256 and +255 as you move the mouse over the window. +# You might need to click on the window once. + +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + # repeatedly print out mouse driver results if non-zero + $main:event-loop: { + var dx/eax: int <- copy 0 + var dy/ecx: int <- copy 0 + dx, dy <- read-mouse-event + { + compare dx, 0 + break-if-!= + compare dy, 0 + break-if-!= + loop $main:event-loop + } + { + var dummy1/eax: int <- copy 0 + var dummy2/ecx: int <- copy 0 + dummy1, dummy2 <- draw-text-wrapping-right-then-down-over-full-screen screen, " ", 0/x, 0x10/y, 0x31/fg, 0/bg + } + { + var dummy/ecx: int <- copy 0 + dx, dummy <- draw-int32-decimal-wrapping-right-then-down-over-full-screen screen, dx, 0/x, 0x10/y, 0x31/fg, 0/bg + } + { + var dummy/eax: int <- copy 0 + dummy, dy <- draw-int32-decimal-wrapping-right-then-down-over-full-screen screen, dy, 5/x, 0x10/y, 0x31/fg, 0/bg + } + loop + } +} |