Fixed the AHA-1640 and BT-640A MCA SCSI controllers, they both work correctly now;

IBM PS/2 Model 80-486 now correctly loads and saves a second NVR file.
This commit is contained in:
OBattler
2017-12-05 22:39:21 +01:00
parent 8d8915e231
commit c15fb69584
5 changed files with 21 additions and 6 deletions

View File

@@ -1609,12 +1609,12 @@ x54x_out(uint16_t port, uint8_t val, void *priv)
case CMD_BIOSCMD: /* execute BIOS */
cmd = (BIOSCMD *)dev->CmdBuf;
if (!(dev->bus & DEVICE_MCA)) {
if (!dev->lba_bios) {
/* 1640 uses LBA. */
cyl = ((cmd->u.chs.cyl & 0xff) << 8) | ((cmd->u.chs.cyl >> 8) & 0xff);
cmd->u.chs.cyl = cyl;
}
if (dev->bus & DEVICE_MCA) {
if (dev->lba_bios) {
/* 1640 uses LBA. */
x54x_log("BIOS LBA=%06lx (%lu)\n",
lba32_blk(cmd),
@@ -1627,7 +1627,7 @@ x54x_out(uint16_t port, uint8_t val, void *priv)
cmd->u.chs.head,
cmd->u.chs.sec);
}
dev->DataBuf[0] = x54x_bios_command(dev, dev->max_id, cmd, (dev->bus & DEVICE_MCA)?1:0);
dev->DataBuf[0] = x54x_bios_command(dev, dev->max_id, cmd, (dev->lba_bios)?1:0);
x54x_log("BIOS Completion/Status Code %x\n", dev->DataBuf[0]);
dev->DataReplyLeft = 1;
break;