Hi, I am using C8051F005 as I2C slave. In the I2C interrupt, there is switch/case statement to load SMB0DAT with data to be output based on the OP_CODE. There are 15 cases. The master will get wrong data (or say will get 255) if 15 cases are included in the salve side. The master will work fine if 14 cases are included. I am wondering if one more case causes the timing problem -- so slow to response. So I selected ROM (COMPACT) which was mentioned in the knewledgebase, AJMP instructions is used. http://www.keil.com/support/docs/1316.htm But the data is still transfered wrong with 15 cases. Any suggestions? Thank you!