mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
k28m2: rename to k28
This commit is contained in:
parent
866adc351e
commit
60f81ea817
@ -31,14 +31,14 @@ modules. CM62215 was confirmed to be the same as CM62087.
|
||||
|
||||
-->
|
||||
|
||||
<softwarelist name="k28m2" description="K-2-8 (model 7-232) modules">
|
||||
<softwarelist name="k28" description="K-2-8 (model 7-232) modules">
|
||||
|
||||
<software name="spell1">
|
||||
<description>Spelling 1 (Expansion Module 1)</description>
|
||||
<year>1985</year>
|
||||
<publisher>Tiger Electronics</publisher>
|
||||
<info name="serial" value="8111"/>
|
||||
<part name="cart" interface="k28m2">
|
||||
<part name="cart" interface="k28">
|
||||
<dataarea name="rom" size="0x4000">
|
||||
<rom name="cm62086" size="0x4000" crc="0349798b" sha1="afdad242f9c7dec0c5fd83670e3d8f1637140e76" />
|
||||
</dataarea>
|
||||
@ -50,7 +50,7 @@ modules. CM62215 was confirmed to be the same as CM62087.
|
||||
<year>1985</year>
|
||||
<publisher>Tiger Electronics</publisher>
|
||||
<info name="serial" value="8112"/>
|
||||
<part name="cart" interface="k28m2">
|
||||
<part name="cart" interface="k28">
|
||||
<dataarea name="rom" size="0x4000">
|
||||
<rom name="cm62216" size="0x4000" crc="1c99306f" sha1="7bfadeec79bdc231c4e3447149e2f6542cfe077d" />
|
||||
</dataarea>
|
||||
@ -62,7 +62,7 @@ modules. CM62215 was confirmed to be the same as CM62087.
|
||||
<year>1985</year>
|
||||
<publisher>Tiger Electronics</publisher>
|
||||
<info name="serial" value="8113"/>
|
||||
<part name="cart" interface="k28m2">
|
||||
<part name="cart" interface="k28">
|
||||
<dataarea name="rom" size="0x4000">
|
||||
<rom name="cm62215" size="0x4000" crc="f2deb9a2" sha1="9fb264b869d1298ebd76811931bed83ac122fe4b" />
|
||||
</dataarea>
|
||||
@ -74,7 +74,7 @@ modules. CM62215 was confirmed to be the same as CM62087.
|
||||
<year>1985</year>
|
||||
<publisher>Tiger Electronics</publisher>
|
||||
<info name="serial" value="8114"/>
|
||||
<part name="cart" interface="k28m2">
|
||||
<part name="cart" interface="k28">
|
||||
<dataarea name="rom" size="0x4000">
|
||||
<rom name="cm62217" size="0x4000" crc="995936b2" sha1="8bd0fea4ade9972d1d6cb521f9367c971c7eead6" />
|
||||
</dataarea>
|
||||
@ -86,7 +86,7 @@ modules. CM62215 was confirmed to be the same as CM62087.
|
||||
<year>1987</year>
|
||||
<publisher>Coleco</publisher>
|
||||
<info name="serial" value="8116"/>
|
||||
<part name="cart" interface="k28m2">
|
||||
<part name="cart" interface="k28">
|
||||
<dataarea name="rom" size="0x4000">
|
||||
<rom name="cm62219" size="0x4000" crc="177b5cb5" sha1="2ed44fea8f931fc8aa46dafdda1c6c30b8c9dc01" />
|
||||
</dataarea>
|
@ -14,7 +14,7 @@ part of a series is (or will be) in its own driver, see:
|
||||
- ti/snspellc.cpp: TI Speak & Spell Compact / Touch & Tell
|
||||
- ti/spellb.cpp: TI Spelling B series gen. 1
|
||||
- tiger/bingobear.cpp: Hasbro/Tiger Bingo Bear / Monkgomery Monkey
|
||||
- tiger/k28m2.cpp: Tiger K-2-8: Talking Learning Computer (model 7-232)
|
||||
- tiger/k28.cpp: Tiger K-2-8: Talking Learning Computer (model 7-232)
|
||||
|
||||
About the approximated MCU frequency everywhere: The RC osc. is not that
|
||||
stable on most of these handhelds. When comparing multiple video recordings
|
||||
@ -203,7 +203,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
|
||||
@MP7304 TMS1400 1982, Tiger 7 in 1 Sports Stadium (model 7-555)
|
||||
@MP7313 TMS1400 1980, Parker Brothers Bank Shot
|
||||
@MP7314 TMS1400 1980, Parker Brothers Split Second
|
||||
MP7324 TMS1400 1985, Tiger K-2-8/Coleco Talking Teacher -> tiger/k28m2.cpp
|
||||
MP7324 TMS1400 1985, Tiger K-2-8/Coleco Talking Teacher -> tiger/k28.cpp
|
||||
@MP7332 TMS1400 1981, Milton Bradley Dark Tower
|
||||
@MP7334 TMS1400 1981, Coleco Total Control 4
|
||||
@MP7351 TMS1400 1982, Parker Brothers Master Merlin
|
||||
|
@ -44749,8 +44749,8 @@ monkmonk
|
||||
@source:tiger/gamecom.cpp
|
||||
gamecom // Tiger Game.com
|
||||
|
||||
@source:tiger/k28m2.cpp
|
||||
k28m2
|
||||
@source:tiger/k28.cpp
|
||||
k28
|
||||
|
||||
@source:tiger/k28o.cpp
|
||||
k28o
|
||||
|
@ -8,7 +8,7 @@ Tiger Electronics K-2-8 (model 7-232) Sold in Hong Kong, distributed in US as:
|
||||
- Sears: Talkatron: Learning Computer
|
||||
|
||||
1981 K-2-8 models 7-230 and 7-231 are on different hardware, having a different
|
||||
keyboard, VFD, and the SC-01-A speech chip. --> driver k28.cpp
|
||||
keyboard, VFD, and the SC-01-A speech chip, emulated in k28o.cpp.
|
||||
|
||||
Hardware notes:
|
||||
- PCB label: 201223A (main), REV0 ET828D (LCD)
|
||||
@ -35,15 +35,15 @@ TODO:
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "k28m2.lh"
|
||||
#include "k28.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class k28m2_state : public driver_device
|
||||
class k28_state : public driver_device
|
||||
{
|
||||
public:
|
||||
k28m2_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
k28_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_subcpu(*this, "subcpu"),
|
||||
@ -54,7 +54,7 @@ public:
|
||||
m_digits(*this, "digit%u", 0U)
|
||||
{ }
|
||||
|
||||
void k28m2(machine_config &config);
|
||||
void k28(machine_config &config);
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(power_on);
|
||||
|
||||
@ -88,7 +88,7 @@ private:
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
|
||||
};
|
||||
|
||||
void k28m2_state::machine_start()
|
||||
void k28_state::machine_start()
|
||||
{
|
||||
m_digits.resolve();
|
||||
|
||||
@ -105,20 +105,20 @@ void k28m2_state::machine_start()
|
||||
Power
|
||||
*******************************************************************************/
|
||||
|
||||
void k28m2_state::machine_reset()
|
||||
void k28_state::machine_reset()
|
||||
{
|
||||
m_power_on = true;
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
|
||||
m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(k28m2_state::power_on)
|
||||
INPUT_CHANGED_MEMBER(k28_state::power_on)
|
||||
{
|
||||
if (newval && !m_power_on)
|
||||
machine_reset();
|
||||
}
|
||||
|
||||
void k28m2_state::power_off()
|
||||
void k28_state::power_off()
|
||||
{
|
||||
m_power_on = false;
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
@ -135,7 +135,7 @@ void k28m2_state::power_off()
|
||||
Cartridge
|
||||
*******************************************************************************/
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(k28m2_state::cart_load)
|
||||
DEVICE_IMAGE_LOAD_MEMBER(k28_state::cart_load)
|
||||
{
|
||||
u32 const size = m_cart->common_get_size("rom");
|
||||
|
||||
@ -156,7 +156,7 @@ DEVICE_IMAGE_LOAD_MEMBER(k28m2_state::cart_load)
|
||||
|
||||
// maincpu side
|
||||
|
||||
void k28m2_state::write_r(u32 data)
|
||||
void k28_state::write_r(u32 data)
|
||||
{
|
||||
// R1234: TMS5100 CTL8421
|
||||
u32 r = bitswap<5>(data,0,1,2,3,4) | (data & ~0x1f);
|
||||
@ -178,13 +178,13 @@ void k28m2_state::write_r(u32 data)
|
||||
m_r = r;
|
||||
}
|
||||
|
||||
void k28m2_state::write_o(u16 data)
|
||||
void k28_state::write_o(u16 data)
|
||||
{
|
||||
// O0-O7: input mux low
|
||||
m_inp_mux = (m_inp_mux & ~0xff) | data;
|
||||
}
|
||||
|
||||
u8 k28m2_state::read_k()
|
||||
u8 k28_state::read_k()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
@ -200,7 +200,7 @@ u8 k28m2_state::read_k()
|
||||
|
||||
// subcpu side
|
||||
|
||||
void k28m2_state::write_segs(offs_t offset, u32 data)
|
||||
void k28_state::write_segs(offs_t offset, u32 data)
|
||||
{
|
||||
m_digit_data[offset & 3] = data;
|
||||
|
||||
@ -215,7 +215,7 @@ void k28m2_state::write_segs(offs_t offset, u32 data)
|
||||
}
|
||||
}
|
||||
|
||||
u8 k28m2_state::sub_read_k()
|
||||
u8 k28_state::sub_read_k()
|
||||
{
|
||||
// K: maincpu R7-R10
|
||||
return m_r >> 7 & 0xf;
|
||||
@ -227,7 +227,7 @@ u8 k28m2_state::sub_read_k()
|
||||
Input Ports
|
||||
*******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( k28m2 )
|
||||
static INPUT_PORTS_START( k28 )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_NAME("Off") // -> auto_power_off
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('A') PORT_NAME("A/1")
|
||||
@ -235,7 +235,7 @@ static INPUT_PORTS_START( k28m2 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
|
||||
|
||||
PORT_START("IN.1") // O1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, k28m2_state, power_on, 0) PORT_NAME("On")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, k28_state, power_on, 0) PORT_NAME("On")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('B') PORT_NAME("B/2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR('K') PORT_NAME("K/+")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
|
||||
@ -289,23 +289,23 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
*******************************************************************************/
|
||||
|
||||
void k28m2_state::k28m2(machine_config &config)
|
||||
void k28_state::k28(machine_config &config)
|
||||
{
|
||||
constexpr u32 MASTER_CLOCK = 640'000; // approximation
|
||||
|
||||
// basic machine hardware
|
||||
TMS1400(config, m_maincpu, MASTER_CLOCK/2);
|
||||
m_maincpu->read_k().set(FUNC(k28m2_state::read_k));
|
||||
m_maincpu->write_o().set(FUNC(k28m2_state::write_o));
|
||||
m_maincpu->write_r().set(FUNC(k28m2_state::write_r));
|
||||
m_maincpu->read_k().set(FUNC(k28_state::read_k));
|
||||
m_maincpu->write_o().set(FUNC(k28_state::write_o));
|
||||
m_maincpu->write_r().set(FUNC(k28_state::write_r));
|
||||
|
||||
SMC1112(config, m_subcpu, 32.768_kHz_XTAL);
|
||||
m_subcpu->read_k().set(FUNC(k28m2_state::sub_read_k));
|
||||
m_subcpu->write_segs().set(FUNC(k28m2_state::write_segs));
|
||||
m_subcpu->read_k().set(FUNC(k28_state::sub_read_k));
|
||||
m_subcpu->write_segs().set(FUNC(k28_state::write_segs));
|
||||
|
||||
config.set_perfect_quantum(m_subcpu);
|
||||
|
||||
config.set_default_layout(layout_k28m2);
|
||||
config.set_default_layout(layout_k28);
|
||||
|
||||
// sound hardware
|
||||
TMS6100(config, m_tms6100, MASTER_CLOCK/4);
|
||||
@ -320,10 +320,10 @@ void k28m2_state::k28m2(machine_config &config)
|
||||
m_tms5100->add_route(ALL_OUTPUTS, "mono", 0.5);
|
||||
|
||||
// cartridge
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "k28m2", "vsm,bin");
|
||||
m_cart->set_device_load(FUNC(k28m2_state::cart_load));
|
||||
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "k28", "vsm,bin");
|
||||
m_cart->set_device_load(FUNC(k28_state::cart_load));
|
||||
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("k28m2");
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("k28");
|
||||
}
|
||||
|
||||
|
||||
@ -332,14 +332,14 @@ void k28m2_state::k28m2(machine_config &config)
|
||||
ROM Definitions
|
||||
*******************************************************************************/
|
||||
|
||||
ROM_START( k28m2 )
|
||||
ROM_START( k28 )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "mp7324", 0x0000, 0x1000, CRC(8d304cf2) SHA1(d649b6477ea8634b3a3ba34dde7e5e913855801f) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1100_common1_micro.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
|
||||
ROM_REGION( 557, "maincpu:opla", 0 )
|
||||
ROM_LOAD( "tms1400_k28m2_output.pla", 0, 557, CRC(3a5c7005) SHA1(3fe5819c138a90e7fc12817415f2622ca81b40b2) )
|
||||
ROM_LOAD( "tms1400_k28_output.pla", 0, 557, CRC(3a5c7005) SHA1(3fe5819c138a90e7fc12817415f2622ca81b40b2) )
|
||||
|
||||
ROM_REGION( 0x0800, "subcpu", 0 )
|
||||
ROM_LOAD( "smc1112_d2n0", 0x0000, 0x0800, CRC(e985fd67) SHA1(a0b0280920bf0ac02a1aaf02d534dddbae829433) )
|
||||
@ -356,5 +356,5 @@ ROM_END
|
||||
Drivers
|
||||
*******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1985, k28m2, 0, 0, k28m2, k28m2, k28m2_state, empty_init, "Tiger Electronics", "K-2-8: Talking Learning Computer (model 7-232)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1985, k28, 0, 0, k28, k28, k28_state, empty_init, "Tiger Electronics", "K-2-8: Talking Learning Computer (model 7-232)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
|
Loading…
Reference in New Issue
Block a user