2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: subsystems/mvdm/ntvdm/hardware/dma.h
5 * PURPOSE: ISA DMA - Direct Memory Access Controller emulation -
6 * i8237A compatible with 74LS612 Memory Mapper extension
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
13 /* DEFINES ********************************************************************/
15 #define DMA_CONTROLLERS 2
16 #define DMA_CONTROLLER_CHANNELS 4 // Each DMA controller has 4 channels
18 typedef struct _DMA_CHANNEL
25 } DMA_CHANNEL
, *PDMA_CHANNEL
;
27 typedef struct _DMA_CONTROLLER
29 DMA_CHANNEL DmaChannel
[DMA_CONTROLLER_CHANNELS
];
41 BOOLEAN FlipFlop
; // 0: LSB ; 1: MSB
43 } DMA_CONTROLLER
, *PDMA_CONTROLLER
;
45 /* 74LS612 Memory Mapper extension */
46 typedef struct _DMA_PAGE_REGISTER
49 } DMA_PAGE_REGISTER
, *PDMA_PAGE_REGISTER
;
51 // The 74LS612 contains 16 bytes, each of them being a page register.
52 // They are accessible via ports 0x80 through 0x8F.
54 /* FUNCTIONS ******************************************************************/
56 DWORD
DmaRequest(IN WORD iChannel
,
60 VOID
DmaInitialize(VOID
);