mirror of
https://github.com/simh/simh.git
synced 2026-01-27 04:22:24 +00:00
VAX: Explain idling sim_interval decrement
- Explain reasoning for idle decrement - Fix TODR debug output for all simulators with a TODR register
This commit is contained in:
@@ -939,7 +939,7 @@ sim_rtcn_get_time(&now, TMR_CLK); /* get curr time */
|
||||
base.tv_sec = (time_t)toy->toy_gmtbase;
|
||||
base.tv_nsec = toy->toy_gmtbasemsec * 1000000;
|
||||
sim_timespec_diff (&val, &now, &base); /* val = now - base */
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
@@ -935,7 +935,7 @@ sim_rtcn_get_time(&now, TMR_CLK); /* get curr time */
|
||||
base.tv_sec = (time_t)toy->toy_gmtbase;
|
||||
base.tv_nsec = toy->toy_gmtbasemsec * 1000000;
|
||||
sim_timespec_diff (&val, &now, &base); /* val = now - base */
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
@@ -923,7 +923,7 @@ sim_rtcn_get_time(&now, TMR_CLK); /* get curr time */
|
||||
base.tv_sec = (time_t)toy->toy_gmtbase;
|
||||
base.tv_nsec = toy->toy_gmtbasemsec * 1000000;
|
||||
sim_timespec_diff (&val, &now, &base); /* val = now - base */
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
@@ -944,7 +944,7 @@ sim_rtcn_get_time(&now, TMR_CLK); /* get curr time */
|
||||
base.tv_sec = toy->toy_gmtbase;
|
||||
base.tv_nsec = toy->toy_gmtbasemsec * 1000000;
|
||||
sim_timespec_diff (&val, &now, &base);
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
@@ -1042,7 +1042,7 @@ sim_rtcn_get_time(&now, TMR_CLK); /* get curr time */
|
||||
base.tv_sec = (time_t)toy->toy_gmtbase;
|
||||
base.tv_nsec = toy->toy_gmtbasemsec * 1000000;
|
||||
sim_timespec_diff (&val, &now, &base); /* val = now - base */
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
sim_debug (TMR_DB_TODR, &clk_dev, "todr_rd() - TODR=0x%X - %s\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000), todr_fmt_vms_todr ((int32)(val.tv_sec*100 + val.tv_nsec/10000000)));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
@@ -3300,6 +3300,12 @@ return 0; /* set new cc's */
|
||||
|
||||
void cpu_idle (void)
|
||||
{
|
||||
/* Normal use of sim_idle would specify FALSE (0) as the sim_interval */
|
||||
/* adjustment parameter since this simullator doesn't have a WAIT */
|
||||
/* instruction and merely detects instruction patterns that reflect */
|
||||
/* the system idling. However, a TRUE (1) value for this parameter */
|
||||
/* produces clock calibration results while idling which closer */
|
||||
/* the actual simulator instruction execution rate. */
|
||||
sim_idle (TMR_CLK, TRUE);
|
||||
}
|
||||
|
||||
|
||||
@@ -494,7 +494,7 @@ if (val.tv_sec >= TOY_MAX_SECS) { /* todr overflowed? */
|
||||
return todr_reg = 0; /* stop counting */
|
||||
}
|
||||
|
||||
sim_debug (DBG_REG, &clk_dev, "todr_rd() - TODR=0x%X\n", (int32)(val.tv_sec*100 + val.tv_nsec/10000000));
|
||||
sim_debug (DBG_REG, &clk_dev, "todr_rd() - TODR=0x%X\n", (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000));
|
||||
return (int32)(val.tv_sec*100 + (val.tv_nsec + 5000000)/10000000); /* 100hz Clock rounded Ticks */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user