From 8f5467222330ca92de17345657d7f1b23d36f04f Mon Sep 17 00:00:00 2001 From: MooglyGuy Date: Wed, 15 Jan 2020 09:44:20 +0100 Subject: -ut88.cpp: Eliminated *_OVERRIDE macro usage. [Ryan Holtz] --- src/mame/drivers/ut88.cpp | 47 +++++++--------- src/mame/includes/ut88.h | 139 ++++++++++++++++++++++++++++------------------ src/mame/machine/ut88.cpp | 76 ++++++++++++------------- src/mame/video/ut88.cpp | 16 ++---- 4 files changed, 148 insertions(+), 130 deletions(-) diff --git a/src/mame/drivers/ut88.cpp b/src/mame/drivers/ut88.cpp index 6fe1196a35c..65fc7f4d060 100644 --- a/src/mame/drivers/ut88.cpp +++ b/src/mame/drivers/ut88.cpp @@ -38,15 +38,15 @@ static GFXDECODE_START( gfx_ut88 ) GFXDECODE_END /* Address maps */ -void ut88_state::ut88mini_mem(address_map &map) +void ut88mini_state::mem_map(address_map &map) { map.unmap_value_high(); map(0x0000, 0x03ff).rom(); // System ROM map(0xc000, 0xc3ff).ram(); // RAM - map(0x9000, 0x9fff).w(FUNC(ut88_state::ut88mini_write_led)); // 7seg LED + map(0x9000, 0x9fff).w(FUNC(ut88mini_state::led_w)); // 7seg LED } -void ut88_state::ut88_mem(address_map &map) +void ut88_state::mem_map(address_map &map) { map(0x0000, 0x07ff).bankrw("bank1"); // First bank map(0x0800, 0xdfff).ram(); // RAM @@ -56,16 +56,16 @@ void ut88_state::ut88_mem(address_map &map) map(0xf800, 0xffff).rom(); // System ROM } -void ut88_state::ut88mini_io(address_map &map) +void ut88mini_state::io_map(address_map &map) { - map(0xA0, 0xA0).r(FUNC(ut88_state::ut88mini_keyboard_r)); - map(0xA1, 0xA1).r(FUNC(ut88_state::ut88_tape_r)); + map(0xA0, 0xA0).r(FUNC(ut88mini_state::keyboard_r)); + map(0xA1, 0xA1).r(FUNC(ut88mini_state::tape_r)); } -void ut88_state::ut88_io(address_map &map) +void ut88_state::io_map(address_map &map) { - map(0x04, 0x07).rw(FUNC(ut88_state::ut88_keyboard_r), FUNC(ut88_state::ut88_keyboard_w)); - map(0xA1, 0xA1).rw(FUNC(ut88_state::ut88_tape_r), FUNC(ut88_state::ut88_sound_w)); + map(0x04, 0x07).rw(FUNC(ut88_state::keyboard_r), FUNC(ut88_state::keyboard_w)); + map(0xA1, 0xA1).rw(FUNC(ut88_state::tape_r), FUNC(ut88_state::sound_w)); } /* Input ports */ @@ -191,9 +191,8 @@ void ut88_state::ut88(machine_config &config) { /* basic machine hardware */ I8080(config, m_maincpu, 2000000); - m_maincpu->set_addrmap(AS_PROGRAM, &ut88_state::ut88_mem); - m_maincpu->set_addrmap(AS_IO, &ut88_state::ut88_io); - MCFG_MACHINE_RESET_OVERRIDE(ut88_state, ut88 ) + m_maincpu->set_addrmap(AS_PROGRAM, &ut88_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ut88_state::io_map); /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -201,11 +200,9 @@ void ut88_state::ut88(machine_config &config) screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ screen.set_size(64*8, 28*8); screen.set_visarea(0, 64*8-1, 0, 28*8-1); - screen.set_screen_update(FUNC(ut88_state::screen_update_ut88)); + screen.set_screen_update(FUNC(ut88_state::screen_update)); screen.set_palette(m_palette); - MCFG_VIDEO_START_OVERRIDE(ut88_state,ut88) - PALETTE(config, m_palette, palette_device::MONOCHROME); GFXDECODE(config, m_gfxdecode, m_palette, gfx_ut88); @@ -217,9 +214,9 @@ void ut88_state::ut88(machine_config &config) /* Devices */ I8255A(config, m_ppi); - m_ppi->out_pa_callback().set(FUNC(ut88_state::ut88_8255_porta_w)); - m_ppi->in_pb_callback().set(FUNC(ut88_state::ut88_8255_portb_r)); - m_ppi->in_pc_callback().set(FUNC(ut88_state::ut88_8255_portc_r)); + m_ppi->out_pa_callback().set(FUNC(ut88_state::ppi_porta_w)); + m_ppi->in_pb_callback().set(FUNC(ut88_state::ppi_portb_r)); + m_ppi->in_pc_callback().set(FUNC(ut88_state::ppi_portc_r)); CASSETTE(config, m_cassette); m_cassette->set_formats(rku_cassette_formats); @@ -230,14 +227,12 @@ void ut88_state::ut88(machine_config &config) SOFTWARE_LIST(config, "cass_list").set_original("ut88"); } -void ut88_state::ut88mini(machine_config &config) +void ut88mini_state::ut88mini(machine_config &config) { /* basic machine hardware */ I8080(config, m_maincpu, 2000000); - m_maincpu->set_addrmap(AS_PROGRAM, &ut88_state::ut88mini_mem); - m_maincpu->set_addrmap(AS_IO, &ut88_state::ut88mini_io); - MCFG_MACHINE_START_OVERRIDE(ut88_state,ut88mini) - MCFG_MACHINE_RESET_OVERRIDE(ut88_state, ut88mini ) + m_maincpu->set_addrmap(AS_PROGRAM, &ut88mini_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &ut88mini_state::io_map); /* video hardware */ config.set_default_layout(layout_ut88mini); @@ -272,6 +267,6 @@ ROM_END /* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP( 1989, ut88mini, 0, 0, ut88mini, ut88mini, ut88_state, init_ut88mini, "", "UT-88 mini", 0) -COMP( 1989, ut88, ut88mini, 0, ut88, ut88, ut88_state, init_ut88, "", "UT-88", 0) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP( 1989, ut88mini, 0, 0, ut88mini, ut88mini, ut88mini_state, empty_init, "", "UT-88 mini", 0) +COMP( 1989, ut88, ut88mini, 0, ut88, ut88, ut88_state, empty_init, "", "UT-88", 0) diff --git a/src/mame/includes/ut88.h b/src/mame/includes/ut88.h index eb29fc92666..3a19639d0cb 100644 --- a/src/mame/includes/ut88.h +++ b/src/mame/includes/ut88.h @@ -16,90 +16,123 @@ #include "imagedev/cassette.h" #include "emupal.h" - -class ut88_state : public driver_device +class ut88_base_state : public driver_device { public: - ut88_state(const machine_config &mconfig, device_type type, const char *tag) + ut88_base_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_cassette(*this, "cassette") - , m_ppi(*this, "ppi8255") - , m_dac(*this, "dac") - , m_p_videoram(*this, "videoram") , m_region_maincpu(*this, "maincpu") - , m_region_proms(*this, "proms") - , m_bank1(*this, "bank1") , m_io_line0(*this, "LINE0") , m_io_line1(*this, "LINE1") , m_io_line2(*this, "LINE2") + , m_maincpu(*this, "maincpu") + { + } + +protected: + DECLARE_READ8_MEMBER(tape_r); + + required_device m_cassette; + required_memory_region m_region_maincpu; + required_ioport m_io_line0; + required_ioport m_io_line1; + required_ioport m_io_line2; + required_device m_maincpu; +}; + +class ut88_state : public ut88_base_state +{ +public: + ut88_state(const machine_config &mconfig, device_type type, const char *tag) + : ut88_base_state(mconfig, type, tag) + , m_ppi(*this, "ppi8255") + , m_dac(*this, "dac") + , m_p_videoram(*this, "videoram") + , m_bank1(*this, "bank1") , m_io_line3(*this, "LINE3") , m_io_line4(*this, "LINE4") , m_io_line5(*this, "LINE5") , m_io_line6(*this, "LINE6") , m_io_line7(*this, "LINE7") , m_io_line8(*this, "LINE8") - , m_maincpu(*this, "maincpu") , m_gfxdecode(*this, "gfxdecode") , m_palette(*this, "palette") - , m_digits(*this, "digit%u", 0U) { } void ut88(machine_config &config); - void ut88mini(machine_config &config); - - void init_ut88(); - void init_ut88mini(); private: + virtual void driver_init() override; + virtual void machine_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + enum { TIMER_RESET, TIMER_UPDATE_DISPLAY }; - DECLARE_READ8_MEMBER(ut88_keyboard_r); - DECLARE_WRITE8_MEMBER(ut88_keyboard_w); - DECLARE_WRITE8_MEMBER(ut88_sound_w); - DECLARE_READ8_MEMBER(ut88_tape_r); - DECLARE_READ8_MEMBER(ut88mini_keyboard_r); - DECLARE_WRITE8_MEMBER(ut88mini_write_led); - DECLARE_READ8_MEMBER(ut88_8255_portb_r); - DECLARE_READ8_MEMBER(ut88_8255_portc_r); - DECLARE_WRITE8_MEMBER(ut88_8255_porta_w); - DECLARE_MACHINE_RESET(ut88); - DECLARE_VIDEO_START(ut88); - DECLARE_MACHINE_START(ut88mini); - DECLARE_MACHINE_RESET(ut88mini); - uint32_t screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void ut88_io(address_map &map); - void ut88_mem(address_map &map); - void ut88mini_io(address_map &map); - void ut88mini_mem(address_map &map); + DECLARE_READ8_MEMBER(keyboard_r); + DECLARE_WRITE8_MEMBER(keyboard_w); + DECLARE_WRITE8_MEMBER(sound_w); + DECLARE_READ8_MEMBER(ppi_portb_r); + DECLARE_READ8_MEMBER(ppi_portc_r); + DECLARE_WRITE8_MEMBER(ppi_porta_w); + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void io_map(address_map &map); + void mem_map(address_map &map); - required_device m_cassette; - optional_device m_ppi; - optional_device m_dac; - optional_shared_ptr m_p_videoram; int m_keyboard_mask; + + required_device m_ppi; + required_device m_dac; + required_shared_ptr m_p_videoram; + required_memory_bank m_bank1; + required_ioport m_io_line3; + required_ioport m_io_line4; + required_ioport m_io_line5; + required_ioport m_io_line6; + required_ioport m_io_line7; + required_ioport m_io_line8; + required_device m_gfxdecode; + required_device m_palette; +}; + +class ut88mini_state : public ut88_base_state +{ +public: + ut88mini_state(const machine_config &mconfig, device_type type, const char *tag) + : ut88_base_state(mconfig, type, tag) + , m_region_proms(*this, "proms") + , m_digits(*this, "digit%u", 0U) + { } + + void ut88mini(machine_config &config); + +private: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + + void io_map(address_map &map); + void mem_map(address_map &map); + + enum + { + TIMER_RESET, + TIMER_UPDATE_DISPLAY + }; + + DECLARE_READ8_MEMBER(keyboard_r); + DECLARE_WRITE8_MEMBER(led_w); + + required_memory_region m_region_proms; + int m_lcd_digit[6]; - required_memory_region m_region_maincpu; - optional_memory_region m_region_proms; - optional_memory_bank m_bank1; - required_ioport m_io_line0; - required_ioport m_io_line1; - required_ioport m_io_line2; - optional_ioport m_io_line3; - optional_ioport m_io_line4; - optional_ioport m_io_line5; - optional_ioport m_io_line6; - optional_ioport m_io_line7; - optional_ioport m_io_line8; - required_device m_maincpu; - optional_device m_gfxdecode; - optional_device m_palette; output_finder<6> m_digits; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; /*----------- defined in video/ut88.c -----------*/ diff --git a/src/mame/machine/ut88.cpp b/src/mame/machine/ut88.cpp index 0f7b2c09d14..da3f4687010 100644 --- a/src/mame/machine/ut88.cpp +++ b/src/mame/machine/ut88.cpp @@ -25,69 +25,69 @@ static const uint8_t hex_to_7seg[16] = /* Driver initialization */ -void ut88_state::init_ut88() +void ut88_state::driver_init() { /* set initially ROM to be visible on first bank */ - uint8_t *RAM = m_region_maincpu->base(); - memset(RAM,0x0000,0x0800); // make first page empty by default - m_bank1->configure_entries(1, 2, RAM, 0x0000); - m_bank1->configure_entries(0, 2, RAM, 0xf800); + uint8_t *ram = m_region_maincpu->base(); + memset(ram, 0x0000, 0x0800); // make first page empty by default + m_bank1->configure_entries(1, 2, ram, 0x0000); + m_bank1->configure_entries(0, 2, ram, 0xf800); } void ut88_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - switch (id) + if (id == TIMER_RESET) { - case TIMER_RESET: m_bank1->set_entry(0); - break; - case TIMER_UPDATE_DISPLAY: - for (int i=0;i<6;i++) + } +} + +void ut88mini_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +{ + if (id == TIMER_UPDATE_DISPLAY) + { + for (int i = 0; i < 6; i++) m_digits[i] = hex_to_7seg[m_lcd_digit[i]]; timer_set(attotime::from_hz(60), TIMER_UPDATE_DISPLAY); - break; - default: - throw emu_fatalerror("Unknown id in ut88_state::device_timer"); } } - -READ8_MEMBER( ut88_state::ut88_8255_portb_r ) +READ8_MEMBER( ut88_state::ppi_portb_r ) { uint8_t data = 0xff; - if ( m_keyboard_mask & 0x01 ) + if (BIT(m_keyboard_mask, 0)) data &= m_io_line0->read(); - if ( m_keyboard_mask & 0x02 ) + if (BIT(m_keyboard_mask, 1)) data &= m_io_line1->read(); - if ( m_keyboard_mask & 0x04 ) + if (BIT(m_keyboard_mask, 2)) data &= m_io_line2->read(); - if ( m_keyboard_mask & 0x08 ) + if (BIT(m_keyboard_mask, 3)) data &= m_io_line3->read(); - if ( m_keyboard_mask & 0x10 ) + if (BIT(m_keyboard_mask, 4)) data &= m_io_line4->read(); - if ( m_keyboard_mask & 0x20 ) + if (BIT(m_keyboard_mask, 5)) data &= m_io_line5->read(); - if ( m_keyboard_mask & 0x40 ) + if (BIT(m_keyboard_mask, 6)) data &= m_io_line6->read(); - if ( m_keyboard_mask & 0x80 ) + if (BIT(m_keyboard_mask, 7)) data &= m_io_line7->read(); return data; } -READ8_MEMBER( ut88_state::ut88_8255_portc_r ) +READ8_MEMBER( ut88_state::ppi_portc_r ) { return m_io_line8->read(); } -WRITE8_MEMBER( ut88_state::ut88_8255_porta_w ) +WRITE8_MEMBER( ut88_state::ppi_porta_w ) { m_keyboard_mask = data ^ 0xff; } -MACHINE_RESET_MEMBER(ut88_state,ut88) +void ut88_state::machine_reset() { timer_set(attotime::from_usec(10), TIMER_RESET); m_bank1->set_entry(1); @@ -95,31 +95,31 @@ MACHINE_RESET_MEMBER(ut88_state,ut88) } -READ8_MEMBER( ut88_state::ut88_keyboard_r ) +READ8_MEMBER( ut88_state::keyboard_r ) { - return m_ppi->read(offset^0x03); + return m_ppi->read(offset ^ 0x03); } -WRITE8_MEMBER( ut88_state::ut88_keyboard_w ) +WRITE8_MEMBER( ut88_state::keyboard_w ) { - m_ppi->write(offset^0x03, data); + m_ppi->write(offset ^ 0x03, data); } -WRITE8_MEMBER( ut88_state::ut88_sound_w ) +WRITE8_MEMBER( ut88_state::sound_w ) { m_dac->write(BIT(data, 0)); m_cassette->output(BIT(data, 0) ? 1 : -1); } -READ8_MEMBER( ut88_state::ut88_tape_r ) +READ8_MEMBER( ut88_base_state::tape_r ) { double level = m_cassette->input(); return (level < 0) ? 0 : 0xff; } -READ8_MEMBER( ut88_state::ut88mini_keyboard_r ) +READ8_MEMBER( ut88mini_state::keyboard_r ) { // This is real keyboard implementation uint8_t *keyrom1 = m_region_proms->base(); @@ -145,7 +145,7 @@ READ8_MEMBER( ut88_state::ut88mini_keyboard_r ) } -WRITE8_MEMBER( ut88_state::ut88mini_write_led ) +WRITE8_MEMBER( ut88mini_state::led_w ) { switch(offset) { @@ -161,17 +161,13 @@ WRITE8_MEMBER( ut88_state::ut88mini_write_led ) } } -void ut88_state::init_ut88mini() -{ -} - -MACHINE_START_MEMBER(ut88_state,ut88mini) +void ut88mini_state::machine_start() { m_digits.resolve(); timer_set(attotime::from_hz(60), TIMER_UPDATE_DISPLAY); } -MACHINE_RESET_MEMBER(ut88_state,ut88mini) +void ut88mini_state::machine_reset() { m_lcd_digit[0] = m_lcd_digit[1] = m_lcd_digit[2] = 0; m_lcd_digit[3] = m_lcd_digit[4] = m_lcd_digit[5] = 0; diff --git a/src/mame/video/ut88.cpp b/src/mame/video/ut88.cpp index f8c8bd7b4ba..565d27cae48 100644 --- a/src/mame/video/ut88.cpp +++ b/src/mame/video/ut88.cpp @@ -24,20 +24,14 @@ const gfx_layout ut88_charlayout = 8*8 /* size of one char */ }; -VIDEO_START_MEMBER(ut88_state,ut88) +uint32_t ut88_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -} - -uint32_t ut88_state::screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - int x,y; - - for(y = 0; y < 28; y++ ) + for (int y = 0; y < 28; y++) { - for(x = 0; x < 64; x++ ) + for (int x = 0; x < 64; x++) { - int code = m_p_videoram[ x + y*64 ] & 0x7f; - int attr = m_p_videoram[ x+1 + y*64 ] & 0x80; + int code = m_p_videoram[x + y*64] & 0x7f; + int attr = m_p_videoram[x+1 + y*64] & 0x80; m_gfxdecode->gfx(0)->opaque(bitmap,cliprect, code | attr, 0, 0,0, x*8,y*8); } } -- cgit v1.2.3