// 遅くなってスマソ

typedef unsigned short int u16;
typedef unsigned int u32;

u32 pat[40]={
  0x01110101, 0x00010101, 0x00110111, 0x00010101,
  0x01110101, 0x00000000, 0x00000000, 0x00000000,
  0x11001001, 0x01001001, 0x01001001, 0x01001001,
  0x11011011, 0x00000000, 0x00000000, 0x00000000,
  0x10101001, 0x10101001, 0x10101001, 0x10101001,
  0x11111001, 0x00000000, 0x00000000, 0x00000000,
  0x11101110, 0x10101010, 0x01101010, 0x10101010,
  0x10101110, 0x00000000, 0x00000000, 0x00000000,
  0x00110010, 0x01010010, 0x01010010, 0x01010010,
  0x00110110, 0x00000000, 0x00000000, 0x00000000 };

int main(void)
{
  u16 i;
  *(u16*)0x4000000=0x0100; *(u16*)0x4000008=0x0004; *(u16*)0x5000002 = 0x7fff;
  for(i=0;i<40; i++)*(u32*)(0x6004020+i*4)=pat[i]; for(i=1; i<6; i++)*(u16*)(0x6000210+i*2)=i;
  while(1)for(i=256;i>1;i--){*(u16*)0x4000010=i;while(*(volatile u16*)0x4000004&1);while(!(*(volatile u16*)0x4000004&1));}
}