VAX: Change HALT behavior to dispatch non polling events prior to returning to SCP.
This allows pending I/O (console, or otherwise) to complete before dropping back to the sim> prompt. This better simulates the model where scp is analogous to the console processor on the older VAX simulators. This better addresses the incomplete I/O problems discussed in #208
This commit is contained in:
parent
ed5353b4f4
commit
2549f34560
1 changed files with 6 additions and 4 deletions
|
@ -2582,10 +2582,12 @@ for ( ;; ) {
|
||||||
else if (cpu_unit.flags & UNIT_CONH) /* halt to console? */
|
else if (cpu_unit.flags & UNIT_CONH) /* halt to console? */
|
||||||
cc = con_halt (CON_HLTINS, cc); /* enter firmware */
|
cc = con_halt (CON_HLTINS, cc); /* enter firmware */
|
||||||
else {
|
else {
|
||||||
/* allow potentially pending console output to */
|
/* allow potentially pending I/O (console output,
|
||||||
/* be displayed before dropping back to scp */
|
or other devices) to complete before dropping
|
||||||
if (sim_interval <= SERIAL_OUT_WAIT) {
|
back to scp */
|
||||||
sim_interval -= SERIAL_OUT_WAIT;
|
while ((sim_clock_queue != QUEUE_LIST_END) &&
|
||||||
|
((sim_clock_queue->flags & UNIT_IDLE) == 0)) {
|
||||||
|
sim_interval = 0;
|
||||||
temp = sim_process_event ();
|
temp = sim_process_event ();
|
||||||
if (temp)
|
if (temp)
|
||||||
ABORT (temp);
|
ABORT (temp);
|
||||||
|
|
Loading…
Add table
Reference in a new issue