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

Reply via email to