+ case TW_SR_SLA_ACK:
+#ifdef DEBUG
+ printf("I2C: Slave 0x%02x adressed\n", TWDR);
+#endif
+ pos = 0x00;
+ TWCR_ACK;
+ break;
+
+ case TW_SR_DATA_ACK:
+#ifdef DEBUG
+ printf("I2C: Data received: 0x%02x\n", TWDR);
+#endif
+ databuf[pos] = TWDR;
+ pos++;
+ TWCR_ACK;
+ break;
+
+ case TW_SR_STOP:
+#ifdef DEBUG
+ printf("I2C: STOP received\n");
+#endif
+ decode_bmc_cmd((unsigned char*)databuf, pos);
+ pos = 0x00;
+ TWCR_RESET;
+ break;
+
+ case TW_ST_SLA_ACK:
+ case TW_ST_DATA_ACK:
+ printf("I2C: Data requested\n");
+ TWDR = 0x00;