/*
* A structure is defined for each
* area of memory on the target
* board. The complete memory
* map consists of an array of
* these structures. Each element
* is initialized to different
* values, when running on MS-DOS
* or running on the target board.
*/
struct MEM_AREA {
DWORD boardOffset;
DWORD baseAddress;
DWORD areaSize;
BYTE areaName[6];
};
/*
* When running on the production
* board, the variable 'boardBase'
* is left to be zero, i.e. all
* memory on the board starts at
* location 0. When simulating on
* a PC running MS-DOS, we do a
* malloc() of a large chunk of
* memory. 'boardBase' is set to
* the address of this chunk. Then,
* for each area of memory defined
* in the following tables, we
* add 'boardBase' to 'boardOffset'
* to get 'baseAddress'.
*/
DWORD boardBase = 0;
#ifndef DOS_SIMULATION
/*
* Define the board's memory map
* in the final production
* version.
*/
struct MEM_AREA memoryMap[4]=
{
{0x20000, 0, 64*1024, "RAM 1"},
{0x30000, 0, 64*1024, "RAM 2"},
{0x40000, 0, 64*1024, "RAM 3"},
{0xE0000, 0,128*1024, "EPROM"},
};
#else
/*
* Define the board's memory map
* when simulating on DOS.
*/
struct MEM_AREA memoryMap[4]=
{
{0x00000, 0, 8*1024, "RAM 1"},
{0x02000, 0, 8*1024, "RAM 2"},
{0x04000, 0, 8*1024, "RAM 3"},
{0xF0000, 0, 64*1024, "EPROM"},
};
#endif
/* End of File */