mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
(MESS) fc100 : connected char rom, inverse attribute, cursor.
This commit is contained in:
parent
23b7ef1207
commit
9503166d0b
@ -29,6 +29,12 @@ public:
|
|||||||
|
|
||||||
DECLARE_READ8_MEMBER( mc6847_videoram_r );
|
DECLARE_READ8_MEMBER( mc6847_videoram_r );
|
||||||
|
|
||||||
|
UINT8 *m_p_chargen;
|
||||||
|
static UINT8 get_char_rom(running_machine &machine, UINT8 ch, int line)
|
||||||
|
{
|
||||||
|
fc100_state *state = machine.driver_data<fc100_state>();
|
||||||
|
return state->m_p_chargen[(ch&0x7F)*16+line];
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
virtual void machine_reset();
|
virtual void machine_reset();
|
||||||
@ -52,7 +58,7 @@ private:
|
|||||||
static ADDRESS_MAP_START( fc100_mem, AS_PROGRAM, 8, fc100_state )
|
static ADDRESS_MAP_START( fc100_mem, AS_PROGRAM, 8, fc100_state )
|
||||||
ADDRESS_MAP_UNMAP_HIGH
|
ADDRESS_MAP_UNMAP_HIGH
|
||||||
AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
|
AM_RANGE( 0x0000, 0x5fff ) AM_ROM AM_REGION("roms", 0)
|
||||||
AM_RANGE( 0x8000, 0x83ff ) AM_RAM // Work RAM??
|
AM_RANGE( 0x6000, 0xBFFF ) AM_RAM
|
||||||
AM_RANGE( 0xc000, 0xffff ) AM_RAM AM_SHARE("videoram")
|
AM_RANGE( 0xc000, 0xffff ) AM_RAM AM_SHARE("videoram")
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -128,6 +134,7 @@ void fc100_state::machine_start()
|
|||||||
|
|
||||||
void fc100_state::machine_reset()
|
void fc100_state::machine_reset()
|
||||||
{
|
{
|
||||||
|
m_p_chargen = memregion("chargen")->base();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
@ -189,9 +196,10 @@ READ8_MEMBER( fc100_state::mc6847_videoram_r )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Standard text
|
// Standard text
|
||||||
UINT8 data = m_videoram[offset % 0xc00];
|
UINT8 data = m_videoram[offset];
|
||||||
|
UINT8 attr = m_videoram[offset+0x200];
|
||||||
|
|
||||||
m_s68047p->inv_w( ( data & 0x80 ) ? ASSERT_LINE : CLEAR_LINE );
|
m_s68047p->inv_w( BIT( attr, 0 ));
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@ -208,11 +216,10 @@ static const mc6847_interface fc100_mc6847_interface =
|
|||||||
DEVCB_NULL, /* GM0 */
|
DEVCB_NULL, /* GM0 */
|
||||||
DEVCB_NULL, /* CSS */
|
DEVCB_NULL, /* CSS */
|
||||||
DEVCB_NULL, /* AS */
|
DEVCB_NULL, /* AS */
|
||||||
DEVCB_NULL, /* INTEXT */
|
DEVCB_LINE_VCC, /* INTEXT */
|
||||||
DEVCB_NULL, /* INV */
|
DEVCB_NULL, /* INV */
|
||||||
|
|
||||||
NULL,
|
&fc100_state::get_char_rom
|
||||||
false
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -221,7 +228,7 @@ static MACHINE_CONFIG_START( fc100, fc100_state )
|
|||||||
MCFG_CPU_ADD("maincpu",Z80, 9159090/2)
|
MCFG_CPU_ADD("maincpu",Z80, 9159090/2)
|
||||||
MCFG_CPU_PROGRAM_MAP(fc100_mem)
|
MCFG_CPU_PROGRAM_MAP(fc100_mem)
|
||||||
MCFG_CPU_IO_MAP(fc100_io)
|
MCFG_CPU_IO_MAP(fc100_io)
|
||||||
//MCFG_CPU_VBLANK_INT_DRIVER("screen", fc100_state, irq0_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", fc100_state, irq0_line_hold)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_MC6847_ADD("s68047p", S68047, 9159090/3, fc100_mc6847_interface ) // Clock not verified
|
MCFG_MC6847_ADD("s68047p", S68047, 9159090/3, fc100_mc6847_interface ) // Clock not verified
|
||||||
|
Loading…
Reference in New Issue
Block a user