From 09c1a2c405cb613d982b2099a805fd7ae1c2b22c Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Mon, 1 Nov 2021 18:21:14 -0400 Subject: [PATCH] IBM360: Cleanup console cancel support. --- IBM360/ibm360_con.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/IBM360/ibm360_con.c b/IBM360/ibm360_con.c index dc891ad..9cbbb9a 100644 --- a/IBM360/ibm360_con.c +++ b/IBM360/ibm360_con.c @@ -117,7 +117,7 @@ void con_ini(UNIT *uptr, t_bool f) { int u = (uptr - con_unit); con_data[u].inptr = 0; - uptr->CMD &= ~(CON_MSK|CON_REQ|CON_INPUT|CON_CR); + uptr->CMD &= ~(CON_MSK|CON_REQ|CON_INPUT|CON_CR|CON_CANCEL); uptr->SNS = 0; sim_activate(uptr, 1000); } @@ -384,10 +384,13 @@ con_srv(UNIT *uptr) { } else { if (cmd == CON_RD && ch == 03) { /* Cancel */ chan_end(addr, SNS_CHNEND|SNS_DEVEND|SNS_UNITEXP); - uptr->CMD &= ~CON_INPUT; + uptr->CMD &= ~(CON_INPUT|CON_CANCEL); con_data[u].inptr = 0; cmd = 0; } else { + sim_debug(DEBUG_CMD, &con_dev, "%d: error %x\n", u, cmd); + if (cmd == 0) + uptr->CMD |= CON_REQ; sim_putchar('\007'); } }