I tried to build my code with keil uVision3 and at the time of linking there was some error. I wanted to generate hex file for AT89S51(4k flash ROM. I selected the following options in output. *Use in-built memory *XTAL(MHz) = 12 *Memory model: Small *Code ROM size: Small(2k or less) Like I said there was trouble linking. I changed code ROM size to compact and hex file generated successfully. I want to know if the hex code built with different code ROM size is compatible with my uC. Also. Why should I enter the crystal frequency in the options. Code remains the same irrespective of clock frequency. Isn't it?