mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
Implemented DMA vram transfers
This commit is contained in:
parent
6540973d1a
commit
9b4440922d
@ -377,6 +377,9 @@ static void sysh1_dma_transfer( const address_space *space, UINT16 dma_index )
|
||||
if(type & 8)
|
||||
printf("%08x %08x %08x %08x\n",src,dst,size,type);
|
||||
|
||||
if(type == 0xc)
|
||||
dst |= 0x3000000; //to videoram, FIXME: unknown offset
|
||||
|
||||
if(type == 0xd)
|
||||
dst |= 0x3d00000; //to charram, FIXME: unknown offset
|
||||
|
||||
@ -389,7 +392,7 @@ static void sysh1_dma_transfer( const address_space *space, UINT16 dma_index )
|
||||
//debugger_break(space->machine);
|
||||
}
|
||||
|
||||
if(type == 0xd || type == 0xe)
|
||||
if(type == 0xc || type == 0xd || type == 0xe)
|
||||
{
|
||||
for(s_i=0;s_i<size;s_i+=4)
|
||||
{
|
||||
@ -442,6 +445,7 @@ static ADDRESS_MAP_START( system_h1_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000000, 0x001fffff) AM_ROM AM_SHARE("share1") AM_WRITENOP
|
||||
AM_RANGE(0x01000000, 0x01ffffff) AM_ROM AM_REGION("gfx_data",0x0000000)
|
||||
|
||||
AM_RANGE(0x03000000, 0x030fffff) AM_RAM //bg vram
|
||||
AM_RANGE(0x03c00000, 0x03c0ffff) AM_RAM_WRITE(sysh1_pal_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x03d00000, 0x03dfffff) AM_RAM_WRITE(sysh1_char_w) AM_BASE(&h1_charram) //FIXME: half size
|
||||
AM_RANGE(0x03e00000, 0x03efffff) AM_RAM_WRITE(sysh1_dma_w) AM_BASE(&framebuffer_vram) //FIXME: not all of it
|
||||
@ -458,7 +462,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( coolridr_submap, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000000, 0x0001ffff) AM_ROM AM_SHARE("share2")
|
||||
|
||||
AM_RANGE(0x01000000, 0x0100ffff) AM_RAM
|
||||
AM_RANGE(0x01000000, 0x0100ffff) AM_RAM //communication RAM
|
||||
|
||||
AM_RANGE(0x03008800, 0x03008803) AM_RAM /*???*/
|
||||
AM_RANGE(0x03008900, 0x03008903) AM_RAM /*???*/
|
||||
@ -474,13 +478,15 @@ static ADDRESS_MAP_START( coolridr_submap, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x05200000, 0x052001ff) AM_RAM
|
||||
AM_RANGE(0x05300000, 0x0530ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
|
||||
AM_RANGE(0x05ff0000, 0x05ffffff) AM_RAM /*???*/
|
||||
AM_RANGE(0x06000000, 0x06000fff) AM_RAM
|
||||
AM_RANGE(0x06000000, 0x06000fff) AM_RAM //UART TX/RX ports
|
||||
AM_RANGE(0x06100000, 0x06100003) AM_READ_PORT("IN0") AM_WRITENOP
|
||||
AM_RANGE(0x06100004, 0x06100007) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x06100010, 0x06100013) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0x06100008, 0x0610000b) AM_READ_PORT("IN5")
|
||||
AM_RANGE(0x0610000c, 0x0610000f) AM_READ_PORT("IN6")
|
||||
AM_RANGE(0x06100010, 0x06100013) AM_READ_PORT("IN2") AM_WRITENOP
|
||||
AM_RANGE(0x06100014, 0x06100017) AM_READ_PORT("IN3")
|
||||
AM_RANGE(0x0610001c, 0x0610001f) AM_READ_PORT("IN4") AM_WRITENOP
|
||||
AM_RANGE(0x06200000, 0x06200fff) AM_RAM
|
||||
AM_RANGE(0x06200000, 0x06200fff) AM_RAM //check this!
|
||||
AM_RANGE(0x07fff000, 0x07ffffff) AM_RAM
|
||||
AM_RANGE(0x20000000, 0x2001ffff) AM_ROM AM_SHARE("share2")
|
||||
|
||||
@ -821,6 +827,57 @@ static INPUT_PORTS_START( coolridr )
|
||||
PORT_DIPSETTING( 0x00800000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN6")
|
||||
PORT_DIPNAME( 0x00000001, 0x00000001, "IN5-0" )
|
||||
PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00010000, 0x00010000, "IN5-1" )
|
||||
PORT_DIPSETTING( 0x00010000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00020000, 0x00020000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00020000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00040000, 0x00040000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00040000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00080000, 0x00080000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00080000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00100000, 0x00100000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00100000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00200000, 0x00200000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00200000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00400000, 0x00400000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00400000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x00800000, 0x00800000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00800000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
|
||||
PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user