Trantor SCSI changes of the day (April 2nd, 2025)

1. The PAS SCSI controller driver mamv1.sys dislikes having bits 0-6 set when a transfer has completed, take account from this, fixes mamv1.sys incomplete CD transfers (bits 0-6 get re-enabled when the transfer is ongoing).
2. I now understand why the T128 doesn't have a block count register, it does the block count manually from the SCSI layer directly, this fixes Pseudo-DMA transfers when using, e.g.: CD transfers using a sector size of 2340 bytes.
This commit is contained in:
TC1995
2025-04-02 21:47:32 +02:00
parent 5158d6b59b
commit 9c8c1a6f40
4 changed files with 23 additions and 21 deletions

View File

@@ -792,7 +792,14 @@ pas16_in(uint16_t port, void *priv)
if ((scsi_bus->tx_mode == PIO_TX_BUS) && !(ret & 0x80))
ret |= 0x80;
pas16_log("5C01 read ret=%02x, status=%02x, txmode=%x.\n", ret, pas16->scsi->status & 0x06, scsi_bus->tx_mode);
if (ret & 0x80) {
if (scsi_bus->data_repeat < MIN(511, scsi_bus->total_len))
scsi_bus->data_repeat++;
} else {
if (scsi_bus->data_repeat == MIN(511, scsi_bus->total_len))
ret = 0x00;
}
pas16_log("%04X:%08X: Port %04x read ret=%02x, status=%02x, txmode=%x, repeat=%d.\n", CS, cpu_state.pc, port + pas16->base, ret, pas16->scsi->status & 0x06, scsi_bus->tx_mode, scsi_bus->data_repeat);
}
break;
case 0x5c03: