#include #define MODE_0 0x0 #define MODE_1 0x1 #define MODE_2 0x2 #define MODE_3 0x3 #define BG2_ENABLE 0x400 #define RGB(r,g,b) (unsigned short)(r + (g << 5) + (b << 10)) MULTIBOOT unsigned short* videoBuffer = (unsigned short*)0x6000000; void drawPixel (int x, int y, unsigned short colour); void rectFill (int startX, int startY, int endX, int endY, unsigned short colour); void drawPixel (int x, int y, unsigned short colour) { videoBuffer[y * 240 + x] = colour; } void rectFill (int startX, int startY, int endX, int endY, unsigned short colour) { int row, col; for (row = startX; row <= endX; row++) { for (col = startY; col <= endY; col++) { drawPixel(row, col, colour); } } } int main() { int row, col; unsigned short colour; bool rowFirst = 1, flip = 1; REG_DISPCNT = (MODE_3 | BG2_ENABLE); for (row = 0; row < 160; row += 20) { flip = rowFirst; for (col = 0; col < 240; col += 20) { if (flip) { colour = RGB(0, 0, 255); } else { colour = RGB(0, 255, 0); } rectFill(col, row, (col + 19), (row + 19), colour); flip = !flip; } rowFirst = !rowFirst; } while (TRUE) { } return 0; } /* END OF FILE */