int nr_moves; /* Total nr of root moves */
int moves_left; /* Moves remaining to be searched */
char move_name[MOVE_LEN]; /* Current move being searched, if provided */
- unsigned long nodes; /* # of nodes searched */
+ u64 nodes; /* # of nodes searched */
int time; /* Search time (centiseconds) */
int score; /* Score (centipawns) */
int got_only_move; /* If last msg was "(only move)" */
void InitBackEnd3 P((void));
void FeatureDone P((ChessProgramState* cps, int val));
void InitChessProgram P((ChessProgramState *cps));
-\r
-#ifdef WIN32\r
- extern void ConsoleCreate();\r
-#endif\r
+double u64ToDouble P((u64 value));
+
+#ifdef WIN32
+ extern void ConsoleCreate();
+#endif
+
extern int tinyLayout, smallLayout;
static ChessProgramStats programStats;
#define TN_SGA 0003
#define TN_PORT 23
+/* Some compiler can't cast u64 to double
+ * This function do the job for us:
+
+ * We use the highest bit for cast, this only
+ * works if the highest bit is not
+ * in use (This should not happen)
+ *
+ * We used this for all compiler
+ */
+double
+u64ToDouble(u64 value)
+{
+ double r;
+ u64 tmp = value & 0x7fffffffffffffff;
+ r = (double)(s64)tmp;
+ if (value & 0x8000000000000000)
+ r += 9.2233720368547758080e18; /* 2^63 */
+ return r;
+}
+
/* Fake up flags for now, as we aren't keeping track of castling
availability yet */
int
/* end premove variables */
char *ics_prefix = "$";
-ics_type = ICS_GENERIC;\r
+int ics_type = ICS_GENERIC;
int currentMove = 0, forwardMostMove = 0, backwardMostMove = 0;
int pauseExamForwardMostMove = 0;
char buf[MSG_SIZ];
int err;
- InitChessProgram(&first);\r
-\r
- #ifdef WIN32\r
- /* Make a console window if needed */\r
- if (appData.icsActive) ConsoleCreate();\r
- #endif\r
+ InitChessProgram(&first);
+
+ #ifdef WIN32
+ /* Make a console window if needed */
+ if (appData.icsActive) ConsoleCreate();
+ #endif
if (appData.icsActive) {
err = establish();
int i, oldi;
int buf_len;
int next_out;
- int tkind;\r
-#ifdef WIN32\r
- /* For zippy color lines of winboard\r
- * cleanup for gcc compiler */\r
- int backup;\r
+ int tkind;
+#ifdef WIN32
+ /* For zippy color lines of winboard
+ * cleanup for gcc compiler */
+ int backup;
#endif
char *p;
oldi = i;
if (appData.zippyTalk || appData.zippyPlay) {
-#if ZIPPY\r
- #ifdef WIN32\r
- /* Backup address for color zippy lines */\r
- backup = i;\r
- if (loggedOn == TRUE)\r
- if (ZippyControl(buf, &backup) || ZippyConverse(buf, &backup) ||\r
- (appData.zippyPlay && ZippyMatch(buf, &backup)));\r
+#if ZIPPY
+ #ifdef WIN32
+ /* Backup address for color zippy lines */
+ backup = i;
+ if (loggedOn == TRUE)
+ if (ZippyControl(buf, &backup) || ZippyConverse(buf, &backup) ||
+ (appData.zippyPlay && ZippyMatch(buf, &backup)));
#else
if (ZippyControl(buf, &i) ||
ZippyConverse(buf, &i) ||
(appData.zippyPlay && ZippyMatch(buf, &i))) {
loggedOn = TRUE;
continue;
- }\r
+ }
#endif
#endif
}
if (appData.showThinking) {
int plylev, mvleft, mvtot, curscore, time;
char mvname[MOVE_LEN];
- unsigned long nodes;
+ u64 nodes;
char plyext;
int ignore = FALSE;
int prefixHint = FALSE;
if (!ignore) {
buf1[0] = NULLCHAR;
- if (sscanf(message, "%d%c %d %d %lu %[^\n]\n",
+ if (sscanf(message, "%d%c %d %d" u64Display "%[^\n]\n",
&plylev, &plyext, &curscore, &time, &nodes, buf1) >= 5) {
if (plyext != ' ' && plyext != '\t') {
DisplayAnalysis();
}
return;
- } else if (sscanf(message,"stat01: %d %lu %d %d %d %s",
+ } else if (sscanf(message,"stat01: %d" u64Display "%d %d %d %s",
&time, &nodes, &plylev, &mvleft,
&mvtot, mvname) >= 5) {
/* The stat01: line is from Crafty (9.29+) in response
|| (nCmailMovesRegistered + nCmailResults == nCmailGames)) {
sprintf(string, partCommandString,
appData.debugMode ? " -v" : "", appData.cmailGameName);
- commandOutput = popen(string, "rb");
+ commandOutput = popen(string, "r");
if (commandOutput == NULL) {
DisplayError(_("Failed to invoke cmail"), 0);
if (programStats.got_only_move) {
strcpy(buf, programStats.movelist);
} else {
- nps = (((double)programStats.nodes) /
- (((double)programStats.time)/100.0));
+ nps = (u64ToDouble(programStats.nodes) /
+ ((double)programStats.time /100.0));
cs = programStats.time % 100;
s = programStats.time / 100;
if (programStats.moves_left > 0 && appData.periodicUpdates) {
if (programStats.move_name[0] != NULLCHAR) {
- sprintf(buf, "depth=%d %d/%d(%s) %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d",
+ sprintf(buf, "depth=%d %d/%d(%s) %+.2f %s%s\nNodes: "u64Display" NPS: %d\nTime: %02d:%02d:%02d.%02d",
programStats.depth,
programStats.nr_moves-programStats.moves_left,
programStats.nr_moves, programStats.move_name,
((float)programStats.score)/100.0, programStats.movelist,
only_one_move(programStats.movelist)?
xtra[programStats.got_fail] : "",
- programStats.nodes, (int)nps, h, m, s, cs);
+ (u64)programStats.nodes, (int)nps, h, m, s, cs);
} else {
- sprintf(buf, "depth=%d %d/%d %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d",
+ sprintf(buf, "depth=%d %d/%d %+.2f %s%s\nNodes: "u64Display" NPS: %d\nTime: %02d:%02d:%02d.%02d",
programStats.depth,
programStats.nr_moves-programStats.moves_left,
programStats.nr_moves, ((float)programStats.score)/100.0,
programStats.movelist,
only_one_move(programStats.movelist)?
xtra[programStats.got_fail] : "",
- programStats.nodes, (int)nps, h, m, s, cs);
+ (u64)programStats.nodes, (int)nps, h, m, s, cs);
}
} else {
- sprintf(buf, "depth=%d %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d",
+ sprintf(buf, "depth=%d %+.2f %s%s\nNodes: "u64Display" NPS: %d\nTime: %02d:%02d:%02d.%02d",
programStats.depth,
((float)programStats.score)/100.0,
programStats.movelist,
only_one_move(programStats.movelist)?
xtra[programStats.got_fail] : "",
- programStats.nodes, (int)nps, h, m, s, cs);
+ (u64)programStats.nodes, (int)nps, h, m, s, cs);
}
}
DisplayAnalysisText(buf);