#include <stdio.h>
#include <system.h>
#include <io.h>
#include <bg.h>
#include <DEFENCE.h>
#include <HEAVY_P1.h>
#include <HEAVY_P2.h>
#include <HEAVY_P3.h>
#include <LIGHT_K.h>
#include <LIGHT_P.h>
#include <LOW1.h>
#include <LOW2.h>
#include <LOWK1.h>
#include <LOWK2.h>
#include <LOWP1.h>
#include <LOWP2.h>
#include <LOWP3.h>
#include <LOWP4.h>
#include <LOWP5.h>
#include <STANDBY.h>
#include <WALK1.h>
#include <WALK2.h>
#include <WALK3.h>
#include <WALK4.h>
#include <WALK5.h>
#include <WALK6.h>
#include <WOUND.h>

#include <down_p1.h>
#include <down_p2.h>
#include <down_p3.h>
#include <high_k1.h>
#include <high_k2.h>
#include <jump.h>
#include <jump_down_p.h>
#include <jump_low.h>
#include <jump_p1.h>
#include <jump_p2.h>
#include <jump_p3.h>
#include <knock_down.h>
#include <loss.h>
#include <low_heavy_k.h>
#include <rush.h>
#include <wave1_1.h>
#include <wave1_2.h>
#include <wave1_3.h>
#include <wave1_4.h>
#include <wave2_1.h>
#include <wave2_2.h>

#include <d0.h>
#include <d1.h>
#include <d2.h>
#include <d3.h>
#include <d4.h>
#include <d5.h>
#include <d6.h>
#include <d7.h>
#include <d8.h>
#include <d9.h>
#include <hp.h>
#include <hp_b.h>
#include <winner.h>
#include <p1.h>
#include <p2.h>
#include <inf.h>

#define IOWR_SRAM_DATA(base, offset, data) \
IOWR_16DIRECT(base, (offset) * 2, data)

int main()
{
    int i, offset;
    offset = 0;
    
    for (i = offset; i<76800+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, BG[i-offset]);
    offset = i;   printf("BG: %d\n",offset);  //Print the intial address for BG   
    
    for (i = offset; i<2400+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, DEFENCE[i-offset]);
    offset = i;   printf("DEFENCE: %d\n",offset);  //Print the intial address for DEFENCE

    for (i = offset; i<4950+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, HEAVY_P1[i-offset]);
    offset = i;   printf("HEAVY_P1: %d\n",offset);  //Print the intial address for HEAVY_P1
    
    for (i = offset; i<4950+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, HEAVY_P2[i-offset]);
    offset = i;   printf("HEAVY_P2: %d\n",offset);  //Print the intial address for HEAVY_P2
    
    for (i = offset; i<4950+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, HEAVY_P3[i-offset]);
    offset = i;   printf("HEAVY_P3: %d\n",offset);  //Print the intial address for HEAVY_P3
    
    for (i = offset; i<3150+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LIGHT_K[i-offset]);
    offset = i;   printf("LIGHT_K: %d\n",offset);  //Print the intial address for LIGHT_K
    
    for (i = offset; i<2850+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LIGHT_P[i-offset]);
    offset = i;   printf("LIGHT_P: %d\n",offset);  //Print the intial address for LIGHT_P
    
    for (i = offset; i<2090+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOW1[i-offset]);
    offset = i;   printf("LOW1: %d\n",offset);  //Print the intial address for LOW1
    
    for (i = offset; i<2090+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOW2[i-offset]);
    offset = i;   printf("LOW2: %d\n",offset);  //Print the intial address for LOW2
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWK1[i-offset]);
    offset = i;   printf("LOWK1: %d\n",offset);  //Print the intial address for LOWK1
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWK2[i-offset]);
    offset = i;   printf("LOWK2: %d\n",offset);  //Print the intial address for LOWK2
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWP1[i-offset]);
    offset = i;   printf("LOWP1: %d\n",offset);  //Print the intial address for LOWP1
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWP2[i-offset]);
    offset = i;   printf("LOWP2: %d\n",offset);  //Print the intial address for LOWP2
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWP3[i-offset]);
    offset = i;   printf("LOWP3: %d\n",offset);  //Print the intial address for LOWP3
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWP4[i-offset]);
    offset = i;   printf("LOWP4: %d\n",offset);  //Print the intial address for LOWP4
    
    for (i = offset; i<3080+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, LOWP5[i-offset]);
    offset = i;   printf("LOWP5: %d\n",offset);  //Print the intial address for LOWP5
    
    for (i = offset; i<2250+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, STANDBY[i-offset]);
    offset = i;   printf("STANDBY: %d\n",offset);  //Print the intial address for STANDBY
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK1[i-offset]);
    offset = i;   printf("WALK1: %d\n",offset);  //Print the intial address for WALK1
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK2[i-offset]);
    offset = i;   printf("WALK2: %d\n",offset);  //Print the intial address for WALK2
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK3[i-offset]);
    offset = i;   printf("WALK3: %d\n",offset);  //Print the intial address for WALK3
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK4[i-offset]);
    offset = i;   printf("WALK4: %d\n",offset);  //Print the intial address for WALK4
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK5[i-offset]);
    offset = i;   printf("WALK5: %d\n",offset);  //Print the intial address for WALK5
    
    for (i = offset; i<2550+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WALK6[i-offset]);
    offset = i;   printf("WALK6: %d\n",offset);  //Print the intial address for WALK6
    
    for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
    for (i = offset; i<4050+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, down_p1[i-offset]);
    offset = i;   printf("DOWN_P1: %d\n",offset);  //Print the intial address for DOWN_P1
    
    for (i = offset; i<4050+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, down_p2[i-offset]);
    offset = i;   printf("DOWN_P2: %d\n",offset);  //Print the intial address for DOWN_P2
    
    for (i = offset; i<4050+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, down_p3[i-offset]);
    offset = i;   printf("DOWN_P3: %d\n",offset);  //Print the intial address for DOWN_P3
    
    for (i = offset; i<5100+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, high_k1[i-offset]);
    offset = i;   printf("HIGH_K1: %d\n",offset);  //Print the intial address for HIGH_K1
    
    for (i = offset; i<5100+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, high_k2[i-offset]);
    offset = i;   printf("HIGH_K2: %d\n",offset);  //Print the intial address for HIGH_K2
        
    for (i = offset; i<2106+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, jump[i-offset]);
    offset = i;   printf("JUMP: %d\n",offset);  //Print the intial address for JUMP
    
    for (i = offset; i<2280+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
    for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
        for (i = offset; i<2700+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, WOUND[i-offset]);
    offset = i;   printf("WOUND: %d\n",offset);  //Print the intial address for WOUND
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d0[i-offset]);
    offset = i;   printf("d0: %d\n",offset);  //Print the intial address for d0
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d1[i-offset]);
    offset = i;   printf("d1: %d\n",offset);  //Print the intial address for d1
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d2[i-offset]);
    offset = i;   printf("d2: %d\n",offset);  //Print the intial address for d2
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d3[i-offset]);
    offset = i;   printf("d3: %d\n",offset);  //Print the intial address for d3
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d4[i-offset]);
    offset = i;   printf("d4: %d\n",offset);  //Print the intial address for d4
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d5[i-offset]);
    offset = i;   printf("d5: %d\n",offset);  //Print the intial address for d5
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d6[i-offset]);
    offset = i;   printf("d6: %d\n",offset);  //Print the intial address for d6
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d7[i-offset]);
    offset = i;   printf("d7: %d\n",offset);  //Print the intial address for d7
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d8[i-offset]);
    offset = i;   printf("d8: %d\n",offset);  //Print the intial address for d8
    
    for (i = offset; i<624+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, d9[i-offset]);
    offset = i;   printf("d9: %d\n",offset);  //Print the intial address for d9
    
    for (i = offset; i<3410+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, hp[i-offset]);
    offset = i;   printf("hp: %d\n",offset);  //Print the intial address for hp
    
    for (i = offset; i<3410+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, hp_b[i-offset]);
    offset = i;   printf("hp_b: %d\n",offset);  //Print the intial address for hp_b
    
    for (i = offset; i<312+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, inf[i-offset]);
    offset = i;   printf("inf: %d\n",offset);  //Print the intial address for inf
    
    for (i = offset; i<4464+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, winner[i-offset]);
    offset = i;   printf("winner: %d\n",offset);  //Print the intial address for winner
    
    for (i = offset; i<2016+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, p1[i-offset]);
    offset = i;   printf("p1: %d\n",offset);  //Print the intial address for p1
    
    for (i = offset; i<2016+offset; i++)  IOWR_SRAM_DATA(SRAM_BASE, i, p2[i-offset]);
    offset = i;   printf("p2: %d\n",offset);  //Print the intial address for p2
    
   
  return 0;
}
