diff options
author | Vas Crabb <vas@vastheman.com> | 2022-06-15 15:45:08 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2022-06-15 15:45:08 +1000 |
commit | 321bdd5e582bc147789001c09ec43e44bc244fe1 (patch) | |
tree | 80d6723e20862e5bc3220f554bce0ceb6bbd4964 /src/mame/includes | |
parent | 496055720bf33c0abba6cf48e754da447c043ab8 (diff) |
More miscellaneous cleanup:
spectrum.cpp: Removed a member from the base state class that's only
used by certain Soviet clones. There seems to be some copy/pasted code
in the clone drivers - pehaps they can share some of the implementation.
spec128.cpp: Moved the Spectrum 128 state class declaration to the
corresponding header.
Reduced redundancy in a few fruit machine layouts.
Diffstat (limited to 'src/mame/includes')
-rw-r--r-- | src/mame/includes/spec128.h | 48 | ||||
-rw-r--r-- | src/mame/includes/spectrum.h | 44 | ||||
-rw-r--r-- | src/mame/includes/timex.h | 2 | ||||
-rw-r--r-- | src/mame/includes/tsconf.h | 9 |
4 files changed, 56 insertions, 47 deletions
diff --git a/src/mame/includes/spec128.h b/src/mame/includes/spec128.h index 46b6ff3e2b0..382d1b895dd 100644 --- a/src/mame/includes/spec128.h +++ b/src/mame/includes/spec128.h @@ -9,6 +9,54 @@ #ifndef MAME_INCLUDES_SPEC128_H #define MAME_INCLUDES_SPEC128_H +#pragma once + +#include "spectrum.h" + + +class spectrum_128_state : public spectrum_state +{ +public: + spectrum_128_state(const machine_config &mconfig, device_type type, const char *tag) : + spectrum_state(mconfig, type, tag), + m_bank_rom(*this, "bank_rom%u", 0U), + m_bank_ram(*this, "bank_ram%u", 0U) + { } + + void spectrum_128(machine_config &config); + +protected: + memory_bank_array_creator<1> m_bank_rom; + memory_bank_array_creator<4> m_bank_ram; + + virtual void video_start() override; + virtual void machine_start() override; + virtual void machine_reset() override; + + virtual void spectrum_128_update_memory() override; + virtual rectangle get_screen_area() override; + + virtual bool is_contended(offs_t offset) override; + virtual bool is_vram_write(offs_t offset) override; + + template <u8 Bank> + void spectrum_128_ram_w(offs_t offset, u8 data); + template <u8 Bank> + u8 spectrum_128_ram_r(offs_t offset); + +private: + u8 spectrum_128_pre_opcode_fetch_r(offs_t offset); + void spectrum_128_rom_w(offs_t offset, u8 data); + u8 spectrum_128_rom_r(offs_t offset); + void spectrum_128_port_7ffd_w(offs_t offset, u8 data); + virtual uint8_t spectrum_port_r(offs_t offset) override; + //uint8_t spectrum_128_ula_r(); + + void spectrum_128_io(address_map &map); + void spectrum_128_mem(address_map &map); + void spectrum_128_fetch(address_map &map); +}; + #define X1_128_AMSTRAD 35'469'000 // Main clock (Amstrad 128K model, +2A?) #define X1_128_SINCLAIR 35.469_MHz_XTAL // Main clock (Sinclair 128K model) diff --git a/src/mame/includes/spectrum.h b/src/mame/includes/spectrum.h index 478aaf28b1d..ed1c26309b3 100644 --- a/src/mame/includes/spectrum.h +++ b/src/mame/includes/spectrum.h @@ -112,7 +112,6 @@ protected: optional_shared_ptr<uint8_t> m_video_ram; uint8_t *m_screen_location; - int m_ROMSelection = 0; // FIXME: this is used for various things in derived classes, but not by this base class, and should be removed std::vector<u8> m_contention_pattern; /* Pixel offset in 8px chunk (4T) when current chunk is rendered. */ u8 m_border4t_render_at = 0; @@ -215,49 +214,6 @@ protected: void setup_raw(uint8_t *quickdata, uint32_t quicksize); }; -class spectrum_128_state : public spectrum_state -{ -public: - spectrum_128_state(const machine_config &mconfig, device_type type, const char *tag) : - spectrum_state(mconfig, type, tag), - m_bank_rom(*this, "bank_rom%u", 0U), - m_bank_ram(*this, "bank_ram%u", 0U) - { } - - void spectrum_128(machine_config &config); - -protected: - memory_bank_array_creator<1> m_bank_rom; - memory_bank_array_creator<4> m_bank_ram; - - virtual void video_start() override; - virtual void machine_start() override; - virtual void machine_reset() override; - - virtual void spectrum_128_update_memory() override; - virtual rectangle get_screen_area() override; - - virtual bool is_contended(offs_t offset) override; - virtual bool is_vram_write(offs_t offset) override; - - template <u8 Bank> - void spectrum_128_ram_w(offs_t offset, u8 data); - template <u8 Bank> - u8 spectrum_128_ram_r(offs_t offset); - -private: - u8 spectrum_128_pre_opcode_fetch_r(offs_t offset); - void spectrum_128_rom_w(offs_t offset, u8 data); - u8 spectrum_128_rom_r(offs_t offset); - void spectrum_128_port_7ffd_w(offs_t offset, u8 data); - virtual uint8_t spectrum_port_r(offs_t offset) override; - //uint8_t spectrum_128_ula_r(); - - void spectrum_128_io(address_map &map); - void spectrum_128_mem(address_map &map); - void spectrum_128_fetch(address_map &map); -}; - /*----------- defined in drivers/spectrum.cpp -----------*/ INPUT_PORTS_EXTERN( spectrum ); diff --git a/src/mame/includes/timex.h b/src/mame/includes/timex.h index ae7342b01ec..6a050db23a6 100644 --- a/src/mame/includes/timex.h +++ b/src/mame/includes/timex.h @@ -11,6 +11,8 @@ #pragma once +#include "spec128.h" + #include "bus/generic/carts.h" #include "bus/generic/slot.h" diff --git a/src/mame/includes/tsconf.h b/src/mame/includes/tsconf.h index b2f7535cc79..e69e11fc987 100644 --- a/src/mame/includes/tsconf.h +++ b/src/mame/includes/tsconf.h @@ -10,16 +10,16 @@ #pragma once -#include "spectrum.h" +#include "spec128.h" + #include "machine/beta.h" #include "machine/glukrs.h" #include "machine/pckeybrd.h" #include "machine/spi_sdcard.h" #include "machine/tsconfdma.h" + #include "tilemap.h" -constexpr u16 with_hblank(u16 pixclocks = 0) { return 88 + pixclocks; } -constexpr u16 with_vblank(u16 pixclocks = 0) { return 32 + pixclocks; } class tsconf_state : public spectrum_128_state { @@ -42,6 +42,9 @@ public: void tsconf(machine_config &config); + static constexpr u16 with_hblank(u16 pixclocks) { return 88 + pixclocks; } + static constexpr u16 with_vblank(u16 pixclocks) { return 32 + pixclocks; } + protected: virtual void video_start() override; virtual void machine_start() override; |