Exemple #1
0
t_stat rtc_svc (UNIT *uptr)
{
M[RTC_CTR] = (M[RTC_CTR] + 1) & DMASK;                  /* incr counter */
if (M[RTC_CTR] == 0)                                    /* ovflo? set ready */
    dev_done = dev_done | INT_RTC;
sim_activate (&rtc_unit, sim_rtc_calb (rtc_tps));       /* reactivate */
return SCPE_OK;
}
Exemple #2
0
t_stat clk_svc (UNIT *uptr)
{
int32 t;

if ( DEV_IS_BUSY(INT_CLK) )
    {
    DEV_CLR_BUSY( INT_CLK ) ;
    DEV_SET_DONE( INT_CLK ) ;
    DEV_UPDATE_INTR ;
    }
t = sim_rtc_calb (clk_tps[clk_sel]);                    /* calibrate delay */
sim_activate (&clk_unit, t);                            /* reactivate unit */
if (clk_adj[clk_sel] > 0)                               /* clk >= 60Hz? */
    tmxr_poll = t * clk_adj[clk_sel];                   /* poll is longer */
else
    tmxr_poll = t / (-clk_adj[clk_sel]);                /* poll is shorter */

return SCPE_OK;
}