Index: fact/FADctrl/FAD.cc
===================================================================
--- fact/FADctrl/FAD.cc	(revision 10291)
+++ fact/FADctrl/FAD.cc	(revision 10504)
@@ -28,4 +28,6 @@
    {"sclk", &FAD::cmd_sclk, true, 1, "<on|off>", "Set SCLK"},
    {"trigger", &FAD::cmd_trigger, false, 0, "[n|cont [rate]|stop|enable|disable]", "Issue software triggers"},
+   {"reset_trigger", &FAD::cmd_reset_trigger, false, 0, "resets the internal trigger counter"},
+   {"set_runnumber", &FAD::cmd_set_runnumber, false, 1, "<n> sets runnumber"},
    {"roi", &FAD::cmd_roi, true, 2, "<channel range> <value>", "Set region-of-interest to value"},
    {"dac", &FAD::cmd_dac, true, 2, "<range> <value>", "Set DAC numbers in range to value"},
@@ -195,4 +197,30 @@
 } 
 
+void FAD::cmd_reset_trigger() {
+  for (unsigned int i=0; i<Boards.size(); i++) {
+	Boards[i]->Send(CMD_RESET_TRIGGER_ID);
+  }
+}
+
+
+void FAD::cmd_set_runnumber() {
+  int Num;
+
+  if (Parameter.size() == 2) {
+		ConvertToInt(Parameter[1], &Num);
+	  for (unsigned int i=0; i<Boards.size(); i++) {
+			Boards[i]->Send( CMD_Write | ADDR_RUNNUMBER );
+			Boards[i]->Send((unsigned short) Num>>16);		// Write the HIGH-word first
+			Boards[i]->Send( CMD_Write | (ADDR_RUNNUMBER+1) );
+			Boards[i]->Send((unsigned short) (Num>>16)<<16); // now write the LOW-word
+		}
+	}
+	else {
+	  PrintUsage();
+	  return;
+	}
+}
+  
+
 //
 // Switch socket mode
Index: fact/FADctrl/FAD.h
===================================================================
--- fact/FADctrl/FAD.h	(revision 10291)
+++ fact/FADctrl/FAD.h	(revision 10504)
@@ -69,5 +69,7 @@
 	void cmd_board();		void cmd_status();
 	void cmd_acalib();		void cmd_serial();
-	void cmd_trigger(); 	
+	void cmd_trigger(); 
+	void cmd_reset_trigger();
+	void cmd_set_runnumber();	
 void cmd_socketmode();void cmd_daqmode();  
 	void cmd_srclk();		void cmd_sclk();
Index: fact/FADctrl/FADBoard.cc
===================================================================
--- fact/FADctrl/FADBoard.cc	(revision 10291)
+++ fact/FADctrl/FADBoard.cc	(revision 10504)
@@ -457,4 +457,5 @@
 	  Status.EventCounter = ntohl(Header->fad_evt_counter);
 	  Status.TriggerID = ntohl(Header->trigger_id);
+	  Status.Runnumber = ntohl(Header->runnumber);
 	  Status.TriggerType = ntohs(Header->trigger_type);
 	  Status.TriggerCRC = ntohs(Header->trigger_crc);
@@ -496,5 +497,5 @@
 		  // Extract ADC data (stored in 12 bit signed twis complement with out-of-range-bit and leading zeroes)
 		  for (int i=0; i<Status.ROI[Chip][Chan]; i++) {
-			  Buf = ntohs(Channel[Chip+NChips*Chan]->adc_data[i]);
+			  Buf = (Channel[Chip+NChips*Chan]->adc_data[i]);
 			  (Buf <<= 4) >>= 4;			//delete the sign-bit by shifting left and shift back
 			  Data[Chip][Chan][i] = Buf;					
Index: fact/FADctrl/FADBoard.h
===================================================================
--- fact/FADctrl/FADBoard.h	(revision 10291)
+++ fact/FADctrl/FADBoard.h	(revision 10504)
@@ -52,4 +52,5 @@
 
 	  uint32_t TriggerID;
+	  uint32_t Runnumber;
 	  uint16_t TriggerType;
 	  uint16_t TriggerCRC;
Index: fact/FADctrl/FADFormat.h
===================================================================
--- fact/FADctrl/FADFormat.h	(revision 10291)
+++ fact/FADctrl/FADFormat.h	(revision 10504)
@@ -29,4 +29,5 @@
 #define CMD_Read 0x0A00 		// read from Config-RAM
 #define CMD_Write 0x0500 		// write to Config-RAM
+#define CMD_RESET_TRIGGER_ID 0x2A00
 
 #define CMD_TRIGGERS_ON 0x1800	// enables the trigger line
@@ -40,4 +41,5 @@
 #define BADDR_DAC 0x24		// Baseaddress DAC-Values
 #define BADDR_CONT_TRIGGER_TIME 0x2C // Baseaddress for the continouus trigger timing.
+#define ADDR_RUNNUMBER 0x2D //
 #define MAX_VAL 65535
 #define MAX_ROIVAL 1024
@@ -76,5 +78,5 @@
 
   uint32_t time;
-  uint32_t fad_status;
+  uint32_t runnumber;
 
   int16_t drs_temperature[NTemp];
