#define STATUS_PERR 0x01
namespace FMTOWNS {
-
+
void SCSI::reset()
{
ctrl_reg = CTRL_IMSK;
d_host->write_dma_io8(addr, data);
}
break;
-
+
case 0x0c32:
// control register
#ifdef _SCSI_DEBUG_LOG
}
}
+
uint32_t SCSI::read_io8(uint32_t addr)
{
uint32_t value = 0;
-
+
switch(addr & 0xffff) {
case 0x0034:
// if(machine_id >= 0x0600) { // After UG
void SCSI::write_signal(int id, uint32_t data, uint32_t mask)
{
switch(id) {
+ case SIG_SCSI_16BIT_BUS:
+ transfer_16bit = ((data & mask) != 0) ? true : false;
+ break;
case SIG_SCSI_IRQ:
if((ctrl_reg & CTRL_IMSK)) {
// if(irq_status_bak != ((data & mask) != 0)) {
irq_status = ((data & mask) != 0);
}
break;
-
+
case SIG_SCSI_DRQ:
if(((ctrl_reg & CTRL_DMAE) != 0) /*&& (dma_enabled)*/) {
d_dma->write_signal(SIG_UPD71071_CH1, data, mask);
}
state_fio->StateValue(machine_id);
state_fio->StateValue(cpu_id);
-
+
state_fio->StateValue(ctrl_reg);
state_fio->StateValue(irq_status);
state_fio->StateValue(irq_status_bak);
state_fio->StateValue(dma_enabled);
-
+
if((machine_id >= 0x0300) & ((machine_id & 0xff00) != 0x0400)) { // After UX
state_fio->StateValue(ex_int_enable);
state_fio->StateValue(exirq_status);