OSDN Git Service

[VM][General][WIP] Apply new (Upstream 2016-02-21) APIs to VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / z80dma.cpp
index 9e10b1c..1093828 100644 (file)
@@ -435,8 +435,6 @@ void Z80DMA::do_dma()
 restart:
 #endif
        while(enabled && now_ready() && !(upcount == blocklen || found)) {
-               uint32 data = 0;
-               int wait_r = 0, wait_w = 0;
                if(dma_stop) {
                        if(upcount < blocklen) {
                                upcount++;
@@ -449,6 +447,8 @@ restart:
                request_bus();
                
                // read
+               uint32 data = 0;
+               int wait_r = 0, wait_w = 0;
                
                if(PORTA_IS_SOURCE) {
                        if(PORTA_MEMORY) {
@@ -637,7 +637,7 @@ void Z80DMA::request_bus()
 #ifdef SINGLE_MODE_DMA
                        d_cpu->write_signal(SIG_CPU_BUSREQ, 1, 1);
 #endif
-                       d_cpu->set_extra_clock(3);
+                       d_cpu->set_extra_clock(2);
                }
                bus_master = true;
        }
@@ -651,9 +651,9 @@ void Z80DMA::release_bus()
                        d_cpu->write_signal(SIG_CPU_BUSREQ, 0, 0);
 #endif
                        if(OPERATING_MODE == OM_BYTE) {
-                               d_cpu->set_extra_clock(2);
+                               d_cpu->set_extra_clock(1);
                        } else {
-                               d_cpu->set_extra_clock(3);
+                               d_cpu->set_extra_clock(2);
                        }
                }
                bus_master = false;
@@ -712,7 +712,7 @@ void Z80DMA::update_intr()
        }
 }
 
-uint32 Z80DMA::intr_ack()
+uint32 Z80DMA::get_intr_ack()
 {
        // ack (M1=IORQ=L)
        if(in_service) {
@@ -726,12 +726,12 @@ uint32 Z80DMA::intr_ack()
                return vector;
        }
        if(d_child != NULL) {
-               return d_child->intr_ack();
+               return d_child->get_intr_ack();
        }
        return 0xff;
 }
 
-void Z80DMA::intr_reti()
+void Z80DMA::notify_intr_reti()
 {
        // detect RETI
        if(in_service) {
@@ -740,7 +740,7 @@ void Z80DMA::intr_reti()
                return;
        }
        if(d_child != NULL) {
-               d_child->intr_reti();
+               d_child->notify_intr_reti();
        }
 }