mirror of
https://github.com/holub/mame
synced 2025-05-23 22:20:01 +03:00
Virtual memory initial bank hack, to show all of the MK-5 errors, no whatsnew
This commit is contained in:
parent
557293e730
commit
0d8556a7da
@ -1,9 +1,25 @@
|
||||
/*
|
||||
|
||||
Aristocrat MK5 / MKV hardware
|
||||
possibly 'Acorn Archimedes on a chip' hardware
|
||||
Aristocrat MK5 / MKV hardware
|
||||
possibly 'Acorn Archimedes on a chip' hardware
|
||||
|
||||
Note: ARM250 mapping is not identical to plain AA
|
||||
|
||||
code DASMing of POST (Adonis):
|
||||
- bp 0x3400224:
|
||||
checks work RAM [0x87000], if bit 0 active high then all tests are ok, otherwise check what went wrong;
|
||||
- bp 0x3400230: EPROM checksum branch test
|
||||
- bp 0x3400258: DRAM Check branch test
|
||||
- bp 0x3400280: CPU Check branch test
|
||||
- bp 0x34002a8: SRAM Check branch test
|
||||
- bp 0x34002d0: 2KHz Timer branch test
|
||||
- bp 0x34002f8: DRAM emulator branch tests
|
||||
- R0 == 0 "DRAM emulator found"
|
||||
- R0 == 1 "DRAM emulator found"
|
||||
- R0 == 3 "DRAM emulator not found - Error"
|
||||
- R0 == 4 "DRAM emulator found instead of DRAM - Error"
|
||||
- R0 == x "Undefined error in DRAM emulator area"
|
||||
|
||||
Note: ARM250 mapping is not identical to
|
||||
|
||||
*/
|
||||
|
||||
@ -13,6 +29,7 @@
|
||||
#include "includes/archimds.h"
|
||||
|
||||
extern UINT8 ioc_regs[0x80/4];
|
||||
extern INT16 memc_pages[(32*1024*1024)/(4096)]; // the logical RAM area is 32 megs, and the smallest page size is 4k
|
||||
extern void archimedes_request_irq_a(running_machine *machine, int mask);
|
||||
extern UINT32 *archimedes_memc_physmem;
|
||||
|
||||
@ -31,6 +48,7 @@ static VIDEO_UPDATE(aristmk5)
|
||||
// sets video DMA to 0x400 - 0x400 - 0xfe00
|
||||
count = 0x800/4; // 0x400 text is offset???
|
||||
|
||||
|
||||
for(y=0;y<480;y++)
|
||||
{
|
||||
for(x=0;x<640;x+=4)
|
||||
@ -77,6 +95,15 @@ static MACHINE_RESET( aristmk5 )
|
||||
{
|
||||
archimedes_reset(machine);
|
||||
ioc_regs[4]|=1; //set printer busy irq?
|
||||
|
||||
{
|
||||
int i;
|
||||
// kludge, set up MMU pages to a normal value, in order to draw all of the vram
|
||||
for (i = 0; i < (32*1024*1024)/(4096); i++)
|
||||
{
|
||||
memc_pages[i] = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( aristmk5 )
|
||||
|
@ -40,7 +40,7 @@ static const int page_sizes[4] = { 4096, 8192, 16384, 32768 };
|
||||
UINT32 *archimedes_memc_physmem;
|
||||
static UINT32 memc_pagesize;
|
||||
static int memc_latchrom;
|
||||
static INT16 memc_pages[(32*1024*1024)/(4096)]; // the logical RAM area is 32 megs, and the smallest page size is 4k
|
||||
INT16 memc_pages[(32*1024*1024)/(4096)]; // the logical RAM area is 32 megs, and the smallest page size is 4k
|
||||
UINT32 vidc_regs[256];
|
||||
UINT8 ioc_regs[0x80/4];
|
||||
static UINT32 ioc_timercnt[4], ioc_timerout[4];
|
||||
@ -206,7 +206,7 @@ READ32_HANDLER(archimedes_memc_logical_r)
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("ARCHIMEDES_MEMC: Reading unmapped page\n");
|
||||
logerror("ARCHIMEDES_MEMC: Reading unmapped page %02x\n",page);
|
||||
return 0xdeadbeef;
|
||||
}
|
||||
}
|
||||
@ -237,7 +237,7 @@ WRITE32_HANDLER(archimedes_memc_logical_w)
|
||||
}
|
||||
else
|
||||
{
|
||||
logerror("ARCHIMEDES_MEMC: Writing unmapped page, what do we do?\n");
|
||||
logerror("ARCHIMEDES_MEMC: Writing unmapped page %02x, what do we do?\n",page);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user