New working clones

------------------
Language Translator [hap, Sean Riddle, Darksoft]
This commit is contained in:
hap 2022-07-27 13:38:27 +02:00
parent c79330406b
commit 1f2f625ac1
9 changed files with 98 additions and 65 deletions

View File

@ -80,5 +80,4 @@ license:CC0
</part>
</software>
</softwarelist>

View File

@ -4,14 +4,14 @@
license:CC0
-->
<softwarelist name="lantutor" description="Language Tutor modules">
<softwarelist name="lantrans" description="Language Translator modules">
<software name="ingles">
<!-- speaks English, translates from/to: Spanish, French, German -->
<description>Ingles Britanico</description>
<year>1979</year>
<publisher>Texas Instruments</publisher>
<part name="cart" interface="lantutor">
<part name="cart" interface="lantrans">
<dataarea name="rom" size="0x10000">
<rom name="cd2311.vsm" offset="0x0000" size="0x4000" crc="7bab7f7c" sha1="e89cfa7ae9d5ce09ff19b9474ecd70fb5982ccb9" />
<rom name="cd2312.vsm" offset="0x4000" size="0x4000" crc="6acb9c72" sha1="09817f1e0b1683d90edada38ac70ce738af6417f" />
@ -22,10 +22,11 @@ license:CC0
</software>
<software name="spanish">
<!-- speaks Spanish, translates from/to: English, French, German -->
<description>Spanish</description>
<year>1979</year>
<publisher>Texas Instruments</publisher>
<part name="cart" interface="lantutor">
<part name="cart" interface="lantrans">
<dataarea name="rom" size="0x10000">
<rom name="cd2315.vsm" offset="0x0000" size="0x4000" crc="cd44490f" sha1="7b62e9fb0cc30fa81c23ef3361bb579c8794f178" />
<rom name="cd2316.vsm" offset="0x4000" size="0x4000" crc="c5464edf" sha1="0f028cb5e8445216dd45fa641e5751b08a637f5c" />
@ -36,10 +37,11 @@ license:CC0
</software>
<software name="french">
<!-- speaks French, translates from/to: English, Spanish, German -->
<description>French</description>
<year>1979</year>
<publisher>Texas Instruments</publisher>
<part name="cart" interface="lantutor">
<part name="cart" interface="lantrans">
<dataarea name="rom" size="0x10000">
<rom name="cd2327.vsm" offset="0x0000" size="0x4000" crc="207aa27d" sha1="e5012c48b20f9b49a00f6fe8ee5719df1cbf04b4" />
<rom name="cd2328.vsm" offset="0x4000" size="0x4000" crc="768980d0" sha1="085ba873c83d25790b090a9a8797183c6664d03c" />
@ -50,10 +52,11 @@ license:CC0
</software>
<software name="german">
<!-- speaks German, translates from/to: French, Spanish, English -->
<description>German</description>
<year>1979</year>
<publisher>Texas Instruments</publisher>
<part name="cart" interface="lantutor">
<part name="cart" interface="lantrans">
<dataarea name="rom" size="0x10000">
<rom name="cd2331.vsm" offset="0x0000" size="0x4000" crc="a1e9290b" sha1="1163f7695e0727c6058684ea7f7c52d432f3fb7c" />
<rom name="cd2332.vsm" offset="0x4000" size="0x4000" crc="b8ef4eed" sha1="0eccd98c81498caa166f7164c9563ef95412ffd7" />
@ -64,10 +67,11 @@ license:CC0
</software>
<software name="english">
<!-- speaks English, translates from/to: Swedish, Dutch, Italian -->
<description>English</description>
<year>1980</year>
<publisher>Texas Instruments</publisher>
<part name="cart" interface="lantutor">
<part name="cart" interface="lantrans">
<dataarea name="rom" size="0x10000">
<rom name="cd3526.vsm" offset="0x0000" size="0x4000" crc="58fae847" sha1="ee9c0f4dbd7101a1f8f276e60e77403d01a9b36f" />
<rom name="cd3527.vsm" offset="0x4000" size="0x4000" crc="aa9f5334" sha1="a363aaf4fb9194995431a9dc1d78446ef510e7be" />
@ -77,5 +81,4 @@ license:CC0
</part>
</software>
</softwarelist>

View File

@ -6,7 +6,6 @@ license:CC0
<softwarelist name="snread" description="Speak &amp; Read modules">
<software name="dogonlog">
<description>A Dog on a Log</description>
<year>1980</year>
@ -103,5 +102,4 @@ license:CC0
</part>
</software>
</softwarelist>

View File

@ -6,7 +6,6 @@ license:CC0
<softwarelist name="snspell" description="Speak &amp; Spell modules">
<!-- Speak N Spell (US) -->
<software name="basbuild">
@ -171,5 +170,4 @@ license:CC0
</part>
</software>
</softwarelist>

View File

@ -6,7 +6,6 @@ license:CC0
<softwarelist name="tntell" description="Touch &amp; Tell modules">
<software name="alphabet">
<description>Alphabet Fun</description>
<year>1981</year>
@ -91,5 +90,4 @@ license:CC0
</part>
</software>
</softwarelist>

View File

@ -35,7 +35,7 @@ Wiz-A-Tron or Little Professor. But the popularity of this product was much
above expectations. TI continued to manufacture many products for this line.
Speak & Spell (US), 1978
- MCU: TMC0271, label TMC0271NL DBS (die label 0271B T0270B)
- MCU: TMC0271, label TMC0271NL DBS (die label T0270B 0271B)
- TMS51xx: TMC0281
- VSM(1/2): 16KB TMC0351NL
- VSM(2/2): 16KB TMC0352NL
@ -43,7 +43,7 @@ above expectations. TI continued to manufacture many products for this line.
- notes: keyboard has buttons instead of cheap membrane
Speak & Spell (US), 1979
- MCU: TMC0271, label TMC0271H-N2L FDS (die label 0271H T0270D)
- MCU: TMC0271, label TMC0271H-N2L FDS (die label T0270D 0271H)
- TMS51xx: TMC0281
- VSM(1/2): 16KB TMC0351N2L
- VSM(2/2): 16KB TMC0352N2L
@ -82,7 +82,7 @@ above expectations. TI continued to manufacture many products for this line.
Speak & Spell (Spanish, prototype), 1981
- MCU: CD2701N2L P (die label T0270D 2701)
- TMS51xx: TMC0281
- TMS51xx: TMC0281 (die label T0280A 0281)
- VSM(1/2): 16KB CD2319
- VSM(2/2): 16KB CD2320
- VFD: 8 digits with 14 segments, DP and accent mark
@ -105,7 +105,7 @@ above expectations. TI continued to manufacture many products for this line.
Speak & Spell Compact (US), 1981
- MCU: CD8011, label CD8011A-NL (die label 1100B)
- TMS51xx: TMC0281D
- TMS51xx: TMC0281D (die label T0280F 0281D)
- VSM: 16KB CD2354, CD2354(rev.A)
- notes: no display, MCU is TMS1100 instead of TMS0270, overall similar to Touch & Tell
@ -169,7 +169,7 @@ Speak & Math:
Speak & Math 'Compact' (France) "Les Maths Magiques", 1986?
- MCU: CP3447-NL* (TMS1100?)
- TMS51xx: CD2801
- TMS51xx: CD2801A
- VSM: 16KB? CD62173*
- notes: this is not the same as "Le Calcul Magique", that's from a
series centered around a TMS50C40 instead of MCU+TMS51xx
@ -182,7 +182,7 @@ Speak & Read:
- TMS51xx: CD2801
- VSM(1/2): 16KB CD2394(rev.A)
- VSM(2/2): 16KB CD2395(rev.A)
- VFD: same as Language Tutor, rightmost digit unused
- VFD: same as Language Translator, rightmost digit unused
Speak & Read modules:
@ -323,17 +323,21 @@ The text is coded as phonemes. Books were sold separately.
- notes: same hardware
Language Tutor/Translator:
Language Translator/Tutor:
A later device, called Language Teacher, was released without speech hardware.
Initially sold as Language Translator, renamed to Language Tutor a year later.
It was rebranded from translator to a 'language aid'.
Language Tutor (US), 1978
- MCU: TMC0275*
- TMS51xx: CD2801
- VFD: NEC FIP10xxx?
Language Translator (US), 1979
- MCU: TMC0275 (die label T0270D 0275B)
- TMS51xx: CD2801 (die label T0280B 2801)
- VFD: Itron FG106A2
- notes: external module is required (see below)
Language Tutor modules:
Language Tutor (US), 1980
- notes: identical hardware, module stickers differ but have same VSMs
Language Translator modules:
- Ingles(1/4): VSM: 16KB CD2311
- Ingles(2/4): VSM: 16KB CD2312
@ -360,6 +364,22 @@ Language Tutor modules:
- English(3/4): VSM: 16KB CD3528
- English(4/4): VSM: 16KB CD3529
Some other language modules were announced by TI, but not released.
Language Teacher:
A cost-reduced version of the translator. Similar PCB, the speaker was removed.
Modules require less ROMs due to missing speech data.
Language Teacher (US), 1980
- MCU: TMC027x?*
- other: see Language Translator
Language Teacher modules (only 1 known released):
- German for Travel: VSM: 16KB CD3509*
Other manufacturers:
@ -393,7 +413,7 @@ K28 modules:
----------------------------------------------------------------------------
TODO:
- why doesn't lantutor work?
- why doesn't lantransp work? maybe incompatible with released modules?
- emulate k28 LCD
- emulate other known devices
@ -454,7 +474,7 @@ public:
void init_snspell();
void init_tntell();
void init_lantutor();
void init_lantrans();
// machine configs
void tms5110_route(machine_config &config);
@ -469,7 +489,7 @@ public:
void snread(machine_config &config);
void tntell(machine_config &config);
void vocaid(machine_config &config);
void lantutor(machine_config &config);
void lantrans(machine_config &config);
void k28m2(machine_config &config);
private:
@ -480,7 +500,7 @@ private:
void snmath_write_o(u16 data);
void snspell_write_o(u16 data);
void snspell_write_r(u16 data);
void lantutor_write_r(u16 data);
void lantrans_write_r(u16 data);
u8 snspellc_read_k();
void snspellc_write_o(u16 data);
@ -571,7 +591,7 @@ void tispeak_state::init_tntell()
m_cart_base = memregion("tms6100")->base() + 0x4000;
}
void tispeak_state::init_lantutor()
void tispeak_state::init_lantrans()
{
m_cart_max_size = 0x10000;
m_cart_base = memregion("tms6100")->base();
@ -616,7 +636,7 @@ void tispeak_state::snspell_write_r(u16 data)
void tispeak_state::snspell_write_o(u16 data)
{
// reorder opla to led14seg, plus DP as d14 and AP as d15:
// note: lantutor and snread VFD has an accent triangle instead of DP, and no AP
// note: lantrans and snread VFD has an accent triangle instead of DP, and no AP
// E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
m_plate = bitswap<16>(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
update_display();
@ -640,9 +660,9 @@ void tispeak_state::snmath_write_o(u16 data)
}
// lantutor specific
// lantrans specific
void tispeak_state::lantutor_write_r(u16 data)
void tispeak_state::lantrans_write_r(u16 data)
{
// same as default, except R13 is used for an extra digit
m_r = m_inp_mux = data;
@ -1024,7 +1044,7 @@ static INPUT_PORTS_START( snread )
INPUT_PORTS_END
static INPUT_PORTS_START( lantutor )
static INPUT_PORTS_START( lantrans )
PORT_INCLUDE( snspell )
PORT_MODIFY("IN.5")
@ -1392,22 +1412,22 @@ void tispeak_state::snread(machine_config &config)
}
void tispeak_state::lantutor(machine_config &config)
void tispeak_state::lantrans(machine_config &config)
{
snmath(config);
// basic machine hardware
m_maincpu->o().set(FUNC(tispeak_state::snspell_write_o));
m_maincpu->r().set(FUNC(tispeak_state::lantutor_write_r));
m_maincpu->r().set(FUNC(tispeak_state::lantrans_write_r));
config.set_default_layout(layout_snread);
// cartridge
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "lantutor", "vsm,bin");
GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "lantrans", "vsm,bin");
m_cart->set_must_be_loaded(true);
m_cart->set_device_load(FUNC(tispeak_state::cart_load));
SOFTWARE_LIST(config, "cart_list").set_original("lantutor");
SOFTWARE_LIST(config, "cart_list").set_original("lantrans");
}
@ -1517,7 +1537,7 @@ ROM_START( snspell )
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_t0270d_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_LOAD( "tms0270_tmc271h_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "tmc0351n2l.vsm", 0x0000, 0x4000, CRC(2d03b292) SHA1(a3e9a365307ae936c7472f720a7a8240741531d6) )
@ -1526,14 +1546,14 @@ ROM_END
ROM_START( snspellp )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent US4189779, verified by 2 sources
ROM_LOAD( "us4189779", 0x0000, 0x1000, CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent US4189779, verified by 2 sources
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_t0270b_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // using the one from 1st version
ROM_LOAD( "tms0270_tmc271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // using the one from 1st version
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "tmc0351nl.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) ) // using the one from 1st version
@ -1549,7 +1569,7 @@ ROM_START( snspellua )
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_t0270b_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
ROM_LOAD( "tms0270_tmc271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "tmc0351nl.vsm", 0x0000, 0x4000, CRC(beea3373) SHA1(8b0f7586d2f12c3d4a885fdb528cf23feffa1a3b) )
@ -1565,7 +1585,7 @@ ROM_START( snspellub )
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_t0270d_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_LOAD( "tms0270_tmc271h_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd2350a.vsm", 0x0000, 0x4000, CRC(2adda742) SHA1(3f868ed8284b723c815a30343057e03467c043b5) )
@ -1580,7 +1600,7 @@ ROM_START( snspelluk )
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_t0270b_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
ROM_LOAD( "tms0270_tmc271_output.pla", 0, 1246, CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd2303.vsm", 0x0000, 0x4000, CRC(0fae755c) SHA1(b68c3120a63a61db474feb5d71a6e5dd67910d80) )
@ -1596,7 +1616,7 @@ ROM_START( snspelluka )
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_t0270d_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_LOAD( "tms0270_tmc271h_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd62175.vsm", 0x0000, 0x4000, CRC(6e1063d4) SHA1(b5c66c51148c5921ecb8ffccd7a460ae639cdb68) )
@ -1611,7 +1631,7 @@ ROM_START( snspelljp )
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_t0270d_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_LOAD( "tms0270_tmc271h_output.pla", 0, 1246, CRC(2478c595) SHA1(9a8ac690902731e1e01533279a1c9223011e1537) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd2321.vsm", 0x0000, 0x4000, CRC(ac010cce) SHA1(c0200d857b62be696248ac2d684a390c66ab0c31) )
@ -1675,7 +1695,7 @@ ROM_START( snspellc )
ROM_LOAD( "tms1100_cd8011_output.pla", 0, 365, CRC(b400dd75) SHA1(5a4b5d4532a8932cf4b469ddb71ad6b3b9911672) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd2354.vsm", 0x0000, 0x4000, CRC(3af3232e) SHA1(f89d90dca209ee612634d664d5d4562f1d1786cf) )
ROM_LOAD( "cd2354a.vsm", 0x0000, 0x4000, CRC(548a940c) SHA1(c37e620c4c70a05cbaaff9a166c6da2e2420196f) )
ROM_END
ROM_START( snspellca )
@ -1688,7 +1708,7 @@ ROM_START( snspellca )
ROM_LOAD( "tms1100_cd8011_output.pla", 0, 365, CRC(b400dd75) SHA1(5a4b5d4532a8932cf4b469ddb71ad6b3b9911672) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // 8000-bfff = space reserved for cartridge
ROM_LOAD( "cd2354a.vsm", 0x0000, 0x4000, CRC(548a940c) SHA1(c37e620c4c70a05cbaaff9a166c6da2e2420196f) )
ROM_LOAD( "cd2354.vsm", 0x0000, 0x4000, CRC(3af3232e) SHA1(f89d90dca209ee612634d664d5d4562f1d1786cf) )
ROM_END
ROM_START( snspellcuk )
@ -1776,16 +1796,30 @@ ROM_START( snread )
ROM_END
ROM_START( lantutor )
ROM_START( lantrans )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "us4631748_tmc0275", 0x0000, 0x1000, CRC(22818845) SHA1(1a84f15fb18ca66b1f2bf7491d76fbc56068984d) ) // extracted visually from patent US4631748, verified with source code
ROM_LOAD( "tmc0275nl_dbs", 0x0000, 0x1000, CRC(43535d2a) SHA1(cf190fc0b1b2d9d11b167896adda116bc28348fd) )
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_common1_micro.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // not verified
ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) )
ROM_REGION( 1246, "maincpu:opla", 0 )
ROM_LOAD( "tms0270_t0270b_output.pla", 0, 1246, BAD_DUMP CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // taken from snspell, mostly looks correct
ROM_LOAD( "tms0270_tmc0275_output.pla", 0, 1246, CRC(3c67e7b8) SHA1(06134367754a687e933ed629a105b6956fc30375) )
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // cartridge area
ROM_END
ROM_START( lantransp )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "us4631748", 0x0000, 0x1000, CRC(22818845) SHA1(1a84f15fb18ca66b1f2bf7491d76fbc56068984d) ) // extracted visually from patent US4631748, verified with source code
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_tmc0275_output.pla", 0, 1246, CRC(3c67e7b8) SHA1(06134367754a687e933ed629a105b6956fc30375) ) // using the one from release version
ROM_REGION( 0x10000, "tms6100", ROMREGION_ERASEFF ) // cartridge area
ROM_END
@ -1877,27 +1911,28 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
COMP( 1979, snspell, 0, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, 1979 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1978, snspellp, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1980, snspellub, snspell, 0, sns_tmc0281d, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1978, snspellua, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1980, snspellub, snspell, 0, sns_tmc0281d, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // less speech data
COMP( 1978, snspellp, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1978, snspelluk, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (UK, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1981, snspelluka, snspell, 0, sns_cd2801, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (UK, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1979, snspelljp, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1981, snspelluka, snspell, 0, sns_cd2801, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (UK, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // less speech data
COMP( 1979, snspelljp, snspell, 0, sns_tmc0281, snspell, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // speaks English
COMP( 1981, snspellsp, snspell, 0, snspellsp, snspellsp, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell (Spanish, prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1980, snspellfr, snspell, 0, sns_cd2801, snspellfr, tispeak_state, init_snspell, "Texas Instruments", u8"La Dictée Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1982, snspellit, snspell, 0, snspellit, snspellit, tispeak_state, init_snspell, "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1981, snspellc, 0, 0, snspellc, snspellc, tispeak_state, init_snspell, "Texas Instruments", "Speak & Spell Compact (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1982, snspellca, snspellc, 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( 1982, snspellcuk, snspellc, 0, snspellcuk, snspellcuk, 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 )
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( 1980, snmathp, snmath, 0, snmath, snmath, tispeak_state, empty_init, "Texas Instruments", "Speak & Math (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IS_INCOMPLETE )
COMP( 1980, snread, 0, 0, snread, snread, tispeak_state, init_snspell, "Texas Instruments", "Speak & Read (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1979, lantutor, 0, 0, lantutor, lantutor, tispeak_state, init_lantutor, "Texas Instruments", "Language Tutor (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
COMP( 1979, lantrans, 0, 0, lantrans, lantrans, tispeak_state, init_lantrans, "Texas Instruments", "Language Translator", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
COMP( 1979, lantransp, lantrans, 0, lantrans, lantrans, tispeak_state, init_lantrans, "Texas Instruments", "Language Translator (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, init_tntell, "Texas Instruments", "Touch & Tell (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK )
COMP( 1980, tntellp, tntell, 0, tntell, tntell, tispeak_state, init_tntell, "Texas Instruments", "Touch & Tell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_CLICKABLE_ARTWORK | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )

View File

@ -72,7 +72,7 @@ license:CC0
for num, col in pairs(walls) do
if col[1] < x and (col[1] + 2.5) > x then
for num2, wall in pairs(col[2]) do
if wall < y and (wall + 7.5) > y then
if wall < y and (wall + 7.5) > y then
local state = machine.output:get_indexed_value("colwall", (num * 10) + num2)
machine.output:set_indexed_value("colwall", (num * 10) + num2, (~state) & 1)
return

View File

@ -41727,7 +41727,8 @@ uk2086 // 1986 UK2086
@source:handheld/tispeak.cpp
k28m2 // Tiger Electronics
lantutor //
lantrans //
lantransp //
snmath //
snmatha //
snmathp //

View File

@ -7,6 +7,7 @@
Released in 1994 in Russian Federation by ЭНЕРГОПРИБОР (Energopribor), Moscow.
It's running the Mirage chess engine by Vladimir Rybinkin, originally made for MS-DOS.
Also sold in 1996 as Феникс (Fenix), same ROM contents as Debut-M.
TODO:
- where does the interrupt come from?