SDS: Adjust real-time clock pulse interrupt period

Clock is running twice as fast as it should -- 120 interrupts per second instead of 60.  Cannot find problem in initialization or calibration or count-down code, so for now, divide rtc_tps by 2 prior to invoking sim_rtcn_calb.  Now 940 Executive reports wall-clock time advancing at proper rate.
This commit is contained in:
Mark Emmer 2014-03-02 22:49:04 -06:00
parent 396e78cb26
commit cf56b11321

View file

@ -1582,13 +1582,17 @@ return SCPE_OK;
a unit service routine and a reset routine. The service routine a unit service routine and a reset routine. The service routine
sets an interrupt that invokes the clock counter. The clock counter sets an interrupt that invokes the clock counter. The clock counter
is a "one instruction interrupt", and only MIN/SKR are valid. is a "one instruction interrupt", and only MIN/SKR are valid.
Temporarily divide rtc_tps by 2 because clock is running twice as
fast as it should. Eventually have to find problem in the clock
calibration or setup code.
*/ */
t_stat rtc_svc (UNIT *uptr) t_stat rtc_svc (UNIT *uptr)
{ {
if (rtc_pie) /* set pulse intr */ if (rtc_pie) /* set pulse intr */
int_req = int_req | INT_RTCP; int_req = int_req | INT_RTCP;
sim_activate (&rtc_unit, sim_rtcn_calb (rtc_tps, TMR_RTC)); /* reactivate */ sim_activate (&rtc_unit, sim_rtcn_calb (rtc_tps/2, TMR_RTC)); /* reactivate */
return SCPE_OK; return SCPE_OK;
} }