OSDN Git Service

[VM] .
[csp-qt/common_source_project-fm7.git] / source / src / vm / i8237_base.cpp
index 6286b9c..af2839b 100644 (file)
@@ -76,18 +76,18 @@ void I8237_BASE::do_dma()
 void I8237_BASE::write_mem(uint32_t addr, uint32_t data)
 {
        if(mode_word) {
-               d_mem->write_dma_data16(addr << 1, data);
+               d_mem->write_dma_data16((addr << 1) & addr_mask, data);
        } else {
-               d_mem->write_dma_data8(addr, data);
+               d_mem->write_dma_data8(addr & addr_mask, data);
        }
 }
 
 uint32_t I8237_BASE::read_mem(uint32_t addr)
 {
        if(mode_word) {
-               return d_mem->read_dma_data16(addr << 1);
+               return d_mem->read_dma_data16((addr << 1) & addr_mask);
        } else {
-               return d_mem->read_dma_data8(addr);
+               return d_mem->read_dma_data8(addr & addr_mask);
        }
 }