/*
@author: jduranmaster
*/
/*En el ejemplo trabajamos con el modo grafico 3 de GBA. este modo grafico tiene un tamqaño de 240x160,
donde cada pixel tiene 16 bits.*/
//definimos la macro.
#define RGB16(r,g,b) ((r)+(g<<5)+(b<<10))
/*vemos que el comportamiento de la macro definida es coger el color azul y desplazarlo 10 bits, coger el color verde y
desplazarlo 5 bits, para finalmente añadir el valor del color rojo. Los valores a utilizar estan dentro del rango 0..31 ya que
2^5 = 32.
*/
int main()
{
char x,y;
unsigned short* Screen = (unsigned short*)0x6000000;
*(unsigned long*)0x4000000 = 0x403; // modo gráfico 3, bg2 on
// con esto rellenamos la pantalla de color azul.
for(x = 0; x<240;x++){
for(y = 0; y<160; y++){
Screen[x+y*240] = RGB16(0,0,15);
}//fin del for de Y.
}//fin del for de X.
//pintamos una J.
x=35;y=39;Screen[x+y*240] = RGB16(31,31,31); x=35;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=37;Screen[x+y*240] = RGB16(31,31,31); x=35;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=35;Screen[x+y*240] = RGB16(31,31,31); x=35;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=33;Screen[x+y*240] = RGB16(31,31,31); x=35;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=31;Screen[x+y*240] = RGB16(31,31,31); x=35;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=29;Screen[x+y*240] = RGB16(31,31,31); x=35;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=35;y=27;Screen[x+y*240] = RGB16(31,31,31); x=35;y=26;Screen[x+y*240] = RGB16(31,31,31);
for (x = 20; x < 35; x++)
Screen[x+40*240] = RGB16(31,31,31);
//pintamos una D
x=40;y=39;Screen[x+y*240] = RGB16(31,31,31); x=40;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=37;Screen[x+y*240] = RGB16(31,31,31); x=40;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=35;Screen[x+y*240] = RGB16(31,31,31); x=40;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=33;Screen[x+y*240] = RGB16(31,31,31); x=40;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=31;Screen[x+y*240] = RGB16(31,31,31); x=40;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=29;Screen[x+y*240] = RGB16(31,31,31); x=40;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=40;y=27;Screen[x+y*240] = RGB16(31,31,31); x=40;y=26;Screen[x+y*240] = RGB16(31,31,31);
for (x = 40; x < 48; x++)
Screen[x+40*240] = RGB16(31,31,31);
x=48;y=37;Screen[x+y*240] = RGB16(31,31,31); x=48;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=48;y=35;Screen[x+y*240] = RGB16(31,31,31); x=48;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=48;y=33;Screen[x+y*240] = RGB16(31,31,31); x=48;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=48;y=31;Screen[x+y*240] = RGB16(31,31,31); x=48;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=48;y=29;Screen[x+y*240] = RGB16(31,31,31); x=48;y=28;Screen[x+y*240] = RGB16(31,31,31);
for (x = 40; x < 48; x++)
Screen[x+25*240] = RGB16(31,31,31);
//pintamos una U
x=53;y=39;Screen[x+y*240] = RGB16(31,31,31); x=53;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=37;Screen[x+y*240] = RGB16(31,31,31); x=53;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=35;Screen[x+y*240] = RGB16(31,31,31); x=53;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=33;Screen[x+y*240] = RGB16(31,31,31); x=53;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=31;Screen[x+y*240] = RGB16(31,31,31); x=53;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=29;Screen[x+y*240] = RGB16(31,31,31); x=53;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=53;y=27;Screen[x+y*240] = RGB16(31,31,31); x=53;y=26;Screen[x+y*240] = RGB16(31,31,31);
for (x = 53; x < 61; x++)
Screen[x+40*240] = RGB16(31,31,31);
x=61;y=39;Screen[x+y*240] = RGB16(31,31,31); x=61;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=37;Screen[x+y*240] = RGB16(31,31,31); x=61;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=35;Screen[x+y*240] = RGB16(31,31,31); x=61;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=33;Screen[x+y*240] = RGB16(31,31,31); x=61;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=31;Screen[x+y*240] = RGB16(31,31,31); x=61;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=29;Screen[x+y*240] = RGB16(31,31,31); x=61;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=61;y=27;Screen[x+y*240] = RGB16(31,31,31); x=61;y=26;Screen[x+y*240] = RGB16(31,31,31);
//pintamos una R
x=66;y=39;Screen[x+y*240] = RGB16(31,31,31); x=66;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=37;Screen[x+y*240] = RGB16(31,31,31); x=66;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=35;Screen[x+y*240] = RGB16(31,31,31); x=66;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=33;Screen[x+y*240] = RGB16(31,31,31); x=66;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=31;Screen[x+y*240] = RGB16(31,31,31); x=66;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=29;Screen[x+y*240] = RGB16(31,31,31); x=66;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=27;Screen[x+y*240] = RGB16(31,31,31); x=66;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=40;Screen[x+y*240] = RGB16(31,31,31);
for (x = 66; x < 74; x++)
Screen[x+25*240] = RGB16(31,31,31);
for (x = 66; x < 74; x++)
Screen[x+32*240] = RGB16(31,31,31);
x=74;y=32;Screen[x+y*240] = RGB16(31,31,31); x=74;y=31;Screen[x+y*240] = RGB16(31,31,31);
x=74;y=30;Screen[x+y*240] = RGB16(31,31,31); x=74;y=29;Screen[x+y*240] = RGB16(31,31,31);
x=74;y=28;Screen[x+y*240] = RGB16(31,31,31); x=74;y=27;Screen[x+y*240] = RGB16(31,31,31);
x=74;y=26;Screen[x+y*240] = RGB16(31,31,31); x=74;y=25;Screen[x+y*240] = RGB16(31,31,31);
x=66;y=32;Screen[x+y*240] = RGB16(31,31,31); x=67;y=33;Screen[x+y*240] = RGB16(31,31,31);
x=68;y=34;Screen[x+y*240] = RGB16(31,31,31); x=69;y=35;Screen[x+y*240] = RGB16(31,31,31);
x=70;y=36;Screen[x+y*240] = RGB16(31,31,31); x=71;y=37;Screen[x+y*240] = RGB16(31,31,31);
x=72;y=38;Screen[x+y*240] = RGB16(31,31,31); x=73;y=39;Screen[x+y*240] = RGB16(31,31,31);
x=74;y=40;Screen[x+y*240] = RGB16(31,31,31);
//pintamos una A
x=79;y=39;Screen[x+y*240] = RGB16(31,31,31); x=79;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=37;Screen[x+y*240] = RGB16(31,31,31); x=79;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=35;Screen[x+y*240] = RGB16(31,31,31); x=79;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=33;Screen[x+y*240] = RGB16(31,31,31); x=79;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=31;Screen[x+y*240] = RGB16(31,31,31); x=79;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=29;Screen[x+y*240] = RGB16(31,31,31); x=79;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=27;Screen[x+y*240] = RGB16(31,31,31); x=79;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=79;y=40;Screen[x+y*240] = RGB16(31,31,31);
for (x = 79; x < 87; x++)
Screen[x+25*240] = RGB16(31,31,31);
for (x = 79; x < 87; x++)
Screen[x+32*240] = RGB16(31,31,31);
x=87;y=39;Screen[x+y*240] = RGB16(31,31,31); x=87;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=37;Screen[x+y*240] = RGB16(31,31,31); x=87;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=35;Screen[x+y*240] = RGB16(31,31,31); x=87;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=33;Screen[x+y*240] = RGB16(31,31,31); x=87;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=31;Screen[x+y*240] = RGB16(31,31,31); x=87;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=29;Screen[x+y*240] = RGB16(31,31,31); x=87;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=27;Screen[x+y*240] = RGB16(31,31,31); x=87;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=87;y=40;Screen[x+y*240] = RGB16(31,31,31);
//pintamos una N
x=93;y=39;Screen[x+y*240] = RGB16(31,31,31); x=93;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=37;Screen[x+y*240] = RGB16(31,31,31); x=93;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=35;Screen[x+y*240] = RGB16(31,31,31); x=93;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=33;Screen[x+y*240] = RGB16(31,31,31); x=93;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=31;Screen[x+y*240] = RGB16(31,31,31); x=93;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=29;Screen[x+y*240] = RGB16(31,31,31); x=93;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=27;Screen[x+y*240] = RGB16(31,31,31); x=93;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=40;Screen[x+y*240] = RGB16(31,31,31);
x=93;y=25;Screen[x+y*240] = RGB16(31,31,31); x=94;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=95;y=27;Screen[x+y*240] = RGB16(31,31,31); x=96;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=97;y=29;Screen[x+y*240] = RGB16(31,31,31); x=98;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=99;y=31;Screen[x+y*240] = RGB16(31,31,31); x=100;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=101;y=33;Screen[x+y*240] = RGB16(31,31,31); x=102;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=103;y=35;Screen[x+y*240] = RGB16(31,31,31); x=104;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=105;y=37;Screen[x+y*240] = RGB16(31,31,31); x=106;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=107;y=39;Screen[x+y*240] = RGB16(31,31,31); x=108;y=40;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=39;Screen[x+y*240] = RGB16(31,31,31); x=108;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=37;Screen[x+y*240] = RGB16(31,31,31); x=108;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=35;Screen[x+y*240] = RGB16(31,31,31); x=108;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=33;Screen[x+y*240] = RGB16(31,31,31); x=108;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=31;Screen[x+y*240] = RGB16(31,31,31); x=108;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=29;Screen[x+y*240] = RGB16(31,31,31); x=108;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=27;Screen[x+y*240] = RGB16(31,31,31); x=108;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=108;y=40;Screen[x+y*240] = RGB16(31,31,31); x=108;y=25;Screen[x+y*240] = RGB16(31,31,31);
//pintamos "-"
for (x = 113; x < 121; x++)
Screen[x+32*240] = RGB16(31,31,31);
// pintamos "2010"
for (x = 126; x < 134; x++)
Screen[x+32*240] = RGB16(31,31,31);
x=126;y=39;Screen[x+y*240] = RGB16(31,31,31); x=126;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=126;y=37;Screen[x+y*240] = RGB16(31,31,31); x=126;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=126;y=35;Screen[x+y*240] = RGB16(31,31,31); x=126;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=126;y=33;Screen[x+y*240] = RGB16(31,31,31); x=126;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=134;y=31;Screen[x+y*240] = RGB16(31,31,31); x=134;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=134;y=29;Screen[x+y*240] = RGB16(31,31,31); x=134;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=134;y=27;Screen[x+y*240] = RGB16(31,31,31); x=134;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=134;y=40;Screen[x+y*240] = RGB16(31,31,31); x=134;y=25;Screen[x+y*240] = RGB16(31,31,31);
for (x = 126; x < 134; x++)
Screen[x+40*240] = RGB16(31,31,31);
for (x = 126; x < 134; x++)
Screen[x+25*240] = RGB16(31,31,31);
x=139;y=39;Screen[x+y*240] = RGB16(31,31,31); x=139;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=37;Screen[x+y*240] = RGB16(31,31,31); x=139;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=35;Screen[x+y*240] = RGB16(31,31,31); x=139;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=33;Screen[x+y*240] = RGB16(31,31,31); x=139;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=31;Screen[x+y*240] = RGB16(31,31,31); x=139;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=29;Screen[x+y*240] = RGB16(31,31,31); x=139;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=27;Screen[x+y*240] = RGB16(31,31,31); x=139;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=139;y=40;Screen[x+y*240] = RGB16(31,31,31); x=139;y=25;Screen[x+y*240] = RGB16(31,31,31);
for (x = 139; x < 147; x++)
Screen[x+25*240] = RGB16(31,31,31);
for (x = 139; x < 147; x++)
Screen[x+40*240] = RGB16(31,31,31);
x=147;y=39;Screen[x+y*240] = RGB16(31,31,31); x=147;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=37;Screen[x+y*240] = RGB16(31,31,31); x=147;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=35;Screen[x+y*240] = RGB16(31,31,31); x=147;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=33;Screen[x+y*240] = RGB16(31,31,31); x=147;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=31;Screen[x+y*240] = RGB16(31,31,31); x=147;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=29;Screen[x+y*240] = RGB16(31,31,31); x=147;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=27;Screen[x+y*240] = RGB16(31,31,31); x=147;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=147;y=40;Screen[x+y*240] = RGB16(31,31,31); x=147;y=25;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=39;Screen[x+y*240] = RGB16(31,31,31); x=152;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=37;Screen[x+y*240] = RGB16(31,31,31); x=152;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=35;Screen[x+y*240] = RGB16(31,31,31); x=152;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=33;Screen[x+y*240] = RGB16(31,31,31); x=152;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=31;Screen[x+y*240] = RGB16(31,31,31); x=152;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=29;Screen[x+y*240] = RGB16(31,31,31); x=152;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=27;Screen[x+y*240] = RGB16(31,31,31); x=152;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=152;y=40;Screen[x+y*240] = RGB16(31,31,31); x=152;y=25;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=39;Screen[x+y*240] = RGB16(31,31,31); x=157;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=37;Screen[x+y*240] = RGB16(31,31,31); x=157;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=35;Screen[x+y*240] = RGB16(31,31,31); x=157;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=33;Screen[x+y*240] = RGB16(31,31,31); x=157;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=31;Screen[x+y*240] = RGB16(31,31,31); x=157;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=29;Screen[x+y*240] = RGB16(31,31,31); x=157;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=27;Screen[x+y*240] = RGB16(31,31,31); x=157;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=157;y=40;Screen[x+y*240] = RGB16(31,31,31); x=157;y=25;Screen[x+y*240] = RGB16(31,31,31);
for (x = 157; x < 165; x++)
Screen[x+25*240] = RGB16(31,31,31);
for (x = 157; x < 165; x++)
Screen[x+40*240] = RGB16(31,31,31);
x=165;y=39;Screen[x+y*240] = RGB16(31,31,31); x=165;y=38;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=37;Screen[x+y*240] = RGB16(31,31,31); x=165;y=36;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=35;Screen[x+y*240] = RGB16(31,31,31); x=165;y=34;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=33;Screen[x+y*240] = RGB16(31,31,31); x=165;y=32;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=31;Screen[x+y*240] = RGB16(31,31,31); x=165;y=30;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=29;Screen[x+y*240] = RGB16(31,31,31); x=165;y=28;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=27;Screen[x+y*240] = RGB16(31,31,31); x=165;y=26;Screen[x+y*240] = RGB16(31,31,31);
x=165;y=40;Screen[x+y*240] = RGB16(31,31,31); x=165;y=25;Screen[x+y*240] = RGB16(31,31,31);
for (x = 25; x < 165; x++)
Screen[x+50*240] = RGB16(31,31,31);
for (x = 25; x < 165; x++)
Screen[x+20*240] = RGB16(31,31,31);
while(1){}//bucle infinito
}//fin de programa
Marcadores