Separated main code from UI and PLATform support code, plus other generally small fixes here and there.
This commit is contained in:
@@ -12,10 +12,11 @@
|
||||
*
|
||||
* NOTE: THIS IS CURRENTLY A MESS, but will be cleaned up as I go.
|
||||
*
|
||||
* Version: @(#)scsi_aha154x.c 1.0.23 2017/10/08
|
||||
* Version: @(#)scsi_aha154x.c 1.0.24 2017/10/09
|
||||
*
|
||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Original Buslogic version by SA1988 and Miran Grca.
|
||||
*
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
@@ -552,7 +553,7 @@ aha154x_eeprom(aha_t *dev, uint8_t cmd,uint8_t arg,uint8_t len,uint8_t off,uint8
|
||||
}
|
||||
|
||||
|
||||
/* Mess with the AHA-154xCF's Shadow RAM. */
|
||||
/* Map either the main or utility (Select) ROM into the memory space. */
|
||||
static uint8_t
|
||||
aha154x_mmap(aha_t *dev, uint8_t cmd)
|
||||
{
|
||||
@@ -575,7 +576,7 @@ aha154x_mmap(aha_t *dev, uint8_t cmd)
|
||||
|
||||
|
||||
static void
|
||||
RaiseIntr(aha_t *dev, int suppress, uint8_t Interrupt)
|
||||
raise_irq(aha_t *dev, int suppress, uint8_t Interrupt)
|
||||
{
|
||||
if (Interrupt & (INTR_MBIF | INTR_MBOA)) {
|
||||
if (! (dev->Interrupt & INTR_HACC)) {
|
||||
@@ -601,7 +602,7 @@ RaiseIntr(aha_t *dev, int suppress, uint8_t Interrupt)
|
||||
|
||||
|
||||
static void
|
||||
ClearIntr(aha_t *dev)
|
||||
clear_irq(aha_t *dev)
|
||||
{
|
||||
dev->Interrupt = 0;
|
||||
aha_log("%s: lowering IRQ %i (stat 0x%02x)\n",
|
||||
@@ -611,7 +612,7 @@ ClearIntr(aha_t *dev)
|
||||
aha_log("%s: Raising Interrupt 0x%02X (Pending)\n",
|
||||
dev->name, dev->Interrupt);
|
||||
if (dev->MailboxOutInterrupts || !(dev->Interrupt & INTR_MBOA)) {
|
||||
RaiseIntr(dev, 0, dev->PendingInterrupt);
|
||||
raise_irq(dev, 0, dev->PendingInterrupt);
|
||||
}
|
||||
dev->PendingInterrupt = 0;
|
||||
}
|
||||
@@ -646,7 +647,7 @@ aha_reset(aha_t *dev)
|
||||
dev->shram_mode = 0;
|
||||
dev->last_mb = 0;
|
||||
|
||||
ClearIntr(dev);
|
||||
clear_irq(dev);
|
||||
}
|
||||
|
||||
|
||||
@@ -691,7 +692,7 @@ aha_cmd_done(aha_t *dev, int suppress)
|
||||
if ((dev->Command != CMD_START_SCSI) && (dev->Command != CMD_BIOS_SCSI)) {
|
||||
dev->Status &= ~STAT_DFULL;
|
||||
aha_log("%s: Raising IRQ %i\n", dev->name, dev->Irq);
|
||||
RaiseIntr(dev, suppress, INTR_HACC);
|
||||
raise_irq(dev, suppress, INTR_HACC);
|
||||
}
|
||||
|
||||
dev->Command = 0xff;
|
||||
@@ -1292,7 +1293,7 @@ aha_do_mail(aha_t *dev)
|
||||
aha_log("aha_do_mail(): Writing %i bytes at %08X\n", sizeof(CmdStatus), Outgoing + CodeOffset);
|
||||
DMAPageWrite(Outgoing + CodeOffset, (char *)&CmdStatus, sizeof(CmdStatus));
|
||||
|
||||
RaiseIntr(dev, 0, dev->ToRaise);
|
||||
raise_irq(dev, 0, dev->ToRaise);
|
||||
|
||||
while (dev->Interrupt) {
|
||||
}
|
||||
@@ -1397,7 +1398,7 @@ aha_write(uint16_t port, uint8_t val, void *priv)
|
||||
}
|
||||
|
||||
if (val & CTRL_IRST) {
|
||||
ClearIntr(dev);
|
||||
clear_irq(dev);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -2277,13 +2278,8 @@ device_t aha1540b_device = {
|
||||
"Adaptec AHA-1540B",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xB,
|
||||
aha_init,
|
||||
aha_close,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
aha_init, aha_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
aha_154x_config
|
||||
};
|
||||
|
||||
@@ -2291,13 +2287,8 @@ device_t aha1542c_device = {
|
||||
"Adaptec AHA-1542C",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xC,
|
||||
aha_init,
|
||||
aha_close,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
aha_init, aha_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
aha_154x_config
|
||||
};
|
||||
|
||||
@@ -2305,13 +2296,8 @@ device_t aha1542cf_device = {
|
||||
"Adaptec AHA-1542CF",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
AHA_154xCF,
|
||||
aha_init,
|
||||
aha_close,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
aha_init, aha_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
aha_154x_config
|
||||
};
|
||||
|
||||
@@ -2319,11 +2305,7 @@ device_t aha1640_device = {
|
||||
"Adaptec AHA-1640",
|
||||
DEVICE_MCA,
|
||||
AHA_1640,
|
||||
aha_init,
|
||||
aha_close,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
aha_init, aha_close, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
@@ -10,11 +10,12 @@
|
||||
* 0 - BT-545C ISA;
|
||||
* 1 - BT-958D PCI (but BT-545C ISA on non-PCI machines)
|
||||
*
|
||||
* Version: @(#)scsi_buslogic.c 1.0.18 2017/10/08
|
||||
* Version: @(#)scsi_buslogic.c 1.0.19 2017/10/09
|
||||
*
|
||||
* Authors: TheCollector1995, <mariogplayer@gmail.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*
|
||||
* Copyright 2016,2017 Miran Grca.
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
*/
|
||||
@@ -3154,13 +3155,8 @@ device_t buslogic_device = {
|
||||
"Buslogic BT-545C ISA",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
CHIP_BUSLOGIC_ISA,
|
||||
Buslogic_Init,
|
||||
BuslogicClose,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
Buslogic_Init, BuslogicClose, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
BT545C_Config
|
||||
};
|
||||
|
||||
@@ -3168,12 +3164,7 @@ device_t buslogic_pci_device = {
|
||||
"Buslogic BT-958D PCI",
|
||||
DEVICE_PCI,
|
||||
CHIP_BUSLOGIC_PCI,
|
||||
Buslogic_Init,
|
||||
BuslogicClose,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
Buslogic_Init, BuslogicClose, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
BT958D_Config
|
||||
};
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* Emulation of SCSI fixed and removable disks.
|
||||
*
|
||||
* Version: @(#)scsi_disk.c 1.0.11 2017/10/07
|
||||
* Version: @(#)scsi_disk.c 1.0.12 2017/10/09
|
||||
*
|
||||
* Author: Miran Grca, <mgrca8@gmail.com>
|
||||
* Copyright 2017 Miran Grca.
|
||||
@@ -27,8 +27,8 @@
|
||||
#include "../disk/hdd.h"
|
||||
#include "../disk/hdc.h"
|
||||
#include "../disk/hdc_ide.h"
|
||||
#include "../win/win.h"
|
||||
#include "../win/plat_iodev.h"
|
||||
#include "../plat.h"
|
||||
#include "../ui.h"
|
||||
#include "scsi.h"
|
||||
#include "scsi_disk.h"
|
||||
|
||||
@@ -1566,11 +1566,11 @@ void scsi_hd_command(uint8_t id, uint8_t *cdb)
|
||||
shdc[id].all_blocks_total = shdc[id].block_total;
|
||||
if (shdc[id].packet_status != CDROM_PHASE_COMPLETE)
|
||||
{
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 1);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -1736,7 +1736,7 @@ void scsi_hd_command(uint8_t id, uint8_t *cdb)
|
||||
scsi_hd_data_command_finish(id, alloc_length, alloc_length, alloc_length, 1);
|
||||
}
|
||||
shdc[id].all_blocks_total = shdc[id].block_total;
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 1);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 1);
|
||||
return;
|
||||
|
||||
case GPCMD_START_STOP_UNIT:
|
||||
@@ -2014,7 +2014,7 @@ void scsi_hd_phase_data_out(uint8_t id)
|
||||
|
||||
SCSIPhase = SCSI_PHASE_STATUS;
|
||||
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
break;
|
||||
default:
|
||||
fatal("SCSI HDD %i: Bad Command for phase 2 (%02X)\n", shdc[id].current_cdb[0]);
|
||||
@@ -2038,7 +2038,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
shdc[id].packet_status = 0xFF;
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
return;
|
||||
case CDROM_PHASE_DATA_OUT:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_DATA_OUT\n", id);
|
||||
@@ -2051,7 +2051,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].packet_status = CDROM_PHASE_COMPLETE;
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
return;
|
||||
case CDROM_PHASE_DATA_IN:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_DATA_IN\n", id);
|
||||
@@ -2063,7 +2063,7 @@ void scsi_hd_callback(uint8_t id)
|
||||
shdc[id].packet_status = CDROM_PHASE_COMPLETE;
|
||||
shdc[id].status = READY_STAT;
|
||||
shdc[id].phase = 3;
|
||||
StatusBarUpdateIcon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
ui_sb_update_icon((hdd[id].bus == HDD_BUS_SCSI_REMOVABLE) ? (SB_RDISK | id) : (SB_HDD | HDD_BUS_SCSI), 0);
|
||||
return;
|
||||
case CDROM_PHASE_ERROR:
|
||||
scsi_hd_log("SCSI HD %i: PHASE_ERROR\n", id);
|
||||
|
||||
Reference in New Issue
Block a user