diff --git a/software/code/main.c b/software/code/main.c
index 5cf7e73e01beb9205679555da68aafa86846984e..5ff1cc17dd1ac281227e72f5cabb85d6f9fe5ab3 100644
--- a/software/code/main.c
+++ b/software/code/main.c
@@ -25,6 +25,11 @@ volatile uint32_t* OUT_REGS = (volatile uint32_t*) AHB_OUT_BASE;
 //////////////////////////////////////////////////////////////////
 // Functions provided to access i/o devices
 //////////////////////////////////////////////////////////////////
+uint32_t read_switches(int addr) {
+
+  return SW_REGS[addr];
+
+}
 // x1
 void write_out_0(uint32_t value_0) {
 
@@ -104,14 +109,31 @@ void wait_for_any_switch_data(void) {
 //////////////////////////////////////////////////////////////////
 
 int main(void) {
-
-while(1) {
+  int switch_temp ;
+
+while(1) {  
+    if ( check_switches(0) ) {
+      write_out( read_switches(0) );
+    }
+   if ( check_switches(1) ) {
+      switch_temp = read_switches(1);
+      if (switch_temp = 1) {
   write_out_0( 0x000 ); //x1
   write_out_1( 0x000 );//y1
   write_out_2( 0x140 );//x2
   write_out_3( 0x140 );// y2  
+      }
+ if (switch_temp = 0) {
+  write_out_0( 0x000 ); //x1
+  write_out_1( 0x000 );//y1
+  write_out_2( 0x200 );//x2
+  write_out_3( 0x240 );// y2  
+      }
+   }
+   }
 }
+
     
 
 
-}
+