From fce6ba5ea8d0f2581600cc62c11e552765b83f93 Mon Sep 17 00:00:00 2001 From: TomW Date: Sun, 29 Dec 2013 16:05:24 +0000 Subject: [PATCH] Implemented DMA controller disable, PC2086/3086 self test works properly. --- src/dma.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dma.c b/src/dma.c index 2a01676..f10e4bb 100644 --- a/src/dma.c +++ b/src/dma.c @@ -252,12 +252,15 @@ int dma_channel_read(int channel) { uint16_t temp; + if (dma.command & 0x04) + return DMA_NODATA; + if (!AT) refreshread(); if (channel < 4) { - if (dma.m & (1 << channel)) + if (dma.m & (1 << channel)) return DMA_NODATA; if ((dma.mode[channel] & 0xC) != 8) return DMA_NODATA; @@ -317,6 +320,9 @@ int dma_channel_read(int channel) int dma_channel_write(int channel, uint16_t val) { + if (dma.command & 0x04) + return DMA_NODATA; + if (!AT) refreshread();