#include <pic18.h>
__IDLOC(12345679);

__CONFIG(1,OSCSDIS & HS );
__CONFIG(2,BORDIS & PWRTEN & WDTDIS);
__CONFIG(3,CCP2RC1);
__CONFIG(4,DEBUGDIS&LVPDIS&STVREN);
__CONFIG(5,UNPROTECT);
__CONFIG(6,WRTEN);
__CONFIG(7,TRU);

const char data[10] =  0x68,0x48,0x58,0x50,0xD0,0x90,0xB0,0xA0,0xA8,0x28;
unsigned char datacnt;
void interrupt HI_ISR(void);
void interrupt low_priority LOW_ISR(void);
void main()
{
  IPEN=1;	/* interrupt priorities are used */
  INT0IE = 1; 
  TMR0IE = 1;TMR0IP = 1;
  TMR0ON=1;T08BIT=0;T0CS=0;PSA=0;T0PS2=1;T0PS1=0;T0PS0=1;
 PORTB = 0;TRISB = 0x7;
 PORTC = 0; TRISC = 0x0f;
  GIEH = 1;  GIEL = 1;
  while(1);
}


void interrupt HI_ISR(void)
{
if(TMR0IF)
	{
	 TMR0IF = 0;
	}
if(INT0IF)
	{
	INT0IF = 0;
	if(RC3)
		{
		 if(datacnt == 9) datacnt = 0xff;
		 PORTB = data[++datacnt];
		}
       else 
		{
		if(!datacnt) datacnt = 10;
		PORTB = data[--datacnt];
		}
	}


}

void interrupt low_priority LOW_ISR(void)
{
 TMR1IF = 0;

}

