summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2025-10-26 22:28:57 +0100
committer angelosa <lordkale4@gmail.com>2025-10-26 23:25:21 +0100
commit5a75d7bd643cafda501b80955a1c7b9def884468 (patch)
tree4a4a0e925762bd05147d75daad39da7f8c7c4e37
parent8a69e8894310496bd01468b0422a212fc034d1cf (diff)
nec/pc8801.cpp: hookup DMA memory writes
-rw-r--r--src/mame/nec/pc8801.cpp7
-rw-r--r--src/mame/nec/pc8801.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/mame/nec/pc8801.cpp b/src/mame/nec/pc8801.cpp
index 61209847d81..112dd891d64 100644
--- a/src/mame/nec/pc8801.cpp
+++ b/src/mame/nec/pc8801.cpp
@@ -284,6 +284,12 @@ uint8_t pc8801_state::dma_mem_r(offs_t offset)
return m_work_ram[offset & 0xffff];
}
+void pc8801_state::dma_mem_w(offs_t offset, u8 data)
+{
+// printf("%04x %02x\n", offset, data);
+ m_work_ram[offset & 0xffff] = data;
+}
+
uint8_t pc8801_state::alu_r(offs_t offset)
{
uint8_t b, r, g;
@@ -1691,6 +1697,7 @@ void pc8801_state::pc8801(machine_config &config)
I8257(config, m_dma, MASTER_CLOCK);
m_dma->out_hrq_cb().set(FUNC(pc8801_state::hrq_w));
m_dma->in_memr_cb().set(FUNC(pc8801_state::dma_mem_r));
+ m_dma->out_memw_cb().set(FUNC(pc8801_state::dma_mem_w));
// CH0: 5-inch floppy DMA
// CH1: 8-inch floppy DMA, SCSI CD-ROM interface (on MA/MC)
m_dma->out_iow_cb<2>().set(m_crtc, FUNC(upd3301_device::dack_w));
diff --git a/src/mame/nec/pc8801.h b/src/mame/nec/pc8801.h
index a48bc3c85bc..84df965ef35 100644
--- a/src/mame/nec/pc8801.h
+++ b/src/mame/nec/pc8801.h
@@ -74,6 +74,7 @@ protected:
virtual UPD3301_FETCH_ATTRIBUTE( attr_fetch ) override;
virtual uint8_t dma_mem_r(offs_t offset) override;
+ void dma_mem_w(offs_t offset, u8 data);
virtual uint8_t dictionary_rom_r(offs_t offset);
virtual bool dictionary_rom_enable();