#include #include #include #include #ifdef __GNUC__ /* minimal stuff */ # include # include # undef putchar # define putchar(c) Cconout(c) void prints( char *fmt, ... ) { va_list ap; char *p, *s; va_start( ap, fmt ); for ( p = fmt; *p; p++ ) { if ( *p != '%' ) Cconout( *p ); else { if ( *++p != 's' ) { Cconout( '%' ); Cconout( *p ); } else { for ( s = va_arg( ap, char * ); *s; s++ ) Cconout( *s ); } } } va_end(ap); } #else # define prints printf #endif char * drvmap( void ) { register long n; register char *p, c; static char dmap[27]; n = Drvmap(); p = dmap; for ( c= 'a'; c < 'z'; c++ ) { if ( n & 1L ) *p++ = c; n >>= 1; } *p = '\0'; return dmap; } int main( int argc, char **argv, char **envp ) { prints( "%s\r\n", drvmap() ); return 0; }