From be6c753765ae8804e685156eeb7dcbecbfaf2b5b Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Fri, 25 Sep 2020 00:19:25 -0400 Subject: [PATCH] IBM360: Fixed device assignment for individual controller devices. --- IBM360/ibm360_chan.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/IBM360/ibm360_chan.c b/IBM360/ibm360_chan.c index ad9b576..74d05a2 100644 --- a/IBM360/ibm360_chan.c +++ b/IBM360/ibm360_chan.c @@ -106,6 +106,7 @@ UNIT * find_chan_dev(uint16 addr) { struct dib *dibp; UNIT *uptr; + DEVICE *dptr; int i; if (addr >= MAX_DEV) @@ -114,7 +115,10 @@ find_chan_dev(uint16 addr) { if (dibp == 0) return NULL; uptr = dibp->units; - if (dibp->mask == 0) { + dptr = find_dev_from_unit(uptr); + if (dptr == NULL) + return NULL; + if (dptr->flags & DEV_UADDR) { for (i = 0; i < dibp->numunits; i++) { if (addr == GET_UADDR(uptr->u3)) return uptr;