Ejemplo n.º 1
0
void ultoa(unsigned long value, __data unsigned char* str, unsigned char radix)
{
  unsigned int index;
  unsigned char ch;
  unsigned char buffer[NUMBER_OF_DIGITS];  /* space for NUMBER_OF_DIGITS + '\0' */

    index = NUMBER_OF_DIGITS;
  
    do {
      ch = '0' + (value % radix);
      if ( ch > '9') ch += 'a' - '9' - 1;

#if _DEBUG
      io_str( "ultoa: " );
      io_long( value );
      io_long( (unsigned long) ch );
#endif

      buffer[ --index ] = ch;
      value /= radix;
    } while (value != 0);

    do {
      *str++ = buffer[index++];
    } while ( index < NUMBER_OF_DIGITS );

    *str = 0;  /* string terminator */
}
Ejemplo n.º 2
0
int
fprintf (FILE *stream, const char *fmt, ...)
{
  va_list ap;

#if _DEBUG
  io_str ("fprintf: ");
  io_long ((unsigned long) stream);
  io_long ((unsigned long) fmt);
#endif

  va_start (ap, fmt);
  return vfprintf (stream, fmt, ap);
}
Ejemplo n.º 3
0
void ltoa(long value, __data unsigned char* str, unsigned char radix)
{
#if _DEBUG
  io_str( "ltoa: " );
  io_long( (unsigned long)value );
#endif

  if (value < 0 && radix == 10) {
    *str++ = '-';
    value = -value;
  }



  ultoa((unsigned long)value, str, radix);
}
Ejemplo n.º 4
0
unsigned int vfprintf(FILE *stream, char *fmt, va_list ap)
{
  unsigned char radix;
  unsigned char flong, fstr;
  unsigned char fchar, nosign;
  unsigned char upcase;
  unsigned int count=0;
  unsigned char *str, *ch;
  __data char *str1;
  long val;
//  static char buffer[16];
  char buffer[16];


#if _DEBUG
  io_str( "vfprintf: " );
  io_long( (unsigned long)stream );
  io_long( (unsigned long)fmt );
#endif

//    va_start(ap,fmt);
  ch = fmt;
    
  while( *ch ) {      //for (; *fmt ; fmt++ )
    if (*ch == '%') {
      flong = 0;
      fstr = 0;
      fchar = 0;
      nosign = 0;
      radix = 0;
      upcase = 0;
      ch++;

      if(*ch == '%') {
        __stream_putchar(stream, *ch);
        ++count;
        ++ch;
        continue;
      }

      if(*ch == 'u') {
        nosign = 1;
        ch++;
      }

      if(*ch == 'l') {
        flong = 1;
        ch++;
      } else if(*ch == 'h') {
        fchar = 1;
        ch++;
      }

      if(*ch == 's')fstr = 1;
      else if(*ch == 'd')radix = 10;
      else if(*ch == 'x'){ radix = 16; upcase = 0; }
      else if(*ch == 'X'){ radix = 16; upcase = 1; }
      else if(*ch == 'c')radix = 0;
      else if(*ch == 'o')radix = 8;
      else if(*ch == 'b')radix = 2;
      else {
        __stream_putchar(stream, *ch);
        ++count;
        ++ch;
        continue;
      }

      if(fstr) {
        str = va_arg(ap, char *);
        while(*str) { __stream_putchar(stream, *str); str++; count++; }
      } else {
        val = 0;
        if(flong) {
          val = va_arg(ap, long);
#if _DEBUG
          io_long(val);
#endif
        }
        else if(fchar) {
          val = va_arg(ap, char);
#if _DEBUG
          io_long(val);
#endif
        }
        else {