The attached is feedback from Walter Banks (Bytecraft, the MPC compiler people) regarding the posting last week of I2C source code in C. Your code will compile with minor changes on quite a few compilers. I checked it on our MPC, C6805 and C8051 compilers and I expect it would run on all of these processors. The Byte Craft linker only includes those functions that are actually called. Your code can be turned into a library just by adding it to the MPCxx.lib files or compiled as a separate library by adding #pragma library ... #pragma endlibrary directives. These files can either be left as source or compiled into an object library. Either way they can be used in absolute mode or linked mode. The only changes for your code to run on C6805/C8051 and MPC beta 2.00 were to define the I/O ports in a headers and add #define asm(a) #asm a In the C6805/C8051 CLRWDT() had to be defined. This should be all the changes that are needed to run any Byte Craft Limited compiler with the C8051 feature set. MPC V1.20b was limited to 2 bytes of arguments so a macros were written to pass arguments to those functions that needed it. This compiler needs "nop" be changed to " nop" as it treats #asm as a single line of asm source including labels in column 1. Thanks for posting your code. Walter Banks Thanks to Walter for letting us know just how simple the conversion to MPC is. Andy ================================================================== Andy Kunz - Statistical Research, Inc. - Westfield, New Jersey USA ==================================================================