diff --git a/I7000/i7010_cpu.c b/I7000/i7010_cpu.c index 7ba3d42..9e1e420 100644 --- a/I7000/i7010_cpu.c +++ b/I7000/i7010_cpu.c @@ -3744,6 +3744,8 @@ cpu_reset(DEVICE * dptr) timer_enable = 0; cind = 2; zind = oind = dind = euind = eoind = 0; + if (cpu_unit.flags & OPTION_PROT) + sim_rtcn_init_unit (&cpu_unit, cpu_unit.wait, TMR_RTC); return SCPE_OK; } diff --git a/I7000/i7070_cpu.c b/I7000/i7070_cpu.c index 7adda0e..9a07e0c 100644 --- a/I7000/i7070_cpu.c +++ b/I7000/i7070_cpu.c @@ -300,11 +300,6 @@ sim_instr(void) reason = 0; - if (cpu_unit.flags & OPTION_TIMER) { - sim_rtcn_init(cpu_unit.wait, TMR_RTC); - sim_activate(&cpu_unit, cpu_unit.wait); - } - iowait = 0; stopnext = 0; while (reason == 0) { /* loop until halted */ @@ -2782,6 +2777,10 @@ cpu_reset(DEVICE * dptr) inds = PSIGN; pri_enb = 1; sim_brk_types = sim_brk_dflt = SWMASK('E'); + if (cpu_unit.flags & OPTION_TIMER) { + sim_rtcn_init_unit (&cpu_unit, cpu_unit.wait, TMR_RTC); + sim_activate(&cpu_unit, cpu_unit.wait); + } return SCPE_OK; } diff --git a/I7000/i7090_cpu.c b/I7000/i7090_cpu.c index a07beb6..234ec38 100644 --- a/I7000/i7090_cpu.c +++ b/I7000/i7090_cpu.c @@ -4153,6 +4153,7 @@ cpu_reset(DEVICE * dptr) limitaddr = 077777; memmask = MEMMASK; if (cpu_unit.flags & OPTION_TIMER) { + sim_rtcn_init_unit (&cpu_unit, cpu_unit.wait, TMR_RTC); sim_activate(&cpu_unit, cpu_unit.wait); }