-#if 0\r
- dest = (unsigned char *) Ram_PCM;\r
- dep = ((Pico_mcd->cdc.DMA_Adr & 0x03FF) << 2) + PCM_Chip.Bank;\r
-#else\r
- cdprintf("TODO: PCM Dma");\r
-#endif\r
+ dep = (DMA_Adr & 0x03FF) << 2;\r
+ dprintf("CD DMA # %04x -> PCM[%i] # %04x, len=%i",\r
+ Pico_mcd->cdc.DAC.N, Pico_mcd->pcm.bank, dep, length);\r
+ dest = (unsigned short *) (Pico_mcd->pcm_ram_b[Pico_mcd->pcm.bank] + dep);\r
+\r
+ if (Pico_mcd->cdc.DAC.N & 1) /* unaligned src? */\r
+ memcpy(dest, src, length*2);\r
+ else memcpy16(dest, (unsigned short *) src, length);\r