To those in the know, The code for printf (printf_large.c) is as follows. My question is, should the space conditions be '>=' rather than just '>' ? (I did some raw byte dumps of a __code U08 *, and the type was 0x80. And with the change made, I get the correct output from printf!
Cheers, Andy case 'P': PTR = va_arg(ap,ptr_t); [...] #elif defined (SDCC_mcs51) { unsigned char memtype = value.byte[2]; if (memtype > 0x80) // <-- should this be >= 0x80 ??? c = 'c'; else if (memtype > 0x60) // and these? c = 'p'; else if (memtype > 0x40) c = 'i'; else c = 'x'; } OUTPUT_CHAR(c, p); OUTPUT_CHAR(':', p); OUTPUT_CHAR('0', p); OUTPUT_CHAR('x', p); if ((c != 'I' /* idata */) && (c != 'P' /* pdata */)) { OUTPUT_2DIGITS( value.byte[1] ); } OUTPUT_2DIGITS( value.byte[0] ); #else [...] ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user