summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/build/create_lib_entries.py
diff options
context:
space:
mode:
author Patrick Mackinlay <pmackinlay@hotmail.com>2020-10-06 09:54:38 +0700
committer Patrick Mackinlay <pmackinlay@hotmail.com>2020-10-06 09:54:38 +0700
commitdef86684accd901b3a88cb0de8d3409c85ca44fa (patch)
tree9e1a59258e92c2cc6096a4ee34ac8d0ceb5567c9 /src/lib/netlist/build/create_lib_entries.py
parenta538585b9892e41a879f1f324c157df75736d162 (diff)
ns32000: avoid potential slave dependency issue
Diffstat (limited to 'src/lib/netlist/build/create_lib_entries.py')
0 files changed, 0 insertions, 0 deletions
'n112' href='#n112'>112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
// license:BSD-3-Clause
// copyright-holders:David Haywood
#ifndef MAME_BUS_EKARA_ROM_H
#define MAME_BUS_EKARA_ROM_H

#pragma once

#include "slot.h"
#include "machine/i2cmem.h"

// ======================> ekara_rom_plain_device

class ekara_rom_plain_device : public device_t,
						public device_ekara_cart_interface
{
public:
	// construction/destruction
	ekara_rom_plain_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

	// reading and writing
	virtual DECLARE_READ8_MEMBER(read_cart) override;
	virtual DECLARE_WRITE8_MEMBER(write_cart) override;

	virtual DECLARE_READ8_MEMBER(read_extra) override { return 0xff; };
	virtual DECLARE_WRITE8_MEMBER(write_extra) override { };

	virtual READ8_MEMBER(read_rom);
	virtual WRITE8_MEMBER(write_rom);

protected:
	ekara_rom_plain_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 { }
};

// ======================> ekara_rom_i2c_base_device

class ekara_rom_i2c_base_device : public ekara_rom_plain_device
{
public:
	// construction/destruction
	ekara_rom_i2c_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	ekara_rom_i2c_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);

	// reading and writing
	virtual READ8_MEMBER(read_rom) override;
	virtual WRITE8_MEMBER(write_rom) override;

	optional_device<i2cmem_device> m_i2cmem;

	virtual DECLARE_READ8_MEMBER(read_extra) override;
	virtual DECLARE_WRITE8_MEMBER(write_extra) override;

	virtual DECLARE_WRITE8_MEMBER(write_bus_control) override;

	virtual bool is_read_access_not_rom(void) override;
	virtual bool is_write_access_not_rom(void) override;

	uint8_t m_buscontrol[3];
};


// ======================> ekara_rom_i2c_24c08_epitch_device

class ekara_rom_i2c_24c08_epitch_device : public ekara_rom_i2c_base_device
{
public:
	// construction/destruction
	ekara_rom_i2c_24c08_epitch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	virtual bool is_read_access_not_rom(void) override;
	virtual bool is_write_access_not_rom(void) override;

	virtual void device_add_mconfig(machine_config &config) override;
};


// ======================> ekara_rom_i2c_24lc04_device

class ekara_rom_i2c_24lc04_device : public ekara_rom_i2c_base_device
{
public:
	// construction/destruction
	ekara_rom_i2c_24lc04_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	virtual void device_add_mconfig(machine_config &config) override;
};

// ======================> ekara_rom_i2c_24lc02_device

class ekara_rom_i2c_24lc02_device : public ekara_rom_i2c_base_device
{
public:
	// construction/destruction
	ekara_rom_i2c_24lc02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	virtual void device_add_mconfig(machine_config &config) override;
};


// ======================> ekara_rom_i2c_24lc02_gc0010_device

class ekara_rom_i2c_24lc02_gc0010_device : public ekara_rom_i2c_base_device
{
public:
	// construction/destruction
	ekara_rom_i2c_24lc02_gc0010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);

protected:
	virtual void device_add_mconfig(machine_config &config) override;

	bool is_read_access_not_rom(void) override;
	bool is_write_access_not_rom(void) override;
	DECLARE_READ8_MEMBER(read_extra) override;
	DECLARE_WRITE8_MEMBER(write_extra) override;
	DECLARE_WRITE_LINE_MEMBER(write_sda) override;
	DECLARE_WRITE_LINE_MEMBER(write_scl) override;
	DECLARE_READ_LINE_MEMBER(read_sda ) override;
};

// device type definition
DECLARE_DEVICE_TYPE(EKARA_ROM_PLAIN,       ekara_rom_plain_device)
DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_BASE,    ekara_rom_i2c_base_device)
DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24C08_EPITCH,   ekara_rom_i2c_24c08_epitch_device)
DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24LC04,  ekara_rom_i2c_24lc04_device)
DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24LC02,  ekara_rom_i2c_24lc02_device)
DECLARE_DEVICE_TYPE(EKARA_ROM_I2C_24LC02_GC0010,  ekara_rom_i2c_24lc02_gc0010_device)

#endif // MAME_BUS_EKARA_ROM_H