summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sbrkout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sbrkout.cpp')
-rw-r--r--src/mame/drivers/sbrkout.cpp45
1 files changed, 15 insertions, 30 deletions
diff --git a/src/mame/drivers/sbrkout.cpp b/src/mame/drivers/sbrkout.cpp
index 80e44e4804c..d0cf0367822 100644
--- a/src/mame/drivers/sbrkout.cpp
+++ b/src/mame/drivers/sbrkout.cpp
@@ -61,9 +61,15 @@ public:
void sbrkout(machine_config &config);
+protected:
+ virtual DECLARE_READ8_MEMBER(switches_r);
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
private:
DECLARE_WRITE8_MEMBER(irq_ack_w);
- virtual DECLARE_READ8_MEMBER(switches_r);
+
DECLARE_WRITE_LINE_MEMBER(pot_mask1_w);
DECLARE_WRITE_LINE_MEMBER(pot_mask2_w);
DECLARE_WRITE8_MEMBER(output_latch_w);
@@ -76,9 +82,6 @@ private:
DECLARE_READ8_MEMBER(sync2_r);
DECLARE_WRITE8_MEMBER(sbrkout_videoram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
uint32_t screen_update_sbrkout(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(scanline_callback);
TIMER_CALLBACK_MEMBER(pot_trigger_callback);
@@ -122,18 +125,6 @@ static constexpr XTAL MAIN_CLOCK = 12.096_MHz_XTAL;
#define TIME_4V attotime::from_hz(MAIN_CLOCK/2/256/2/4)
-
-/*************************************
- *
- * Prototypes
- *
- *************************************/
-
-
-
-
-
-
/*************************************
*
* Machine setup
@@ -142,8 +133,7 @@ static constexpr XTAL MAIN_CLOCK = 12.096_MHz_XTAL;
void sbrkout_state::machine_start()
{
- uint8_t *videoram = m_videoram;
- membank("bank1")->set_base(&videoram[0x380]);
+ membank("bank1")->set_base(&m_videoram[0x380]);
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sbrkout_state::scanline_callback),this));
m_pot_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sbrkout_state::pot_trigger_callback),this));
@@ -168,7 +158,6 @@ void sbrkout_state::machine_reset()
TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback)
{
- uint8_t *videoram = m_videoram;
int scanline = param;
/* force a partial update before anything happens */
@@ -179,7 +168,7 @@ TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback)
m_maincpu->set_input_line(0, ASSERT_LINE);
/* update the DAC state */
- m_dac->write((videoram[0x380 + 0x11] & (scanline >> 2)) != 0);
+ m_dac->write((m_videoram[0x380 + 0x11] & (scanline >> 2)) != 0);
/* on the VBLANK, read the pot and schedule an interrupt time for it */
if (scanline == m_screen->visible_area().bottom() + 1)
@@ -342,8 +331,7 @@ READ8_MEMBER(sbrkout_state::sync2_r)
TILE_GET_INFO_MEMBER(sbrkout_state::get_bg_tile_info)
{
- uint8_t *videoram = m_videoram;
- int code = (videoram[tile_index] & 0x80) ? videoram[tile_index] : 0;
+ int code = (m_videoram[tile_index] & 0x80) ? m_videoram[tile_index] : 0;
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
@@ -356,8 +344,7 @@ void sbrkout_state::video_start()
WRITE8_MEMBER(sbrkout_state::sbrkout_videoram_w)
{
- uint8_t *videoram = m_videoram;
- videoram[offset] = data;
+ m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
@@ -371,15 +358,13 @@ WRITE8_MEMBER(sbrkout_state::sbrkout_videoram_w)
uint32_t sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- uint8_t *videoram = m_videoram;
-
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
for (int ball = 2; ball >= 0; ball--)
{
- int code = ((videoram[0x380 + 0x18 + ball * 2 + 1] & 0x80) >> 7);
- int sx = 31 * 8 - videoram[0x380 + 0x10 + ball * 2];
- int sy = 30 * 8 - videoram[0x380 + 0x18 + ball * 2];
+ int code = ((m_videoram[0x380 + 0x18 + ball * 2 + 1] & 0x80) >> 7);
+ int sx = 31 * 8 - m_videoram[0x380 + 0x10 + ball * 2];
+ int sy = 30 * 8 - m_videoram[0x380 + 0x18 + ball * 2];
m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, code, 0, 0, 0, sx, sy, 0);
}
@@ -558,7 +543,7 @@ GFXDECODE_END
void sbrkout_state::sbrkout(machine_config &config)
{
/* basic machine hardware */
- M6502(config, m_maincpu, MAIN_CLOCK/16); // 375 KHz? Should be 750KHz?
+ M6502(config, m_maincpu, MAIN_CLOCK/16); // 756KHz verified
m_maincpu->set_addrmap(AS_PROGRAM, &sbrkout_state::main_map);
F9334(config, m_outlatch); // H8