diff --git a/CDC1700/cdc1700_cpu.c b/CDC1700/cdc1700_cpu.c index d0788028..bcb6e91c 100644 --- a/CDC1700/cdc1700_cpu.c +++ b/CDC1700/cdc1700_cpu.c @@ -171,6 +171,7 @@ extern int disassem(char *, uint16, t_bool, t_bool, t_bool); extern enum IOstatus doIO(t_bool, DEVICE **); extern void fw_init(void); +extern void VMinit(void); extern void rebuildPending(void); extern void dev1Interrupts(char *); @@ -401,6 +402,8 @@ t_stat cpu_reset(DEVICE *dptr) for (i = 0; i < 16; i++) CharAddrMode[i] = 0; + VMinit(); + return SCPE_OK; } diff --git a/CDC1700/cdc1700_sys.c b/CDC1700/cdc1700_sys.c index 9a17c13b..d8157746 100644 --- a/CDC1700/cdc1700_sys.c +++ b/CDC1700/cdc1700_sys.c @@ -145,22 +145,15 @@ static void printAddress(FILE *st, DEVICE *dptr, t_addr addr) } /* - * Once-only VM initialization + * VM initialization */ -static void VMinit(void) +void VMinit(void) { sim_vm_sprint_addr = &sprintAddress; sim_vm_fprint_addr = &printAddress; sim_vm_post = &postUpdate; sim_vm_cmd = cdc1700_cmd; - - /* - * Initialize the "CPU" device to make sure the data structures are - * correctly initialized. - */ - (cpu_dev.reset)(&cpu_dev); } -void (*sim_vm_init)(void) = &VMinit; /* * Check for duplicate equipment addresses.