- dma16 read/write functions added (untested)
This commit is contained in:
parent
33f4ee6e35
commit
868af09f14
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: pc_system.cc,v 1.15 2001-10-03 13:10:37 bdenney Exp $
|
||||
// $Id: pc_system.cc,v 1.16 2001-12-18 13:14:46 vruppert Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -134,7 +134,6 @@ bx_pc_system_c::dma_write8(Bit32u phy_addr, unsigned channel)
|
||||
|
||||
Bit8u data_byte;
|
||||
|
||||
UNUSED(channel);
|
||||
bx_devices.dma_write8(channel, &data_byte);
|
||||
BX_MEM(0)->write_physical(BX_CPU(0), phy_addr, 1, &data_byte);
|
||||
|
||||
@ -149,7 +148,6 @@ bx_pc_system_c::dma_read8(Bit32u phy_addr, unsigned channel)
|
||||
|
||||
Bit8u data_byte;
|
||||
|
||||
UNUSED(channel);
|
||||
BX_MEM(0)->read_physical(BX_CPU(0), phy_addr, 1, &data_byte);
|
||||
bx_devices.dma_read8(channel, &data_byte);
|
||||
|
||||
@ -157,6 +155,34 @@ bx_pc_system_c::dma_read8(Bit32u phy_addr, unsigned channel)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
bx_pc_system_c::dma_write16(Bit32u phy_addr, unsigned channel)
|
||||
{
|
||||
// DMA controlled xfer of word from I/O to Memory
|
||||
|
||||
Bit16u data_word;
|
||||
|
||||
bx_devices.dma_write16(channel, &data_word);
|
||||
BX_MEM(0)->write_physical(BX_CPU(0), phy_addr, 2, &data_word);
|
||||
|
||||
BX_DBG_DMA_REPORT(phy_addr, 2, BX_WRITE, data_word);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
bx_pc_system_c::dma_read16(Bit32u phy_addr, unsigned channel)
|
||||
{
|
||||
// DMA controlled xfer of word from Memory to I/O
|
||||
|
||||
Bit16u data_word;
|
||||
|
||||
BX_MEM(0)->read_physical(BX_CPU(0), phy_addr, 2, &data_word);
|
||||
bx_devices.dma_read16(channel, &data_word);
|
||||
|
||||
BX_DBG_DMA_REPORT(phy_addr, 2, BX_READ, data_word);
|
||||
}
|
||||
|
||||
|
||||
#if (BX_NUM_SIMULATORS < 2)
|
||||
void
|
||||
bx_pc_system_c::set_INTR(Boolean value)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: pc_system.h,v 1.8 2001-10-03 13:10:37 bdenney Exp $
|
||||
// $Id: pc_system.h,v 1.9 2001-12-18 13:14:46 vruppert Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -162,6 +162,8 @@ public:
|
||||
|
||||
void dma_write8(Bit32u phy_addr, unsigned channel);
|
||||
void dma_read8(Bit32u phy_addr, unsigned channel);
|
||||
void dma_write16(Bit32u phy_addr, unsigned channel);
|
||||
void dma_read16(Bit32u phy_addr, unsigned channel);
|
||||
|
||||
Bit32u inp(Bit16u addr, unsigned io_len);
|
||||
void outp(Bit16u addr, Bit32u value, unsigned io_len);
|
||||
|
Loading…
x
Reference in New Issue
Block a user