mirror of
https://github.com/open-simh/simh.git
synced 2026-05-03 22:58:53 +00:00
PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states
This commit is contained in:
committed by
Mark Pizzolato
parent
b0541176da
commit
9f60279a51
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
dt Type 550/555 DECtape
|
dt Type 550/555 DECtape
|
||||||
|
|
||||||
|
15-Mar-17 RMS Fixed dt_seterr to clear successor states
|
||||||
09-Mar-17 RMS Fixed dt_seterr to handle nx unit select (COVERITY)
|
09-Mar-17 RMS Fixed dt_seterr to handle nx unit select (COVERITY)
|
||||||
28-Mar-15 RMS Revised to use sim_printf
|
28-Mar-15 RMS Revised to use sim_printf
|
||||||
21-Dec-06 RMS Added 16-channel SBS support
|
21-Dec-06 RMS Added 16-channel SBS support
|
||||||
@@ -868,6 +869,7 @@ if (uptr != NULL) { /* valid unit? */
|
|||||||
sim_activate (uptr, dt_dctime); /* sched decel */
|
sim_activate (uptr, dt_dctime); /* sched decel */
|
||||||
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
||||||
}
|
}
|
||||||
|
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
|
||||||
}
|
}
|
||||||
DT_UPDINT;
|
DT_UPDINT;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
tc TC11/TU56 DECtape
|
tc TC11/TU56 DECtape
|
||||||
|
|
||||||
|
15-Mar-17 RMS Fixed to defer error interrupts (Paul Koning)
|
||||||
14-Mar-17 RMS Fixed spurious interrupt when setting GO (Paul Koning)
|
14-Mar-17 RMS Fixed spurious interrupt when setting GO (Paul Koning)
|
||||||
04-Dec-16 RMS Revised to model TCCM correctly (Josh Dersch)
|
04-Dec-16 RMS Revised to model TCCM correctly (Josh Dersch)
|
||||||
23-Oct-13 RMS Revised for new boot setup routine
|
23-Oct-13 RMS Revised for new boot setup routine
|
||||||
@@ -1037,7 +1038,9 @@ return SCPE_OK;
|
|||||||
|
|
||||||
/* Utility routines */
|
/* Utility routines */
|
||||||
|
|
||||||
/* Set error flag */
|
/* Set error flag
|
||||||
|
Done must be deferred to allow time for interrupt setup (RSTS V4)
|
||||||
|
*/
|
||||||
|
|
||||||
void dt_seterr (UNIT *uptr, int32 e)
|
void dt_seterr (UNIT *uptr, int32 e)
|
||||||
{
|
{
|
||||||
@@ -1046,7 +1049,7 @@ int32 mot = DTS_GETMOT (uptr->STATE);
|
|||||||
tcst = tcst | e; /* set error flag */
|
tcst = tcst | e; /* set error flag */
|
||||||
tccm = tccm | CSR_ERR;
|
tccm = tccm | CSR_ERR;
|
||||||
if (!(tccm & CSR_DONE)) { /* not done? */
|
if (!(tccm & CSR_DONE)) { /* not done? */
|
||||||
DT_SETDONE;
|
sim_activate (&dt_dev.units[DT_TIMER], dt_ctime); /* sched done */
|
||||||
}
|
}
|
||||||
if (mot >= DTS_ACCF) { /* ~stopped or stopping? */
|
if (mot >= DTS_ACCF) { /* ~stopped or stopping? */
|
||||||
sim_cancel (uptr); /* cancel activity */
|
sim_cancel (uptr); /* cancel activity */
|
||||||
@@ -1055,6 +1058,7 @@ if (mot >= DTS_ACCF) { /* ~stopped or stopping?
|
|||||||
sim_activate (uptr, dt_dctime); /* sched decel */
|
sim_activate (uptr, dt_dctime); /* sched decel */
|
||||||
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
||||||
}
|
}
|
||||||
|
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
(PDP-9) TC02/TU55 DECtape
|
(PDP-9) TC02/TU55 DECtape
|
||||||
(PDP-15) TC15/TU56 DECtape
|
(PDP-15) TC15/TU56 DECtape
|
||||||
|
|
||||||
|
15-Mar-17 RMS Fixed dt_seterr to clear successor states
|
||||||
09-Mar-17 RMS Fixed dt_seterr to handle nx unit select (COVERITY)
|
09-Mar-17 RMS Fixed dt_seterr to handle nx unit select (COVERITY)
|
||||||
10-Mar-16 RMS Added 3-cycle databreak set/show entries
|
10-Mar-16 RMS Added 3-cycle databreak set/show entries
|
||||||
07-Mar-16 RMS Revised for dynamically allocated memory
|
07-Mar-16 RMS Revised for dynamically allocated memory
|
||||||
@@ -1281,6 +1282,7 @@ if (uptr != NULL) { /* valid select? */
|
|||||||
sim_activate (uptr, dt_dctime); /* sched decel */
|
sim_activate (uptr, dt_dctime); /* sched decel */
|
||||||
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
||||||
}
|
}
|
||||||
|
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
|
||||||
}
|
}
|
||||||
DT_UPDINT;
|
DT_UPDINT;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* pdp8_dt.c: PDP-8 DECtape simulator
|
/* pdp8_dt.c: PDP-8 DECtape simulator
|
||||||
|
|
||||||
Copyright (c) 1993-2013, Robert M Supnik
|
Copyright (c) 1993-2017, Robert M Supnik
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
dt TC08/TU56 DECtape
|
dt TC08/TU56 DECtape
|
||||||
|
|
||||||
|
15-Mar-17 RMS Fixed dt_seterr to clear successor states
|
||||||
17-Sep-13 RMS Changed to use central set_bootpc routine
|
17-Sep-13 RMS Changed to use central set_bootpc routine
|
||||||
23-Jun-06 RMS Fixed switch conflict in ATTACH
|
23-Jun-06 RMS Fixed switch conflict in ATTACH
|
||||||
07-Jan-06 RMS Fixed unaligned register access bug (Doug Carman)
|
07-Jan-06 RMS Fixed unaligned register access bug (Doug Carman)
|
||||||
@@ -1071,6 +1072,7 @@ if (mot >= DTS_ACCF) { /* ~stopped or stopping?
|
|||||||
sim_activate (uptr, dt_dctime); /* sched decel */
|
sim_activate (uptr, dt_dctime); /* sched decel */
|
||||||
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
|
||||||
}
|
}
|
||||||
|
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
|
||||||
DT_UPDINT;
|
DT_UPDINT;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user