summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/sega8/rom.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/sega8/rom.h')
-rw-r--r--src/devices/bus/sega8/rom.h131
1 files changed, 69 insertions, 62 deletions
diff --git a/src/devices/bus/sega8/rom.h b/src/devices/bus/sega8/rom.h
index a4b7df2599b..9e97e40f45f 100644
--- a/src/devices/bus/sega8/rom.h
+++ b/src/devices/bus/sega8/rom.h
@@ -1,7 +1,9 @@
// license:BSD-3-Clause
// copyright-holders:Fabio Priuli
-#ifndef __SEGA8_ROM_H
-#define __SEGA8_ROM_H
+#ifndef MAME_BUS_SEGA8_ROM_H
+#define MAME_BUS_SEGA8_ROM_H
+
+#pragma once
#include "sega8_slot.h"
#include "machine/eepromser.h"
@@ -13,13 +15,8 @@ class sega8_rom_device : public device_t,
{
public:
// construction/destruction
- sega8_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
sega8_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
virtual void late_bank_setup() override;
// reading and writing
@@ -28,6 +25,12 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_mapper) override;
protected:
+ sega8_rom_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_rom_bank_base[3];
uint8_t m_ram_base;
int m_ram_enabled;
@@ -47,7 +50,7 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
};
@@ -62,7 +65,7 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
};
@@ -77,7 +80,7 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
// has internal RAM which overwrites the system one!
virtual DECLARE_READ8_MEMBER(read_ram) override;
@@ -96,7 +99,7 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
// has internal RAM which overwrites the system one!
virtual DECLARE_READ8_MEMBER(read_ram) override;
@@ -113,9 +116,7 @@ public:
sega8_terebi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void device_start() override;
virtual ioport_constructor device_input_ports() const override;
- virtual void device_reset() override;
required_ioport m_tvdraw_x;
required_ioport m_tvdraw_y;
@@ -124,9 +125,12 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_tvdraw_data;
};
@@ -142,7 +146,7 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
// has internal RAM which overwrites the system one!
virtual DECLARE_READ8_MEMBER(read_ram) override;
@@ -160,8 +164,8 @@ public:
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
- virtual DECLARE_WRITE8_MEMBER(write_cart) override {}
- virtual DECLARE_WRITE8_MEMBER(write_mapper) override {}
+ virtual DECLARE_WRITE8_MEMBER(write_cart) override { }
+ virtual DECLARE_WRITE8_MEMBER(write_mapper) override { }
// has internal RAM which overwrites the system one!
virtual DECLARE_READ8_MEMBER(read_ram) override;
@@ -181,9 +185,7 @@ public:
sega8_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void device_start() override;
virtual machine_config_constructor device_mconfig_additions() const override;
- virtual void device_reset() override;
virtual void late_bank_setup() override;
@@ -193,6 +195,9 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_mapper) override;
protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_rom_bank_base[3];
required_device<eeprom_serial_93cxx_device> m_eeprom;
@@ -210,10 +215,6 @@ public:
// construction/destruction
sega8_codemasters_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
virtual void late_bank_setup() override;
// reading and writing
@@ -222,6 +223,10 @@ public:
// no mapper write for this!
protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_rom_bank_base[3];
uint8_t m_ram_base;
int m_ram_enabled;
@@ -236,14 +241,15 @@ public:
// construction/destruction
sega8_4pak_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
private:
uint8_t m_reg[3];
};
@@ -256,13 +262,8 @@ class sega8_zemina_device : public device_t,
{
public:
// construction/destruction
- sega8_zemina_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
sega8_zemina_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
virtual void late_bank_setup() override;
// reading and writing
@@ -271,6 +272,12 @@ public:
// no mapper write for this!
protected:
+ sega8_zemina_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_rom_bank_base[6];
uint8_t m_ram_base;
int m_ram_enabled;
@@ -298,9 +305,6 @@ public:
// construction/destruction
sega8_janggun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override { save_item(NAME(m_rom_bank_base)); }
-
virtual void late_bank_setup() override;
// reading and writing
@@ -309,6 +313,9 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_mapper) override;
protected:
+ // device-level overrides
+ virtual void device_start() override { save_item(NAME(m_rom_bank_base)); }
+
uint8_t m_rom_bank_base[6];
};
@@ -321,9 +328,6 @@ public:
// construction/destruction
sega8_hicom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override { save_item(NAME(m_rom_bank_base)); }
-
virtual void late_bank_setup() override;
// reading and writing
@@ -332,6 +336,9 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_mapper) override;
protected:
+ // device-level overrides
+ virtual void device_start() override { save_item(NAME(m_rom_bank_base)); }
+
uint8_t m_rom_bank_base;
};
@@ -373,10 +380,6 @@ public:
// construction/destruction
sega8_seojin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
// reading and writing
virtual DECLARE_READ8_MEMBER(read_cart) override;
virtual DECLARE_WRITE8_MEMBER(write_cart) override;
@@ -385,29 +388,33 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_ram) override;
protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
uint8_t m_gamesel;
uint8_t m_readxor;
};
// device type definition
-extern const device_type SEGA8_ROM_STD;
-extern const device_type SEGA8_ROM_OTHELLO;
-extern const device_type SEGA8_ROM_CASTLE;
-extern const device_type SEGA8_ROM_BASIC_L3;
-extern const device_type SEGA8_ROM_MUSIC_EDITOR;
-extern const device_type SEGA8_ROM_DAHJEE_TYPEA;
-extern const device_type SEGA8_ROM_DAHJEE_TYPEB;
-extern const device_type SEGA8_ROM_EEPROM;
-extern const device_type SEGA8_ROM_TEREBI;
-extern const device_type SEGA8_ROM_CODEMASTERS;
-extern const device_type SEGA8_ROM_4PAK;
-extern const device_type SEGA8_ROM_ZEMINA;
-extern const device_type SEGA8_ROM_NEMESIS;
-extern const device_type SEGA8_ROM_JANGGUN;
-extern const device_type SEGA8_ROM_HICOM;
-extern const device_type SEGA8_ROM_KOREAN;
-extern const device_type SEGA8_ROM_KOREAN_NB;
-extern const device_type SEGA8_ROM_SEOJIN;
-
-#endif
+DECLARE_DEVICE_TYPE(SEGA8_ROM_STD, sega8_rom_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_OTHELLO, sega8_othello_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_CASTLE, sega8_castle_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_BASIC_L3, sega8_basic_l3_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_MUSIC_EDITOR, sega8_music_editor_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEA, sega8_dahjee_typea_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEB, sega8_dahjee_typeb_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_EEPROM, sega8_eeprom_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_TEREBI, sega8_terebi_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_CODEMASTERS, sega8_codemasters_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_4PAK, sega8_4pak_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_ZEMINA, sega8_zemina_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_NEMESIS, sega8_nemesis_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_JANGGUN, sega8_janggun_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_HICOM, sega8_hicom_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN, sega8_korean_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN_NB, sega8_korean_nb_device)
+DECLARE_DEVICE_TYPE(SEGA8_ROM_SEOJIN, sega8_seojin_device)
+
+#endif // MAME_BUS_SEGA8_ROM_H