summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes
diff options
context:
space:
mode:
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
commit321bdd5e582bc147789001c09ec43e44bc244fe1 (patch)
tree80d6723e20862e5bc3220f554bce0ceb6bbd4964 /src/mame/includes
parent496055720bf33c0abba6cf48e754da447c043ab8 (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.h48
-rw-r--r--src/mame/includes/spectrum.h44
-rw-r--r--src/mame/includes/timex.h2
-rw-r--r--src/mame/includes/tsconf.h9
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;