extern short hard_time_limit; /* If you exceed time limit, you lose. */
extern short nolist; /* Don't list game after exit. */
+extern short xboard; /* Use XBoard instead of xShogi protocol */
/*
#endif
#define NO_SQUARES (NO_COLS*NO_ROWS)
-#define ROW_NAME(n) ('a' + NO_ROWS - 1 - n)
-#define COL_NAME(n) ('1' + NO_COLS - 1 - n)
+#define ROW_NAME(n) ( xboard ? '1' + n : ('a' + NO_ROWS - 1 - n) )
+#define COL_NAME(n) ( xboard ? 'a' + n : ('1' + NO_COLS - 1 - n) )
+#define ROW_NUM(c) ( xboard ? c - '1' : ('a' + NO_ROWS - 1 - c) )
+#define COL_NUM(c) ( xboard ? c - 'a' : ('1' + NO_COLS - 1 - c) )
+
#if defined HASHFILE || defined CACHE
# define PTBLBDSIZE (NO_SQUARES + NO_PIECES)
#ifndef MINISHOGI
#define pxx (" PLNSGBRPLNSBRK ")
#define qxx (" plnsgbrplnsbrk ")
-#define rxx ("ihgfedcba")
-#define cxx ("987654321")
#else
#define pxx (" PSGBRPSBRK ")
#define qxx (" psgbrpsbrk ")
-#define rxx ("edcba")
-#define cxx ("54321")
#endif
/***************** Table limits ********************************************/
extern void OutputMove(void);
extern void ShowCurrentMove(short pnt, short f, short t);
extern void ListGame(void);
-extern void ShowMessage(char *s);
+extern void ShowMessage(char *s, ...);
extern void ClearScreen(void);
extern void DoDebug(void);
extern void DoTable(short table[NO_SQUARES]);
void (*ShowDepth)(char ch);
void (*ShowGameType)(void);
void (*ShowLine)(unsigned short *bstline);
- void (*ShowMessage)(char *s);
+ void (*ShowMessage)(char *s, ...);
void (*AlwaysShowMessage)(const char *format, ...);
void (*Printf)(const char *format, ...);
void (*doRequestInputString)(const char* fmt, char* buffer);