From: K.Ohta Date: Fri, 31 Jan 2020 18:34:34 +0000 (+0900) Subject: [VM][SCSI_HOST] Implement both wide and narrow bus. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ddd62b7f0cb7fbbf2328f96e354a009e08877dcd;p=csp-qt%2Fcommon_source_project-fm7.git [VM][SCSI_HOST] Implement both wide and narrow bus. --- diff --git a/source/src/vm/scsi_host.cpp b/source/src/vm/scsi_host.cpp index 7a512212b..2bcb50316 100644 --- a/source/src/vm/scsi_host.cpp +++ b/source/src/vm/scsi_host.cpp @@ -19,16 +19,29 @@ void SCSI_HOST::reset() set_drq(false); } -#ifdef SCSI_HOST_WIDE +//#ifdef SCSI_HOST_WIDE void SCSI_HOST::write_dma_io16(uint32_t addr, uint32_t data) -#else +{ + #ifdef _SCSI_DEBUG_LOG + this->force_out_debug_log(_T("[SCSI_HOST] Write %02X\n"), data); + #endif + write_signals(&outputs_dat, data & 0xffff); + + #ifdef SCSI_HOST_AUTO_ACK + // set ack to clear req signal immediately + if(bsy_status && !io_status) { + this->write_signal(SIG_SCSI_ACK, 1, 1); + } + #endif +} +//#else void SCSI_HOST::write_dma_io8(uint32_t addr, uint32_t data) -#endif +//#endif { #ifdef _SCSI_DEBUG_LOG this->force_out_debug_log(_T("[SCSI_HOST] Write %02X\n"), data); #endif - write_signals(&outputs_dat, data); + write_signals(&outputs_dat, data & 0xff); #ifdef SCSI_HOST_AUTO_ACK // set ack to clear req signal immediately @@ -38,11 +51,14 @@ void SCSI_HOST::write_dma_io8(uint32_t addr, uint32_t data) #endif } -#ifdef SCSI_HOST_WIDE +//#ifdef SCSI_HOST_WIDE uint32_t SCSI_HOST::read_dma_io16(uint32_t addr) -#else +{ + return read_dma_io8(addr); +} +//#else uint32_t SCSI_HOST::read_dma_io8(uint32_t addr) -#endif +//#endif { uint32_t value = data_reg; #ifdef _SCSI_DEBUG_LOG diff --git a/source/src/vm/scsi_host.h b/source/src/vm/scsi_host.h index fa58dd9b9..cf7e375c3 100644 --- a/source/src/vm/scsi_host.h +++ b/source/src/vm/scsi_host.h @@ -63,13 +63,13 @@ public: // common functions void reset(); -#ifdef SCSI_HOST_WIDE +//#ifdef SCSI_HOST_WIDE void __FASTCALL write_dma_io16(uint32_t addr, uint32_t data); uint32_t __FASTCALL read_dma_io16(uint32_t addr); -#else +//#else void __FASTCALL write_dma_io8(uint32_t addr, uint32_t data); uint32_t __FASTCALL read_dma_io8(uint32_t addr); -#endif +//#endif void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask); uint32_t __FASTCALL read_signal(int id); bool process_state(FILEIO* state_fio, bool loading);