#include <pic.h>

__CONFIG(0x3FF1);

/*** FOR FUTURE USE ***/

#define PORTBIT(adr, bit)	((unsigned)(&adr)*8+(bit))

static bit IN0  @ PORTBIT(PORTA, 0);
static bit IN1  @ PORTBIT(PORTA, 1);
static bit IN2  @ PORTBIT(PORTA, 2);
static bit IN3  @ PORTBIT(PORTA, 3);
static bit IN4  @ PORTBIT(PORTA, 4);

void mode_1(void);
void mode_2(void);
void pause_1(void);
void pause_2(void);

unsigned int r;
unsigned int i;		//for loop pause variable
unsigned int p;

main(void)
{
	TRISA = (0xF8);
	PORTA = (0b11111000);
	
	TRISB = (0x00);
	PORTB = (0b00000000);

	while(1)
	{
		mode_1();
		mode_2();
	};	
}

void mode_1()
{
		for(r=0; r<10; r++)
		{
			PORTB = (0b11110000);
			pause_1();
			PORTB = (0b00001111);
			pause_1();
		};	
};

void mode_2()
{
		for(r=0; r<10; r++)
		{
			PORTB=(0b00000001);
			pause_2();
			PORTB=(0b00000010);
			pause_2();			
			PORTB=(0b00000100);
			pause_2();						
			PORTB=(0b00001000);
			pause_2();						
			PORTB=(0b00010000);
			pause_2();						
			PORTB=(0b00100000);
			pause_2();						
			PORTB=(0b01000000);
			pause_2();						
			PORTB=(0b10000000);
			pause_2();						
			PORTB=(0b01000000);
			pause_2();						
			PORTB=(0b00100000);
			pause_2();						
			PORTB=(0b00010000);
			pause_2();						
			PORTB=(0b00001000);
			pause_2();						
			PORTB=(0b00000100);
			pause_2();						
			PORTB=(0b00000010);
			pause_2();										
		};			
};

void pause_1()
{
	for(p=0; p<8; p++)
	{
		for(i=0; i<3000; i++);
	};			
};

void pause_2()
{
	for(p=0; p<4; p++)
	{
		for(i=0; i<3000; i++);
	};
};	
