From 6be0cbe304fd45a9086659ce78f906de727776a8 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 22:02:14 +0100 Subject: [PATCH] Changes list 1: Fixed errors of the Trantor T128 SCSI adapter using the CD-ROM on low speed 386/486 processors. --- src/scsi/scsi_ncr5380.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scsi/scsi_ncr5380.c b/src/scsi/scsi_ncr5380.c index 2413c30a5..7a6cd5ef9 100644 --- a/src/scsi/scsi_ncr5380.c +++ b/src/scsi/scsi_ncr5380.c @@ -1224,8 +1224,8 @@ ncr_callback(void *priv) ncr_log("Timer on! Host POS = %i, status = %02x, DMA mode = %i, Period = %lf\n", ncr_dev->t128.host_pos, ncr_dev->t128.status, ncr->dma_mode, scsi_device_get_callback(dev)); if (ncr_dev->t128.host_pos == MIN(512, dev->buffer_length) && ncr_dev->t128.block_count) { ncr_dev->t128.status |= 0x04; - ncr_timer_on(ncr_dev, ncr, 0); } + ncr_timer_on(ncr_dev, ncr, 0); } } else { ncr_log("DMA mode=%d, status ctrl = %02x\n", ncr->dma_mode, ncr_dev->status_ctrl); @@ -1364,7 +1364,8 @@ t128_read(uint32_t addr, void *priv) ncr_log("Transfer busy read, status = %02x, period = %lf\n", ncr_dev->t128.status, ncr_dev->period); if (ncr_dev->period == 0.2 || ncr_dev->period == 0.02) timer_on_auto(&ncr_dev->timer, 40.2); - } + } else if (ncr_dev->t128.host_pos < MIN(512, dev->buffer_length) && scsi_device_get_callback(dev) > 100.0) + cycles += 100; /*Needed to avoid timer de-syncing with transfers.*/ } }