1.14 release
[picodrive.git] / Pico / cd / LC89510.c
index a45bbf7..2549fa8 100644 (file)
@@ -114,6 +114,13 @@ void Update_CDC_TRansfer(int which)
 \r
                        for (len = length; len > 0; len--, src+=2, dest+=2)\r
                                *dest = (src[0]<<8) | src[1];\r
+\r
+                       { // debug\r
+                               unsigned char *b1 = Pico_mcd->word_ram + dep;\r
+                               unsigned char *b2 = (unsigned char *)dest - 8;\r
+                               dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x",\r
+                                       b1[0], b1[1], b1[4], b1[5], b2[0], b2[1], b2[4], b2[5]);\r
+                       }\r
                }\r
                else\r
                {\r
@@ -124,6 +131,13 @@ void Update_CDC_TRansfer(int which)
 \r
                        for (len = length; len > 0; len--, src+=2, dest++)\r
                                *dest = (src[0]<<8) | src[1];\r
+\r
+                       { // debug\r
+                               unsigned char *b1 = Pico_mcd->word_ram + dep;\r
+                               unsigned char *b2 = (unsigned char *)dest - 4;\r
+                               dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x",\r
+                                       b1[0], b1[1], b1[2], b1[3], b2[0], b2[1], b2[2], b2[3]);\r
+                       }\r
                }\r
        }\r
        else if (which == 4) // PCM RAM\r
@@ -132,7 +146,7 @@ void Update_CDC_TRansfer(int which)
                        dest = (unsigned char *) Ram_PCM;\r
                        dep = ((DMA_Adr & 0x03FF) << 2) + PCM_Chip.Bank;\r
 #else\r
-                       cdprintf("CD DMA # %04x -> PCD TODO", Pico_mcd->cdc.DAC.N);\r
+                       cdprintf("CD DMA # %04x -> PCM TODO", Pico_mcd->cdc.DAC.N);\r
 #endif\r
        }\r
        else if (which == 5) // PRG RAM\r
@@ -144,12 +158,26 @@ void Update_CDC_TRansfer(int which)
 \r
                for (len = length; len > 0; len--, src+=2, dest++)\r
                        *dest = (src[0]<<8) | src[1];\r
+\r
+               { // debug\r
+                       unsigned char *b1 = Pico_mcd->prg_ram + dep;\r
+                       unsigned char *b2 = (unsigned char *)dest - 4;\r
+                       dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x",\r
+                               b1[0], b1[1], b1[2], b1[3], b2[0], b2[1], b2[2], b2[3]);\r
+               }\r
        }\r
 \r
        length <<= 1;\r
        Pico_mcd->cdc.DAC.N = (Pico_mcd->cdc.DAC.N + length) & 0xFFFF;\r
        if (Pico_mcd->scd.Status_CDC & 0x08) Pico_mcd->cdc.DBC.N -= length;\r
        else Pico_mcd->cdc.DBC.N = 0;\r
+\r
+       // update DMA_Adr\r
+       length >>= 2;\r
+       if (which != 4) length >>= 1;\r
+       DMA_Adr += length;\r
+       Pico_mcd->s68k_regs[0xA] = DMA_Adr >> 8;\r
+       Pico_mcd->s68k_regs[0xB] = DMA_Adr;\r
 }\r
 \r
 \r