#include <io.h>
#include <system.h>
#include <stdio.h>

int main()
{
int x=128,y=128,x_board=128;         //initial position
int vx=1,vy=1;                       //velocity
int direction_board;
int offSet = 10;
int slow=0;
while(1)
{int i=0;
 direction_board=IORD_16DIRECT(ROTARY_BASE,0);
 if(IORD_16DIRECT(ROTARY_BASE,0)!=0)
	 printf("%x\n",direction_board);
 slow++;
 if(slow==260)
 {	if((x>14)&&(x<+625)&&(y>14)&&(y<465))    //ball
	  {x=x+vx;y=y+vy;}
	  else
	  {
		if((x<=14)||(x>=625))             //left&right line
		{
		  if((y<=14)||(y>=465))       //four corner
		  {vx=0-vx;vy=0-vy;x=x+vx;y=y+vy;}
		  else
		  {vx=0-vx;x=x+vx;y=y+vy;}
		}
		else                                                                   //top&bottom line
		{vy=0-vy;x=x+vx;y=y+vy;}

	  }
   slow=0;
}

  if((x_board>20)&&(x_board<620))
  {
  if(direction_board == 1){
	  x_board -= 1*offSet;
		 printf("%x\n",direction_board);

  }
  else if(direction_board == 2)
	  x_board += 1*offSet;
  }
  //printf("%d\n",x_board);
  IOWR_16DIRECT(VGA_BASE,4,x_board);
  IOWR_16DIRECT(VGA_BASE,2,y);
  IOWR_16DIRECT(VGA_BASE,0,x);
  //printf("%d\n",x_board);

//  while (i<2000)
//  {i++;}
}
}



