mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
promoted tntell/vocaid to working
This commit is contained in:
parent
f3d337b25c
commit
ddce21706b
@ -184,7 +184,7 @@ Touch & Tell:
|
||||
Touch & Tell (US), 1981
|
||||
- MCU: CD8012
|
||||
- TMS51xx: CD2802
|
||||
- VSM: 4KB CD2610, overlay codes a:04, b:01, c:05, d:09
|
||||
- VSM: 4KB CD2610
|
||||
- notes: MCU is TMS1100 instead of TMS0270. CD8010 is seen in some devices
|
||||
too, maybe an earlier version?
|
||||
|
||||
@ -211,17 +211,82 @@ Touch & Tell:
|
||||
you get a serious medical aid device for the voice-impaired. The PCB is
|
||||
identical, it includes the edge connector for modules but no external slot.
|
||||
|
||||
|
||||
Touch & Tell modules:
|
||||
|
||||
English:
|
||||
- Alphabet Fun: VSM: 4KB CD2611, overlay codes 1a:0E, 1b:0D, 1c:0C, 1d:0B
|
||||
- Animal Friends: VSM: 16KB CD2355, " 2a:0A, 2b:0F, 2c:0E, 2d:0D
|
||||
- Number Fun: VSM: 4KB CD2612*, " 3a:02, 3b:03, 3c:07, 3d:06, CD2612(rev.A), " 3a:0A, 3b:0F, 3c:0D, 3d:0E
|
||||
- All About Me: VSM: 4KB CD2613, " 4a:0E, 4b:0B, 4c:0D, 4d:0C
|
||||
- World of Transportation: VSM: 16KB CD2361, " 5a:0A, 5b:0B, 5c:0C, 5d:0D, 5e:10, 5f:11, 5g:12, 5h:13
|
||||
- Little Creatures: VSM: 16KB CD2362 " 6a:14, 6b:15, 6c:16, 6d:17, 6e:18, 6f:1A, 6g:19, 6h:1B
|
||||
- E.T.: VSM: 16KB CD2363 " 7a:0F, 7b:10, 7c:11, 7d:12, 7e:13, 7f:14, 7g:15, 7h:16
|
||||
- Alphabet Fun: VSM: 4KB CD2611
|
||||
- Animal Friends: VSM: 16KB CD2355
|
||||
- Number Fun: VSM: 4KB CD2612*, CD2612(rev.A)
|
||||
- All About Me: VSM: 4KB CD2613
|
||||
- World of Transportation: VSM: 16KB CD2361
|
||||
- Little Creatures: VSM: 16KB CD2362
|
||||
- E.T.: VSM: 16KB CD2363
|
||||
|
||||
Touch & Tell/Vocaid overlay reference:
|
||||
|
||||
tntell CD2610:
|
||||
- 04: a - Colors
|
||||
- 01: b - Objects
|
||||
- 05: c - Shapes
|
||||
- 09: d - Home Scene
|
||||
tntelluk CD62170, tntellfr CD62171:
|
||||
- see tntell
|
||||
- see numfun(not A)
|
||||
- see animalfr
|
||||
- 08: ? - Clown Face
|
||||
- 0B: ? - Body Parts
|
||||
vocaid CD2357:
|
||||
- 1C: 1 - Leisure
|
||||
- 1E: 2 - Telephone
|
||||
- 1B: 3 - Bedside
|
||||
- 1D: 4 - Alphabet
|
||||
alphabet CD2611:
|
||||
- 0E: 1a - Alphabet A-M
|
||||
- 0D: 1b - Alphabet N-Z
|
||||
- 0C: 1c - Letter Jumble A-M
|
||||
- 0B: 1d - Letter Jumble N-Z
|
||||
animalfr CD2355:
|
||||
- 0A: 2a - Farm Animals
|
||||
- 0F: 2b - At The Farm
|
||||
- 0E: 2c - Animal Babies
|
||||
- 0D: 2d - In The Jungle
|
||||
numfun CD2612:
|
||||
- 02/0A(rev.A): 3a - Numbers 1-10
|
||||
- 03/0F(rev.A): 3b - Numbers 11-30
|
||||
- 07/0D(rev.A): 3c - How Many?
|
||||
- 06/0E(rev.A): 3d - Hidden Numbers
|
||||
aboutme CD2613:
|
||||
- 0E: 4a - Clown Face
|
||||
- 0B: 4b - Body Parts
|
||||
- 0D: 4c - Things to Wear
|
||||
- 0C: 4d - Just For Me
|
||||
wot CD2361:
|
||||
- 0A: 5a - On Land
|
||||
- 0B: 5b - In The Air
|
||||
- 0C: 5c - On The Water
|
||||
- 0D: 5d - In Space
|
||||
- 10: 5e - What Belongs Here?
|
||||
- 11: 5f - How It Used To Be
|
||||
- 12: 5g - Word Fun
|
||||
- 13: 5h - In the Surprise Garage
|
||||
lilcreat CD2362:
|
||||
- 14: 6a - In The Park
|
||||
- 15: 6b - In The Sea
|
||||
- 16: 6c - In The Woods
|
||||
- 17: 6d - Whose House?
|
||||
- 18: 6e - Hide & Seek
|
||||
- 1A: 6f - Who Is It?
|
||||
- 19: 6g - But It's Not
|
||||
- 1B: 6h - Word Fun
|
||||
et CD2363:
|
||||
- 0F: 7a - The Adventure On Earth I
|
||||
- 10: 7b - The Adventure On Earth II
|
||||
- 11: 7c - Fun And Friendship I
|
||||
- 12: 7d - Fun And Friendship II
|
||||
- 13: 7e - E.T. The Star I
|
||||
- 14: 7f - E.T. The Star II
|
||||
- 15: 7g - Do You Remember? I
|
||||
- 16: 7h - Do You Remember? II
|
||||
|
||||
|
||||
Language Tutor/Translator:
|
||||
@ -265,6 +330,7 @@ Language Tutor modules:
|
||||
|
||||
TODO:
|
||||
- why doesn't lantutor work?
|
||||
- tntell/vocaid: able to get overlay code from external artwork file
|
||||
- emulate other known devices
|
||||
|
||||
|
||||
@ -279,6 +345,7 @@ Language Tutor modules:
|
||||
// internal artwork
|
||||
#include "lantutor.lh"
|
||||
#include "snspell.lh"
|
||||
#include "tntell.lh" // keyboard overlay
|
||||
|
||||
// The master clock is a single stage RC oscillator into TMS5100 RCOSC:
|
||||
// In an early 1979 Speak & Spell, C is 68pf, R is a 50kohm trimpot which is set to around 33.6kohm
|
||||
@ -327,6 +394,9 @@ public:
|
||||
DECLARE_DRIVER_INIT(tntell);
|
||||
DECLARE_DRIVER_INIT(lantutor);
|
||||
|
||||
UINT8 m_overlay;
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tntell_get_overlay);
|
||||
|
||||
protected:
|
||||
virtual void machine_start();
|
||||
};
|
||||
@ -350,6 +420,8 @@ void tispeak_state::machine_start()
|
||||
|
||||
void tispeak_state::init_cartridge()
|
||||
{
|
||||
m_overlay = 0;
|
||||
|
||||
if (m_cart != NULL && m_cart->exists())
|
||||
{
|
||||
std::string region_tag;
|
||||
@ -500,12 +572,24 @@ READ8_MEMBER(tispeak_state::tntell_read_k)
|
||||
k |= 4;
|
||||
|
||||
// K8: overlay code from R5,O4-O7
|
||||
if (((m_r >> 1 & 0x10) | (m_o >> 4 & 0xf)) & m_inp_matrix[10]->read())
|
||||
if (((m_r >> 1 & 0x10) | (m_o >> 4 & 0xf)) & m_overlay)
|
||||
k |= 8;
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(tispeak_state::tntell_get_overlay)
|
||||
{
|
||||
// Each keyboard overlay insert has 5 holes, used by the game to determine
|
||||
// which one is active(if any). If it matches with the internal ROM or
|
||||
// external module, the game continues.
|
||||
// 00 for none, 1F for diagnostics, see comment section above for a list
|
||||
m_overlay = m_inp_matrix[10]->read();
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
output_set_indexed_value("ol", i+1, m_overlay >> i & 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -695,62 +779,62 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( tntell )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Grid 1-1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Grid 1-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Grid 1-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Grid 1-3")
|
||||
|
||||
PORT_START("IN.1") // R1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Grid 2-1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Grid 2-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Grid 2-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Grid 2-3")
|
||||
|
||||
PORT_START("IN.2") // R2
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Grid 3-1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Grid 3-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Grid 3-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Grid 3-3")
|
||||
|
||||
PORT_START("IN.3") // R3
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("Grid 4-1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Grid 4-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("Grid 4-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Grid 4-3")
|
||||
|
||||
PORT_START("IN.4") // R4
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_NAME("Grid 5-1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("Grid 5-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("Grid 5-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Grid 5-3")
|
||||
|
||||
PORT_START("IN.5") // R5
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("Grid 5-6")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("Grid 6-5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("Grid 5-5")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // overlay code
|
||||
|
||||
PORT_START("IN.6") // R6
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Grid 3-5")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Grid 2-5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Grid 4-5")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("Grid 1-5")
|
||||
|
||||
PORT_START("IN.7") // R7
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("Grid 3-6")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Grid 2-6")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Grid 4-6")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_NAME("Grid 1-6")
|
||||
|
||||
PORT_START("IN.8") // R8
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Grid 6-1 (Off)") // -> auto_power_off
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Grid 6-1 (Off)") // -> auto_power_off
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("Grid 6-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Grid 6-4")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("Grid 6-3")
|
||||
|
||||
PORT_START("IN.9") // Vss!
|
||||
PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Grid 6-6 (On)") PORT_CHANGED_MEMBER(DEVICE_SELF, tispeak_state, snspell_power_button, (void *)true)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Grid 6-6 (On)") PORT_CHANGED_MEMBER(DEVICE_SELF, tispeak_state, snspell_power_button, (void *)true)
|
||||
|
||||
PORT_START("IN.10")
|
||||
PORT_CONFNAME( 0x1f, 0x01, "Overlay Code" )
|
||||
@ -904,7 +988,9 @@ static MACHINE_CONFIG_START( vocaid, tispeak_state )
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, tntell_write_o))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, tntell_write_r))
|
||||
|
||||
// MCFG_DEFAULT_LAYOUT(layout_tntell)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("ol_timer", tispeak_state, tntell_get_overlay, attotime::from_msec(50))
|
||||
MCFG_DEFAULT_LAYOUT(layout_tntell)
|
||||
|
||||
/* no video! */
|
||||
|
||||
@ -1214,9 +1300,9 @@ COMP( 1980, snread, 0, 0, snread, snread, tispeak_state, snspe
|
||||
|
||||
COMP( 1979, lantutor, 0, 0, lantutor, lantutor, tispeak_state, lantutor, "Texas Instruments", "Language Tutor (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
|
||||
COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // assume there is an older version too, with CD8010 MCU
|
||||
COMP( 1981, tntelluk, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
COMP( 1981, tntellfr, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Le Livre Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
COMP( 1980, tntellp, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK ) // assume there is an older version too, with CD8010 MCU
|
||||
COMP( 1981, tntelluk, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (UK)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
|
||||
COMP( 1981, tntellfr, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Le Livre Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
|
||||
COMP( 1980, tntellp, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
|
||||
|
||||
COMP( 1982, vocaid, 0, 0, vocaid, tntell, driver_device, 0, "Texas Instruments", "Vocaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
|
||||
COMP( 1982, vocaid, 0, 0, vocaid, tntell, driver_device, 0, "Texas Instruments", "Vocaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
|
||||
|
101
src/mess/layout/tntell.lay
Normal file
101
src/mess/layout/tntell.lay
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="static_black"><rect><color red="0.1" green="0.1" blue="0.1" /></rect></element>
|
||||
<element name="static_white"><rect><color red="0.98" green="0.98" blue="1.0" /></rect></element>
|
||||
|
||||
<element name="text_on">
|
||||
<rect><color red="0.98" green="0.98" blue="1.0" /></rect>
|
||||
<text string="ON"><color red="0.9" green="0.7" blue="0.6" /></text>
|
||||
</element>
|
||||
<element name="text_off">
|
||||
<rect><color red="0.98" green="0.98" blue="1.0" /></rect>
|
||||
<text string="OFF"><color red="0.44" green="0.55" blue="0.9" /></text>
|
||||
</element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0"><color red="0.4" green="0.1" blue="0.11" /></disk>
|
||||
<disk state="1"><color red="1.0" green="0.2" blue="0.22" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hole" defstate="1">
|
||||
<text state="0" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
|
||||
<text state="1" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
|
||||
<disk state="0"><color red="0.0" green="0.0" blue="0.0" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="button" defstate="0">
|
||||
<rect state="0"><color red="0.98" green="0.98" blue="1.0" /></rect>
|
||||
<rect state="1"><color red="0.98" green="0.98" blue="1.0" /></rect>
|
||||
<disk state="1">
|
||||
<bounds x="0.16" y="0.16" width="0.68" height="0.68"/>
|
||||
<color red="0.88" green="0.88" blue="0.86" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="3" right="71.8" top="9.7" bottom="71.8" />
|
||||
<bezel element="static_black">
|
||||
<bounds left="3" right="71.8" top="9.7" bottom="71.8" />
|
||||
</bezel>
|
||||
|
||||
<bezel element="static_white"><bounds x="3.3" y="10.0" width="6.3" height="61.5" /></bezel>
|
||||
<bezel name="ol1" element="hole"><bounds x="5.6" y="56.0" width="1.7" height="1.7" /></bezel>
|
||||
<bezel name="ol2" element="hole"><bounds x="5.6" y="53.5" width="1.7" height="1.7" /></bezel>
|
||||
<bezel name="ol3" element="hole"><bounds x="5.6" y="51.0" width="1.7" height="1.7" /></bezel>
|
||||
<bezel name="ol4" element="hole"><bounds x="5.6" y="48.5" width="1.7" height="1.7" /></bezel>
|
||||
<bezel name="ol5" element="hole"><bounds x="5.6" y="46.0" width="1.7" height="1.7" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x01"><bounds x="10.0" y="10.0" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x02"><bounds x="20.3" y="10.0" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x08"><bounds x="30.6" y="10.0" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x04"><bounds x="40.9" y="10.0" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x08"><bounds x="51.2" y="10.0" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x08"><bounds x="61.5" y="10.0" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x01"><bounds x="10.0" y="20.3" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x02"><bounds x="20.3" y="20.3" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x08"><bounds x="30.6" y="20.3" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x04"><bounds x="40.9" y="20.3" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x02"><bounds x="51.2" y="20.3" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x02"><bounds x="61.5" y="20.3" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x01"><bounds x="10.0" y="30.6" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x02"><bounds x="20.3" y="30.6" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x08"><bounds x="30.6" y="30.6" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x04"><bounds x="40.9" y="30.6" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x01"><bounds x="51.2" y="30.6" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x01"><bounds x="61.5" y="30.6" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x01"><bounds x="10.0" y="40.9" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x02"><bounds x="20.3" y="40.9" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x08"><bounds x="30.6" y="40.9" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x04"><bounds x="40.9" y="40.9" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x04"><bounds x="51.2" y="40.9" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x04"><bounds x="61.5" y="40.9" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x01"><bounds x="10.0" y="51.2" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x02"><bounds x="20.3" y="51.2" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x08"><bounds x="30.6" y="51.2" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x04"><bounds x="40.9" y="51.2" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.5" inputmask="0x04"><bounds x="51.2" y="51.2" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.5" inputmask="0x01"><bounds x="61.5" y="51.2" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.8" inputmask="0x01"><bounds x="10.0" y="61.5" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.8" inputmask="0x02"><bounds x="20.3" y="61.5" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.8" inputmask="0x08"><bounds x="30.6" y="61.5" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.8" inputmask="0x04"><bounds x="40.9" y="61.5" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.5" inputmask="0x02"><bounds x="51.2" y="61.5" width="10" height="10" /></bezel>
|
||||
<bezel element="button" inputtag="IN.9" inputmask="0x02"><bounds x="61.5" y="61.5" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="text_off"><bounds x="10.6" y="69.8" width="3" height="1.6" /></bezel>
|
||||
<bezel element="text_on"><bounds x="67.9" y="69.8" width="2.3" height="1.6" /></bezel>
|
||||
<bezel name="power_led" element="led"><bounds x="70.1" y="70.1" width="1" height="1" /></bezel> <!-- fake -->
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
Loading…
Reference in New Issue
Block a user