New working clones

------------------
Spelling ABC (Germany) [Sean Riddle]
Letterlogic (France) [Sean Riddle]
Letterlogic (Germany) [Sean Riddle]
This commit is contained in:
hap 2022-11-18 14:58:24 +01:00
parent 19a97c2914
commit f76bfffd11
4 changed files with 164 additions and 50 deletions

View File

@ -5998,9 +5998,11 @@ ROM_END
/*************************************************************************** /***************************************************************************
Tiger Batman (model 7-799) 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 * lcd screen with custom segments, 1-bit sound
MCU ROM is the same for Shinobi, Batman.
***************************************************************************/ ***************************************************************************/
class tbatman_state : public hh_sm510_state class tbatman_state : public hh_sm510_state

View File

@ -204,7 +204,8 @@ Touch & Tell:
- TMS51xx: CD2802 - TMS51xx: CD2802
- VSM: 4KB CD2610 - VSM: 4KB CD2610
- notes: MCU is TMS1100 instead of TMS0270. CD8010 is seen in some devices - 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 Touch & Tell (UK), 1981
- MCU & TMS51xx: same as US version - MCU & TMS51xx: same as US version
@ -216,11 +217,11 @@ Touch & Tell:
Touch & Tell (Germany) "Tipp & Sprich", 1981 Touch & Tell (Germany) "Tipp & Sprich", 1981
- MCU & TMS51xx: same as US version - MCU & TMS51xx: same as US version
- VSM: ?KB CD62172* - VSM: 16KB? CD62172*
Touch & Tell (Italy) "Libro Parlante", 1982 Touch & Tell (Italy) "Libro Parlante", 1982
- MCU & TMS51xx: same as US version - MCU & TMS51xx: same as US version
- VSM: ?KB CD62176* (on a module) - VSM: 16KB? CD62176* (on a module)
Vocaid (US), 1982 Vocaid (US), 1982
- MCU & TMS51xx: same as Touch & Tell (US) - MCU & TMS51xx: same as Touch & Tell (US)
@ -485,7 +486,7 @@ public:
void snspellit(machine_config &config); void snspellit(machine_config &config);
void snspellsp(machine_config &config); void snspellsp(machine_config &config);
void snspellc(machine_config &config); void snspellc(machine_config &config);
void snspellcuk(machine_config &config); void snwrite(machine_config &config);
void snmath(machine_config &config); void snmath(machine_config &config);
void snread(machine_config &config); void snread(machine_config &config);
void tntell(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 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_NAME("Off") // -> auto_power_off
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( snspellcuk ) static INPUT_PORTS_START( snwrite )
PORT_INCLUDE( snspellc ) PORT_INCLUDE( snspellc )
PORT_MODIFY("IN.9") PORT_MODIFY("IN.9")
@ -1478,7 +1479,7 @@ void tispeak_state::snspellc(machine_config &config)
SOFTWARE_LIST(config, "cart_list").set_original("snspell"); SOFTWARE_LIST(config, "cart_list").set_original("snspell");
} }
void tispeak_state::snspellcuk(machine_config &config) void tispeak_state::snwrite(machine_config &config)
{ {
snspellc(config); snspellc(config);
@ -1734,7 +1735,7 @@ ROM_START( snspellca )
ROM_LOAD( "cd2354.vsm", 0x0000, 0x4000, CRC(3af3232e) SHA1(f89d90dca209ee612634d664d5d4562f1d1786cf) ) ROM_LOAD( "cd2354.vsm", 0x0000, 0x4000, CRC(3af3232e) SHA1(f89d90dca209ee612634d664d5d4562f1d1786cf) )
ROM_END ROM_END
ROM_START( snspellcuk ) ROM_START( snwrite )
ROM_REGION( 0x0800, "maincpu", 0 ) ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "cd8011a-nl", 0x0000, 0x0800, CRC(8a82a467) SHA1(fa4f8a232392603721bd8136c141a340fd5936a0) ) 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( 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( 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( 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 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

View File

@ -9,31 +9,29 @@
The Spelling B was introduced together with the Speak & Spell. It is a The Spelling B was introduced together with the Speak & Spell. It is a
handheld educational toy with booklet. Two revisions of the hardware exist. 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 Spelling B (US), 1978
- TMS0270 MCU TMC0272 (die label: 0272A T0270B) - TMS0270 MCU TMC0272 (die label: 0272A T0270B)
- TMS1980 MCU TMC1984 (die label: 1980A 84A) - TMS1980 MCU TMC1984 (die label: 1980A 84A)
- 8-digit cyan VFD (seen with and without apostrophe) - 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), 1980
Spelling B (US), 1979
- TMS0270 MCU TMC0274 - TMS0270 MCU TMC0274
- TMC0355 4KB VSM ROM CD2602 - TMC0355 4KB VSM ROM CD2602
- 8-digit cyan VFD - 8-digit cyan VFD
- 1-bit sound (indicated by a music note symbol on the top-right of the casing) - 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 Spelling ABC (Germany), 1980: different VSM
- TMC0355 4KB VSM ROM CD2607* - TMC0355 4KB VSM ROM CD2607
Mr. Challenger (US), 1979 Mr. Challenger (US), 1979
- TMS0270 MCU TMC0273 - TMS0270 MCU TMC0273
@ -45,10 +43,10 @@
- note: stylized as "LETTERlogic", same for other language versions - note: stylized as "LETTERlogic", same for other language versions
Letterlogic (France), 1980: different VSM Letterlogic (France), 1980: different VSM
- TMC0355 4KB VSM ROM CD2603* - TMC0355 4KB VSM ROM CD2603
Letterlogic (Germany), 1980: different VSM Letterlogic (Germany), 1980: different VSM
- TMC0355 4KB VSM ROM CD2604* - TMC0355 4KB VSM ROM CD2604
***************************************************************************/ ***************************************************************************/
@ -61,6 +59,7 @@
// internal artwork // internal artwork
#include "spellb.lh" #include "spellb.lh"
namespace {
class tispellb_state : public hh_tms1k_state 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_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
PORT_START("IN.5") // R5 PORT_START("IN.5") // R5
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("Memory") PORT_CHAR('=') 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_NAME("Clue") PORT_CHAR('-') 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_NAME("Erase") PORT_CHAR(8) 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_NAME("Enter") PORT_CHAR(13) 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_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
PORT_START("IN.6") // R6 PORT_START("IN.6") // R6
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED ) 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( 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( 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_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( 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_NAME("Mystery Word") PORT_CHAR('4') 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_NAME("Scramble") PORT_CHAR('5') 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_NAME("Spelling B/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) 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_NAME("Starts With") PORT_CHAR('2') 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 INPUT_PORTS_END
@ -305,15 +324,55 @@ static INPUT_PORTS_START( mrchalgr )
PORT_INCLUDE( spellb ) // same key layout as spellb PORT_INCLUDE( spellb ) // same key layout as spellb
PORT_MODIFY("IN.5") PORT_MODIFY("IN.5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("2nd Player") 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_NAME("Score") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_NAME("Score")
PORT_MODIFY("IN.7") PORT_MODIFY("IN.7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_NAME("Crazy Letters") 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_NAME("Letter Guesser") 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_NAME("Word Challenge") 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_NAME("Mystery Word/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispellb_state, power_button, true) 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_NAME("Replay") 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 INPUT_PORTS_END
@ -327,14 +386,14 @@ INPUT_PORTS_END
void tispellb_state::rev1(machine_config &config) void tispellb_state::rev1(machine_config &config)
{ {
// basic machine hardware // 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->read_k().set(FUNC(tispellb_state::main_read_k));
m_maincpu->write_o().set(FUNC(tispellb_state::main_write_o)); m_maincpu->write_o().set(FUNC(tispellb_state::main_write_o));
m_maincpu->write_r().set(FUNC(tispellb_state::main_write_r)); m_maincpu->write_r().set(FUNC(tispellb_state::main_write_r));
m_maincpu->read_ctl().set(FUNC(tispellb_state::rev1_ctl_r)); m_maincpu->read_ctl().set(FUNC(tispellb_state::rev1_ctl_r));
m_maincpu->write_ctl().set(FUNC(tispellb_state::rev1_ctl_w)); 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->read_k().set(FUNC(tispellb_state::sub_read_k));
m_subcpu->write_o().set(FUNC(tispellb_state::sub_write_o)); m_subcpu->write_o().set(FUNC(tispellb_state::sub_write_o));
m_subcpu->write_r().set(FUNC(tispellb_state::sub_write_r)); m_subcpu->write_r().set(FUNC(tispellb_state::sub_write_r));
@ -349,18 +408,17 @@ void tispellb_state::rev1(machine_config &config)
// no sound! // no sound!
} }
void tispellb_state::rev2(machine_config &config) void tispellb_state::rev2(machine_config &config)
{ {
// basic machine hardware // 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->read_k().set(FUNC(tispellb_state::main_read_k));
m_maincpu->write_o().set(FUNC(tispellb_state::rev2_write_o)); m_maincpu->write_o().set(FUNC(tispellb_state::rev2_write_o));
m_maincpu->write_r().set(FUNC(tispellb_state::rev2_write_r)); 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->read_ctl().set(m_tms6100, FUNC(tms6100_device::data_r));
m_maincpu->write_ctl().set(m_tms6100, FUNC(tms6100_device::add_w)); 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); m_tms6100->enable_4bit_mode(true);
// video hardware // video hardware
@ -396,6 +454,21 @@ ROM_START( spellb )
ROM_LOAD( "cd2602.vsm", 0x0000, 0x1000, CRC(dd1fff8c) SHA1(f1760b29aa50fc96a1538db814cc73289654ac25) ) ROM_LOAD( "cd2602.vsm", 0x0000, 0x1000, CRC(dd1fff8c) SHA1(f1760b29aa50fc96a1538db814cc73289654ac25) )
ROM_END 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_START( spellba )
ROM_REGION( 0x1000, "maincpu", 0 ) ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "tmc0272nl", 0x0000, 0x1000, CRC(f90318ff) SHA1(7cff03fafbc66b0e07b3c70a513fbb0b11eef4ea) ) 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_LOAD( "cd2601.vsm", 0x0000, 0x1000, CRC(a9fbe7e9) SHA1(9d480cb30313b8cbce2d048140c1e5e6c5b92452) )
ROM_END 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 )
COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, tispellb_state, empty_init, "Texas Instruments", "Mr. Challenger", MACHINE_SUPPORTS_SAVE ) // 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 (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 )

View File

@ -41974,7 +41974,6 @@ snread //
snspell // snspell //
snspellc // snspellc //
snspellca // snspellca //
snspellcuk //
snspellfr // snspellfr //
snspellit // snspellit //
snspelljp // snspelljp //
@ -41984,6 +41983,7 @@ snspellua //
snspellub // snspellub //
snspelluk // snspelluk //
snspelluka // snspelluka //
snwrite //
tntell // tntell //
tntellfr // tntellfr //
tntellp // tntellp //
@ -41991,7 +41991,10 @@ tntelluk //
vocaid // vocaid //
@source:handheld/tispellb.cpp @source:handheld/tispellb.cpp
letterlf //
letterlg //
mrchalgr // mrchalgr //
spellabc //
spellb // spellb //
spellba // spellba //