From 61eb90c2063c7f3f009da3ead265e31f6ef9ceac Mon Sep 17 00:00:00 2001 From: hap Date: Tue, 2 Aug 2022 00:15:55 +0200 Subject: spellba: do the tms0270 ctl fix in the driver --- src/devices/cpu/tms1000/tms0270.cpp | 11 +++++------ src/mame/chess/compuchess.cpp | 1 + src/mame/handheld/hh_tms1k.cpp | 14 ++++++++------ src/mame/handheld/tispeak.cpp | 2 +- src/mame/handheld/tispellb.cpp | 15 ++++++++++----- src/mame/tiger/k28.cpp | 2 +- 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/devices/cpu/tms1000/tms0270.cpp b/src/devices/cpu/tms1000/tms0270.cpp index 31df0a398bd..4bc64e1e918 100644 --- a/src/devices/cpu/tms1000/tms0270.cpp +++ b/src/devices/cpu/tms1000/tms0270.cpp @@ -80,19 +80,18 @@ void tms0270_cpu_device::device_reset() // i/o handling void tms0270_cpu_device::dynamic_output() { - // R11: TMS5100 CTL port direction (0=read from TMS5100, 1=write to TMS5100) - m_ctl_dir = BIT(m_r, 11); - // R12: chip select (off=display via OPLA, on=TMS5100 via ACC/CKB) m_chipsel = BIT(m_r, 12); if (m_chipsel) { + // R11: TMS5100 CTL port direction (0=read from TMS5100, 1=write to TMS5100) + m_ctl_dir = BIT(m_r, 11); + // ACC via SEG G,B,C,D: TMS5100 CTL pins - u8 ctl_out = (m_ctl_dir) ? m_a : m_read_ctl() & 0xf; - if (m_ctl_out != ctl_out) + if (m_ctl_dir && m_ctl_out != m_a) { - m_ctl_out = ctl_out; + m_ctl_out = m_a; m_write_ctl(m_ctl_out); } diff --git a/src/mame/chess/compuchess.cpp b/src/mame/chess/compuchess.cpp index 1d0dda7561f..ea2ca1d95f0 100644 --- a/src/mame/chess/compuchess.cpp +++ b/src/mame/chess/compuchess.cpp @@ -12,6 +12,7 @@ for new game, B for empty board, or C for continue. TODO: - cncchess sound is wrong, it should be a long dual-tone alarm sound +- is Tryom CC-700 a hack of cmpchess? it does the L, bP thing at start too BTANB: - cmpchess/cmpchess2 accepts illegal moves (Conic fixed that) diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp index e9459ee5e23..5560b19162d 100644 --- a/src/mame/handheld/hh_tms1k.cpp +++ b/src/mame/handheld/hh_tms1k.cpp @@ -110,6 +110,8 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm @MP1525 TMS1170 1980, Coleco Head to Head: Electronic Baseball @MP1604 TMS1370 1982, Gakken Invader 2000/Tandy Cosmic Fire Away 3000 @MP1801 TMS1700 1981, Tiger Ditto/Tandy Pocket Repeat (model 60-2152) + *MP2012 TMS1300 1977, Atari Europe Hit Parade 144 (jukebox) (have decap/dump) + *MP2032 TMS1300 1980, Atari Europe unknown (jukebox) @MP2105 TMS1370 1979, Gakken/Entex Poker (6005) @MP2110 TMS1370 1980, Gakken Invader/Tandy Fire Away @MP2139 TMS1370 1981, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away @@ -168,8 +170,8 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm *MP6061 TMS0970 1979, Texas Instruments Electronic Digital Thermostat (from patent, the one in MAME didn't have a label) @MP6100A TMS0980 1979, Ideal Electronic Detective @MP6101B TMS0980 1979, Parker Brothers Stop Thief - *MP6354 TMS1375 1982, Tsukuda The Dracula - *MP6361 TMS1375? 1983, Defender Strikes + *MP6354 TMS1475 1982, Tsukuda The Dracula + *MP6361 TMS1475? 1983, Defender Strikes @MP7302 TMS1400 1980, Tiger Deluxe Football with Instant Replay @MP7304 TMS1400 1982, Tiger 7 in 1 Sports Stadium (model 7-555) @MP7313 TMS1400 1980, Parker Brothers Bank Shot @@ -5945,7 +5947,7 @@ ROM_END Gakken Invader * PCB label: GAKKEN, INVADER, KS-00779 - * TMS1370 MP2110 + * TMS1370 MP2110 (die label: 1370, MP2110) * cyan VFD display Itron? CP5008A, 1-bit sound known releases: @@ -6201,7 +6203,7 @@ ROM_END /*************************************************************************** Gakken Invader 2000 - * TMS1370(28 pins) MP1604 (die label: 1370A MP1604) + * TMS1370(28 pins) MP1604 (die label: 1370A, MP1604) * TMS1024 I/O expander * cyan/red/green VFD display, 1-bit sound @@ -7608,7 +7610,7 @@ ROM_END /*************************************************************************** Milton Bradley Comp IV - * TMC0904NL CP0904A (die label: 4A0970D-04A) + * TMC0904NL CP0904A (die label: 0970D-04A) * 10 LEDs behind bezel, no sound This is small tabletop Mastermind game; a code-breaking game where the player @@ -8913,7 +8915,7 @@ ROM_END /*************************************************************************** Parker Brothers Code Name: Sector, by Bob Doyle - * TMS0970 MCU, MP0905BNL ZA0379 (die label: 4A0970F-05B) + * TMS0970 MCU, MP0905BNL ZA0379 (die label: 0970F-05B) * 6-digit 7seg LED display + 4 LEDs for compass, no sound This is a tabletop submarine pursuit game. A grid board and small toy diff --git a/src/mame/handheld/tispeak.cpp b/src/mame/handheld/tispeak.cpp index 9c0b1a4f9f6..45438023bf1 100644 --- a/src/mame/handheld/tispeak.cpp +++ b/src/mame/handheld/tispeak.cpp @@ -389,7 +389,7 @@ Tiger Electronics K28 (model 7-232) Sold in Hong Kong, distributed in US as: - Sears: Talkatron - Learning Computer 1981 K28 models 7-230 and 7-231 are on different hardware, showing a different -keyboard, VFD display, and use the SC-01 speech chip. --> driver k28.cpp +keyboard, VFD display, and use the SC-01 speech chip. --> driver tiger/k28.cpp K28 model 7-232 (HK), 1985 - MCU: TMS1400 MP7324 diff --git a/src/mame/handheld/tispellb.cpp b/src/mame/handheld/tispellb.cpp index a406bbe2166..b6f1e83759b 100644 --- a/src/mame/handheld/tispellb.cpp +++ b/src/mame/handheld/tispellb.cpp @@ -9,6 +9,7 @@ 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: @@ -40,7 +41,8 @@ - 8-digit cyan VFD display - 1-bit sound - Letterlogic (UK), 1980: exact same hardware as US Mr. Challenger (stylized as "LETTERlogic") + Letterlogic (UK), 1980: exact same hardware as US Mr. Challenger + - note: stylized as "LETTERlogic", same for other language versions Letterlogic (France), 1980: different VSM - TMC0355 4KB VSM ROM CD2603* @@ -180,20 +182,23 @@ void tispellb_state::rev1_ctl_w(u8 data) u8 tispellb_state::sub_read_k() { - // sub K8421 <- main CTL3210 - return m_rev1_ctl; + // sub K8421 <- main CTL3210 (does not use external CS) + if (m_r & 0x1000) + return m_sub_o | m_rev1_ctl; + else + return m_sub_o | (m_plate & 0xe) | (m_plate >> 6 & 1); } void tispellb_state::sub_write_o(u16 data) { // sub O write data - m_sub_o = data; + m_sub_o = bitswap<4>(data,6,0,4,3); } u8 tispellb_state::rev1_ctl_r() { // main CTL3210 <- sub O6043 - return bitswap<4>(m_sub_o,6,0,4,3); + return m_sub_o; } void tispellb_state::sub_write_r(u16 data) diff --git a/src/mame/tiger/k28.cpp b/src/mame/tiger/k28.cpp index 9409f5cf079..f9be588d9a6 100644 --- a/src/mame/tiger/k28.cpp +++ b/src/mame/tiger/k28.cpp @@ -13,7 +13,7 @@ Tiger Electronics K28: Talking Learning Computer (model 7-230/7-231) 3 models exist: - 7-230: darkblue case, toy-ish looks - 7-231: gray case, hardware is the same -- 7-232: this one is completely different hw --> driver tispeak.cpp +- 7-232: this one is completely different hw --> driver handheld/tispeak.cpp TODO: - external module support (no dumps yet) -- cgit v1.2.3