1
0
mirror of https://github.com/simh/simh.git synced 2026-01-11 23:52:58 +00:00

VAXen: Completely reset TODR on every power-on

This commit is contained in:
Mark Pizzolato 2022-07-16 18:32:57 -10:00
parent 9082590ffa
commit 9285073024
6 changed files with 24 additions and 12 deletions

View File

@ -769,10 +769,12 @@ else
t_stat clk_reset (DEVICE *dptr)
{
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
}
todr_resync ();
sim_activate_after (&clk_unit, 10000);

View File

@ -764,10 +764,12 @@ else
t_stat clk_reset (DEVICE *dptr)
{
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
}
todr_resync ();
sim_activate_after (&clk_unit, 10000);

View File

@ -751,10 +751,12 @@ else
t_stat clk_reset (DEVICE *dptr)
{
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
}
todr_resync ();
sim_activate_after (&clk_unit, 10000);

View File

@ -767,10 +767,12 @@ else
t_stat clk_reset (DEVICE *dptr)
{
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
}
todr_resync ();
if (clk_unit.flags & UNIT_ATT) /* battery backup hooked up? */

View File

@ -873,10 +873,12 @@ else
t_stat clk_reset (DEVICE *dptr)
{
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
}
todr_resync ();
sim_activate_after (&clk_unit, 10000);

View File

@ -579,10 +579,12 @@ if (!sim_is_running) { /* RESET (not IORESET)?
tmr_poll = t; /* set tmr poll */
tmxr_poll = t * TMXR_MULT; /* set mux poll */
}
if (clk_unit.filebuf == NULL) { /* make sure the TODR is initialized */
clk_unit.filebuf = calloc(sizeof(TOY), 1);
if ((clk_unit.filebuf == NULL) || /* make sure the TODR is initialized */
(sim_switches & SWMASK ('P'))) {
clk_unit.filebuf = realloc(clk_unit.filebuf, sizeof(TOY));
if (clk_unit.filebuf == NULL)
return SCPE_MEM;
memset (clk_unit.filebuf, 0, sizeof(TOY));
todr_resync ();
}
return SCPE_OK;