static void wd33c93Disconnect(WD33C93* wd33c93) { if (wd33c93->phase != BusFree) { if ((wd33c93->targetId >= 0) && (wd33c93->targetId < wd33c93->maxDev)) { scsiDeviceDisconnect(TARGET); } if (wd33c93->regs[REG_SCSI_STATUS] != SS_XFER_END) { wd33c93->regs[REG_SCSI_STATUS] = SS_DISCONNECT; } wd33c93->regs[REG_AUX_STATUS] = AS_INT; wd33c93->phase = BusFree; //wd33c93->nextPhase = -1; } //wd33c93->mci = -1; wd33c93->tc = 0; //wd33c93->atn = 0; SCSILOG("busfree()\n\n"); scsiDeviceLogFlush(); }
static void mb89352Disconnect(MB89352* spc) { if (spc->phase != BusFree) { if ((spc->targetId >= 0) && (spc->targetId < 8)) { scsiDeviceDisconnect(TARGET); } spc->regs[REG_INTS] |= INTS_Disconnected; spc->phase = BusFree; spc->nextPhase = -1; } spc->regs[REG_PSNS] = 0; spc->isBusy = 0; spc->isTransfer = 0; spc->counter = 0; spc->tc = 0; spc->atn = 0; SCSILOG("busfree()\n\n"); scsiDeviceLogFlush(); }