mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
tms1000: added TMS1700/1730 mcu types
This commit is contained in:
parent
59662e6c71
commit
bd04e5b17d
@ -2,7 +2,10 @@
|
|||||||
// copyright-holders:hap
|
// copyright-holders:hap
|
||||||
/*
|
/*
|
||||||
|
|
||||||
TMS1000 family - TMS1000, TMS1070, TMS1040, TMS1200
|
TMS1000 family - TMS1000, TMS1070, TMS1040, TMS1200, TMS1700, TMS1730
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- which O pins are connected on TMS1730?
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -23,6 +26,8 @@ const device_type TMS1070 = &device_creator<tms1070_cpu_device>; // high voltage
|
|||||||
const device_type TMS1040 = &device_creator<tms1040_cpu_device>; // same as TMS1070 with just a different pinout?
|
const device_type TMS1040 = &device_creator<tms1040_cpu_device>; // same as TMS1070 with just a different pinout?
|
||||||
const device_type TMS1200 = &device_creator<tms1200_cpu_device>; // 40-pin DIP, 13 R pins
|
const device_type TMS1200 = &device_creator<tms1200_cpu_device>; // 40-pin DIP, 13 R pins
|
||||||
// TMS1270 has 10 O pins, how does that work?
|
// TMS1270 has 10 O pins, how does that work?
|
||||||
|
const device_type TMS1700 = &device_creator<tms1000_cpu_device>; // 28-pin DIP, RAM/ROM size halved, 9 R pins
|
||||||
|
const device_type TMS1730 = &device_creator<tms1000_cpu_device>; // 20-pin DIP, same die as TMS1700, package has less pins: 6 R pins, 5 O pins
|
||||||
|
|
||||||
|
|
||||||
// internal memory maps
|
// internal memory maps
|
||||||
@ -30,10 +35,18 @@ static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8, tms1k_base_device)
|
|||||||
AM_RANGE(0x000, 0x3ff) AM_ROM
|
AM_RANGE(0x000, 0x3ff) AM_ROM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START(program_9bit_8, AS_PROGRAM, 8, tms1k_base_device)
|
||||||
|
AM_RANGE(0x000, 0x1ff) AM_ROM
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1k_base_device)
|
static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1k_base_device)
|
||||||
AM_RANGE(0x00, 0x3f) AM_RAM
|
AM_RANGE(0x00, 0x3f) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START(data_32x4, AS_DATA, 8, tms1k_base_device)
|
||||||
|
AM_RANGE(0x00, 0x1f) AM_RAM
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
// device definitions
|
// device definitions
|
||||||
tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
@ -56,6 +69,14 @@ tms1200_cpu_device::tms1200_cpu_device(const machine_config &mconfig, const char
|
|||||||
: tms1000_cpu_device(mconfig, TMS1200, "TMS1200", tag, owner, clock, 8, 13, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1200", __FILE__)
|
: tms1000_cpu_device(mconfig, TMS1200, "TMS1200", tag, owner, clock, 8, 13, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1200", __FILE__)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
tms1700_cpu_device::tms1700_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
|
: tms1000_cpu_device(mconfig, TMS1700, "TMS1700", tag, owner, clock, 8, 9, 5, 8, 1, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4), "tms1700", __FILE__)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
tms1730_cpu_device::tms1730_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
|
: tms1000_cpu_device(mconfig, TMS1730, "TMS1730", tag, owner, clock, 8, 9, 5, 8, 1, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4), "tms1730", __FILE__)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
|
||||||
// machine configs
|
// machine configs
|
||||||
static MACHINE_CONFIG_FRAGMENT(tms1000)
|
static MACHINE_CONFIG_FRAGMENT(tms1000)
|
||||||
|
@ -47,9 +47,24 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class tms1700_cpu_device : public tms1000_cpu_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
tms1700_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
};
|
||||||
|
|
||||||
|
class tms1730_cpu_device : public tms1000_cpu_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
tms1730_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
extern const device_type TMS1000;
|
extern const device_type TMS1000;
|
||||||
extern const device_type TMS1070;
|
extern const device_type TMS1070;
|
||||||
extern const device_type TMS1040;
|
extern const device_type TMS1040;
|
||||||
extern const device_type TMS1200;
|
extern const device_type TMS1200;
|
||||||
|
extern const device_type TMS1700;
|
||||||
|
extern const device_type TMS1730;
|
||||||
|
|
||||||
#endif /* _TMS1000_H_ */
|
#endif /* _TMS1000_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user