From 821c7e0b2b46acc7127a074605ac2cd015d0ede4 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Thu, 19 Nov 2015 22:16:57 +0100 Subject: [PATCH] Still more this==NULL cleanup --- src/devices/sound/c140.cpp | 22 ++++++++++------- src/devices/sound/c140.h | 1 + src/devices/sound/ymf271.cpp | 42 ++++++++++++++++++++------------ src/devices/sound/ymf271.h | 5 +++- src/emu/bus/rs232/petitevid.h | 45 +++++++++++++++++++++++++++++++++++ src/emu/diimage.cpp | 13 +++++----- src/mame/drivers/kaneko16.cpp | 19 ++++++++------- src/mame/drivers/segas24.cpp | 6 ++--- src/mame/includes/segas24.h | 19 ++++++++------- 9 files changed, 122 insertions(+), 50 deletions(-) create mode 100644 src/emu/bus/rs232/petitevid.h diff --git a/src/devices/sound/c140.cpp b/src/devices/sound/c140.cpp index daaa33cd47e..bc8c17babd8 100644 --- a/src/devices/sound/c140.cpp +++ b/src/devices/sound/c140.cpp @@ -88,14 +88,15 @@ static inline int limit(INT32 in) c140_device::c140_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, C140, "C140", tag, owner, clock, "c140", __FILE__), - device_sound_interface(mconfig, *this), - m_sample_rate(0), - m_stream(nullptr), - m_banking_type(0), - m_mixer_buffer_left(nullptr), - m_mixer_buffer_right(nullptr), - m_baserate(0), - m_pRom(nullptr) + , device_sound_interface(mconfig, *this), + , m_sample_rate(0), + , m_stream(nullptr), + , m_banking_type(0), + , m_mixer_buffer_left(nullptr), + , m_mixer_buffer_right(nullptr), + , m_baserate(0), + , m_rom_region(*this, tag) + , m_pRom(nullptr) { memset(m_REG, 0, sizeof(UINT8)*0x200); memset(m_pcmtbl, 0, sizeof(INT16)*8); @@ -112,7 +113,10 @@ void c140_device::device_start() m_stream = stream_alloc(0, 2, m_sample_rate); - m_pRom = (INT8 *)region()->base(); + if (m_rom_region) + { + m_pRom = (INT8 *)m_rom_region->base(); + } /* make decompress pcm table */ //2000.06.26 CAB { diff --git a/src/devices/sound/c140.h b/src/devices/sound/c140.h index d94818e9df7..e1fd8dcb8f0 100644 --- a/src/devices/sound/c140.h +++ b/src/devices/sound/c140.h @@ -110,6 +110,7 @@ private: std::unique_ptr m_mixer_buffer_right; int m_baserate; + optional_memory_region m_rom_region; INT8 *m_pRom; UINT8 m_REG[0x200]; diff --git a/src/devices/sound/ymf271.cpp b/src/devices/sound/ymf271.cpp index 14dd53be324..d03e4026020 100644 --- a/src/devices/sound/ymf271.cpp +++ b/src/devices/sound/ymf271.cpp @@ -1706,8 +1706,11 @@ void ymf271_device::device_start() m_timA = timer_alloc(0); m_timB = timer_alloc(1); - m_mem_base = region()->base(); - m_mem_size = region()->bytes(); + if (m_mem_region != NULL) + { + m_mem_base = m_mem_region->base(); + m_mem_size = m_mem_region->bytes(); + } m_irq_handler.resolve(); m_ext_read_handler.resolve(); @@ -1746,20 +1749,29 @@ void ymf271_device::device_reset() const device_type YMF271 = &device_creator; +<<<<<<< HEAD ymf271_device::ymf271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, YMF271, "YMF271", tag, owner, clock, "ymf271", __FILE__), - device_sound_interface(mconfig, *this), - m_timerA(0), - m_timerB(0), - m_irqstate(0), - m_status(0), - m_enable(0), - m_ext_address(0), - m_ext_rw(0), - m_ext_readlatch(0), - m_irq_handler(*this), - m_ext_read_handler(*this), - m_ext_write_handler(*this) + : device_t(mconfig, YMF271, "YMF271", tag, owner, clock, "ymf271", __FILE__) + , device_sound_interface(mconfig, *this) + , m_timerA(0) + , m_timerB(0) + , m_irqstate(0) + , m_status(0) + , m_enable(0) + , m_ext_address(0) + , m_ext_rw(0) + , m_ext_readlatch(0) + , m_mem_base(NULL) + , m_mem_size(0) + , m_irq_handler(*this) + , m_ext_read_handler(*this) + , m_ext_write_handler(*this) + , m_mem_region(*this, tag) + , m_clock(0) + , m_timA(nullptr) + , m_timB(nullptr) + , m_stream(nullptr) + , m_mix_buffer(nullptr) { memset(m_slots, 0, sizeof(m_slots)); memset(m_groups, 0, sizeof(m_groups)); diff --git a/src/devices/sound/ymf271.h b/src/devices/sound/ymf271.h index b4fbcead1af..a3fb8b635c1 100644 --- a/src/devices/sound/ymf271.h +++ b/src/devices/sound/ymf271.h @@ -151,13 +151,16 @@ private: UINT32 m_mem_size; UINT32 m_clock; - emu_timer *m_timA, *m_timB; + emu_timer *m_timA; + emu_timer *m_timB; sound_stream *m_stream; std::unique_ptr m_mix_buffer; devcb_write_line m_irq_handler; devcb_read8 m_ext_read_handler; devcb_write8 m_ext_write_handler; + + optional_memory_region m_mem_region; }; extern const device_type YMF271; diff --git a/src/emu/bus/rs232/petitevid.h b/src/emu/bus/rs232/petitevid.h new file mode 100644 index 00000000000..34554808958 --- /dev/null +++ b/src/emu/bus/rs232/petitevid.h @@ -0,0 +1,45 @@ +// license:BSD-3-Clause +// copyright-holders:smf +#ifndef __RS232_PETITEVID_H__ +#define __RS232_PETITEVID_H__ + +#include "rs232.h" +#include "machine/terminal.h" + + +class rs232_petitevid_device : public device_serial_interface, + public device_rs232_port_interface +{ +public: + rs232_petitevid_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) { device_serial_interface::rx_w(state); } + + DECLARE_WRITE_LINE_MEMBER(update_serial); + +protected: + virtual ioport_constructor device_input_ports() const; + virtual void device_start(); + virtual void device_reset(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + + virtual void tra_callback(); + virtual void tra_complete(); + virtual void rcv_complete(); + virtual void send_key(UINT8 code); + +private: + required_ioport m_rs232_txbaud; + required_ioport m_rs232_rxbaud; + required_ioport m_rs232_startbits; + required_ioport m_rs232_databits; + required_ioport m_rs232_parity; + required_ioport m_rs232_stopbits; + + UINT8 m_curr_key; + bool m_key_valid; +}; + +extern const device_type SERIAL_TERMINAL; + +#endif /* __RS232_TERMINAL_H__ */ diff --git a/src/emu/diimage.cpp b/src/emu/diimage.cpp index ed02e18a442..257a6ae6817 100644 --- a/src/emu/diimage.cpp +++ b/src/emu/diimage.cpp @@ -61,13 +61,13 @@ device_image_interface::device_image_interface(const machine_config &mconfig, de m_mame_file(nullptr), m_software_info_ptr(nullptr), m_software_part_ptr(nullptr), - m_supported(0), + m_supported(0), m_readonly(false), m_created(false), - m_init_phase(false), - m_from_swlist(false), - m_create_format(0), - m_create_args(nullptr), + m_init_phase(false), + m_from_swlist(false), + m_create_format(0), + m_create_args(nullptr), m_is_loading(FALSE) { } @@ -379,7 +379,8 @@ UINT8 *device_image_interface::get_software_region(const char *tag) return nullptr; sprintf( full_tag, "%s:%s", device().tag(), tag ); - return device().machine().root_device().memregion( full_tag )->base(); + memory_region *region = device().machine().root_device().memregion(full_tag); + return region != NULL ? region->base() : NULL; } diff --git a/src/mame/drivers/kaneko16.cpp b/src/mame/drivers/kaneko16.cpp index 96b3987b6de..c395609c6be 100644 --- a/src/mame/drivers/kaneko16.cpp +++ b/src/mame/drivers/kaneko16.cpp @@ -2454,15 +2454,18 @@ MACHINE_CONFIG_END */ void kaneko16_state::kaneko16_unscramble_tiles(const char *region) { - UINT8 *RAM = memregion(region)->base(); - int size = memregion(region)->bytes(); - int i; - - if (RAM == nullptr) return; - - for (i = 0; i < size; i ++) + memory_region *tile_region = memregion(region); + if (tile_region == NULL) { - RAM[i] = ((RAM[i] & 0xF0)>>4) + ((RAM[i] & 0x0F)<<4); + return; + } + + UINT8 *ram = tile_region->base(); + int size = tile_region->bytes(); + + for (int i = 0; i < size; i ++) + { + ram[i] = ((ram[i] & 0xF0) >> 4) + ((ram[i] & 0x0F) << 4); } } diff --git a/src/mame/drivers/segas24.cpp b/src/mame/drivers/segas24.cpp index 729fee2197e..0d97e55ffb3 100644 --- a/src/mame/drivers/segas24.cpp +++ b/src/mame/drivers/segas24.cpp @@ -714,7 +714,7 @@ void segas24_state::reset_control_w(UINT8 data) void segas24_state::reset_bank() { - if (memregion("romboard")->base()) + if (m_romboard != NULL) { membank("bank1")->set_entry(curbank & 15); membank("bank2")->set_entry(curbank & 15); @@ -1263,9 +1263,9 @@ void segas24_state::machine_start() if (track_size) machine().device("floppy_nvram")->set_base(memregion("floppy")->base(), 2*track_size); - UINT8 *usr1 = memregion("romboard")->base(); - if (usr1) + if (m_romboard != NULL) { + UINT8 *usr1 = m_romboard->base(); membank("bank1")->configure_entries(0, 16, usr1, 0x40000); membank("bank2")->configure_entries(0, 16, usr1, 0x40000); } diff --git a/src/mame/includes/segas24.h b/src/mame/includes/segas24.h index f2633b12632..8a44799d2bc 100644 --- a/src/mame/includes/segas24.h +++ b/src/mame/includes/segas24.h @@ -12,14 +12,16 @@ class segas24_state : public driver_device { public: segas24_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu"), - m_subcpu(*this, "subcpu"), - m_dac(*this, "dac"), - m_screen(*this, "screen"), - m_palette(*this, "palette"), - m_generic_paletteram_16(*this, "paletteram") - { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_subcpu(*this, "subcpu") + , m_dac(*this, "dac") + , m_screen(*this, "screen") + , m_palette(*this, "palette") + , m_generic_paletteram_16(*this, "paletteram") + , m_romboard(*this, "romboard") + { + } required_device m_maincpu; required_device m_subcpu; @@ -27,6 +29,7 @@ public: required_device m_screen; required_device m_palette; required_shared_ptr m_generic_paletteram_16; + optional_memory_region m_romboard; static const UINT8 mahmajn_mlt[8]; static const UINT8 mahmajn2_mlt[8];