#include "main.h"

#case

#define S105A1 input(PIN_A0)  
#define R110A1U input(PIN_A1)
#define R110A1D input(PIN_A2)
#define S104A1 input(PIN_A3)
#define R104A1U input(PIN_A4)
#define R104A1D input(PIN_A5)
#define R104B1U input(PIN_A6)
#define R104B1D input(PIN_A7)

#define S103A1 input(PIN_B0)
#define S103A2 input(PIN_B1)
#define S103A3 input(PIN_B2)
#define R103A1U input(PIN_B3)
#define R103A1D input(PIN_B4)
#define S106A1 input(PIN_B5)
#define S107A2 input(PIN_B6)
#define S109A1 input(PIN_B7)

#define OS101 PIN_C0 
#define OS105B PIN_C1  
#define OS105C PIN_C2 

//#define PIN_C3  31763
//#define PIN_C4  31764
//#define PIN_C5  31765

//#define PIN_C6  31766 //TX
//#define PIN_C7  31767 //RX

#define S101A1 input(PIN_D0) 
#define S101A2 input(PIN_D1)
#define S105B1 input(PIN_D2)  
#define S105C1 input(PIN_D3)  
#define S105D1 input(PIN_D4)  
#define S102A1 input(PIN_D5)  
#define S110A1 input(PIN_D6)  
#define S108A1 input(PIN_D7)  

/*
#define PIN_E0  31776
#define PIN_E1  31777
#define PIN_E2  31778
#define PIN_E3  31779
#define PIN_E4  31780
#define PIN_E5  31781
#define PIN_E6  31782
#define PIN_E7  31783

#define PIN_F0  31784
#define PIN_F1  31785
#define PIN_F2  31786
#define PIN_F3  31787
#define PIN_F4  31788
#define PIN_F5  31789
#define PIN_F6  31790
#define PIN_F7  31791

#define PIN_G0  31792
#define PIN_G1  31793
#define PIN_G2  31794
#define PIN_G3  31795
#define PIN_G4  31796
#define PIN_G5  31797

#define PIN_H0  31800
#define PIN_H1  31801
#define PIN_H2  31802
#define PIN_H3  31803
#define PIN_H4  31804
#define PIN_H5  31805
#define PIN_H6  31806
#define PIN_H7  31807

#define PIN_J0  31808
#define PIN_J1  31809
#define PIN_J2  31810
#define PIN_J3  31811
#define PIN_J4  31812
#define PIN_J5  31813
#define PIN_J6  31814
#define PIN_J7  31815
*/

#define LED1 PIN_J7  
#define LED2 PIN_J6 

int1 s105A1;
int1 r110A1U;
int1 r110A1D;
int1 s104A1;
int1 r104A1U;
int1 r104A1D;
int1 r104B1U;
int1 r104B1D;

int1 s103A1;
int1 s103A2;
int1 s103A3;
int1 r103A1U;
int1 r103A1D;
int1 s106A1;
int1 s107A2;
int1 s109A1;

int1 s101A1;
int1 s101A2;
int1 s105D1;
int1 s102A1;
int1 s110A1;
int1 s108A1;

#define send(s) \
{\
   printf("%s\r\n",#s);\
   output_toggle(LED1);\
   delay_ms(100);\  
}

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   s105A1=S105A1;
   r110A1U=R110A1U;
   r110A1D=R110A1D;
   s104A1=S104A1;
   r104A1U=R104A1U;
   r104A1D=R104A1D;
   r104B1U=R104B1U;
   r104B1D=R104B1D;
   
   s103A1=S103A1;
   s103A2=S103A2;
   s103A3=S103A3;
   r103A1U=R103A1U;
   r103A1D=R103A1D;
   s106A1=S106A1;
   s107A2=S107A2;
   s109A1=S109A1;
   
   s101A1=S101A1;
   s101A2=S101A2;
   s105D1=S105D1;
   s102A1=S102A1;
   s110A1=S110A1;
   s108A1=S108A1;

   while(TRUE)
   {
      if(s105A1!=S105A1) {s105A1=S105A1; send(S15A);}
      if(r110A1U!=R110A1U) {r110A1U=R110A1U; send(R1aAU);}
      if(r110A1D!=R110A1D) {r110A1D=R110A1D; send(R1aAD);}
      if(!S105B1) {output_low(OS105B);} else {output_high(OS105B);}
      if(!S105C1) {output_low(OS105C);} else {output_high(OS105C);}
      if(s105D1!=S105D1) {s105D1=S105D1; send(S15D);}
      
      if(s104A1!=S104A1) {s104A1=S104A1; send(S14A);}
      if(r104A1U!=R104A1U) {r104A1U=R104A1U; send(R14AU);}
      if(r104A1D!=R104A1D) {r104A1D=R104A1D; send(R14AD);}
      if(r104B1U!=R104B1U) {r104B1U=R104B1U; send(R14BU);}
      if(r104B1D!=R104B1D) {r104B1D=R104B1D; send(R14BD);}
      
      if(s103A1!=S103A1) {s103A1=S103A1; send(S13A);}
      if(s103A2!=S103A2) {s103A2=S103A2; send(S13A);}
      if(s103A3!=S103A3) {s103A3=S103A3; send(S13A);}
      if(r103A1U!=R103A1U) {r103A1U=R103A1U; send(R13AU);}
      if(r103A1D!=R103A1D) {r103A1D=R103A1D; send(R13AD);}
      
      if(s106A1!=S106A1) {s106A1=S106A1; send(S16A);}
      if(s107A2!=S107A2) {s107A2=S107A2; send(S17A);}
      if(s109A1!=S109A1) {s109A1=S109A1; send(S19A);}
      
      if(s101A1!=S101A1) {s101A1=S101A1; send(S11A);}
      if(s101A2!=S101A2) {s101A2=S101A2; send(S11A);}
      
      if(s102A1!=S102A1) {s102A1=S102A1; send(S12A);}
      if(s110A1!=S110A1) {s110A1=S110A1; send(S1aA);}
      if(s108A1!=S108A1) {s108A1=S108A1; send(S18A);}
   }
}