openblt

a hobby OS from the late 90s
git clone http://frotz.net/git/openblt.git
Log | Files | Refs | LICENSE

main.cpp (5114B)


      1 #include <blt/namer.h>
      2 #include <blt/syscall.h>
      3 #include <blt/conio.h>
      4 #include <blt/os.h>
      5 #include <blt/qsem.h>
      6 #include <string.h>
      7 #include "Renderer_vga.h"
      8 #include "GraphicsContext.h"
      9 #include "Window.h"
     10 #include "WindowManager.h"
     11 #include "vga.h"
     12 
     13 
     14 struct ColorMapEntry {
     15 	int red;
     16 	int green;
     17 	int blue;
     18 } colorTable[255] = {
     19 	{0, 0, 0},
     20 	{112, 219, 147},
     21 	{112, 219, 147},
     22 	{50, 204, 153},
     23 	{50, 204, 153},
     24 	{0, 0, 0},
     25 	{0, 0, 0},
     26 	{0, 0, 255},
     27 	{0, 0, 255},
     28 	{95, 159, 159},
     29 	{95, 159, 159},
     30 	{66, 66, 111},
     31 	{66, 66, 111},
     32 	{107, 35, 142},
     33 	{107, 35, 142},
     34 	{191, 216, 216},
     35 	{191, 216, 216},
     36 	{143, 143, 188},
     37 	{143, 143, 188},
     38 	{50, 50, 204},
     39 	{50, 50, 204},
     40 	{127, 0, 255},
     41 	{127, 0, 255},
     42 	{47, 47, 79},
     43 	{47, 47, 79},
     44 	{35, 35, 142},
     45 	{35, 35, 142},
     46 	{35, 35, 142},
     47 	{35, 35, 142},
     48 	{50, 153, 204},
     49 	{50, 153, 204},
     50 	{0, 127, 255},
     51 	{0, 127, 255},
     52 	{35, 107, 142},
     53 	{35, 107, 142},
     54 	{255, 127, 0},
     55 	{255, 127, 0},
     56 	{0, 255, 255},
     57 	{0, 255, 255},
     58 	{142, 35, 35},
     59 	{142, 35, 35},
     60 	{204, 127, 50},
     61 	{204, 127, 50},
     62 	{219, 219, 112},
     63 	{219, 219, 112},
     64 	{234, 234, 173},
     65 	{234, 234, 173},
     66 	{0, 255, 0},
     67 	{0, 255, 0},
     68 	{47, 79, 47},
     69 	{47, 79, 47},
     70 	{79, 79, 47},
     71 	{79, 79, 47},
     72 	{35, 142, 35},
     73 	{35, 142, 35},
     74 	{50, 204, 50},
     75 	{50, 204, 50},
     76 	{107, 142, 35},
     77 	{107, 142, 35},
     78 	{66, 111, 66},
     79 	{66, 111, 66},
     80 	{127, 255, 0},
     81 	{127, 255, 0},
     82 	{143, 188, 143},
     83 	{143, 188, 143},
     84 	{35, 142, 107},
     85 	{35, 142, 107},
     86 	{0, 255, 127},
     87 	{0, 255, 127},
     88 	{153, 204, 50},
     89 	{153, 204, 50},
     90 	{47, 79, 79},
     91 	{47, 79, 79},
     92 	{47, 79, 79},
     93 	{47, 79, 79},
     94 	{84, 84, 84},
     95 	{84, 84, 84},
     96 	{84, 84, 84},
     97 	{84, 84, 84},
     98 	{168, 168, 168},
     99 	{168, 168, 168},
    100 	{168, 168, 168},
    101 	{168, 168, 168},
    102 	{159, 159, 95},
    103 	{159, 159, 95},
    104 	{255, 0, 255},
    105 	{255, 0, 255},
    106 	{142, 35, 107},
    107 	{142, 35, 107},
    108 	{204, 50, 50},
    109 	{204, 50, 50},
    110 	{219, 112, 219},
    111 	{219, 112, 219},
    112 	{153, 50, 204},
    113 	{153, 50, 204},
    114 	{147, 112, 219},
    115 	{147, 112, 219},
    116 	{188, 143, 143},
    117 	{188, 143, 143},
    118 	{234, 173, 234},
    119 	{234, 173, 234},
    120 	{255, 0, 0},
    121 	{255, 0, 0},
    122 	{79, 47, 47},
    123 	{79, 47, 47},
    124 	{219, 112, 147},
    125 	{219, 112, 147},
    126 	{255, 0, 127},
    127 	{255, 0, 127},
    128 	{204, 50, 153},
    129 	{204, 50, 153},
    130 	{111, 66, 66},
    131 	{111, 66, 66},
    132 	{142, 107, 35},
    133 	{142, 107, 35},
    134 	{219, 147, 112},
    135 	{219, 147, 112},
    136 	{216, 191, 216},
    137 	{216, 191, 216},
    138 	{173, 234, 234},
    139 	{173, 234, 234},
    140 	{112, 147, 219},
    141 	{112, 147, 219},
    142 	{112, 219, 219},
    143 	{112, 219, 219},
    144 	{79, 47, 79},
    145 	{79, 47, 79},
    146 	{159, 95, 159},
    147 	{159, 95, 159},
    148 	{216, 216, 191},
    149 	{216, 216, 191},
    150 	{252, 252, 252},
    151 	{252, 252, 252},
    152 	{255, 255, 0},
    153 	{255, 255, 0},
    154 	{147, 219, 112},
    155 	{147, 219, 112},
    156 	{255, 255, 255},
    157 	{255, 255, 255},
    158 	{255, 255, 255},
    159 	{255, 255, 255},
    160 	{255, 255, 255},
    161 	{255, 255, 255},
    162 	{255, 255, 255},
    163 	{255, 255, 255},
    164 	{255, 255, 255},
    165 	{255, 255, 255},
    166 	{255, 255, 255},
    167 	{255, 255, 255},
    168 	{255, 255, 255},
    169 	{255, 255, 255},
    170 	{255, 255, 255},
    171 	{255, 255, 255},
    172 	{255, 255, 255},
    173 	{255, 255, 255},
    174 	{255, 255, 255},
    175 	{255, 255, 255},
    176 	{255, 255, 255},
    177 	{255, 255, 255},
    178 	{255, 255, 255},
    179 	{255, 255, 255},
    180 	{255, 255, 255},
    181 	{255, 255, 255},
    182 	{255, 255, 255},
    183 	{255, 255, 255},
    184 	{255, 255, 255},
    185 	{255, 255, 255},
    186 	{255, 255, 255},
    187 	{255, 255, 255},
    188 	{255, 255, 255},
    189 	{255, 255, 255},
    190 	{255, 255, 255},
    191 	{255, 255, 255},
    192 	{255, 255, 255},
    193 	{255, 255, 255},
    194 	{255, 255, 255},
    195 	{255, 255, 255},
    196 	{255, 255, 255},
    197 	{255, 255, 255},
    198 	{255, 255, 255},
    199 	{255, 255, 255},
    200 	{255, 255, 255},
    201 	{255, 255, 255},
    202 	{255, 255, 255},
    203 	{255, 255, 255},
    204 	{255, 255, 255},
    205 	{255, 255, 255},
    206 	{255, 255, 255},
    207 	{255, 255, 255},
    208 	{255, 255, 255},
    209 	{255, 255, 255},
    210 	{255, 255, 255},
    211 	{255, 255, 255},
    212 	{255, 255, 255},
    213 	{255, 255, 255},
    214 	{255, 255, 255},
    215 	{255, 255, 255},
    216 	{255, 255, 255},
    217 	{255, 255, 255},
    218 	{255, 255, 255},
    219 	{255, 255, 255},
    220 	{255, 255, 255},
    221 	{255, 255, 255},
    222 	{255, 255, 255},
    223 	{255, 255, 255},
    224 	{255, 255, 255},
    225 	{255, 255, 255},
    226 	{255, 255, 255},
    227 	{255, 255, 255},
    228 	{255, 255, 255},
    229 	{255, 255, 255},
    230 	{255, 255, 255},
    231 	{255, 255, 255},
    232 	{255, 255, 255},
    233 	{255, 255, 255},
    234 	{255, 255, 255},
    235 	{255, 255, 255},
    236 	{255, 255, 255},
    237 	{255, 255, 255},
    238 	{255, 255, 255},
    239 	{255, 255, 255},
    240 	{255, 255, 255},
    241 	{255, 255, 255},
    242 	{255, 255, 255},
    243 	{255, 255, 255},
    244 	{255, 255, 255},
    245 	{255, 255, 255},
    246 	{255, 255, 255},
    247 	{255, 255, 255},
    248 	{255, 255, 255},
    249 	{255, 255, 255},
    250 	{255, 255, 255},
    251 	{255, 255, 255},
    252 	{255, 255, 255},
    253 	{255, 255, 255},
    254 	{255, 255, 255},
    255 	{255, 255, 255},
    256 	{255, 255, 255},
    257 	{255, 255, 255},
    258 	{255, 255, 255},
    259 	{255, 255, 255},
    260 	{255, 255, 255},
    261 	{255, 255, 255},
    262 	{255, 255, 255},
    263 	{255, 255, 255},
    264 	{255, 255, 255},
    265 	{255, 255, 255},
    266 	{255, 255, 255},
    267 	{255, 255, 255},
    268 	{255, 255, 255},
    269 	{255, 255, 255},
    270 	{255, 255, 255},
    271 	{255, 255, 255},
    272 	{255, 255, 255},
    273 	{255, 255, 255}		// Transparent color
    274 };
    275 
    276 
    277 int main()
    278 {
    279 	InitVGA();
    280 	char *vmem = (char*) 0xa0000;
    281 	area_create(64*1024, 0, (void**) &vmem, AREA_PHYSMAP);
    282 	memset((void*) vmem, 0, 320 * 200);
    283 	
    284 	Renderer *screen = new Renderer_vga((char*) vmem, 320, 200, 320);
    285 	for (int i = 0; i < 256; i++)
    286 		SetPalette(i, colorTable[i].red, colorTable[i].green, colorTable[i].blue);
    287 
    288 	new WindowManager(screen);
    289 	return 0;
    290 }