1
0
mirror of https://github.com/simh/simh.git synced 2026-01-13 15:27:14 +00:00

PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states

This commit is contained in:
Bob Supnik 2017-03-15 09:57:58 -07:00 committed by Mark Pizzolato
parent b0541176da
commit 9f60279a51
4 changed files with 13 additions and 3 deletions

View File

@ -25,6 +25,7 @@
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)
28-Mar-15 RMS Revised to use sim_printf
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 */
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
}
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
}
DT_UPDINT;
return;

View File

@ -25,6 +25,7 @@
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)
04-Dec-16 RMS Revised to model TCCM correctly (Josh Dersch)
23-Oct-13 RMS Revised for new boot setup routine
@ -1037,7 +1038,9 @@ return SCPE_OK;
/* 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)
{
@ -1046,7 +1049,7 @@ int32 mot = DTS_GETMOT (uptr->STATE);
tcst = tcst | e; /* set error flag */
tccm = tccm | CSR_ERR;
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? */
sim_cancel (uptr); /* cancel activity */
@ -1055,6 +1058,7 @@ if (mot >= DTS_ACCF) { /* ~stopped or stopping?
sim_activate (uptr, dt_dctime); /* sched decel */
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
}
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
return;
}

View File

@ -27,6 +27,7 @@
(PDP-9) TC02/TU55 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)
10-Mar-16 RMS Added 3-cycle databreak set/show entries
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 */
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
}
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
}
DT_UPDINT;
return;

View File

@ -1,6 +1,6 @@
/* 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
copy of this software and associated documentation files (the "Software"),
@ -25,6 +25,7 @@
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
23-Jun-06 RMS Fixed switch conflict in ATTACH
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 */
DTS_SETSTA (DTS_DECF | (mot & DTS_DIR), 0); /* state = decel */
}
else DTS_SETSTA (mot, 0); /* clear 2nd, 3rd */
DT_UPDINT;
return;
}