1e41f28980e31c0e56365930fd555e9ee60399c0
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
5 * PURPOSE: Direct Memory Access Controller emulation -
6 * i8237A compatible with 74LS612 Memory Mapper extension
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
13 /* INCLUDES *******************************************************************/
17 /* DEFINES ********************************************************************/
19 #define DMA_CONTROLLERS 2
20 #define DMA_CONTROLLER_CHANNELS 4 // Each DMA controller has 4 channels
22 typedef struct _DMA_CHANNEL
29 } DMA_CHANNEL
, *PDMA_CHANNEL
;
31 typedef struct _DMA_CONTROLLER
33 DMA_CHANNEL DmaChannel
[DMA_CONTROLLER_CHANNELS
];
45 BOOLEAN FlipFlop
; // 0: LSB ; 1: MSB
47 } DMA_CONTROLLER
, *PDMA_CONTROLLER
;
49 /* 74LS612 Memory Mapper extension */
50 typedef struct _DMA_PAGE_REGISTER
53 } DMA_PAGE_REGISTER
, *PDMA_PAGE_REGISTER
;
55 // The 74LS612 contains 16 bytes, each of them being a page register.
56 // They are accessible via ports 0x80 through 0x8F .
58 /* FUNCTIONS ******************************************************************/
60 VOID
DmaInitialize(VOID
);