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
|
Aristocrat MK5 / MKV hardware
|
||||||
possibly 'Acorn Archimedes on a chip' 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"
|
#include "includes/archimds.h"
|
||||||
|
|
||||||
extern UINT8 ioc_regs[0x80/4];
|
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 void archimedes_request_irq_a(running_machine *machine, int mask);
|
||||||
extern UINT32 *archimedes_memc_physmem;
|
extern UINT32 *archimedes_memc_physmem;
|
||||||
|
|
||||||
@ -31,6 +48,7 @@ static VIDEO_UPDATE(aristmk5)
|
|||||||
// sets video DMA to 0x400 - 0x400 - 0xfe00
|
// sets video DMA to 0x400 - 0x400 - 0xfe00
|
||||||
count = 0x800/4; // 0x400 text is offset???
|
count = 0x800/4; // 0x400 text is offset???
|
||||||
|
|
||||||
|
|
||||||
for(y=0;y<480;y++)
|
for(y=0;y<480;y++)
|
||||||
{
|
{
|
||||||
for(x=0;x<640;x+=4)
|
for(x=0;x<640;x+=4)
|
||||||
@ -77,6 +95,15 @@ static MACHINE_RESET( aristmk5 )
|
|||||||
{
|
{
|
||||||
archimedes_reset(machine);
|
archimedes_reset(machine);
|
||||||
ioc_regs[4]|=1; //set printer busy irq?
|
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 )
|
static MACHINE_DRIVER_START( aristmk5 )
|
||||||
|
@ -40,7 +40,7 @@ static const int page_sizes[4] = { 4096, 8192, 16384, 32768 };
|
|||||||
UINT32 *archimedes_memc_physmem;
|
UINT32 *archimedes_memc_physmem;
|
||||||
static UINT32 memc_pagesize;
|
static UINT32 memc_pagesize;
|
||||||
static int memc_latchrom;
|
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];
|
UINT32 vidc_regs[256];
|
||||||
UINT8 ioc_regs[0x80/4];
|
UINT8 ioc_regs[0x80/4];
|
||||||
static UINT32 ioc_timercnt[4], ioc_timerout[4];
|
static UINT32 ioc_timercnt[4], ioc_timerout[4];
|
||||||
@ -206,7 +206,7 @@ READ32_HANDLER(archimedes_memc_logical_r)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logerror("ARCHIMEDES_MEMC: Reading unmapped page\n");
|
logerror("ARCHIMEDES_MEMC: Reading unmapped page %02x\n",page);
|
||||||
return 0xdeadbeef;
|
return 0xdeadbeef;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -237,7 +237,7 @@ WRITE32_HANDLER(archimedes_memc_logical_w)
|
|||||||
}
|
}
|
||||||
else
|
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