From 8f6fec4013a55c9ab85996c4df09e28ed9239088 Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sat, 22 Jan 2022 11:51:14 -0500 Subject: [PATCH] IBM360: Fixed errors in handling of offline tapes. --- IBM360/ibm360_mt.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/IBM360/ibm360_mt.c b/IBM360/ibm360_mt.c index f3b021e..dda9974 100644 --- a/IBM360/ibm360_mt.c +++ b/IBM360/ibm360_mt.c @@ -297,6 +297,11 @@ uint8 mt_startcmd(UNIT *uptr, uint8 cmd) { uptr->flags &= ~MT_BUSY; return SNS_CHNEND|SNS_DEVEND|SNS_UNITCHK|f; } + if ((uptr->flags & UNIT_ATT) == 0) { + uptr->SNS |= SNS_INTVENT; + uptr->flags &= ~MT_BUSY; + return SNS_CHNEND|SNS_DEVEND|SNS_UNITCHK|f; + } uptr->CMD &= ~(MT_CMDMSK); uptr->CMD |= cmd & MT_CMDMSK; sim_activate(uptr, 1000); /* Start unit off */ @@ -313,6 +318,11 @@ uint8 mt_startcmd(UNIT *uptr, uint8 cmd) { case 0x3: /* Control */ case 0xb: /* Control */ uptr->SNS = 0; + if ((uptr->flags & UNIT_ATT) == 0) { + uptr->SNS |= SNS_INTVENT; + uptr->flags &= ~MT_BUSY; + return SNS_CHNEND|SNS_DEVEND|SNS_UNITCHK|f; + } if ((uptr->flags & MTUF_9TR) == 0) { uptr->SNS |= (SNS_7TRACK << 8); uptr->CMD |= MT_ODD;