initial
[fpgammix.git] / workloads / hwfb.c
blob1ff90b994b770fe0b77a87b5646da2e439d90802
1 static const unsigned char chars_bitmaps[] = {
2 0x7f,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // \000
3 0x7f,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
4 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
5 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
6 0x20,0x10,0x08,0x04,0x3e,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
7 0x7f,0x41,0x63,0x55,0x49,0x55,0x63,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
8 0x00,0x01,0x02,0x04,0x48,0x50,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
9 0x1c,0x22,0x41,0x41,0x41,0x7f,0x14,0x14,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
10 0x10,0x20,0x7c,0x22,0x11,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
11 0x00,0x08,0x04,0x02,0x7f,0x02,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
12 0x7f,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
13 0x00,0x08,0x08,0x08,0x49,0x2a,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
14 0x08,0x08,0x2a,0x1c,0x08,0x49,0x2a,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
15 0x00,0x08,0x10,0x20,0x7f,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
16 0x1c,0x22,0x63,0x55,0x49,0x55,0x63,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
17 0x1c,0x22,0x41,0x41,0x49,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
18 0x7f,0x41,0x41,0x41,0x7f,0x41,0x41,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
19 0x1c,0x2a,0x49,0x49,0x4f,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
20 0x1c,0x22,0x41,0x41,0x4f,0x49,0x49,0x2a,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
21 0x1c,0x22,0x41,0x41,0x79,0x49,0x49,0x2a,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
22 0x1c,0x2a,0x49,0x49,0x79,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
23 0x00,0x11,0x0a,0x04,0x4a,0x51,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
24 0x3e,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
25 0x01,0x01,0x01,0x01,0x7f,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
26 0x7f,0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
27 0x08,0x08,0x08,0x1c,0x1c,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
28 0x3c,0x42,0x42,0x40,0x30,0x08,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
29 0x1c,0x22,0x41,0x41,0x7f,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
30 0x7f,0x49,0x49,0x49,0x79,0x41,0x41,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
31 0x7f,0x41,0x41,0x41,0x79,0x49,0x49,0x49,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x7f,0x41,0x41,0x41,0x4f,0x49,0x49,0x49,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x7f,0x49,0x49,0x49,0x4f,0x41,0x41,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' '
35 0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36 0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x1c,0x22,0x20,0x20,0x70,0x20,0x20,0x21,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
38 0x08,0x3f,0x48,0x48,0x3e,0x09,0x09,0x7e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
39 0x20,0x51,0x22,0x04,0x08,0x10,0x22,0x45,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40 0x38,0x44,0x44,0x28,0x10,0x29,0x46,0x46,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
41 0x0c,0x0c,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
42 0x04,0x08,0x10,0x10,0x10,0x10,0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
43 0x10,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
44 0x00,0x08,0x49,0x2a,0x1c,0x2a,0x49,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
45 0x00,0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x10,0x20,0x00,0x00,0x00,0x00,0x00,
47 0x00,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
48 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
49 0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
50 0x3e,0x41,0x43,0x45,0x49,0x51,0x61,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0
51 0x08,0x18,0x28,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 1
52 0x3e,0x41,0x01,0x02,0x1c,0x20,0x40,0x40,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 2
53 0x3e,0x41,0x01,0x01,0x1e,0x01,0x01,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 3
54 0x02,0x06,0x0a,0x12,0x22,0x42,0x7f,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 4
55 0x7f,0x40,0x40,0x7c,0x02,0x01,0x01,0x42,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 5
56 0x1e,0x20,0x40,0x40,0x7e,0x41,0x41,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 6
57 0x7f,0x41,0x02,0x04,0x08,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 7
58 0x3e,0x41,0x41,0x41,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 8
59 0x3e,0x41,0x41,0x41,0x3f,0x01,0x01,0x02,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 9
60 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //
61 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x10,0x20,0x00,0x00,0x00,0x00,0x00,
62 0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
63 0x00,0x00,0x00,0x3e,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
64 0x10,0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
65 0x1e,0x21,0x21,0x01,0x06,0x08,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
66 0x1e,0x21,0x4d,0x55,0x55,0x5e,0x40,0x20,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
67 0x1c,0x22,0x41,0x41,0x7f,0x41,0x41,0x41,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // A
68 0x7e,0x21,0x21,0x21,0x3e,0x21,0x21,0x21,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
69 0x1e,0x21,0x40,0x40,0x40,0x40,0x40,0x21,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
70 0x7c,0x22,0x21,0x21,0x21,0x21,0x21,0x22,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
71 0x7f,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
72 0x7f,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // F
73 0x1e,0x21,0x40,0x40,0x40,0x4f,0x41,0x21,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
74 0x41,0x41,0x41,0x41,0x7f,0x41,0x41,0x41,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
75 0x3e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // I
76 0x1f,0x04,0x04,0x04,0x04,0x04,0x04,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // J
77 0x41,0x42,0x44,0x48,0x50,0x68,0x44,0x42,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0x41,0x63,0x55,0x49,0x49,0x41,0x41,0x41,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // M
80 0x41,0x61,0x51,0x49,0x45,0x43,0x41,0x41,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
81 0x1c,0x22,0x41,0x41,0x41,0x41,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
82 0x7e,0x41,0x41,0x41,0x7e,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
83 0x1c,0x22,0x41,0x41,0x41,0x49,0x45,0x22,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Q
84 0x7e,0x41,0x41,0x41,0x7e,0x48,0x44,0x42,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
85 0x3e,0x41,0x40,0x40,0x3e,0x01,0x01,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
86 0x7f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
87 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
88 0x41,0x41,0x41,0x22,0x22,0x14,0x14,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
89 0x41,0x41,0x41,0x41,0x49,0x49,0x55,0x63,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // X
90 0x41,0x41,0x22,0x14,0x08,0x14,0x22,0x41,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
91 0x41,0x41,0x22,0x14,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
92 0x7f,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
93 0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
94 0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
95 0x3c,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
96 0x00,0x08,0x1c,0x2a,0x49,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
97 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
98 0x18,0x18,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
99 0x00,0x00,0x00,0x3c,0x02,0x3e,0x42,0x42,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
100 0x40,0x40,0x40,0x5c,0x62,0x42,0x42,0x62,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
101 0x00,0x00,0x00,0x3c,0x42,0x40,0x40,0x42,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
102 0x02,0x02,0x02,0x3a,0x46,0x42,0x42,0x46,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
103 0x00,0x00,0x00,0x3c,0x42,0x7e,0x40,0x40,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
104 0x0c,0x12,0x10,0x10,0x7c,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
105 0x00,0x00,0x00,0x3a,0x46,0x42,0x42,0x46,0x3a,0x02,0x42,0x3c,0x00,0x00,0x00,0x00,
106 0x40,0x40,0x40,0x5c,0x62,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
107 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
108 0x00,0x02,0x00,0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x22,0x1c,0x00,0x00,0x00,0x00,
109 0x40,0x40,0x40,0x44,0x48,0x50,0x68,0x44,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
110 0x18,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111 0x00,0x00,0x00,0x76,0x49,0x49,0x49,0x49,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112 0x00,0x00,0x00,0x5c,0x62,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
113 0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
114 0x00,0x00,0x00,0x5c,0x62,0x42,0x42,0x62,0x5c,0x40,0x40,0x40,0x00,0x00,0x00,0x00,
115 0x00,0x00,0x00,0x3a,0x46,0x42,0x42,0x46,0x3a,0x02,0x02,0x02,0x00,0x00,0x00,0x00,
116 0x00,0x00,0x00,0x5c,0x62,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
117 0x00,0x00,0x00,0x3c,0x42,0x30,0x0c,0x42,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
118 0x00,0x10,0x10,0x7c,0x10,0x10,0x10,0x12,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119 0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x46,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
120 0x00,0x00,0x00,0x41,0x41,0x41,0x22,0x14,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
121 0x00,0x00,0x00,0x41,0x49,0x49,0x49,0x49,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
122 0x00,0x00,0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
123 0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x46,0x3a,0x02,0x42,0x3c,0x00,0x00,0x00,0x00,
124 0x00,0x00,0x00,0x7e,0x04,0x08,0x10,0x20,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
125 0x0c,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
126 0x08,0x08,0x08,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
127 0x18,0x04,0x04,0x04,0x02,0x04,0x04,0x04,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
128 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
129 0x24,0x49,0x12,0x24,0x49,0x12,0x24,0x49,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
130 0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
131 0x00,0xcc,0xcc,0x33,0x33,0xcc,0xcc,0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
132 0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x01,0x01,
133 0x01,0x02,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x80,
134 0xff,0x7f,0x7f,0x3f,0x3f,0x1f,0x1f,0x0f,0x0f,0x07,0x07,0x03,0x03,0x01,0x01,0x01,
135 0xff,0xfe,0xfe,0xfc,0xfc,0xf8,0xf8,0xf0,0xf0,0xe0,0xe0,0xc0,0xc0,0x80,0x80,0x80,
136 0x80,0xc0,0xc0,0xe0,0xe0,0xf0,0xf0,0xf8,0xf8,0xfc,0xfc,0xfe,0xfe,0xff,0xff,0xff,
137 0x01,0x03,0x03,0x07,0x07,0x0f,0x0f,0x1f,0x1f,0x3f,0x3f,0x7f,0x7f,0xff,0xff,0xff,
138 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
139 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
140 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x20,0x10,0x08,0x04,0x02,0x01,0x01,0x01,
141 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x08,0x10,0x20,0x40,0x80,0x80,0x80,
142 0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
143 0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
144 0x00,0x7e,0x7c,0x79,0x73,0x67,0x4f,0x1f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
145 0x00,0x3f,0x1f,0x4f,0x67,0x73,0x79,0x7c,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
146 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
147 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
148 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
149 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
150 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
151 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
152 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
153 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
154 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
155 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
156 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
157 0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
158 0xf8,0x08,0x08,0x08,0x08,0x08,0x08,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
159 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
160 0x14,0x14,0x14,0x7f,0x14,0x14,0x7f,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,
161 0x00,0x00,0x00,0x6c,0x92,0x92,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
162 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
163 0x20,0x60,0x20,0x20,0x70,0x02,0x06,0x0a,0x1f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
164 0x20,0x60,0x20,0x20,0x70,0x06,0x09,0x02,0x04,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
165 0x70,0x08,0x30,0x08,0x70,0x02,0x06,0x0a,0x1f,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
166 0x00,0x00,0x00,0x00,0x31,0x4a,0x44,0x4a,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
167 0x00,0x00,0x0e,0x11,0x11,0x1e,0x11,0x11,0x1e,0x10,0x10,0x10,0x00,0x00,0x00,0x00,
168 0x00,0x00,0x00,0x00,0x00,0x41,0x22,0x14,0x08,0x14,0x14,0x08,0x00,0x00,0x00,0x00,
169 0x0e,0x10,0x10,0x0c,0x02,0x0e,0x12,0x12,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
170 0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x3d,0x20,0x20,0x20,0x20,0x00,0x00,0x00,
171 0x00,0x00,0x00,0x3f,0x54,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
172 0x00,0x00,0x08,0x14,0x14,0x22,0x22,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
173 0x7f,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
174 0x00,0x00,0x01,0x02,0x7f,0x08,0x08,0x7f,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
175 0x00,0x00,0x00,0x30,0x49,0x06,0x00,0x30,0x49,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
176 0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,
177 0x00,0x08,0x00,0x00,0x7f,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
178 0x10,0x48,0x24,0x12,0x09,0x12,0x24,0x48,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
179 0x08,0x12,0x24,0x48,0x90,0x48,0x24,0x12,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
180 0x07,0x04,0x04,0x04,0x04,0x24,0x54,0x0c,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
181 0x08,0x14,0x22,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
182 0x41,0x22,0x14,0x08,0x7f,0x08,0x3e,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
183 0x3c,0x04,0x04,0x3c,0x18,0x3c,0x7e,0xbd,0xbd,0xbd,0x3c,0x28,0x44,0x42,0x42,0xc6,
184 0x3c,0x20,0x20,0x3c,0x18,0x3c,0x7e,0xbd,0xbd,0xbd,0x3c,0x14,0x22,0x42,0x42,0x63,
185 0x3c,0x24,0x24,0x3c,0x18,0xff,0xb5,0xad,0xb5,0xad,0x3c,0x24,0x24,0x24,0x24,0x66,
186 0x00,0x00,0x3e,0x41,0x41,0x41,0x41,0x41,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
187 0x00,0x00,0x3e,0x7f,0x7f,0x7f,0x7f,0x7f,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
188 0xff,0xff,0xc3,0x81,0x81,0x81,0x81,0xc3,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
189 0xff,0xff,0xc3,0xbd,0xbd,0xbd,0xbd,0xc3,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
190 0x10,0x38,0x7c,0xfe,0xfe,0x54,0x10,0x10,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
191 0x44,0xee,0xfe,0x7c,0x7c,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
192 0x10,0x38,0x38,0x7c,0xfe,0x7c,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
193 0x38,0x38,0xfe,0xfe,0x10,0x10,0x10,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
194 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
195 0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
196 0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
197 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
198 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
199 0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
200 0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
201 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
202 0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
203 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
204 0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
205 0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
206 0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
207 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
208 0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
209 0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
210 0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
211 0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
212 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
213 0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
214 0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
215 0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
216 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
217 0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
218 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
219 0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,
220 0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
221 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
222 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
223 0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
224 0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
225 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
226 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
227 0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
228 0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
229 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
230 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
231 0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
232 0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
233 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
234 0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
235 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
236 0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
237 0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
238 0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
239 0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
240 0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
241 0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,
242 0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
243 0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
244 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
245 0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
246 0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
247 0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
248 0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
249 0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
250 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
251 0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
252 0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
253 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
254 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
255 0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,
256 0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
257 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
260 #define W (640 / 8)
262 // As long as we stay in the first segment, we won't have to deal with the crazy segments.
263 static unsigned char *fb = (unsigned char *) (128 * 1024);
264 static unsigned long x = 0;
265 static unsigned long y = 0;
267 #define IOSPACE ((volatile int *) 0x1000000000000ULL)
269 static void serialout(int ch)
271 while (IOSPACE[1])
273 IOSPACE[0] = ch;
277 static void putchar(char ch)
279 unsigned char *d = fb + x + 16 * W * y;
280 unsigned char *s = chars_bitmaps + 16*(unsigned char)ch;
281 unsigned i;
283 if (ch >= ' ') {
284 for (i = 0; i < 16; ++i, d += W, ++s) {
285 *d = *s;
286 // printf("%x\n", p[i]);
288 ++x;
291 if (x == 80 || ch == '\n') {
292 x = 0;
293 ++y;
294 if (y == 30) {
295 y = 29;
296 for (i = 0; i < 10 * (480 - 16); ++i)
297 ((long *)fb)[i] = ((long *)fb)[i + 160];
298 for (; i < 10 * 480; ++i)
299 ((long *)fb)[i] = 0;
304 static void puts(char *s)
306 while (*s)
307 putchar(*s++);
310 void puthex(int d, unsigned long v)
312 if (d > 1) puthex(d - 1, v >> 4);
313 putchar("0123456789abcdef"[v & 15]);
316 #define set_fbaddr0(x) IOSPACE[21] = (x)
318 main()
320 int i;
321 set_fbaddr0(fb);
322 serialout('I');
323 serialout('n');
324 serialout(' ');
325 serialout('h');
326 serialout('w');
327 serialout('-');
328 serialout('r');
329 serialout('\r');
330 serialout('\n');
331 x = 0; y = 0;
332 putchar('X');
333 // for (i = 0; i < 640 * 480 / 32; ++i)
334 // ((int *)fb)[i] = 0;
335 puts(" Hello MMIX World! ");
337 for (i = 0; i < 10000; ++i) {
338 putchar(' ');
339 puthex(4, i);
341 puts("\nOk, let's double numbers:");
342 for (i = 0; i < 100; ++i) {
343 putchar(' ');
344 puthex(4, i*i);
346 puts("\n\n *** The End *** \n\n");
347 puts(" // 71. Install operand fields.\n"
348 " if (0 /* resuming && rop != RESUME_AGAIN */) begin\n"
349 " /* 126. Install special operands when resuming an interrupted\n"
350 " operation */\n"
351 " end else begin\n"
352 " if (f & X_is_source_bit) begin\n"
353 " // 74. Set b from register X\n"
354 " b = regfile_rddata_a;\n"
355 " if(V)$display(\"%05d ** regfile a -> b = #%1x\", $time, b);\n"
356 " end\n"
357 " // XXX if (info[op].third_operand) <set b from special register 79>;\n"
358 " if (f & Z_is_immed_bit) begin\n"
359 " z = zz; //$display(\"%05d ** z = zz\", $time);\n"
360 " end else if (f & Z_is_source_bit) begin\n");
361 puts("\nTODO: figure out why libc doesn't run correctly...");