Hack to make consolehm work with it87 chipset (present at least on some SiS
chipset motherboards). Chipset registers taken from linux-2.6, 
drivers/i2c/chips/it87.c - thanks Chris Gauthron <chrisg@0-in.com>.

diff -pru consolehm/consolehm/chm.c consolehm-cph/consolehm/chm.c
--- consolehm/consolehm/chm.c	Sat Dec 23 06:51:45 2000
+++ consolehm-cph/consolehm/chm.c	Sun Feb 27 21:23:50 2005
@@ -94,15 +94,16 @@ void usage() {
 	exit(1);
 }
 
+
 int main (int argc, char **argv)
 {
 	short scale = CELCIUS;
 	char temp_char = 'C';
 	int delay = 1000000, mb_temp, cpu0_temp, cpu1_temp, i, sw_char, fandiv[3];
 	unsigned char smb_return=0;
-	unsigned char cpu0_return=0;
-	unsigned char cpu1_return=0;
-	unsigned char mb_return=0;
+	unsigned int cpu0_return=0;
+	unsigned int cpu1_return=0;
+	unsigned int mb_return=0;
 
 	u_char return_value;
 	u_char return_value2;
@@ -165,6 +166,7 @@ int main (int argc, char **argv)
 			printf("Delay: %d microseconds. \n\n",delay);
 			break;
 		default:
+			break;
 	}
 	
 	file_handle = OpenIO();
@@ -182,38 +184,22 @@ int main (int argc, char **argv)
                 fandiv[2]=2;
         }
 
-	while (1) {
+      ReadByte(&return_value, 0x0);
+      WriteByte(0x0, (return_value & 0x36) | 0x01);
+ while (1) {
 
 // Motherboard Temperature (LM79/78 onchip thermistors)
 
-      ReadByte(&return_value, 0x27);
-#ifdef HAVE_BP6
-	   cpu1_return = return_value;
-#else
+      ReadByte(&return_value, 0x29);
       mb_return = return_value;
-#endif
 // CPU_0 Temperature
-				WriteByte(0x4E,0x01);
-                                ReadByte(&return_value, 0x50);
-				ReadByte(&return_value2, 0x51);
-				if (return_value2 == 128) return_value += 0.5;
-				WriteByte(0x4E,0);
-				if (return_value > 200) return_value = 0.0;
+                                ReadByte(&return_value, 0x2a);
                                 cpu0_return = return_value;
  
 // CPU_1 Temperature
 
-				WriteByte(0x4E,0x02);
-                                ReadByte(&return_value, 0x50);
-				ReadByte(&return_value2, 0x51);
-				if (return_value2 == 128) return_value += 0.5;
-				WriteByte(0x4E,0);
-				if (return_value > 200) return_value = 0.0;
-#ifdef HAVE_BP6
-	mb_return = return_value;
-#else
+				ReadByte(&return_value2, 0x2b);
 				cpu1_return = return_value;
-#endif
 
 		switch (scale) {
 			case FAHRENHEIT:
