diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2018-04-04 13:40:37 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2018-04-04 13:40:37 -0400 |
commit | ada3d35a54f7456b9ee3167df8e355eefb6c8471 (patch) | |
tree | 0675898c787f2d4ddd0ba683a07dce9a2d315403 /src/mame | |
parent | 43d77dae62b1c0ff27cf696f2fd2b2c2d986d070 (diff) |
imolagp: Use two-dimensional output finder (nw)
Diffstat (limited to 'src/mame')
-rw-r--r-- | src/mame/drivers/imolagp.cpp | 26 | ||||
-rw-r--r-- | src/mame/layout/imolagp.lay | 60 |
2 files changed, 48 insertions, 38 deletions
diff --git a/src/mame/drivers/imolagp.cpp b/src/mame/drivers/imolagp.cpp index ba953c04470..853111e2961 100644 --- a/src/mame/drivers/imolagp.cpp +++ b/src/mame/drivers/imolagp.cpp @@ -98,13 +98,15 @@ public: m_maincpu(*this, "maincpu"), m_slavecpu(*this, "slave"), m_steer_pot_timer(*this, "pot"), - m_steer_inp(*this, "STEER") + m_steer_inp(*this, "STEER"), + m_digits(*this, "digit%u%u", 0U, 0U) { } required_device<cpu_device> m_maincpu; required_device<cpu_device> m_slavecpu; required_device<timer_device> m_steer_pot_timer; required_ioport m_steer_inp; + output_finder<5, 6> m_digits; uint8_t m_videoram[2][0x4000]; // 2 layers of 16KB uint8_t m_comms_latch[2]; @@ -124,7 +126,7 @@ public: DECLARE_WRITE8_MEMBER(vreg_control_w); DECLARE_WRITE8_MEMBER(vreg_data_w); DECLARE_CUSTOM_INPUT_MEMBER(imolagp_steerlatch_r); - INTERRUPT_GEN_MEMBER(slave_vblank_irq); + DECLARE_WRITE_LINE_MEMBER(vblank_irq); TIMER_DEVICE_CALLBACK_MEMBER(imolagp_pot_callback); virtual void machine_start() override; @@ -228,10 +230,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(imolagp_state::imolagp_pot_callback) m_steer_pot_timer->adjust(attotime::from_msec(20)); } -INTERRUPT_GEN_MEMBER(imolagp_state::slave_vblank_irq) +WRITE_LINE_MEMBER(imolagp_state::vblank_irq) { - m_scroll = m_vreg[0xe]; // latch scroll - device.execute().set_input_line(0, HOLD_LINE); + if (state) + { + m_scroll = m_vreg[0xe]; // latch scroll + m_maincpu->set_input_line(0, HOLD_LINE); + m_slavecpu->set_input_line(0, HOLD_LINE); + } } @@ -270,7 +276,10 @@ WRITE8_MEMBER(imolagp_state::imola_led_board_w) static const uint8_t ls48_map[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; - output().set_digit_value(offset, ls48_map[data & 0x0f]); + int i = offset >> 3; + int j = offset & 7; + if (i < 5 && j < 6) + m_digits[i][j] = ls48_map[data & 0x0f]; /* score: 0, 1, 2, 3 time: 4, 5 @@ -478,6 +487,8 @@ INPUT_PORTS_END void imolagp_state::machine_start() { + m_digits.resolve(); + save_item(NAME(m_vcontrol)); save_item(NAME(m_vreg)); save_item(NAME(m_scroll)); @@ -500,13 +511,11 @@ MACHINE_CONFIG_START(imolagp_state::imolagp) MCFG_CPU_ADD("maincpu", Z80, 3000000) // ? (assume slower than slave) MCFG_CPU_PROGRAM_MAP(imolagp_master_map) MCFG_CPU_IO_MAP(imolagp_master_io) - MCFG_CPU_VBLANK_INT_DRIVER("screen", imolagp_state, irq0_line_hold) MCFG_TIMER_DRIVER_ADD("pot", imolagp_state, imolagp_pot_callback) // maincpu nmi MCFG_CPU_ADD("slave", Z80, 4000000) // ? MCFG_CPU_PROGRAM_MAP(imolagp_slave_map) MCFG_CPU_IO_MAP(imolagp_slave_io) - MCFG_CPU_VBLANK_INT_DRIVER("screen", imolagp_state, slave_vblank_irq) MCFG_QUANTUM_PERFECT_CPU("maincpu") @@ -526,6 +535,7 @@ MACHINE_CONFIG_START(imolagp_state::imolagp) MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp) MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(imolagp_state, vblank_irq)) MCFG_PALETTE_ADD("palette", 0x20) MCFG_PALETTE_INIT_OWNER(imolagp_state, imolagp) diff --git a/src/mame/layout/imolagp.lay b/src/mame/layout/imolagp.lay index dfe1b69dffa..2da9c26a45e 100644 --- a/src/mame/layout/imolagp.lay +++ b/src/mame/layout/imolagp.lay @@ -286,16 +286,16 @@ <bounds x="22" y="-115" width="69" height="27" /> </bezel> - <bezel name="digit0" element="digit"> + <bezel name="digit00" element="digit"> <bounds x="26.5" y="-113" width="15" height="23" /> </bezel> - <bezel name="digit1" element="digit"> + <bezel name="digit01" element="digit"> <bounds x="41.5" y="-113" width="15" height="23" /> </bezel> - <bezel name="digit2" element="digit"> + <bezel name="digit02" element="digit"> <bounds x="56.5" y="-113" width="15" height="23" /> </bezel> - <bezel name="digit3" element="digit"> + <bezel name="digit03" element="digit"> <bounds x="71.5" y="-113" width="15" height="23" /> </bezel> @@ -322,17 +322,17 @@ <bounds x="38" y="-55" width="53" height="39" /> </bezel> - <bezel name="digit10" element="digit"> + <bezel name="digit12" element="digit"> <bounds x="42" y="-53" width="10" height="15" /> </bezel> - <bezel name="digit11" element="digit"> + <bezel name="digit13" element="digit"> <bounds x="52" y="-53" width="10" height="15" /> </bezel> - <bezel name="digit12" element="digit"> + <bezel name="digit14" element="digit"> <bounds x="42" y="-33" width="10" height="15" /> </bezel> - <bezel name="digit13" element="digit"> + <bezel name="digit15" element="digit"> <bounds x="52" y="-33" width="10" height="15" /> </bezel> @@ -365,10 +365,10 @@ <bounds x="129" y="-60" width="42" height="15" /> </bezel> - <bezel name="digit4" element="digit"> + <bezel name="digit04" element="digit"> <bounds x="135" y="-41" width="15" height="23" /> </bezel> - <bezel name="digit5" element="digit"> + <bezel name="digit05" element="digit"> <bounds x="150" y="-41" width="15" height="23" /> </bezel> @@ -388,16 +388,16 @@ <bezel element="text_st"> <bounds x="222.5" y="-114" width="10" height="10" /> </bezel> - <bezel name="digit32" element="digit"> + <bezel name="digit40" element="digit"> <bounds x="234" y="-113" width="10" height="15" /> </bezel> - <bezel name="digit33" element="digit"> + <bezel name="digit41" element="digit"> <bounds x="244" y="-113" width="10" height="15" /> </bezel> - <bezel name="digit34" element="digit"> + <bezel name="digit42" element="digit"> <bounds x="254" y="-113" width="10" height="15" /> </bezel> - <bezel name="digit35" element="digit"> + <bezel name="digit43" element="digit"> <bounds x="264" y="-113" width="10" height="15" /> </bezel> @@ -407,16 +407,16 @@ <bezel element="text_nd"> <bounds x="222.5" y="-94" width="10" height="10" /> </bezel> - <bezel name="digit36" element="digit"> + <bezel name="digit44" element="digit"> <bounds x="234" y="-93" width="10" height="15" /> </bezel> - <bezel name="digit37" element="digit"> + <bezel name="digit45" element="digit"> <bounds x="244" y="-93" width="10" height="15" /> </bezel> - <bezel name="digit24" element="digit"> + <bezel name="digit30" element="digit"> <bounds x="254" y="-93" width="10" height="15" /> </bezel> - <bezel name="digit25" element="digit"> + <bezel name="digit31" element="digit"> <bounds x="264" y="-93" width="10" height="15" /> </bezel> @@ -426,16 +426,16 @@ <bezel element="text_rd"> <bounds x="222.5" y="-74" width="10" height="10" /> </bezel> - <bezel name="digit26" element="digit"> + <bezel name="digit32" element="digit"> <bounds x="234" y="-73" width="10" height="15" /> </bezel> - <bezel name="digit27" element="digit"> + <bezel name="digit33" element="digit"> <bounds x="244" y="-73" width="10" height="15" /> </bezel> - <bezel name="digit28" element="digit"> + <bezel name="digit34" element="digit"> <bounds x="254" y="-73" width="10" height="15" /> </bezel> - <bezel name="digit29" element="digit"> + <bezel name="digit35" element="digit"> <bounds x="264" y="-73" width="10" height="15" /> </bezel> @@ -445,16 +445,16 @@ <bezel element="text_th"> <bounds x="222.5" y="-54" width="10" height="10" /> </bezel> - <bezel name="digit16" element="digit"> + <bezel name="digit20" element="digit"> <bounds x="234" y="-53" width="10" height="15" /> </bezel> - <bezel name="digit17" element="digit"> + <bezel name="digit21" element="digit"> <bounds x="244" y="-53" width="10" height="15" /> </bezel> - <bezel name="digit18" element="digit"> + <bezel name="digit22" element="digit"> <bounds x="254" y="-53" width="10" height="15" /> </bezel> - <bezel name="digit19" element="digit"> + <bezel name="digit23" element="digit"> <bounds x="264" y="-53" width="10" height="15" /> </bezel> @@ -464,16 +464,16 @@ <bezel element="text_th"> <bounds x="222.5" y="-34" width="10" height="10" /> </bezel> - <bezel name="digit20" element="digit"> + <bezel name="digit24" element="digit"> <bounds x="234" y="-33" width="10" height="15" /> </bezel> - <bezel name="digit21" element="digit"> + <bezel name="digit25" element="digit"> <bounds x="244" y="-33" width="10" height="15" /> </bezel> - <bezel name="digit8" element="digit"> + <bezel name="digit10" element="digit"> <bounds x="254" y="-33" width="10" height="15" /> </bezel> - <bezel name="digit9" element="digit"> + <bezel name="digit11" element="digit"> <bounds x="264" y="-33" width="10" height="15" /> </bezel> |