Implemented DMA controller disable, PC2086/3086 self test works properly.
This commit is contained in:
parent
c05d6693b6
commit
fce6ba5ea8
1 changed files with 7 additions and 1 deletions
|
|
@ -252,12 +252,15 @@ int dma_channel_read(int channel)
|
||||||
{
|
{
|
||||||
uint16_t temp;
|
uint16_t temp;
|
||||||
|
|
||||||
|
if (dma.command & 0x04)
|
||||||
|
return DMA_NODATA;
|
||||||
|
|
||||||
if (!AT)
|
if (!AT)
|
||||||
refreshread();
|
refreshread();
|
||||||
|
|
||||||
if (channel < 4)
|
if (channel < 4)
|
||||||
{
|
{
|
||||||
if (dma.m & (1 << channel))
|
if (dma.m & (1 << channel))
|
||||||
return DMA_NODATA;
|
return DMA_NODATA;
|
||||||
if ((dma.mode[channel] & 0xC) != 8)
|
if ((dma.mode[channel] & 0xC) != 8)
|
||||||
return DMA_NODATA;
|
return DMA_NODATA;
|
||||||
|
|
@ -317,6 +320,9 @@ int dma_channel_read(int channel)
|
||||||
|
|
||||||
int dma_channel_write(int channel, uint16_t val)
|
int dma_channel_write(int channel, uint16_t val)
|
||||||
{
|
{
|
||||||
|
if (dma.command & 0x04)
|
||||||
|
return DMA_NODATA;
|
||||||
|
|
||||||
if (!AT)
|
if (!AT)
|
||||||
refreshread();
|
refreshread();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue