diff --git a/sim_tmxr.c b/sim_tmxr.c index 21b2c04b..00a01828 100644 --- a/sim_tmxr.c +++ b/sim_tmxr.c @@ -3902,10 +3902,10 @@ return tmxr_clock_coschedule_tmr (uptr, 0, interval); #define MIN(a,b) (((a) < (b)) ? (a) : (b)) -t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 interval) +t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 ticks) { TMXR *mp = (TMXR *)uptr->tmxr; -int32 ticks = (interval + (sim_rtcn_tick_size (tmr)/2))/sim_rtcn_tick_size (tmr);/* Convert to ticks */ +int32 interval = ticks * sim_rtcn_tick_size (tmr); #if defined(SIM_ASYNCH_MUX) if ((!(uptr->dynflags & UNIT_TM_POLL)) || @@ -3939,15 +3939,15 @@ if (mp) { return _sim_activate (uptr, soon); } } -sim_debug (TIMER_DBG_MUX, &sim_timer_dev, "scheduling %s after interval %d instructions\n", sim_uname (uptr), interval); +sim_debug (TIMER_DBG_MUX, &sim_timer_dev, "coscheduling %s after interval %d ticks\n", sim_uname (uptr), ticks); return sim_clock_coschedule_tmr (uptr, tmr, ticks); #endif } -t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 interval) +t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 ticks) { sim_cancel (uptr); -return tmxr_clock_coschedule_tmr (uptr, tmr, interval); +return tmxr_clock_coschedule_tmr (uptr, tmr, ticks); } /* Generic Multiplexer attach help */ diff --git a/sim_tmxr.h b/sim_tmxr.h index 2e4f14eb..ca74a49c 100644 --- a/sim_tmxr.h +++ b/sim_tmxr.h @@ -282,8 +282,8 @@ t_stat tmxr_activate_after (UNIT *uptr, uint32 usecs_walltime); t_stat tmxr_activate_after_abs (UNIT *uptr, uint32 usecs_walltime); t_stat tmxr_clock_coschedule (UNIT *uptr, int32 interval); t_stat tmxr_clock_coschedule_abs (UNIT *uptr, int32 interval); -t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 interval); -t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 interval); +t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 ticks); +t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 ticks); t_stat tmxr_change_async (void); t_stat tmxr_locate_line_send (const char *dev_line, SEND **snd); t_stat tmxr_locate_line_expect (const char *dev_line, EXPECT **exp);