summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tms1000/tms1k_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tms1000/tms1k_base.h')
-rw-r--r--src/devices/cpu/tms1000/tms1k_base.h286
1 files changed, 4 insertions, 282 deletions
diff --git a/src/devices/cpu/tms1000/tms1k_base.h b/src/devices/cpu/tms1000/tms1k_base.h
index c1585bd22f0..9ad108b1dca 100644
--- a/src/devices/cpu/tms1000/tms1k_base.h
+++ b/src/devices/cpu/tms1000/tms1k_base.h
@@ -2,7 +2,10 @@
// copyright-holders:Wilbert Pol, hap
/*
- TMS0980/TMS1000-family MCU cores
+ TMS1000 family - base/shared
+
+ Don't include this file, include the specific device header instead,
+ for example tms1000.h
*/
@@ -35,17 +38,6 @@
tms1k_base_device::set_power_off_callback(*device, DEVCB_##_devcb);
-// TMS0270 was designed to interface with TMS5100, set it up at driver level
-#define MCFG_TMS0270_READ_CTL_CB(_devcb) \
- tms0270_cpu_device::set_read_ctl_callback(*device, DEVCB_##_devcb);
-
-#define MCFG_TMS0270_WRITE_CTL_CB(_devcb) \
- tms0270_cpu_device::set_write_ctl_callback(*device, DEVCB_##_devcb);
-
-#define MCFG_TMS0270_WRITE_PDC_CB(_devcb) \
- tms0270_cpu_device::set_write_pdc_callback(*device, DEVCB_##_devcb);
-
-
// pinout reference
/*
@@ -304,274 +296,4 @@ protected:
};
-
-class tms1000_cpu_device : public tms1k_base_device
-{
-public:
- tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-
-protected:
- // overrides
- virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
-
-
- virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) override;
-};
-
-class tms1070_cpu_device : public tms1000_cpu_device
-{
-public:
- tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-class tms1040_cpu_device : public tms1000_cpu_device
-{
-public:
- tms1040_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms1200_cpu_device : public tms1000_cpu_device
-{
-public:
- tms1200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms1100_cpu_device : public tms1000_cpu_device
-{
-public:
- tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-
-protected:
- // overrides
- virtual void device_reset() override;
-
- virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) override;
-
- virtual void op_setr() override;
- virtual void op_rstr() override;
-};
-
-class tms1170_cpu_device : public tms1100_cpu_device
-{
-public:
- tms1170_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-class tms1300_cpu_device : public tms1100_cpu_device
-{
-public:
- tms1300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-class tms1370_cpu_device : public tms1100_cpu_device
-{
-public:
- tms1370_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms1400_cpu_device : public tms1100_cpu_device
-{
-public:
- tms1400_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms1400_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-
-protected:
- // overrides
- virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual void op_br() override;
- virtual void op_call() override;
- virtual void op_retn() override;
-
- virtual void op_setr() override { tms1k_base_device::op_setr(); } // no anomaly with MSB of X register
- virtual void op_rstr() override { tms1k_base_device::op_rstr(); } // "
-};
-
-class tms1470_cpu_device : public tms1400_cpu_device
-{
-public:
- tms1470_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms1600_cpu_device : public tms1400_cpu_device
-{
-public:
- tms1600_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms1600_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-};
-
-class tms1670_cpu_device : public tms1600_cpu_device
-{
-public:
- tms1670_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms0970_cpu_device : public tms1000_cpu_device
-{
-public:
- tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-
-protected:
- // overrides
- virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual void write_o_output(UINT8 index) override;
-
- virtual void op_setr() override;
- virtual void op_tdo() override;
-};
-
-class tms0950_cpu_device : public tms0970_cpu_device
-{
-public:
- tms0950_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-protected:
- // overrides
- virtual void device_reset() override { tms1000_cpu_device::device_reset(); }
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual void op_rstr() override { ; } // assume it has no RSTR or CLO
- virtual void op_clo() override { ; } // "
-};
-
-class tms1990_cpu_device : public tms0970_cpu_device
-{
-public:
- tms1990_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-};
-
-
-class tms0980_cpu_device : public tms0970_cpu_device
-{
-public:
- tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- tms0980_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source);
-
-protected:
- // overrides
- virtual void device_reset() override;
-
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual UINT32 disasm_min_opcode_bytes() const override { return 2; }
- virtual UINT32 disasm_max_opcode_bytes() const override { return 2; }
- virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) override;
-
- virtual UINT8 read_k_input() override;
- virtual void set_cki_bus() override;
- virtual void read_opcode() override;
-
- virtual void op_comx() override;
-
- UINT32 decode_micro(UINT8 sel);
-};
-
-class tms1980_cpu_device : public tms0980_cpu_device
-{
-public:
- tms1980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-protected:
- // overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual void write_o_output(UINT8 index) override { tms1k_base_device::write_o_output(index); }
- virtual UINT8 read_k_input() override { return tms1k_base_device::read_k_input(); }
-
- virtual void op_setr() override { tms1k_base_device::op_setr(); }
- virtual void op_tdo() override;
-};
-
-
-class tms0270_cpu_device : public tms0980_cpu_device
-{
-public:
- tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // static configuration helpers
- template<class _Object> static devcb_base &set_read_ctl_callback(device_t &device, _Object object) { return downcast<tms0270_cpu_device &>(device).m_read_ctl.set_callback(object); }
- template<class _Object> static devcb_base &set_write_ctl_callback(device_t &device, _Object object) { return downcast<tms0270_cpu_device &>(device).m_write_ctl.set_callback(object); }
- template<class _Object> static devcb_base &set_write_pdc_callback(device_t &device, _Object object) { return downcast<tms0270_cpu_device &>(device).m_write_pdc.set_callback(object); }
-
-protected:
- // overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
- virtual machine_config_constructor device_mconfig_additions() const override;
-
- virtual void write_o_output(UINT8 index) override { tms1k_base_device::write_o_output(index); }
- virtual UINT8 read_k_input() override;
- virtual void dynamic_output() override;
-
- virtual void op_setr() override;
- virtual void op_rstr() override;
- virtual void op_tdo() override;
-
-private:
- // state specific to interface with TMS5100
- UINT16 m_r_prev;
- UINT8 m_chipsel;
- UINT8 m_ctl_out;
- UINT8 m_ctl_dir;
- int m_pdc;
-
- UINT8 m_o_latch_low;
- UINT8 m_o_latch;
- UINT8 m_o_latch_prev;
-
- devcb_read8 m_read_ctl;
- devcb_write8 m_write_ctl;
- devcb_write_line m_write_pdc;
-};
-
-
-class tp0320_cpu_device : public tms0980_cpu_device
-{
-public:
- tp0320_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-protected:
- // overrides
- //virtual void device_start() override;
- //virtual void device_reset() override;
- virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) override;
-
- //virtual machine_config_constructor device_mconfig_additions() const override;
-};
-
-
-extern const device_type TMS1000;
-extern const device_type TMS1070;
-extern const device_type TMS1040;
-extern const device_type TMS1200;
-extern const device_type TMS1100;
-extern const device_type TMS1170;
-extern const device_type TMS1300;
-extern const device_type TMS1370;
-extern const device_type TMS1400;
-extern const device_type TMS1470;
-extern const device_type TMS1600;
-extern const device_type TMS1670;
-extern const device_type TMS0950;
-extern const device_type TMS0970;
-extern const device_type TMS1990;
-extern const device_type TMS0980;
-extern const device_type TMS1980;
-extern const device_type TMS0270;
-extern const device_type TP0320;
-
-
#endif /* _TMS1KBASE_H_ */