From f519513f504fe839fcea57480f64188ae3ae21ef Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 26 May 2020 06:25:01 -0700 Subject: [PATCH] SCP, HP2100, HP3000, I650: Move one time initialization activities to cpu_reset The paradigm of using a "weak" linker reference to find what was previously the vm_init_routine() doesn't work reliably on all compile environments supported by the simulators. This has been reported in #794 and it came up again in #862. This change assures that it will not come up again AND it reliably solves the problem with Visual Studio compilers (and linker) that randomly chooses whether to have the desired effect or not. Of the 82 simulators which are currently part of simh, only these three used the sim_vm_init() interface, so removing it had relatively minor impact. --- HP2100/hp2100_cpu.c | 3 +++ HP2100/hp2100_defs.h | 2 ++ HP2100/hp2100_sys.c | 18 ++++++++++++------ HP3000/hp3000_cpu.c | 3 +++ HP3000/hp3000_defs.h | 2 ++ HP3000/hp3000_sys.c | 18 ++++++++++++------ I650/i650_cpu.c | 3 +++ I650/i650_defs.h | 1 + I650/i650_sys.c | 8 ++++++-- doc/simh.doc | Bin 304128 -> 292864 bytes scp.c | 15 ++++++++++----- scp.h | 9 ++++++++- sim_defs.h | 18 ------------------ 13 files changed, 62 insertions(+), 38 deletions(-) diff --git a/HP2100/hp2100_cpu.c b/HP2100/hp2100_cpu.c index 48aa0ee2..2d804976 100644 --- a/HP2100/hp2100_cpu.c +++ b/HP2100/hp2100_cpu.c @@ -3504,6 +3504,9 @@ static t_stat cpu_reset (DEVICE *dptr) t_stat status; if (sim_PC == NULL) { /* if this is the first call after simulator start */ + + hp_one_time_init(); /* perform one time initializations (previously defined as sim_vm_init() */ + status = mem_initialize (PA_MAX); /* then allocate main memory */ if (status == SCPE_OK) { /* if memory initialization succeeds */ diff --git a/HP2100/hp2100_defs.h b/HP2100/hp2100_defs.h index 869762c7..2496b89e 100644 --- a/HP2100/hp2100_defs.h +++ b/HP2100/hp2100_defs.h @@ -934,3 +934,5 @@ extern void hp_initialize_trace (uint32 device_max, uint32 flag_max); extern void hp_trace (DEVICE *dptr, uint32 flag, ...); extern void hp_enbdis_pair (DEVICE *ccptr, DEVICE *dcptr); extern int32 hp_sync_poll (POLLMODE poll_mode); + +extern void hp_one_time_init (void); /* One time initialization activities now called in cpu_reset() */ diff --git a/HP2100/hp2100_sys.c b/HP2100/hp2100_sys.c index 58b119a2..66f32fc1 100644 --- a/HP2100/hp2100_sys.c +++ b/HP2100/hp2100_sys.c @@ -117,8 +117,8 @@ /* Global release string */ -const char *sim_vm_release = "29"; /* HP 2100 simulator release number */ -const char *sim_vm_release_message = +const char *hp_vm_release = "29"; /* HP 2100 simulator release number */ +const char *hp_vm_release_message = "This is the last version of this simulator which is API compatible\n" "with the 4.x version of the simh framework. A supported version of\n" "this simulator can be found at: http://simh.trailing-edge.com/hp\n"; @@ -1868,7 +1868,7 @@ static DEVICE poll_dev = { /* System interface local SCP support routines */ -static void one_time_init (void); +void hp_one_time_init (void); static t_bool fprint_stopped (FILE *st, t_stat reason); static void fprint_addr (FILE *st, DEVICE *dptr, t_addr addr); static t_addr parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr); @@ -1934,8 +1934,6 @@ char sim_name [] = "HP 2100"; /* the simulator name */ int32 sim_emax = MAX_INSTR_LENGTH; /* the maximum number of words in any instruction */ -void (*sim_vm_init) (void) = &one_time_init; /* a pointer to the one-time initializer */ - DEVICE *sim_devices [] = { /* an array of pointers to the simulated devices */ &cpu_dev, /* CPU (must be first) */ &dma1_dev, &dma2_dev, /* DMA/DCPC */ @@ -3503,9 +3501,17 @@ return; breakpoint types. */ -static void one_time_init (void) +void hp_one_time_init (void) { CTAB *systab, *auxtab = aux_cmds; +static int inited = 0; + +if (inited == 1) /* Be sure to only do these things once */ + return; +inited = 1; + +sim_vm_release = hp_vm_release; +sim_vm_release_message = hp_vm_release_message; while (auxtab->name != NULL) { /* loop through the auxiliary command table */ systab = find_cmd (auxtab->name); /* find the corresponding system command table entry */ diff --git a/HP3000/hp3000_cpu.c b/HP3000/hp3000_cpu.c index eeaaffdf..75f5ccd1 100644 --- a/HP3000/hp3000_cpu.c +++ b/HP3000/hp3000_cpu.c @@ -3431,6 +3431,9 @@ return SCPE_OK; /* return the success of static t_stat cpu_reset (DEVICE *dptr) { if (sim_PC == NULL) { /* if this is the first call after simulator start */ + + hp_one_time_init(); /* perform one time initializations (previously defined as sim_vm_init() */ + if (mem_initialize (PA_MAX)) { set_model (&cpu_unit [0], UNIT_SERIES_III, /* so establish the initial CPU model */ NULL, NULL); diff --git a/HP3000/hp3000_defs.h b/HP3000/hp3000_defs.h index dbf98aaf..00f91bb0 100644 --- a/HP3000/hp3000_defs.h +++ b/HP3000/hp3000_defs.h @@ -719,3 +719,5 @@ extern const char *fmt_bitset (uint32 bitset, const BITSET_FORMAT bitfmt); extern void hp_debug (DEVICE *dptr, uint32 flag, ...); extern t_bool hp_device_conflict (void); + +extern void hp_one_time_init (void); /* One time initialization activities now called in cpu_reset() */ diff --git a/HP3000/hp3000_sys.c b/HP3000/hp3000_sys.c index c7a46ec4..769d28ca 100644 --- a/HP3000/hp3000_sys.c +++ b/HP3000/hp3000_sys.c @@ -84,8 +84,8 @@ /* Global release string */ -const char *sim_vm_release = "8"; /* HP 3000 simulator release number */ -const char *sim_vm_release_message = +const char *hp_vm_release = "8"; /* HP 3000 simulator release number */ +const char *hp_vm_release_message = "This is the last version of this simulator which is API compatible\n" "with the 4.x version of the simh framework. A supported version of\n" "this simulator can be found at: http://simh.trailing-edge.com/hp\n"; @@ -974,7 +974,7 @@ static const char *const edit_ops [] = { /* EDIT operation names */ /* System interface local SCP support routines */ -static void one_time_init (void); +void hp_one_time_init (void); static t_bool fprint_stopped (FILE *st, t_stat reason); static void fprint_addr (FILE *st, DEVICE *dptr, t_addr addr); static t_addr parse_addr (DEVICE *dptr, CONST char *cptr, CONST char **tptr); @@ -1082,8 +1082,6 @@ char sim_name [] = "HP 3000"; /* the simulator name */ int32 sim_emax = 2; /* the maximum number of words in any instruction */ -void (*sim_vm_init) (void) = &one_time_init; /* a pointer to the one-time initializer */ - DEVICE *sim_devices [] = { /* an array of pointers to the simulated devices */ &cpu_dev, /* CPU (must be first) */ &iop_dev, /* I/O Processor */ @@ -2673,9 +2671,17 @@ return (conflict_is != None); /* return TRUE if any co breakpoint types. */ -static void one_time_init (void) +void hp_one_time_init (void) { CTAB *contab, *systab, *auxtab = aux_cmds; +static int inited = 0; + +if (inited == 1) /* Be sure to only do these things once */ + return; +inited = 1; + +sim_vm_release = hp_vm_release; +sim_vm_release_message = hp_vm_release_message; contab = find_cmd ("CONT"); /* find the entry for the CONTINUE command */ diff --git a/I650/i650_cpu.c b/I650/i650_cpu.c index 960370b9..568b7549 100644 --- a/I650/i650_cpu.c +++ b/I650/i650_cpu.c @@ -2039,6 +2039,9 @@ cpu_reset(DEVICE * dptr) IR[0] = IR[1] = IR[2] = 0; sim_brk_types = sim_brk_dflt = SWMASK('E'); + + vm_init (); + return SCPE_OK; } diff --git a/I650/i650_defs.h b/I650/i650_defs.h index 2cb82fc4..c6fd127c 100644 --- a/I650/i650_defs.h +++ b/I650/i650_defs.h @@ -371,5 +371,6 @@ extern int Get_HiDigit(t_int64 d); extern int Shift_Digits(t_int64 * d, int nDigits); extern char * word_to_ascii(char * buf, int CharStart, int CharLen, t_int64 d); +extern void vm_init(void); /* One time initialization activities now called in cpu_reset() */ diff --git a/I650/i650_sys.c b/I650/i650_sys.c index 0e3237e8..b9ddc3bd 100644 --- a/I650/i650_sys.c +++ b/I650/i650_sys.c @@ -209,6 +209,12 @@ char sim_hol_to_ascii(uint16 hol) void vm_init(void) { int i; + static int inited = 0; + + if (inited == 1) /* Be sure to only do these things once */ + return; + inited = 1; + // Initialize vm memory to all plus zero for(i = 0; i < MAXDRUMSIZE; i++) DRUM[i] = DRUM_NegativeZeroFlag[i] = 0; for(i = 0; i < 60; i++) IAS[i] = IAS_NegativeZeroFlag[i] = 0; @@ -218,8 +224,6 @@ vm_init(void) { } -void (*sim_vm_init) (void) = &vm_init; - /* Load a card image file into memory. */ t_stat diff --git a/doc/simh.doc b/doc/simh.doc index 75fa5257a5587c05739daf7491fbf234a9edc2a0..371182ce2de411e2519df71be4832c7617c2b73d 100644 GIT binary patch delta 37984 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 T3|3YL{Nd_~603DUE;#-GIcwfe delta 50121 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