// 型情報
typedef unsigned char u8;
typedef unsigned short u16;
// 制御レジスタ情報
#define VRAMTOP (u16*)0x6000000 // VRAM frame buffer top address
#define register(p) *((u16*) p) // I/O register handling macro
#define LCD_CTRL 0x04000000 // LCD control
#define LCD_BG2EN 0x0400 // Enable BG2
#define LCD_MODE3 3 // Video mode 3
#define RGB(r, g, b) (((b) << 10) + ((g) << 5) + (r))
// ブートケーブルからも実行できるようにするおまじない
int __gba_multiboot = 0; // マルチブート指定
// メインプログラム
int main(void)
{
u8 x, y;
u16* vram = VRAMTOP; // Use VRAM as a frame buffer
// 画面モードの初期化
register(LCD_CTRL) = LCD_BG2EN | LCD_MODE3; // Mode3, BG2 表示
// 赤青緑のカラーパターン描画
for (x=0; x<80; x++) {
for (y=0; y<160; y++) {
vram[y*240+x] = RGB(31, 0, 0); // put Red dot
vram[y*240+x+80] = RGB(0, 31, 0); // put Green dot
vram[y*240+x+160] = RGB(0, 0, 31); // put Blue dot
}
}
// 無限ループ
while (1) {
;
}
}
どうでもいい話ですが、C 言語の前身に B 言語があります。
B 言語があって、C 言語ですよ。 ちょっと卑猥ですね。
どうでもいい話ですが、C 言語の書き手をシーゲンガーと呼ぶと、ちょっと強そうな感じしませんか?
多分、レイバーのような土木作業用ロボット ALGO を発展させて、ゲンガープロトタイプ・ビーゲンガーが作られて、量産モデルのシーゲンガーが作られたんだと思います。
で、やっぱりシーゲンガー99が最終モデルですか?
もう何言ってるんでしょうね。 私。