void amiga_fdc::dmacon_set(UINT16 data) { live_sync(); dmacon = data; dma_check(); live_run(); }
void amiga_fdc::dmacon_set(uint16_t data) { live_sync(); dmacon = data; dma_check(); live_run(); }
void amiga_fdc::dmacon_set(UINT16 data) { live_sync(); dmacon = data; dma_check(); dskbyt = dskbyt & 0xbfff; if(dma_state != DMA_IDLE) dskbyt |= 0x4000; live_run(); }
void amiga_fdc::dsklen_w(UINT16 data) { live_sync(); if(!(data & 0x8000) || (data == pre_dsklen)) { dsklen = pre_dsklen = data; dma_check(); } else pre_dsklen = data; live_run(); }
int dma_xfer(void *dest, uint count, void *src) { volatile ccsr_dma_t *dma = (void *)(CFG_MPC85xx_DMA_ADDR); dma->dar0 = (uint) dest; dma->sar0 = (uint) src; dma->bcr0 = count; dma->mr0 = 0xf000004; asm("sync;isync;msync"); dma->mr0 = 0xf000005; asm("sync;isync;msync"); return dma_check(); }
void amiga_fdc::dsklen_w(UINT16 data) { live_sync(); if(!(data & 0x8000) || (data == pre_dsklen)) { dsklen = pre_dsklen = data; dma_check(); dskbyt = dskbyt & 0x9fff; if(data & 0x4000) dskbyt |= 0x2000; if(dma_state != DMA_IDLE) dskbyt |= 0x4000; } else pre_dsklen = data; live_run(); }