From a16fdb195ec4be5648d490a83d33e51e05c2ee18 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sun, 12 Nov 2017 12:53:22 +0000 Subject: [PATCH] Adaptec/BusLogic cards now pad out command with zeros if command length is longer than stated in the CCB. Fixes Windows NT 4.0 installation (sends 10 byte instead of 12 for READ CD). --- src/scsi_aha1540.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scsi_aha1540.c b/src/scsi_aha1540.c index e103c35..520ce06 100644 --- a/src/scsi_aha1540.c +++ b/src/scsi_aha1540.c @@ -1858,6 +1858,7 @@ static void process_scsi(aha154x_t *scsi) if (bus_state & BUS_REQ) { + int bus_out; // pclog("SCSI next phase - %x\n", bus_state); switch (bus_state & (BUS_IO | BUS_CD | BUS_MSG)) { @@ -1881,6 +1882,13 @@ static void process_scsi(aha154x_t *scsi) scsi->scsi_state = SCSI_STATE_READ_MESSAGE; break; + case BUS_CD: + bus_out = BUS_SETDATA(0); + + scsi_bus_update(&scsi->bus, bus_out | BUS_ACK); + scsi_bus_update(&scsi->bus, bus_out & ~BUS_ACK); + break; + default: fatal(" Bad new phase %x\n", bus_state); }