8 static uint16_t *framebuf;
16 nmodes = video_mode_count();
17 printf("%d video modes found:\n", nmodes);
18 for(i=0; i<nmodes; i++) {
19 if(video_mode_info(i, &vi) == -1) {
22 printf(" %04x: %dx%d %d bpp", vi.mode, vi.width, vi.height, vi.bpp);
24 printf(" (%d%d%d)\n", vi.rbits, vi.gbits, vi.bbits);
30 if(!(framebuf = set_video_mode(find_video_mode(640, 480, 16)))) {
33 get_color_bits(&vi.rbits, &vi.gbits, &vi.bbits);
34 get_color_shift(&vi.rshift, &vi.gshift, &vi.bshift);
35 get_color_mask(&vi.rmask, &vi.gmask, &vi.bmask);
38 for(i=0; i<480; i++) {
39 for(j=0; j<640; j++) {
41 uint16_t r = xor & 0xff;
42 uint16_t g = (xor << 1) & 0xff;
43 uint16_t b = (xor << 2) & 0xff;
49 *fbptr++ = ((r << vi.rshift) & vi.rmask) | ((g << vi.gshift) & vi.gmask) |
50 ((b << vi.bshift) & vi.bmask);
54 while(kb_getkey() != -1);
55 while(kb_getkey() == -1) {