mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
ngen: switched video/font RAM to use memory_array
This commit is contained in:
parent
573351d770
commit
2967a9878e
@ -91,8 +91,6 @@ public:
|
|||||||
m_pic(*this,"pic"),
|
m_pic(*this,"pic"),
|
||||||
m_pit(*this,"pit"),
|
m_pit(*this,"pit"),
|
||||||
m_disk_rom(*this,"disk"),
|
m_disk_rom(*this,"disk"),
|
||||||
m_vram(*this,"vram"),
|
|
||||||
m_fontram(*this,"fontram"),
|
|
||||||
m_fdc(*this,"fdc"),
|
m_fdc(*this,"fdc"),
|
||||||
m_fd0(*this,"fdc:0"),
|
m_fd0(*this,"fdc:0"),
|
||||||
m_fdc_timer(*this,"fdc_timer"),
|
m_fdc_timer(*this,"fdc_timer"),
|
||||||
@ -159,8 +157,8 @@ private:
|
|||||||
required_device<pic8259_device> m_pic;
|
required_device<pic8259_device> m_pic;
|
||||||
required_device<pit8254_device> m_pit;
|
required_device<pit8254_device> m_pit;
|
||||||
optional_memory_region m_disk_rom;
|
optional_memory_region m_disk_rom;
|
||||||
required_memory_region m_vram;
|
memory_array m_vram;
|
||||||
required_memory_region m_fontram;
|
memory_array m_fontram;
|
||||||
optional_device<wd2797_t> m_fdc;
|
optional_device<wd2797_t> m_fdc;
|
||||||
optional_device<floppy_connector> m_fd0;
|
optional_device<floppy_connector> m_fd0;
|
||||||
optional_device<pit8253_device> m_fdc_timer;
|
optional_device<pit8253_device> m_fdc_timer;
|
||||||
@ -749,10 +747,10 @@ MC6845_UPDATE_ROW( ngen_state::crtc_update_row )
|
|||||||
|
|
||||||
for(int x=0;x<bitmap.width();x+=9)
|
for(int x=0;x<bitmap.width();x+=9)
|
||||||
{
|
{
|
||||||
UINT8 ch = m_vram->u16(addr++) & 0xff;
|
UINT8 ch = m_vram.read16(addr++) & 0xff;
|
||||||
for(int z=0;z<9;z++)
|
for(int z=0;z<9;z++)
|
||||||
{
|
{
|
||||||
if(BIT(m_fontram->u16(ch*16+ra),8-z))
|
if(BIT(m_fontram.read16(ch*16+ra),8-z))
|
||||||
bitmap.pix32(y,x+z) = rgb_t(0,0xff,0);
|
bitmap.pix32(y,x+z) = rgb_t(0,0xff,0);
|
||||||
else
|
else
|
||||||
bitmap.pix32(y,x+z) = rgb_t(0,0,0);
|
bitmap.pix32(y,x+z) = rgb_t(0,0,0);
|
||||||
@ -832,7 +830,13 @@ WRITE16_MEMBER( ngen_state::b38_crtc_w )
|
|||||||
|
|
||||||
void ngen_state::machine_start()
|
void ngen_state::machine_start()
|
||||||
{
|
{
|
||||||
|
memory_share* vidshare = memshare("vram");
|
||||||
|
memory_share* fontshare = memshare("fontram");
|
||||||
m_hd_buffer.allocate(1024*8); // 8kB buffer RAM for HD controller
|
m_hd_buffer.allocate(1024*8); // 8kB buffer RAM for HD controller
|
||||||
|
if(vidshare == NULL || fontshare == NULL)
|
||||||
|
fatalerror("Error: VRAM not found");
|
||||||
|
m_vram.set(*vidshare,2);
|
||||||
|
m_fontram.set(*fontshare,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ngen_state::machine_reset()
|
void ngen_state::machine_reset()
|
||||||
@ -848,8 +852,8 @@ void ngen_state::machine_reset()
|
|||||||
// boot ROMs from modules are not mapped anywhere, instead, they have to send the code from the boot ROM via DMA
|
// boot ROMs from modules are not mapped anywhere, instead, they have to send the code from the boot ROM via DMA
|
||||||
static ADDRESS_MAP_START( ngen_mem, AS_PROGRAM, 16, ngen_state )
|
static ADDRESS_MAP_START( ngen_mem, AS_PROGRAM, 16, ngen_state )
|
||||||
AM_RANGE(0x00000, 0xf7fff) AM_RAM
|
AM_RANGE(0x00000, 0xf7fff) AM_RAM
|
||||||
AM_RANGE(0xf8000, 0xf9fff) AM_RAM AM_REGION("vram",0)
|
AM_RANGE(0xf8000, 0xf9fff) AM_RAM AM_SHARE("vram")
|
||||||
AM_RANGE(0xfa000, 0xfbfff) AM_RAM AM_REGION("fontram",0)
|
AM_RANGE(0xfa000, 0xfbfff) AM_RAM AM_SHARE("fontram")
|
||||||
AM_RANGE(0xfc000, 0xfcfff) AM_RAM
|
AM_RANGE(0xfc000, 0xfcfff) AM_RAM
|
||||||
AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("bios",0)
|
AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("bios",0)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
@ -870,8 +874,8 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( ngen386_mem, AS_PROGRAM, 32, ngen_state )
|
static ADDRESS_MAP_START( ngen386_mem, AS_PROGRAM, 32, ngen_state )
|
||||||
AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
|
AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
|
||||||
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_REGION("vram",0)
|
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_SHARE("vram")
|
||||||
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_REGION("fontram",0)
|
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_SHARE("fontram")
|
||||||
AM_RANGE(0x000fc000, 0x000fcfff) AM_RAM
|
AM_RANGE(0x000fc000, 0x000fcfff) AM_RAM
|
||||||
AM_RANGE(0x000fe000, 0x000fffff) AM_ROM AM_REGION("bios",0)
|
AM_RANGE(0x000fe000, 0x000fffff) AM_ROM AM_REGION("bios",0)
|
||||||
AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
|
AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
|
||||||
@ -880,8 +884,8 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( ngen386i_mem, AS_PROGRAM, 32, ngen_state )
|
static ADDRESS_MAP_START( ngen386i_mem, AS_PROGRAM, 32, ngen_state )
|
||||||
AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
|
AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
|
||||||
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_REGION("vram",0)
|
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_SHARE("vram")
|
||||||
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_REGION("fontram",0)
|
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_SHARE("fontram")
|
||||||
AM_RANGE(0x000fc000, 0x000fffff) AM_ROM AM_REGION("bios",0)
|
AM_RANGE(0x000fc000, 0x000fffff) AM_ROM AM_REGION("bios",0)
|
||||||
AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
|
AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
|
||||||
AM_RANGE(0xffffc000, 0xffffffff) AM_ROM AM_REGION("bios",0)
|
AM_RANGE(0xffffc000, 0xffffffff) AM_ROM AM_REGION("bios",0)
|
||||||
|
Loading…
Reference in New Issue
Block a user