blob: cd666b9a8b6759a28a103ee47c2065f3eb38eb0c (
plain)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#define SK_MAX 256
#define SK_NL 13
#define SK_BS 8
#define SK_SHIFT 160
#define SK_A 65
#define SK_B 66
#define SK_C 67
#define SK_D 68
#define SK_E 69
#define MS_LEFT 1
#define MS_RIGHT 2
#define MS_MIDDLE 4
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define SCREEN_MAX 128 * 64
#define true 1
#define false 0
#define COLOR_BLACK 8
#define COLOR_RED 1
#define COLOR_GREEN 2
#define COLOR_BLUE 3
#define COLOR_TRANSPARENT 0
int setPixel(int x, int y, int c)
{
char* screenStart = 0x402F;
int i = (y * SCREEN_WIDTH) + x;
screenStart[i] = c;
}
int setPixel(int i, int c)
{
char* screenStart = 0x402F;
screenStart[i] = c;
}
int clear(int c)
{
char* screenStart = 0x402F;
for (int i = 0; i < SCREEN_MAX; i++)
{
screenStart[i] = c;
}
}
int getKeyState(int scanCode)
{
char* hid = 0x6033;
int index = scanCode / 8;
int bit = scanCode % 8;
int val = hid[index - 1];
return (val & (1 << bit)) != 0;
}
int getPressedKey()
{
for (int sk = 0; sk < SK_MAX; sk++)
{
if (getKeyState(sk) && sk != SK_SHIFT)
return sk;
}
return 0;
}
int readKey()
{
while (true)
{
int sk = getPressedKey();
if (sk != 0)
return sk;
}
}
int getMouseIndex()
{
return *(0x602F);
}
int getMouseState()
{
return *(0x602F + 2);
}
|