summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2021-03-26 23:10:15 +0100
committer Olivier Galibert <galibert@pobox.com>2021-03-26 23:10:33 +0100
commit4e1d0de712fb2f4cecf4c6e130b04386743be696 (patch)
treec6c99e0a588b201c0974ffddd9e076d0b580c7e9 /src
parenta20c9d1d31f2d8031addf78e3c3a508cfe0cc58a (diff)
macpdm: Add scsi write
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/macpdm.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mame/drivers/macpdm.cpp b/src/mame/drivers/macpdm.cpp
index bdb7eddb0d7..c46dcc0ae86 100644
--- a/src/mame/drivers/macpdm.cpp
+++ b/src/mame/drivers/macpdm.cpp
@@ -719,7 +719,15 @@ void macpdm_state::dma_scsi_a_step()
m_dma_scsi_a_in_step = true;
if(m_dma_scsi_a_ctrl & 0x40) {
- fatalerror("scsi dma write\n");
+ while(m_via2_ifr & 0x01) {
+ if(m_dma_scsi_buffer_byte_count == 0) {
+ m_dma_scsi_buffer_byte_count = 8;
+ m_dma_scsi_buffer = m_maincpu->space().read_qword(m_dma_scsi_a_base_adr + m_dma_scsi_a_cur_offset);
+ m_dma_scsi_a_cur_offset += 8;
+ }
+ m_dma_scsi_buffer_byte_count --;
+ m_ncr53c94->dma_w(m_dma_scsi_buffer >> (8*m_dma_scsi_buffer_byte_count));
+ }
} else {
while(m_via2_ifr & 0x01) {