From f76bfffd11ea604e3df19b014289cbd8dd93081d Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 18 Nov 2022 14:58:24 +0100 Subject: New working clones ------------------ Spelling ABC (Germany) [Sean Riddle] Letterlogic (France) [Sean Riddle] Letterlogic (Germany) [Sean Riddle] --- src/mame/handheld/hh_sm510.cpp | 4 +- src/mame/handheld/tispeak.cpp | 17 ++-- src/mame/handheld/tispellb.cpp | 188 ++++++++++++++++++++++++++++++++--------- src/mame/mame.lst | 5 +- 4 files changed, 164 insertions(+), 50 deletions(-) diff --git a/src/mame/handheld/hh_sm510.cpp b/src/mame/handheld/hh_sm510.cpp index 9330dfabd1e..aa61d57f237 100644 --- a/src/mame/handheld/hh_sm510.cpp +++ b/src/mame/handheld/hh_sm510.cpp @@ -5998,9 +5998,11 @@ ROM_END /*************************************************************************** Tiger Batman (model 7-799) - * Sharp SM510 under epoxy (die label CMS54C, KMS597) + * Sharp SM510 under epoxy (die label CMS54C, KMS597, 597) * lcd screen with custom segments, 1-bit sound + MCU ROM is the same for Shinobi, Batman. + ***************************************************************************/ class tbatman_state : public hh_sm510_state diff --git a/src/mame/handheld/tispeak.cpp b/src/mame/handheld/tispeak.cpp index 676a1eda894..afa9ba0a927 100644 --- a/src/mame/handheld/tispeak.cpp +++ b/src/mame/handheld/tispeak.cpp @@ -204,7 +204,8 @@ Touch & Tell: - TMS51xx: CD2802 - VSM: 4KB CD2610 - notes: MCU is TMS1100 instead of TMS0270. CD8010 is seen in some devices - too, maybe an earlier version? + too, maybe an earlier version? For some reason, it doesn't use the standard + TMS1100 microinstructions, the opcodes are scrambled. Touch & Tell (UK), 1981 - MCU & TMS51xx: same as US version @@ -216,11 +217,11 @@ Touch & Tell: Touch & Tell (Germany) "Tipp & Sprich", 1981 - MCU & TMS51xx: same as US version - - VSM: ?KB CD62172* + - VSM: 16KB? CD62172* Touch & Tell (Italy) "Libro Parlante", 1982 - MCU & TMS51xx: same as US version - - VSM: ?KB CD62176* (on a module) + - VSM: 16KB? CD62176* (on a module) Vocaid (US), 1982 - MCU & TMS51xx: same as Touch & Tell (US) @@ -485,7 +486,7 @@ public: void snspellit(machine_config &config); void snspellsp(machine_config &config); void snspellc(machine_config &config); - void snspellcuk(machine_config &config); + void snwrite(machine_config &config); void snmath(machine_config &config); void snread(machine_config &config); void tntell(machine_config &config); @@ -1143,7 +1144,7 @@ static INPUT_PORTS_START( snspellc ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_NAME("Off") // -> auto_power_off INPUT_PORTS_END -static INPUT_PORTS_START( snspellcuk ) +static INPUT_PORTS_START( snwrite ) PORT_INCLUDE( snspellc ) PORT_MODIFY("IN.9") @@ -1478,7 +1479,7 @@ void tispeak_state::snspellc(machine_config &config) SOFTWARE_LIST(config, "cart_list").set_original("snspell"); } -void tispeak_state::snspellcuk(machine_config &config) +void tispeak_state::snwrite(machine_config &config) { snspellc(config); @@ -1734,7 +1735,7 @@ ROM_START( snspellca ) ROM_LOAD( "cd2354.vsm", 0x0000, 0x4000, CRC(3af3232e) SHA1(f89d90dca209ee612634d664d5d4562f1d1786cf) ) ROM_END -ROM_START( snspellcuk ) +ROM_START( snwrite ) ROM_REGION( 0x0800, "maincpu", 0 ) ROM_LOAD( "cd8011a-nl", 0x0000, 0x0800, CRC(8a82a467) SHA1(fa4f8a232392603721bd8136c141a340fd5936a0) ) @@ -1960,7 +1961,7 @@ COMP( 1983, snspellit, snspell, 0, snspellit, snspellit, tispeak_state, in COMP( 1982, snspellc, 0, 0, snspellc, snspellc, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell Compact (US, 1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1981, snspellca, snspellc, 0, snspellc, snspellc, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell Compact (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) -COMP( 1982, snspellcuk, snspellc, 0, snspellcuk, snspellcuk, tispeak_state, init_snspell, "Texas Instruments", "Speak & Write (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) +COMP( 1982, snwrite, snspellc, 0, snwrite, snwrite, tispeak_state, init_snspell, "Texas Instruments", "Speak & Write (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1980, snmath, 0, 0, snmath, snmath, tispeak_state, empty_init, "Texas Instruments", "Speak & Math (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) COMP( 1986, snmatha, snmath, 0, snmath, snmath, tispeak_state, empty_init, "Texas Instruments", "Speak & Math (US, 1986 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // less speech data diff --git a/src/mame/handheld/tispellb.cpp b/src/mame/handheld/tispellb.cpp index be3c1b106c0..de3a9597eef 100644 --- a/src/mame/handheld/tispellb.cpp +++ b/src/mame/handheld/tispellb.cpp @@ -9,31 +9,29 @@ The Spelling B was introduced together with the Speak & Spell. It is a handheld educational toy with booklet. Two revisions of the hardware exist. - The words/indexes from the documentation are the same for each version. - (* indicates not dumped) - 1st revision: + 1st version: Spelling B (US), 1978 - TMS0270 MCU TMC0272 (die label: 0272A T0270B) - TMS1980 MCU TMC1984 (die label: 1980A 84A) - 8-digit cyan VFD (seen with and without apostrophe) - Spelling ABC (UK), 1979: exact same hardware as US version + 2nd version: - 2nd revision: - - Spelling B (US), 1979 + Spelling B (US), 1980 - TMS0270 MCU TMC0274 - TMC0355 4KB VSM ROM CD2602 - 8-digit cyan VFD - 1-bit sound (indicated by a music note symbol on the top-right of the casing) - - note: much rarer than the 1978 version, not much luck finding one on eBay + - note: much rarer than the 1978 version, not much luck finding one on eBay. + The words/indexes from the documentation are the same as the older version. - Spelling ABC (UK), 1979: exact same hardware as US version + Spelling ABC (UK), 1980: exact same hardware as US 2nd version (the 1st version + was also sold in the UK earlier, but not renamed) - Spelling ABC (Germany), 1979: different VSM - - TMC0355 4KB VSM ROM CD2607* + Spelling ABC (Germany), 1980: different VSM + - TMC0355 4KB VSM ROM CD2607 Mr. Challenger (US), 1979 - TMS0270 MCU TMC0273 @@ -45,10 +43,10 @@ - note: stylized as "LETTERlogic", same for other language versions Letterlogic (France), 1980: different VSM - - TMC0355 4KB VSM ROM CD2603* + - TMC0355 4KB VSM ROM CD2603 Letterlogic (Germany), 1980: different VSM - - TMC0355 4KB VSM ROM CD2604* + - TMC0355 4KB VSM ROM CD2604 ***************************************************************************/ @@ -61,6 +59,7 @@ // internal artwork #include "spellb.lh" +namespace { class tispellb_state : public hh_tms1k_state { @@ -279,25 +278,45 @@ static INPUT_PORTS_START( spellb ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_START("IN.5") // R5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("Memory") PORT_CHAR('=') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("Clue") PORT_CHAR('-') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Erase") PORT_CHAR(8) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Enter") PORT_CHAR(13) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_NAME("Memory") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_NAME("Clue") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_NAME("Erase") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Enter") PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_START("IN.6") // R6 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_HOME) PORT_NAME("Go") PORT_CHAR('7') + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_HOME) PORT_CHAR('1') PORT_NAME("Go") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_NAME("Off") // -> auto_power_off - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("Level") PORT_CHAR('/') + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_NAME("Level") PORT_START("IN.7") // Vss! - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_NAME("Missing Letter") PORT_CHAR('3') - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_NAME("Mystery Word") PORT_CHAR('4') - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_NAME("Scramble") PORT_CHAR('5') - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_NAME("Spelling B/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_NAME("Starts With") PORT_CHAR('2') + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_NAME("Missing Letter") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_NAME("Mystery Word") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_NAME("Scramble") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_CHAR('6') PORT_NAME("Spelling B/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_NAME("Starts With") +INPUT_PORTS_END + +static INPUT_PORTS_START( spellabc ) + PORT_INCLUDE( spellb ) + + PORT_MODIFY("IN.5") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_NAME("Speicher") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_NAME("Rat") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_NAME("Tilgen") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Eingabe") + + PORT_MODIFY("IN.6") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_NAME("Stufe") + + PORT_MODIFY("IN.7") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_NAME("Was Fehlt?") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_NAME(u8"Wörter Rätsel") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_NAME("Wirr Warr") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_CHAR('6') PORT_NAME("Lerne ABC/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_NAME("Anfang Mit") INPUT_PORTS_END @@ -305,15 +324,55 @@ static INPUT_PORTS_START( mrchalgr ) PORT_INCLUDE( spellb ) // same key layout as spellb PORT_MODIFY("IN.5") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("2nd Player") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Score") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_NAME("2nd Player") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Score") PORT_MODIFY("IN.7") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_NAME("Crazy Letters") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_NAME("Letter Guesser") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_NAME("Word Challenge") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_NAME("Mystery Word/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_NAME("Replay") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_NAME("Crazy Letters") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_NAME("Letter Guesser") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_NAME("Word Challenge") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_CHAR('6') PORT_NAME("Mystery Word/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_NAME("Replay") +INPUT_PORTS_END + +static INPUT_PORTS_START( letterlf ) + PORT_INCLUDE( mrchalgr ) + + PORT_MODIFY("IN.5") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_NAME("Joueur 2") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_NAME("Aide") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_NAME("Effacez") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Marque") + + PORT_MODIFY("IN.6") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_NAME("Niveau") + + PORT_MODIFY("IN.7") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_NAME("Suite Folle") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_NAME("Devin") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_NAME("Duel") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_CHAR('6') PORT_NAME("Mot Mystere/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_NAME("Rejouez") +INPUT_PORTS_END + +static INPUT_PORTS_START( letterlg ) + PORT_INCLUDE( mrchalgr ) + + PORT_MODIFY("IN.5") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_NAME("Spieler 2") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_NAME("Rat") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_NAME("Tilgen") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Punkte") + + PORT_MODIFY("IN.6") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_NAME("Stufe") + + PORT_MODIFY("IN.7") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_NAME("Lettern Salat") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_NAME("Lettern Rater") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_NAME("Wettstreit") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F1) PORT_CHAR('6') PORT_NAME(u8"Wörter Rätsel/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_NAME("Wiedergabe") INPUT_PORTS_END @@ -327,14 +386,14 @@ INPUT_PORTS_END void tispellb_state::rev1(machine_config &config) { // basic machine hardware - TMS0270(config, m_maincpu, 350000); // approximation + TMS0270(config, m_maincpu, 320000); // approximation m_maincpu->read_k().set(FUNC(tispellb_state::main_read_k)); m_maincpu->write_o().set(FUNC(tispellb_state::main_write_o)); m_maincpu->write_r().set(FUNC(tispellb_state::main_write_r)); m_maincpu->read_ctl().set(FUNC(tispellb_state::rev1_ctl_r)); m_maincpu->write_ctl().set(FUNC(tispellb_state::rev1_ctl_w)); - TMS1980(config, m_subcpu, 350000); // approximation + TMS1980(config, m_subcpu, 320000); // approximation m_subcpu->read_k().set(FUNC(tispellb_state::sub_read_k)); m_subcpu->write_o().set(FUNC(tispellb_state::sub_write_o)); m_subcpu->write_r().set(FUNC(tispellb_state::sub_write_r)); @@ -349,18 +408,17 @@ void tispellb_state::rev1(machine_config &config) // no sound! } - void tispellb_state::rev2(machine_config &config) { // basic machine hardware - TMS0270(config, m_maincpu, 350000); // approximation + TMS0270(config, m_maincpu, 320000); // approximation m_maincpu->read_k().set(FUNC(tispellb_state::main_read_k)); m_maincpu->write_o().set(FUNC(tispellb_state::rev2_write_o)); m_maincpu->write_r().set(FUNC(tispellb_state::rev2_write_r)); m_maincpu->read_ctl().set(m_tms6100, FUNC(tms6100_device::data_r)); m_maincpu->write_ctl().set(m_tms6100, FUNC(tms6100_device::add_w)); - TMS6100(config, m_tms6100, 350000); + TMS6100(config, m_tms6100, 320000); m_tms6100->enable_4bit_mode(true); // video hardware @@ -396,6 +454,21 @@ ROM_START( spellb ) ROM_LOAD( "cd2602.vsm", 0x0000, 0x1000, CRC(dd1fff8c) SHA1(f1760b29aa50fc96a1538db814cc73289654ac25) ) ROM_END +ROM_START( spellabc ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "tmc0274n2l", 0x0000, 0x1000, CRC(98e3bd32) SHA1(e79b59ac29b0183bf1ee8d84b2944450c5e5d8fb) ) + + ROM_REGION( 1246, "maincpu:ipla", 0 ) + ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) + ROM_REGION( 2127, "maincpu:mpla", 0 ) + ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) + ROM_REGION( 1246, "maincpu:opla", 0 ) + ROM_LOAD( "tms0270_spellb_output.pla", 0, 1246, CRC(b95e35e6) SHA1(430917486856c9e6c28af10ff3758242048096c4) ) + + ROM_REGION( 0x1000, "tms6100", 0 ) + ROM_LOAD( "cd2607.vsm", 0x0000, 0x1000, CRC(875090c0) SHA1(73b87fff64054f6ab3b7e69d89585582145dbaa7) ) +ROM_END + ROM_START( spellba ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "tmc0272nl", 0x0000, 0x1000, CRC(f90318ff) SHA1(7cff03fafbc66b0e07b3c70a513fbb0b11eef4ea) ) @@ -434,10 +507,45 @@ ROM_START( mrchalgr ) ROM_LOAD( "cd2601.vsm", 0x0000, 0x1000, CRC(a9fbe7e9) SHA1(9d480cb30313b8cbce2d048140c1e5e6c5b92452) ) ROM_END +ROM_START( letterlf ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "tmc0273nll", 0x0000, 0x1000, CRC(ef6d23bd) SHA1(194e3b022c299e99a731bbcfba5bf8a3a9f0d07e) ) + + ROM_REGION( 1246, "maincpu:ipla", 0 ) + ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) + ROM_REGION( 2127, "maincpu:mpla", 0 ) + ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) + ROM_REGION( 1246, "maincpu:opla", 0 ) + ROM_LOAD( "tms0270_mrchalgr_output.pla", 0, 1246, CRC(4785289c) SHA1(60567af0ea120872a4ccf3128e1365fe84722aa8) ) + + ROM_REGION( 0x1000, "tms6100", 0 ) + ROM_LOAD( "cd2603.vsm", 0x0000, 0x1000, CRC(70ac954b) SHA1(5593a5844063acdf399600e3e842f0fbe712ba69) ) +ROM_END + +ROM_START( letterlg ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "tmc0273nll", 0x0000, 0x1000, CRC(ef6d23bd) SHA1(194e3b022c299e99a731bbcfba5bf8a3a9f0d07e) ) + + ROM_REGION( 1246, "maincpu:ipla", 0 ) + ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) + ROM_REGION( 2127, "maincpu:mpla", 0 ) + ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) + ROM_REGION( 1246, "maincpu:opla", 0 ) + ROM_LOAD( "tms0270_mrchalgr_output.pla", 0, 1246, CRC(4785289c) SHA1(60567af0ea120872a4ccf3128e1365fe84722aa8) ) + + ROM_REGION( 0x1000, "tms6100", 0 ) + ROM_LOAD( "cd2604.vsm", 0x0000, 0x1000, CRC(cdb6f039) SHA1(56f512720c5e80cd74b65e31d5a19bf1260017fb) ) +ROM_END + +} // anonymous namespace + -// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -COMP( 1979, spellb, 0, 0, rev2, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (1979 version)", MACHINE_SUPPORTS_SAVE ) -COMP( 1978, spellba, spellb, 0, rev1, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +COMP( 1980, spellb, 0, 0, rev2, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (US, 1980 version)", MACHINE_SUPPORTS_SAVE ) +COMP( 1978, spellba, spellb, 0, rev1, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) +COMP( 1980, spellabc, spellb, 0, rev2, spellabc, tispellb_state, empty_init, "Texas Instruments", "Spelling ABC (Germany)", MACHINE_SUPPORTS_SAVE ) -COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, tispellb_state, empty_init, "Texas Instruments", "Mr. Challenger", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, tispellb_state, empty_init, "Texas Instruments", "Mr. Challenger (US)", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, letterlf, mrchalgr, 0, rev2, letterlf, tispellb_state, empty_init, "Texas Instruments", "Letterlogic (France)", MACHINE_SUPPORTS_SAVE ) +COMP( 1980, letterlg, mrchalgr, 0, rev2, letterlg, tispellb_state, empty_init, "Texas Instruments", "Letterlogic (Germany)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index f85a7b4d8ab..76aa97b5903 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -41974,7 +41974,6 @@ snread // snspell // snspellc // snspellca // -snspellcuk // snspellfr // snspellit // snspelljp // @@ -41984,6 +41983,7 @@ snspellua // snspellub // snspelluk // snspelluka // +snwrite // tntell // tntellfr // tntellp // @@ -41991,7 +41991,10 @@ tntelluk // vocaid // @source:handheld/tispellb.cpp +letterlf // +letterlg // mrchalgr // +spellabc // spellb // spellba // -- cgit v1.2.3