-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApp.hx
67 lines (61 loc) · 1.47 KB
/
App.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import hlos.*;
class App {
static function main() {
Kernel.init();
Vga.setMode13();
Vga.clear(1);
for( x in 0...320 )
Vga.setPixel(x,5,x);
var mode = true;
var color = 2;
var mouseX = 160;
var mouseY = 100;
var under = Vga.getPixel(mouseX, mouseY);
var draw = false;
Mouse.onMouseButton = function(b,down) {
if( b == 0 )
draw = down;
else if( down ) {
if( b == 1 ) color++;
}
Mouse.onMouseMove(0,0);
}
Mouse.onMouseMove = function(dx,dy) {
Vga.setPixel(mouseX, mouseY, under);
mouseX += dx;
mouseY += dy;
if( mouseX < 0 ) mouseX = 0;
if( mouseY < 0 ) mouseY = 0;
if( mouseX >= 320 ) mouseX = 319;
if( mouseY >= 200 ) mouseY = 199;
if( draw )
Vga.setPixel(mouseX, mouseY, color);
under = Vga.getPixel(mouseX, mouseY);
Vga.setPixel(mouseX, mouseY, color);
};
Mouse.onMouseMove(0,0);
Keyboard.onKey = function(scan,_) {
if( scan == Keyboard.K_ESCAPE ) {
mode = !mode;
if( mode ) {
Vga.setMode13();
Vga.clear(1);
} else {
Vga.setModeText();
trace("Switching back to text mode");
}
}
};
}
static function loop() {
// this can be called as a main loop, we will wait for any interrupt
// including the timer one for which we can set the frequency
var pos = 320 * 200;
Interrupts.setTimer(100);
while( true ) {
Interrupts.wait();
pos--;
Vga.setPixel(pos%320, Std.int(pos/320), 15);
}
}
}