DEBUGIO.CPP
/* -------------------------------------------------------------------------- 
Print Board is a debugging routine and should not be used for any other purpose 
-------------------------------------------------------------------------- */ 
 
int p(BOARD b, int x) 
{ 
    int c=' '; /* empty square */ 
    if (b[x] & RED)   c = 'r'; 
    if (b[x] & BLACK) c = 'b'; 
    if (b[x] & KING)  c = toupper(c); 
    return c; 
} 
 
void PrintBoard(BOARD b, int d) 
{ 
    const unsigned char rs=254; /* red square */ 
    static char buf[256]; 
 
    pdebug(stddbg," "); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",( rs),     (p(b, 1)), ( rs),     (p(b, 2)), ( rs),     (p(b, 3)), ( rs),     (p(b, 4)) ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",(p(b, 5)), ( rs),     (p(b, 6)), ( rs),     (p(b, 7)), ( rs),     (p(b, 8)), ( rs)     ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",( rs),     (p(b, 9)), ( rs),     (p(b,10)), ( rs),     (p(b,11)), ( rs),     (p(b,12)) ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",(p(b,13)), ( rs),     (p(b,14)), ( rs),     (p(b,15)), ( rs),     (p(b,16)), ( rs)     ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",( rs),     (p(b,17)), ( rs),     (p(b,18)), ( rs),     (p(b,19)), ( rs),     (p(b,20)) ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",(p(b,21)), ( rs),     (p(b,22)), ( rs),     (p(b,23)), ( rs),     (p(b,24)), ( rs)     ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",( rs),     (p(b,25)), ( rs),     (p(b,26)), ( rs),     (p(b,27)), ( rs),     (p(b,28)) ); 
    pdebug(stddbg,buf); 
    wsprintf(buf,"  %c%c%c%c%c%c%c%c",(p(b,29)), ( rs),     (p(b,30)), ( rs),     (p(b,31)), ( rs),     (p(b,32)), ( rs)     ); 
    pdebug(stddbg,buf); 
    pdebug(stddbg," "); 
 
} 
 
/* -------------------------------------------------------------------------- 
TextizeBoard produces a text version of the board for people who did 
not install this form. 
-------------------------------------------------------------------------- */ 
char* TextizeBoard(BOARD b) 
{ 
    const unsigned char rs='='; /* red square */ 
    static char buf[2048]; 
 
 
    wsprintf(buf, 
        "IPM.Checkers\r\n\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n" 
        "  %c%c%c%c%c%c%c%c\r\n", 
 
 
    ( rs),     (p(b, 1)), ( rs),     (p(b, 2)), ( rs),     (p(b, 3)), ( rs),     (p(b, 4)) , 
    (p(b, 5)), ( rs),     (p(b, 6)), ( rs),     (p(b, 7)), ( rs),     (p(b, 8)), ( rs)     , 
    ( rs),     (p(b, 9)), ( rs),     (p(b,10)), ( rs),     (p(b,11)), ( rs),     (p(b,12)) , 
    (p(b,13)), ( rs),     (p(b,14)), ( rs),     (p(b,15)), ( rs),     (p(b,16)), ( rs)     , 
    ( rs),     (p(b,17)), ( rs),     (p(b,18)), ( rs),     (p(b,19)), ( rs),     (p(b,20)) , 
    (p(b,21)), ( rs),     (p(b,22)), ( rs),     (p(b,23)), ( rs),     (p(b,24)), ( rs)     , 
    ( rs),     (p(b,25)), ( rs),     (p(b,26)), ( rs),     (p(b,27)), ( rs),     (p(b,28)) , 
    (p(b,29)), ( rs),     (p(b,30)), ( rs),     (p(b,31)), ( rs),     (p(b,32)), ( rs)     ); 
 
    return buf; 
 
}