The C51 (version 6.14) preprocessor is broken. The stringize operator doesn't evaluate previously defined macros before it turns the contents to a string. E.G.:
#define VERSION 1234 #define MK_STR(x) #x ... void print_version( void ) { printf( MK_STR( VERSION )); }
I guess that the answer under: http://www.keil.com/support/docs/1889.htm helps you to solve your problem.
Thanks, That's the standard way - I don't know where my head was. I was porting code from a Franklin built project, obviously the Franklin compilier does things a little 'different'. Thanks again.