diff options
| author | 2025-10-26 22:28:57 +0100 | |
|---|---|---|
| committer | 2025-10-26 23:25:21 +0100 | |
| commit | 5a75d7bd643cafda501b80955a1c7b9def884468 (patch) | |
| tree | 4a4a0e925762bd05147d75daad39da7f8c7c4e37 | |
| parent | 8a69e8894310496bd01468b0422a212fc034d1cf (diff) | |
nec/pc8801.cpp: hookup DMA memory writes
| -rw-r--r-- | src/mame/nec/pc8801.cpp | 7 | ||||
| -rw-r--r-- | src/mame/nec/pc8801.h | 1 |
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(); |
