#include "syscall.h" void Clear_(void) { } void gpuInit(void) { SendGPU(0); /* GPUリセット ? */ Clear_(); SendGPU(0x03000000); /* 表示マスク (表示有効) */ Clear_(); SendGPU(0x06c60260); /* スクリーン水平開始/終了 (0/256) */ Clear_(); SendGPU(0x07040010); /* スクリーン垂直開始/終了 (0/240) */ Clear_(); GPU_cw(0xe1000400); /* 描画モード(表示領域に描画 ディザなし tpage0)*/ Clear_(); GPU_cw(0xe3000000); /* 描画領域始点 (0,0) */ Clear_(); GPU_cw(0xe407ffff); /* 描画領域終点 (1023,511) */ Clear_(); GPU_cw(0xe5000000); /* 描画オフセット (0,0) */ Clear_(); SendGPU(0x08000000); /* 表示モード 256x240/NTSC/ノンインターレース */ } void test(void) { struct { unsigned char r0,g0,b0,code; short x0,y0; short w,h; } boxf = { 0,0,0,0x02, //黒 0,0, 256,240 }; struct { unsigned char r0,g0,b0,code; short x0,y0; short x1,y1; short x2,y2; } polyF3 = { 255,0,0,0x20, //赤 50,0, 0,100, 100,100 }; struct { unsigned char r0,g0,b0,code; short x0,y0; unsigned char r1,g1,b1,pad1; short x1,y1; unsigned char r2,g2,b2,pad2; short x2,y2; } polyG3 = { 255,0,0,0x30, //赤 150,0, 0,255,0,0, //緑 100,100, 0,0,255,0, //青 200,100 }; GPU_cwb(&boxf,sizeof(boxf)/sizeof(long)); /* 背景塗りつぶし */ GPU_cwb(&polyF3,sizeof(polyF3)/sizeof(long)); /* フラット三角形 */ GPU_cwb(&polyG3,sizeof(polyG3)/sizeof(long)); /* グロー三角形 */ } int main(int argc,char **argv) { gpuInit(); test(); for(;;) ; }