docastle.cpp: Replace MCFG_CPU_VBLANK_INT with CRTC callbacks (nw)

This commit is contained in:
AJR 2018-04-16 14:13:20 -04:00
parent d752e03a8d
commit 2b2c87dfc5
2 changed files with 22 additions and 2 deletions

View File

@ -178,6 +178,24 @@ WRITE_LINE_MEMBER(docastle_state::docastle_tint)
}
}
WRITE_LINE_MEMBER(docastle_state::stx_on_w)
{
if (state)
{
m_maincpu->set_input_line(0, ASSERT_LINE);
m_cpu3->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
}
WRITE_LINE_MEMBER(docastle_state::stx_off_w)
{
if (!state)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
m_cpu3->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
}
WRITE_LINE_MEMBER(docastle_state::idsoccer_adpcm_int)
{
if (m_adpcm_pos >= memregion("adpcm")->bytes())
@ -584,14 +602,12 @@ MACHINE_CONFIG_START(docastle_state::docastle)
MCFG_CPU_ADD("maincpu", Z80, XTAL(4'000'000))
MCFG_CPU_PROGRAM_MAP(docastle_map)
MCFG_CPU_IO_MAP(docastle_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", docastle_state, irq0_line_hold)
MCFG_CPU_ADD("slave", Z80, XTAL(4'000'000))
MCFG_CPU_PROGRAM_MAP(docastle_map2)
MCFG_CPU_ADD("cpu3", Z80, XTAL(4'000'000))
MCFG_CPU_PROGRAM_MAP(docastle_map3)
MCFG_CPU_VBLANK_INT_DRIVER("screen", docastle_state, nmi_line_pulse)
MCFG_DEVICE_ADD("inp1", TMS1025, 0)
MCFG_TMS1025_READ_PORT_CB(PORT1, IOPORT("DSW2"))
@ -621,6 +637,8 @@ MACHINE_CONFIG_START(docastle_state::docastle)
MCFG_MC6845_VISAREA_ADJUST(8,-8,0,0)
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(docastle_state, docastle_tint))
MCFG_MC6845_OUT_CUR_CB(WRITELINE(docastle_state, stx_on_w))
MCFG_MC6845_OUT_DE_CB(WRITELINE(docastle_state, stx_off_w))
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL(9'828'000)/2, 0x138, 8, 0x100-8, 0x108, 0, 0xc0) // from crtc

View File

@ -77,6 +77,8 @@ public:
void video_start_common( uint32_t tile_transmask );
void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
DECLARE_WRITE_LINE_MEMBER(docastle_tint);
DECLARE_WRITE_LINE_MEMBER(stx_on_w);
DECLARE_WRITE_LINE_MEMBER(stx_off_w);
DECLARE_WRITE_LINE_MEMBER(idsoccer_adpcm_int);
void dorunrun(machine_config &config);
void idsoccer(machine_config &config);