tms1000: added Motorola MC141000, MC141200 (nw)

This commit is contained in:
hap 2017-04-02 21:32:46 +02:00
parent 63e52ca1f4
commit a9ae08da06
3 changed files with 33 additions and 2 deletions

View File

@ -2,7 +2,12 @@
// copyright-holders:hap
/*
TMS1000 family - TMS1000, TMS1070, TMS1040, TMS1200, TMS1700, TMS1730
TMS1000 family - TMS1000, TMS1070, TMS1040, TMS1200, TMS1700, TMS1730,
and second source Motorola MC141000, MC141200.
TODO:
- add TMS1270 (10 O pins, how does that work?)
- add TMS1000C, TMS1200C (CMOS, and 3-level stack)
*/
@ -23,10 +28,12 @@ const device_type TMS1000 = device_creator<tms1000_cpu_device>; // 28-pin DIP, 1
const device_type TMS1070 = device_creator<tms1070_cpu_device>; // high voltage version
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
// TMS1270 has 10 O pins, how does that work?
const device_type TMS1700 = device_creator<tms1700_cpu_device>; // 28-pin DIP, RAM/ROM size halved, 9 R pins
const device_type TMS1730 = device_creator<tms1730_cpu_device>; // 20-pin DIP, same die as TMS1700, package has less pins: 6 R pins, 5 O pins(output PLA is still 8-bit, O1,O3,O5 unused)
const device_type MC141000 = device_creator<mc141000_cpu_device>; // CMOS, pin-compatible with TMS1000(reverse polarity)
const device_type MC141200 = device_creator<mc141200_cpu_device>; // CMOS, 40-pin DIP, 16 R pins
// internal memory maps
static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8, tms1k_base_device)
@ -76,6 +83,14 @@ tms1730_cpu_device::tms1730_cpu_device(const machine_config &mconfig, const char
: tms1000_cpu_device(mconfig, TMS1730, "TMS1730", tag, owner, clock, 8, 9, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_9bit_8), 6, ADDRESS_MAP_NAME(data_32x4), "tms1730", __FILE__)
{ }
mc141000_cpu_device::mc141000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: tms1000_cpu_device(mconfig, MC141000, "MC141000", tag, owner, clock, 8, 11, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "mc141000", __FILE__)
{ }
mc141200_cpu_device::mc141200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: tms1000_cpu_device(mconfig, MC141200, "MC141200", tag, owner, clock, 8, 16, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "mc141200", __FILE__)
{ }
// machine configs
static MACHINE_CONFIG_FRAGMENT(tms1000)

View File

@ -60,11 +60,26 @@ public:
};
class mc141000_cpu_device : public tms1000_cpu_device
{
public:
mc141000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
class mc141200_cpu_device : public tms1000_cpu_device
{
public:
mc141200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
extern const device_type TMS1000;
extern const device_type TMS1070;
extern const device_type TMS1040;
extern const device_type TMS1200;
extern const device_type TMS1700;
extern const device_type TMS1730;
extern const device_type MC141000;
extern const device_type MC141200;
#endif /* _TMS1000_H_ */

View File

@ -6,6 +6,7 @@
TODO:
- fix debugger disasm view
- INIT pin
The TMS0980 and TMS1000-family MCU cores are very similar. The TMS0980 has a