From 77eff86988cb12c5f9dce121051b243b321bfca0 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 30 Jul 2022 21:12:46 +0200 Subject: tms0270: fix problem with power off and ctl direction --- src/devices/cpu/tms1000/tms0270.cpp | 22 ++-- src/devices/cpu/tms1000/tms0970.cpp | 4 +- src/devices/cpu/tms1000/tms0980.cpp | 4 +- src/devices/cpu/tms1000/tms1k_base.cpp | 12 +-- src/devices/cpu/tms1000/tms1k_base.h | 1 - src/mame/handheld/hh_tms1k.cpp | 179 +++++++++++++++++---------------- src/mame/handheld/hh_tms1k.h | 2 +- src/mame/handheld/tispeak.cpp | 62 ++++++------ src/mame/handheld/tispellb.cpp | 78 ++++++-------- src/mame/mame.lst | 2 +- 10 files changed, 181 insertions(+), 185 deletions(-) diff --git a/src/devices/cpu/tms1000/tms0270.cpp b/src/devices/cpu/tms1000/tms0270.cpp index 1b65a548f64..31df0a398bd 100644 --- a/src/devices/cpu/tms1000/tms0270.cpp +++ b/src/devices/cpu/tms1000/tms0270.cpp @@ -81,24 +81,26 @@ void tms0270_cpu_device::device_reset() void tms0270_cpu_device::dynamic_output() { // R11: TMS5100 CTL port direction (0=read from TMS5100, 1=write to TMS5100) - m_ctl_dir = m_r >> 11 & 1; + m_ctl_dir = BIT(m_r, 11); // R12: chip select (off=display via OPLA, on=TMS5100 via ACC/CKB) - m_chipsel = m_r >> 12 & 1; + m_chipsel = BIT(m_r, 12); if (m_chipsel) { // ACC via SEG G,B,C,D: TMS5100 CTL pins - if (m_ctl_dir && m_a != m_ctl_out) + u8 ctl_out = (m_ctl_dir) ? m_a : m_read_ctl() & 0xf; + if (m_ctl_out != ctl_out) { - m_ctl_out = m_a; - m_write_ctl(0, m_ctl_out, 0xff); + m_ctl_out = ctl_out; + m_write_ctl(m_ctl_out); } // R10 via SEG E: TMS5100 PDC pin - if (m_pdc != (m_r >> 10 & 1)) + int pdc = BIT(m_r, 10); + if (m_pdc != pdc) { - m_pdc = m_r >> 10 & 1; + m_pdc = pdc; m_write_pdc(m_pdc); } } @@ -115,7 +117,7 @@ void tms0270_cpu_device::dynamic_output() // standard R-output if (m_r != m_r_prev) { - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); m_r_prev = m_r; } } @@ -124,10 +126,10 @@ u8 tms0270_cpu_device::read_k_input() { // external: TMS5100 CTL port via SEG G,B,C,D if (m_chipsel) - return (m_ctl_dir) ? m_ctl_out : m_read_ctl(0, 0xff) & 0xf; + return (m_ctl_dir) ? m_ctl_out : m_read_ctl() & 0xf; // standard K-input otherwise - u8 k = m_read_k(0, 0xff) & 0x1f; + u8 k = m_read_k() & 0x1f; return (k & 0x10) ? 0xf : k; // the TMS0270 KF line asserts all K-inputs } diff --git a/src/devices/cpu/tms1000/tms0970.cpp b/src/devices/cpu/tms1000/tms0970.cpp index be7a1c717f8..3463879a8bb 100644 --- a/src/devices/cpu/tms1000/tms0970.cpp +++ b/src/devices/cpu/tms1000/tms0970.cpp @@ -118,7 +118,7 @@ void tms0970_cpu_device::write_o_output(u8 index) { m_o_index = index; m_o = m_spla->read(index); - m_write_o(0, m_o & m_o_mask, 0xffff); + m_write_o(m_o & m_o_mask); } @@ -135,5 +135,5 @@ void tms0970_cpu_device::op_tdo() { // TDO: transfer digits to output write_o_output(m_a & 0x7); - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); } diff --git a/src/devices/cpu/tms1000/tms0980.cpp b/src/devices/cpu/tms1000/tms0980.cpp index 028f1c36428..4b8f9f06bf5 100644 --- a/src/devices/cpu/tms1000/tms0980.cpp +++ b/src/devices/cpu/tms1000/tms0980.cpp @@ -25,7 +25,7 @@ DEFINE_DEVICE_TYPE(TMS0980, tms0980_cpu_device, "tms0980", "Texas Instruments TM // TMS1980 is a TMS0980 with a TMS1x00 style opla // - RAM, ROM, and main instructions PLAs is the same as TMS0980 // - one of the microinstructions redirects to a RSTR instruction, like on TMS0270 -// - 32-term inverted output PLA above the RAM, 7 bits! (rotate opla 270 degrees) +// - 32-term output PLA above the RAM, 7 bits! (rotate opla 270 degrees) DEFINE_DEVICE_TYPE(TMS1980, tms1980_cpu_device, "tms1980", "Texas Instruments TMS1980") // 28-pin DIP, 7 O pins, 10 R pins, high voltage @@ -185,7 +185,7 @@ void tms0980_cpu_device::read_opcode() // i/o handling u8 tms0980_cpu_device::read_k_input() { - u8 k = m_read_k(0, 0xff) & 0x1f; + u8 k = m_read_k() & 0x1f; u8 k3 = (k & 0x10) ? 3: 0; // the K3 line is simply K1|K2 return (k & 0xf) | k3; } diff --git a/src/devices/cpu/tms1000/tms1k_base.cpp b/src/devices/cpu/tms1000/tms1k_base.cpp index 5d9494a0539..91c0e545a69 100644 --- a/src/devices/cpu/tms1000/tms1k_base.cpp +++ b/src/devices/cpu/tms1000/tms1k_base.cpp @@ -270,9 +270,9 @@ void tms1k_base_device::device_reset() // clear outputs m_r = 0; - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); write_o_output(0); - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); m_power_off(0); } @@ -320,13 +320,13 @@ void tms1k_base_device::write_o_output(u8 index) // a hardcoded table is supported if the output pla is unknown m_o_index = index; m_o = (m_output_pla_table == nullptr) ? m_opla->read(index) : m_output_pla_table[index]; - m_write_o(0, m_o & m_o_mask, 0xffff); + m_write_o(m_o & m_o_mask); } u8 tms1k_base_device::read_k_input() { // K1,2,4,8 (KC test pin is not emulated) - return m_read_k(0, 0xff) & 0xf; + return m_read_k() & 0xf; } void tms1k_base_device::set_cki_bus() @@ -494,14 +494,14 @@ void tms1k_base_device::op_setr() { // SETR: set one R-output line m_r = m_r | (1 << m_y); - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); } void tms1k_base_device::op_rstr() { // RSTR: reset one R-output line m_r = m_r & ~(1 << m_y); - m_write_r(0, m_r & m_r_mask, 0xffff); + m_write_r(m_r & m_r_mask); } void tms1k_base_device::op_tdo() diff --git a/src/devices/cpu/tms1000/tms1k_base.h b/src/devices/cpu/tms1000/tms1k_base.h index 4e27535dff1..a29aef0594b 100644 --- a/src/devices/cpu/tms1000/tms1k_base.h +++ b/src/devices/cpu/tms1000/tms1k_base.h @@ -271,7 +271,6 @@ protected: u32 m_o_mask; u32 m_r_mask; - u32 m_k_mask; u32 m_pc_mask; u32 m_x_mask; diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp index 22c95caa5ec..e9459ee5e23 100644 --- a/src/mame/handheld/hh_tms1k.cpp +++ b/src/mame/handheld/hh_tms1k.cpp @@ -168,8 +168,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 ? 1982, Tsukuda The Dracula (? note: 40-pin, VFD-capable) - *MP6361 ? 1983, Defender Strikes (? note: VFD-capable) + *MP6354 TMS1375 1982, Tsukuda The Dracula + *MP6361 TMS1375? 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 @@ -387,7 +387,6 @@ INPUT_CHANGED_MEMBER(hh_tms1k_state::reset_button) INPUT_CHANGED_MEMBER(hh_tms1k_state::power_button) { set_power((bool)param); - m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE); } WRITE_LINE_MEMBER(hh_tms1k_state::auto_power_off) @@ -400,13 +399,17 @@ WRITE_LINE_MEMBER(hh_tms1k_state::auto_power_off) void hh_tms1k_state::power_off() { set_power(false); - m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } void hh_tms1k_state::set_power(bool state) { m_power_on = state; + m_maincpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE); + m_out_power = state ? 1 : 0; + + if (m_display && !m_power_on) + m_display->clear(); } @@ -423,7 +426,7 @@ namespace { A-One LSI Match Number * PCB label: PT-204 "Pair Card" - * TMS1000NLL MP0163 (die label 1000B, MP0163) + * TMS1000NLL MP0163 (die label: 1000B, MP0163) * 2x2-digit 7seg LED displays + 3 LEDs, 1-bit sound A-One was a subsidiary of Bandai? The PCB serial PT-xxx is same, and the font @@ -568,7 +571,7 @@ ROM_END A-One LSI Arrange Ball * PCB label: Kaken, PT-249 - * TMS1000NLL MP0166 (die label 1000B, MP0166) + * TMS1000NLL MP0166 (die label: 1000B, MP0166) * 2-digit 7seg LED display + 22 LEDs, 1-bit sound known releases: @@ -845,7 +848,7 @@ ROM_END /*************************************************************************** Bandai System Control Car: Cheetah 「システムコントロールカー チーター」 - * TMS1000NLL MP0915 (die label 1000B, MP0915) + * TMS1000NLL MP0915 (die label: 1000B, MP0915) * 2 motors (one for back axis, one for steering), no sound It's a programmable buggy, like Big Track but much simpler. To add a command @@ -981,7 +984,7 @@ ROM_END /*************************************************************************** Bandai TC7: Air Traffic Control - * TMS1100 MCU, label MP1311 (die label 1100E, MP1311) + * TMS1100 MCU, label MP1311 (die label: 1100E, MP1311) * 4-digit 7seg LED display, 40 other LEDs, 1-bit sound It is a very complicated game, refer to the manual on how to play. @@ -1108,7 +1111,7 @@ ROM_END Canon Palmtronic F-31, Canon Canola L813, Toshiba BC-8111B, Toshiba BC-8018B, Triumph-Adler 81 SN, Silver-Reed 8J, more - * TMS1040 MCU label TMS1045NL (die label 1040A, 1045) + * TMS1040 MCU label TMS1045NL (die label: 1040A, 1045) * 9-digit cyan VFD display (leftmost may be custom) TMS1045NL is a versatile calculator chip for 3rd party manufacturers, used @@ -1276,7 +1279,7 @@ ROM_END Canon Palmtronic MD-8 (Multi 8) / Canon Canola MD 810 * PCB label: Canon EHI-0115-03 - * TMS1070 MCU label TMC1079 (die label 1070B, 1079A) + * TMS1070 MCU label TMC1079 (die label: 1070B, 1079A) * 2-line cyan VFD display, each 9-digit 7seg + 1 custom (label 20-ST-22) The only difference between MD-8 and MD 810 is the form factor. The latter @@ -2005,11 +2008,11 @@ ROM_END /*************************************************************************** Coleco Head to Head: Electronic Basketball (model 2150) - * TMS1000NLL MP3320A (die label 1000E MP3320A) + * TMS1000NLL MP3320A (die label: 1000E, MP3320A) * 2-digit 7seg LED display, LED grid display, 1-bit sound Coleco Head to Head: Electronic Hockey (model 2160) - * TMS1000NLL E MP3321A (die label 1000E MP3321A) + * TMS1000NLL E MP3321A (die label: 1000E, MP3321A) * same PCB/hardware as above Unlike the COP420 version(see hh_cop400.cpp driver), each game has its own MCU. @@ -2209,7 +2212,7 @@ ROM_END Coleco Head to Head: Electronic Baseball (model 2180) * PCB labels: Coleco rev C 73891/2 - * TMS1170NLN MP1525-N2 (die label MP1525) + * TMS1170NLN MP1525-N2 (die label: 1170A, MP1525) * 9-digit cyan VFD display, and other LEDs behind bezel, 1-bit sound known releases: @@ -2357,7 +2360,7 @@ ROM_END /*************************************************************************** Coleco Head to Head: Electronic Boxing (model 2190) - * TMS1100NLL M34018-N2 (die label M34018) + * TMS1100NLL M34018-N2 (die label: 1100E, M34018) * 2-digit 7seg LED display, LED grid display, 1-bit sound This appears to be the last game of Coleco's Head to Head series. @@ -2484,7 +2487,7 @@ ROM_END /*************************************************************************** Coleco Quiz Wiz Challenger - * TMS1000NLL M32001-N2 (die label 1000E, M32001) + * TMS1000NLL M32001-N2 (die label: 1000E, M32001) * 4 7seg LEDs, 17 other LEDs, 1-bit sound This is a 4-player version of Quiz Wiz, a multiple choice quiz game. @@ -2679,7 +2682,7 @@ ROM_END /*************************************************************************** Coleco Total Control 4 - * TMS1400NLL MP7334-N2 (die label MP7334) + * TMS1400NLL MP7334-N2 (die label: TMS1400, MP7334) * 2x2-digit 7seg LED display + 4 LEDs, LED grid display, 1-bit sound This is a head to head electronic tabletop LED-display sports console. @@ -2870,7 +2873,7 @@ ROM_END Concept 2000 Mr. Mus-I-Cal (model 560) * PCB label: CONCEPT 2000 ITE 556 - * TMS1000NLL MP3206 (die label 1000C, MP3206) + * TMS1000NLL MP3206 (die label: 1000C, MP3206) * 9-digit 7seg LED display(one custom digit), 1-bit sound It's a simple 4-function calculator, and plays music tones too. @@ -3008,7 +3011,7 @@ ROM_END Conic Electronic Basketball * PCB label: CONIC 101-006 - * TMS1000NLL MP0907 (die label 1000B MP0907) + * TMS1000NLL MP0907 (die label: 1000B MP0907) * DS8871N, 2 7seg LEDs, 30 other LEDs, 1-bit sound There are 3 known versions of Conic Basketball: MP0910(101-003) and @@ -3540,7 +3543,7 @@ ROM_END Conic Electronic I.Q. * PCB labels: main: CONIC 101-037 (other side: HG-15, 11*00198*00), button PCB: CONIC 102-001, led PCB: CONIC 100-003 REV A itac - * TMS1000NLL MP0908 (die label 1000B, MP0908) + * TMS1000NLL MP0908 (die label: 1000B, MP0908) * 2 7seg LEDs, 30 other LEDs, 1-bit sound This is a peg solitaire game, with random start position. @@ -3802,7 +3805,7 @@ ROM_END /*************************************************************************** Entex (Electronic) Soccer - * TMS1000NL MP0158 (die label 1000B, MP0158) + * TMS1000NL MP0158 (die label: 1000B, MP0158) * 2 7seg LEDs, 30 other LEDs, 1-bit sound known releases: @@ -3923,7 +3926,7 @@ ROM_END /*************************************************************************** Entex (Electronic) Baseball (1) - * TMS1000NLP MP0914 (die label MP0914A) + * TMS1000NLP MP0914 (die label: 1000B, MP0914A) * 1 7seg LED, and other LEDs behind bezel, 1-bit sound This is a handheld LED baseball game. One player controls the batter, the CPU @@ -4211,7 +4214,7 @@ ROM_END Entex (Electronic) Baseball 3 * PCB label: ZENY - * TMS1100NLL 6007 MP1204 (rev. E!) (die label MP1204) + * TMS1100NLL 6007 MP1204 (rev. E!) (die label: MP1204) * 2*SN75492N LED display driver * 4 7seg LEDs, and other LEDs behind bezel, 1-bit sound @@ -4395,7 +4398,7 @@ ROM_END /*************************************************************************** Entex Space Battle - * TMS1000 EN-6004 MP0920 (die label 1000B, MP0920) + * TMS1000 EN-6004 MP0920 (die label: 1000B, MP0920) * 2 7seg LEDs, and other LEDs behind bezel, 1-bit sound The Japanese version was published by Gakken, same name. @@ -4521,7 +4524,7 @@ ROM_END /*************************************************************************** Entex Blast It - * TMS1000 MP0230 (die label 1000B, MP0230) + * TMS1000 MP0230 (die label: 1000B, MP0230) * 3 7seg LEDs, 49 other LEDs (both under an overlay mask), 1-bit sound ***************************************************************************/ @@ -4754,7 +4757,7 @@ ROM_END /*************************************************************************** Entex Color Football 4 - * TMS1670 6009 MP7551 (die label MP7551) + * TMS1670 6009 MP7551 (die label: TMS1400, MP7551) * 9-digit cyan VFD display, 60 red and green LEDs behind mask, 1-bit sound Another version exist, one with a LED(red) 7seg display. @@ -4894,7 +4897,7 @@ ROM_END /*************************************************************************** Entex (Electronic) Basketball 2 - * TMS1100 6010 MP1218 (die label MP1218) + * TMS1100 6010 MP1218 (die label: 1100B, MP1218) * 4 7seg LEDs, and other LEDs behind bezel, 1-bit sound led translation table: led zz from game PCB = MAME y.x: @@ -5031,7 +5034,7 @@ ROM_END /*************************************************************************** Entex Raise The Devil - * TMS1100 MP1221 (die label same) + * TMS1100 MP1221 (die label: 1100B, MP1221) * 4 7seg LEDs(rightmost one unused), and other LEDs behind bezel, 1-bit sound Entex Black Knight (licensed handheld version of Williams' pinball game) @@ -5376,7 +5379,7 @@ ROM_END Fonas 2 Player Baseball * PCB label: CA-014 (probably Cassia) - * TMS1000NLL MP0154 (die label 1000B, MP0154) + * TMS1000NLL MP0154 (die label: 1000B, MP0154) * 4 7seg LEDs, 37 other LEDs, 1-bit sound known releases: @@ -5664,7 +5667,7 @@ ROM_END Gakken Poker * PCB label: POKER. gakken - * TMS1370 MP2105 (die label same) + * TMS1370 MP2105 (die label: 1170, MP2105) * 11-digit cyan VFD display Itron FG1114B, oscillator sound known releases: @@ -5819,7 +5822,7 @@ ROM_END Gakken Jackpot: Gin Rummy & Black Jack * PCB label: gakken - * TMS1670 MPF553 (die label same) + * TMS1670 MPF553 (die label: TMS1400, MPF553) * 11-digit cyan VFD display Itron FG1114B, oscillator sound known releases: @@ -6071,7 +6074,7 @@ ROM_END /*************************************************************************** Gakken Invader 1000 - * TMS1370 MP2139 (die label 1170 MP2139) + * TMS1370 MP2139 (die label: 1170 MP2139) * cyan/red VFD display Futaba DM-25Z 2D, 1-bit sound known releases: @@ -6198,7 +6201,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 @@ -6342,7 +6345,7 @@ ROM_END /*************************************************************************** Gakken FX-Micom R-165 - * TMS1100 MCU, label MP1312 (die label MP1312A) + * TMS1100 MCU, label MP1312 (die label: 1100E, MP1312A) * 1 7seg led, 6 other leds, 1-bit sound This is a simple educational home computer. Refer to the extensive manual @@ -6493,7 +6496,7 @@ ROM_END /*************************************************************************** Ideal Electronic Detective - * TMS0980NLL MP6100A (die label 0980B-00) + * TMS0980NLL MP6100A (die label: 0980B-00) * 10-digit 7seg LED display, 2-level sound hardware (and concept) is very similar to Parker Brothers Stop Thief @@ -6641,7 +6644,7 @@ ROM_END /*************************************************************************** Kenner Star Wars - Electronic Battle Command - * TMS1100 MCU, label MP3438A (die label 1100B, MP3438A) + * TMS1100 MCU, label MP3438A (die label: 1100B, MP3438A) * 4x4 LED grid display + 2 separate LEDs and 2-digit 7segs, 1-bit sound This is a small tabletop space-dogfighting game. To start the game, @@ -6792,7 +6795,7 @@ ROM_END /*************************************************************************** Kenner Live Action Football - * TMS1100NLL MCU, label MP3489-N2 (die label 1100E, MP3489) + * TMS1100NLL MCU, label MP3489-N2 (die label: 1100E, MP3489) * 6-digit 7seg LED display, other LEDs under overlay, 1-bit sound The LEDs are inside reflective domes, with an overlay mask on top of that. @@ -6940,7 +6943,7 @@ ROM_END /*************************************************************************** Kosmos Astro - * TMS1470NLHL MP1133 (die label TMS1400 MP1133) + * TMS1470NLHL MP1133 (die label: TMS1400 MP1133) * 9-digit 7seg VFD display + 8 LEDs(4 green, 4 yellow), no sound This is an astrological calculator, and also supports 4-function @@ -7248,7 +7251,7 @@ ROM_END Mattel Thoroughbred Horse Race Analyzer * PCB label: 1670-4619D - * TMS1100NLL MP3491-N2 (die label 1100E MP3491) + * TMS1100NLL MP3491-N2 (die label: 1100E MP3491) * HLCD0569, 67-segment LCD panel, no sound This handheld is not a toy, read the manual for more information. In short, @@ -7412,7 +7415,7 @@ ROM_END /*************************************************************************** Mattel Dungeons & Dragons - Computer Labyrinth Game - * TMS1100 M34012-N2LL (die label M34012) + * TMS1100 M34012-N2LL (die label: 1100E, M34012) * 72 buttons, no LEDs, 1-bit sound This is an electronic board game. It requires markers and wall pieces to play. @@ -7605,7 +7608,7 @@ ROM_END /*************************************************************************** Milton Bradley Comp IV - * TMC0904NL CP0904A (die label 4A0970D-04A) + * TMC0904NL CP0904A (die label: 4A0970D-04A) * 10 LEDs behind bezel, no sound This is small tabletop Mastermind game; a code-breaking game where the player @@ -7725,7 +7728,7 @@ ROM_END Milton Bradley Electronic Battleship (1977 version, model 4750A) * PCB label: 4750A - * TMS1000NL MP3201 (die label 1000C, MP3201) + * TMS1000NL MP3201 (die label: 1000C, MP3201) * LM324N, MC14016CP/TP4016AN, NE555P, discrete sound * 4 sliding buttons, light bulb @@ -7891,7 +7894,7 @@ ROM_END Milton Bradley Electronic Battleship (1977 version, model 4750B) * PCB label: MB 4750B - * TMS1000NLL MP3208 (die label 1000C, MP3208) + * TMS1000NLL MP3208 (die label: 1000C, MP3208) * SN75494N (acting as inverters), SN76477 sound * 4 sliding buttons, light bulb @@ -8023,7 +8026,7 @@ ROM_END /*************************************************************************** Milton Bradley Simon (model 4850), created by Ralph Baer - * TMS1000 (die label MP3226), or MP3300 (die label 1000C, MP3300) + * TMS1000 (die label: 1000C, MP3226), or MP3300 (die label: 1000C, MP3300) * DS75494 Hex digit LED driver, 4 big lamps, 1-bit sound known revisions: @@ -8158,7 +8161,7 @@ ROM_END /*************************************************************************** Milton Bradley Super Simon - * TMS1100 MP3476NLL (die label MP3476) + * TMS1100 MP3476NLL (die label: 1100E, MP3476) * 8 big lamps(2 turn on at same time), 1-bit sound The semi-squel to Simon, not as popular. It includes more game variations @@ -8317,7 +8320,7 @@ ROM_END /*************************************************************************** Milton Bradley Big Trak - * TMS1000NLL MP3301A or MP3301ANLL E (rev. E!) (die label 1000E MP3301) + * TMS1000NLL MP3301A or MP3301ANLL E (rev. E!) (die label: 1000E MP3301) * SN75494N Hex digit LED driver, 1 lamp, 3-level sound * gearbox with magnetic clutch, 1 IR led+sensor, 2 motors(middle wheels) * 24-button keypad, ext in/out ports @@ -8539,8 +8542,8 @@ ROM_END /*************************************************************************** Milton Bradley Dark Tower - * TMS1400NLL MP7332-N1.U1(Rev. B) or MP7332-N2LL(Rev. C) (die label MP7332) - (assume same ROM contents between revisions) + * TMS1400NLL MP7332-N1.U1(Rev. B) or MP7332-N2LL(Rev. C) (die label: + TMS1400, MP7332) (assume same ROM contents between revisions) * SN75494N MOS-to-LED digit driver * motorized rotating reel + lightsensor, 1bit-sound @@ -8785,7 +8788,7 @@ ROM_END /*************************************************************************** Milton Bradley Electronic Arcade Mania - * TMS1100 M34078A-N2LL (die label 1100G, M34078A) + * TMS1100 M34078A-N2LL (die label: 1100G, M34078A) * 9 LEDs, 3-bit sound This is a board game. The mini arcade machine is the emulated part here. @@ -8910,7 +8913,7 @@ ROM_END /*************************************************************************** Parker Brothers Code Name: Sector, by Bob Doyle - * TMS0970 MCU, MP0905BNL ZA0379 (die label 0970F-05B) + * TMS0970 MCU, MP0905BNL ZA0379 (die label: 4A0970F-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 @@ -9176,7 +9179,7 @@ ROM_END /*************************************************************************** Parker Brothers Master Merlin - * TMS1400 MP7351-N2LL (die label 1400CR MP7351) + * TMS1400 MP7351-N2LL (die label: 1400CR MP7351) * 11 LEDs behind buttons, 3-level sound The TMS1400CR MCU has the same pinout as a standard TMS1100. The hardware @@ -9248,7 +9251,7 @@ ROM_END /*************************************************************************** Parker Brothers Electronic Master Mind - * TMS1000NLL MP3200 (die label 1000E, MP3200) + * TMS1000NLL MP3200 (die label: 1000E, MP3200) * 5 red leds, 5 green leds This is a board game, it came with 4 plug boards and a lot of colored pegs. @@ -9366,7 +9369,7 @@ ROM_END /*************************************************************************** Parker Brothers Stop Thief, by Bob Doyle - * TMS0980NLL MP6101B (die label 0980B-01A) + * TMS0980NLL MP6101B (die label: 0980B-01A) * 3-digit 7seg LED display, 6-level sound Stop Thief is actually a board game, the electronic device emulated here @@ -9512,7 +9515,7 @@ ROM_END /*************************************************************************** Parker Brothers Bank Shot (known as Cue Ball in the UK), by Garry Kitchen - * TMS1400NLL MP7313-N2 (die label MP7313) + * TMS1400NLL MP7313-N2 (die label: TMS1400, MP7313) * LED grid display, 1-bit sound Bank Shot is an electronic pool game. To select a game, repeatedly press @@ -9643,7 +9646,7 @@ ROM_END /*************************************************************************** Parker Brothers Split Second - * TMS1400NLL MP7314-N2 (die label MP7314) + * TMS1400NLL MP7314-N2 (die label: TMS1400, MP7314) * LED grid display(default round LEDs, and rectangular shape ones), 1-bit sound This is an electronic handheld reflex gaming device, it's straightforward @@ -9776,7 +9779,7 @@ ROM_END Parker Brothers Lost Treasure - The Electronic Deep-Sea Diving Game, Featuring The Electronic Dive-Control Center - * TMS1100 M34038-NLL (die label 1100E, M34038) + * TMS1100 M34038-NLL (die label: 1100E, M34038) * 11 LEDs, 4-bit sound This is a board game. The electronic accessory is the emulated part here. @@ -10051,7 +10054,7 @@ ROM_END Tandy Championship Football (model 60-2150) * PCB label: CYG-316 - * TMS1100NLL MP1193 (die label 1100B, MP1193) + * TMS1100NLL MP1193 (die label: 1100B, MP1193) * 7-digit 7seg LED display + LED grid, 1-bit sound Another clone of Mattel Football II. The original manufacturer is unknown, but @@ -10422,7 +10425,7 @@ ROM_END /*************************************************************************** Tandy(Radio Shack division) Monkey See (1982 version) - * TMS1000 MP0271 (die label 1000E, MP0271), only half of ROM space used + * TMS1000 MP0271 (die label: 1000E, MP0271), only half of ROM space used * 2 LEDs(one red, one green), 1-bit sound This is the TMS1000 version, the one from 1977 has a MM5780. @@ -10546,7 +10549,7 @@ ROM_END Tandy 3 in 1 Sports Arena (model 60-2178) * PCB label: HP-804 - * TMS1100 (just a datestamp label (8331), die label 1100B MP1231) + * TMS1100 (just a datestamp label (8331), die label: 1100B MP1231) * 2x2-digit 7seg LED display + 47 other LEDs, 1-bit sound For Tandy Sports Arena (model 60-2158), see cmsport, this is a different game. @@ -10712,7 +10715,7 @@ ROM_END /*************************************************************************** Telesensory Systems, Inc.(TSI) Speech+ - * TMS1000 MCU, label TMS1007NL (die label 1000B, 1007A) + * TMS1000 MCU, label TMS1007NL (die label: 1000B, 1007A) * TSI S14001A speech chip, GI S14007-A 2KB maskrom for samples * 9-digit 7seg LED display @@ -10879,11 +10882,11 @@ ROM_END /*************************************************************************** TI SR-16 (1974, first consumer product with TMS1000 series MCU) - * TMS1000 MCU label TMS1001NL (die label 1000, 1001A) + * TMS1000 MCU label TMS1001NL (die label: 1000, 1001A) * 12-digit 7seg LED display TI SR-16 II (1975 version) - * TMS1000 MCU label TMS1016NL (die label 1000B, 1016A) + * TMS1000 MCU label TMS1016NL (die label: 1000B, 1016A) * notes: cost-reduced 'sequel', [10^x] was removed, and [pi] was added. ***************************************************************************/ @@ -11119,11 +11122,11 @@ ROM_END /*************************************************************************** TI-1250/TI-1200 (1975 version), Spirit of '76 - * TMS0950 MCU label TMC0952NL, K0952 (die label 0950A 0952) + * TMS0950 MCU label TMC0952NL, K0952 (die label: 0950A 0952) * 9-digit 7seg LED display TI-1250/TI-1200 (1976 version), TI-1400, TI-1450, TI-1205, TI-1255, LADY 1200, ABLE - * TMS0970 MCU label TMS0972NL ZA0348, JP0972A (die label 0970D-72A) + * TMS0970 MCU label TMS0972NL ZA0348, JP0972A (die label: 0970D-72A) * 8-digit 7seg LED display, or 9 digits with leftmost unused As seen listed above, the basic 4-function TMS0972 calculator MCU was used @@ -11135,7 +11138,7 @@ ROM_END available buttons. TI-1270 - * TMS0970 MCU label TMC0974NL ZA0355, DP0974A (die label 0970D-74A) + * TMS0970 MCU label TMC0974NL ZA0355, DP0974A (die label: 0970D-74A) * 8-digit 7seg LED display * notes: almost same hardware as TMS0972 TI-1250, minor scientific functions @@ -11316,7 +11319,7 @@ ROM_END /*************************************************************************** TI-2550 III, TI-1650/TI-1600, TI-1265 (they have the same chip) - * TMS1040 MCU label TMS1043NL ZA0352 (die label 1040A, 1043A) + * TMS1040 MCU label TMS1043NL ZA0352 (die label: 1040A, 1043A) * 9-digit cyan VFD display Only the TI-2550 III has the top button row (RV, SQRT, etc). @@ -11449,7 +11452,7 @@ ROM_END /*************************************************************************** TI-5100, more (see below) - * TMS1070 MCU label TMS1073NL or TMC1073NL (die label 1070B, 1073) + * TMS1070 MCU label TMS1073NL or TMC1073NL (die label: 1070B, 1073) * 11-digit 7seg VFD (1 custom digit) This chip was also used in 3rd-party calculators, such as Toshiba BC-1015, @@ -11603,7 +11606,7 @@ ROM_END TMC098x series Majestic-line calculators TI-30, SR-40, TI-15(less buttons) and several by Koh-I-Noor - * TMS0980 MCU label TMC0981NL (die label 0980B-81F) + * TMS0980 MCU label TMC0981NL (die label: 0980B-81F) * 9-digit 7seg LED display Of note is a peripheral by Schoenherr, called the Braillotron. It acts as @@ -11612,10 +11615,10 @@ ROM_END the original LED display to a 25-pin D-Sub connector. TI Business Analyst, TI Business Analyst-I, TI Money Manager, TI-31, TI-41 - * TMS0980 MCU label TMC0982NL (die label 0980B-82F) + * TMS0980 MCU label TMC0982NL (die label: 0980B-82F) TI Programmer - * TMS0980 MCU label ZA0675NL, JP0983AT (die label 0980B-83) + * TMS0980 MCU label ZA0675NL, JP0983AT (die label: 0980B-83) ***************************************************************************/ @@ -11905,7 +11908,7 @@ ROM_END /*************************************************************************** TI-1000 (1977 version) - * TMS1990 MCU label TMC1991NL (die label 1991-91A) + * TMS1990 MCU label TMC1991NL (die label: 1991-91A) * 8-digit 7seg LED display TI-1000 (1978 version) @@ -12024,7 +12027,7 @@ ROM_END /*************************************************************************** TI WIZ-A-TRON - * TMS0970 MCU label TMC0907NL ZA0379, DP0907BS (die label 0970F-07B) + * TMS0970 MCU label TMC0907NL ZA0379, DP0907BS (die label: 0970F-07B) * 9-digit 7seg LED display(one custom digit) ***************************************************************************/ @@ -12143,7 +12146,7 @@ ROM_END /*************************************************************************** TI Little Professor (1976 version) - * TMS0970 MCU label TMS0975NL ZA0356, GP0975CS (die label 0970D-75C) + * TMS0970 MCU label TMS0975NL ZA0356, GP0975CS (die label: 0970D-75C) * 9-digit 7seg LED display(one custom digit) The hardware is nearly identical to Wiz-A-Tron (or vice versa, since this @@ -12230,7 +12233,7 @@ ROM_END /*************************************************************************** TI Little Professor (1978 version) - * TMS1990 MCU label TMC1993NL (die label 1990C-c3C) + * TMS1990 MCU label TMC1993NL (die label: 1990C-c3C) * 9-digit 7seg LED display(one custom digit) 1978 re-release, with on/off and level select on buttons instead of @@ -12358,8 +12361,8 @@ ROM_END /*************************************************************************** TI-1680, TI-2550-IV - * TMS1980 MCU label TMC1981NL (die label 1980A 81F) - * TMC0999NL 256x4 RAM (die label 0999B) + * TMS1980 MCU label TMC1981NL (die label: 1980A 81F) + * TMC0999NL 256x4 RAM (die label: 0999B) * 9-digit cyan VFD display(leftmost digit is custom) The extra RAM is for scrolling back through calculations. For some reason, @@ -12505,7 +12508,7 @@ ROM_END /*************************************************************************** TI DataMan - * TMS1980 MCU label TMC1982NL (die label 1980A 82B) + * TMS1980 MCU label TMC1982NL (die label: 1980A 82B) * 10-digit cyan VFD display(3 digits are custom) ***************************************************************************/ @@ -12635,7 +12638,7 @@ ROM_END /*************************************************************************** TI Math Marvel - * TMS1980 MCU label TMC1986A-NL (die label 1980A 86A) + * TMS1980 MCU label TMC1986A-NL (die label: 1980A 86A) * 9-digit cyan VFD display(2 digits are custom), 1-bit sound This is the same hardware as DataMan, with R8 connected to a piezo. @@ -12811,7 +12814,7 @@ ROM_END /*************************************************************************** Texas Instruments Electronic Digital Thermostat - * TMS0970 MCU, label TMS0970NLL TMC0910B (die label 0970F-10E) + * TMS0970 MCU, label TMS0970NLL TMC0910B (die label: 0970F-10E) * 9-digit 7seg LED display, only 4 used * temperature sensor, heat/cool/fan outputs @@ -12974,7 +12977,7 @@ ROM_END Tiger Sub Wars (model 7-490) * PCB label: CSG201A(main), CSG201B(leds) - * TMS1200N2LL MP3352 (die label 1000C, MP3352) + * TMS1200N2LL MP3352 (die label: 1000C, MP3352) * 4-digit 7seg LED display + 55 other LEDs, 1-bit sound Tiger/Yeno also published an LCD handheld called Sub Wars, it's not related. @@ -13072,7 +13075,7 @@ ROM_END /*************************************************************************** Tiger Playmaker: Hockey, Soccer, Basketball (model 7-540 or 7-540A) - * TMS1100 MP1215 (die label 1100B MP1215) + * TMS1100 MP1215 (die label: 1100B MP1215) * 2-digit 7seg LED display + 40 other LEDs, 1-bit sound The games are on playcards(Tiger calls them that), the hardware detects which @@ -13236,7 +13239,7 @@ ROM_END /*************************************************************************** Tiger Deluxe Football with Instant Replay (model 7-550) - * TMS1400NLL MP7302 (die label TMS1400 MP7302) + * TMS1400NLL MP7302 (die label: TMS1400 MP7302) * 4-digit 7seg LED display, 80 red/green LEDs, 1-bit sound According to the manual, player 1 is green, player 2 is red. But when @@ -13369,7 +13372,7 @@ ROM_END Tiger Electronics Copy Cat (model 7-520) * PCB label: CC REV B - * TMS1000 MCU, label 69-11513 MP0919 (die label MP0919) + * TMS1000 MCU, label 69-11513 MP0919 (die label: 1000B, MP0919) * 4 LEDs, 1-bit sound known releases: @@ -13489,7 +13492,7 @@ ROM_END Tiger Electronics Copy Cat (model 7-522) * PCB label: WS 8107-1 - * TMS1730 MCU, label MP3005N (die label 1700 MP3005) + * TMS1730 MCU, label MP3005N (die label: 1700 MP3005) * 4 LEDs, 1-bit sound This is a simplified rerelease of Copy Cat, 10(!) years later. The gameplay @@ -13580,7 +13583,7 @@ ROM_END /*************************************************************************** Tiger Ditto (model 7-530) - * TMS1700 MCU, label MP1801-N2LL (die label 1700 MP1801) + * TMS1700 MCU, label MP1801-N2LL (die label: 1700 MP1801) * 4 LEDs, 1-bit sound known releases: @@ -13667,7 +13670,7 @@ ROM_END /*************************************************************************** Tiger 7 in 1 Sports Stadium (model 7-555) - * TMS1400 MP7304 (die label TMS1400 MP7304A) + * TMS1400 MP7304 (die label: TMS1400 MP7304A) * 2x2-digit 7seg LED display + 39 other LEDs, 1-bit sound This handheld includes 7 games: 1: Basketball, 2: Hockey, 3: Soccer, @@ -13799,7 +13802,7 @@ ROM_END Tomy(tronics) Break Up (manufactured in Japan) * PCB label: TOMY B.O. - * TMS1040 MP2726 TOMY WIPE (die label MP2726A) + * TMS1040 MP2726 TOMY WIPE (die label: 1040B, MP2726A) * TMS1025N2LL I/O expander * 2-digit 7seg display, 46 other leds, 1-bit sound @@ -14000,7 +14003,7 @@ ROM_END Tomy Power House Pinball * PCB label: TOMY P-B - * TMS1100 MP1180 TOMY PINB (die label MP1180) + * TMS1100 MP1180 TOMY PINB (die label: 1100B, MP1180) * 3 7seg LEDs, and other LEDs behind bezel, 1-bit sound known releases: @@ -14280,7 +14283,7 @@ ROM_END /*************************************************************************** Vulcan XL 25 - * TMS1000SLC MP4486A (die label 1000C/, MP4486A) + * TMS1000SLC MP4486A (die label: 1000C/, MP4486A) * 28 LEDs, 1-bit sound This game is the same logic puzzle as Tiger's Lights Out, except that diff --git a/src/mame/handheld/hh_tms1k.h b/src/mame/handheld/hh_tms1k.h index 7d9904e4377..27a0e53f815 100644 --- a/src/mame/handheld/hh_tms1k.h +++ b/src/mame/handheld/hh_tms1k.h @@ -65,7 +65,7 @@ protected: u8 read_rotated_inputs(int columns, u8 rowmask = 0xf); virtual DECLARE_WRITE_LINE_MEMBER(auto_power_off); virtual void power_off(); - void set_power(bool state); + virtual void set_power(bool state); void switch_change(int sel, u32 mask, bool next); }; diff --git a/src/mame/handheld/tispeak.cpp b/src/mame/handheld/tispeak.cpp index 47894b4b789..9c0b1a4f9f6 100644 --- a/src/mame/handheld/tispeak.cpp +++ b/src/mame/handheld/tispeak.cpp @@ -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 T0270B 0271B) + - 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 T0270D 0271H) + - MCU: TMC0271, label TMC0271H-N2L FDS (die label: T0270D 0271H) - TMS51xx: TMC0281 - VSM(1/2): 16KB TMC0351N2L - VSM(2/2): 16KB TMC0352N2L @@ -81,21 +81,22 @@ above expectations. TI continued to manufacture many products for this line. - notes: this one has a dedicated voice actor Speak & Spell (Spanish, prototype), 1981 - - MCU: CD2701N2L P (die label T0270D 2701) - - TMS51xx: TMC0281 (die label T0280A 0281) + - MCU: CD2701N2L P (die label: T0270D 2701) + - 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 Speak & Spell (France) "La Dictée Magique", 1980 - - MCU: CD2702, label CD2702AN2L (die label TMC0270F 2702A) + - MCU: CD2702, label CD2702AN2L (die label: TMC0270F 2702A) - TMS51xx: CD2801 - VSM: 16KB CD2352 - Speak & Spell (Germany) "Buddy", 1980 + Speak & Spell (Germany) "Buddy", 1980 (stylized as "buddy") - MCU & TMS51xx: same as French 1980 version - VSM(1/2): 16KB CD2345* - VSM(2/2): 16KB CD2346* + - VFD: has umlaut instead of apostrophe Speak & Spell (Italy) "Grillo Parlante", 1982 - MCU & TMS51xx: same as French 1980 version @@ -104,8 +105,8 @@ above expectations. TI continued to manufacture many products for this line. - notes: it appears that TI ran out of original snspell VFDs in the early 80s? Speak & Spell Compact (US), 1981 - - MCU: CD8011, label CD8011A-NL (die label 1100B) - - TMS51xx: TMC0281D (die label T0280F 0281D) + - MCU: CD8011, label CD8011A-NL (die label: 1100B) + - 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 @@ -140,9 +141,9 @@ Note that they are interchangeable, eg. you can use a French module on a US Spea French: - No.1: Les Mots de Base: VSM: 16KB CD2353 (1st release was called "Module No. 1 de Jacques Capelovici") - No.2: Les Mots Difficiles (aka Les Mots de Base): VSM: 16KB CD62177A - - No.3: Les Animaux Familiers: VSM: 16KB? CD62047* + - No.3: Les Animaux Familiers: VSM: 16KB CD62047* - No.4: Les Magasins de la Rue: VSM: 16KB CD62048 - - No.5: Les Extra-Terrestres: VSM: 16KB? CD62178* + - No.5: Les Extra-Terrestres: VSM: 16KB CD62178* Italian: - Super Modulo: VSM: 16KB? CD62313* @@ -151,7 +152,7 @@ Note that they are interchangeable, eg. you can use a French module on a US Spea Speak & Math: Speak & Math (US), 1980 (renamed to "Speak & Maths" in UK, but is the same product) - - MCU: CD2704, label CD2704B-N2L (die label TMC0270F 2704B) - 2nd revision?(mid-1982) + - MCU: CD2704, label CD2704B-N2L (die label: TMC0270F 2704B) - 2nd revision?(mid-1982) - TMS51xx: CD2801 - VSM(1/2): 16KB CD2392 - VSM(2/2): 16KB CD2393 @@ -162,7 +163,7 @@ Speak & Math: never found out and it ended up in the final product. Speak & Math (US), 1986 - - MCU: CD2708, label CD2708N2L (die label TMC0270F 2708A) + - MCU: CD2708, label CD2708N2L (die label: TMC0270F 2708A) - TMS51xx: CD2801 - VSM(1/2): 16KB CD2381 - VSM(2/2): 4KB CD2614 @@ -178,7 +179,7 @@ Speak & Math: Speak & Read: Speak & Read (US), 1980 - - MCU: CD2705, label CD2705B-N2L (die label TMC0270E 2705B) - 2nd revision?(late-1981) + - MCU: CD2705, label CD2705B-N2L (die label: TMC0270E 2705B) - 2nd revision?(late-1981) - TMS51xx: CD2801 - VSM(1/2): 16KB CD2394(rev.A) - VSM(2/2): 16KB CD2395(rev.A) @@ -200,7 +201,7 @@ Speak & Read modules: Touch & Tell: Touch & Tell (US), 1981 - - MCU: CD8012, label CD8012NL (die label 1100G CD8012) + - MCU: CD8012, label CD8012NL (die label: 1100G CD8012) - TMS51xx: CD2802 - VSM: 4KB CD2610 - notes: MCU is TMS1100 instead of TMS0270. CD8010 is seen in some devices @@ -220,7 +221,7 @@ Touch & Tell: Touch & Tell (Italy) "Libro Parlante", 1982 - MCU & TMS51xx: same as US version - - VSM: ?KB CD62176* + - VSM: ?KB CD62176* (on a module) Vocaid (US), 1982 - MCU & TMS51xx: same as Touch & Tell (US) @@ -329,8 +330,8 @@ Initially sold as Language Translator, renamed to Language Tutor a year later. It was rebranded from translator to a 'language aid'. Language Translator (US), 1979 - - MCU: TMC0275 (die label T0270D 0275B) - - TMS51xx: CD2801 (die label T0280B 2801) + - MCU: TMC0275 (die label: T0270D 0275B) + - TMS51xx: CD2801 (die label: T0280B 2801) - VFD: Itron FG106A2 - notes: external module is required (see below) @@ -621,16 +622,18 @@ void tispeak_state::update_display() void tispeak_state::snspell_write_r(u16 data) { - // R13: power-off request, on falling edge - if (~data & m_r & 0x2000) - power_off(); - // R0-R7: input mux and select digit (+R8 if the device has 9 digits) // R15: filament on // other bits: MCU internal use - m_r = m_inp_mux = data; + m_inp_mux = data; m_grid = data & 0x81ff; update_display(); + + // R13: power-off request, on falling edge + if (~data & m_r & 0x2000) + power_off(); + + m_r = data; } void tispeak_state::snspell_write_o(u16 data) @@ -675,6 +678,9 @@ void tispeak_state::lantrans_write_r(u16 data) void tispeak_state::snspellc_write_r(u16 data) { + // R0-R8: input mux + m_inp_mux = data; + // R10: TMS5100 PDC pin m_tms5100->pdc_w(data >> 10 & 1); @@ -682,8 +688,7 @@ void tispeak_state::snspellc_write_r(u16 data) if (~data & m_r & 0x200) power_off(); - // R0-R8: input mux - m_r = m_inp_mux = data; + m_r = data; } void tispeak_state::snspellc_write_o(u16 data) @@ -772,12 +777,13 @@ void tispeak_state::k28_write_r(u16 data) // R5: input mux high bit m_inp_mux = (m_inp_mux & 0xff) | (data << 3 & 0x100); + // R7-R10: LCD data + k28_update_display(m_r >> 7 & 0xf, data >> 7 & 0xf); + // R6: power-off request, on falling edge if (~data & m_r & 0x40) power_off(); - // R7-R10: LCD data - k28_update_display(m_r >> 7 & 0xf, data >> 7 & 0xf); m_r = r; } @@ -1909,7 +1915,7 @@ ROM_END -// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +// 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, 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 @@ -1919,7 +1925,7 @@ COMP( 1981, snspelluka, snspell, 0, sns_cd2801, snspell, tispeak_state, in 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( 1982, snspellit, snspell, 0, snspellit, snspellit, tispeak_state, init_snspell, "Texas Instruments / Clementoni", "Grillo Parlante (Italy)", 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 ) diff --git a/src/mame/handheld/tispellb.cpp b/src/mame/handheld/tispellb.cpp index ddb447b5301..a406bbe2166 100644 --- a/src/mame/handheld/tispellb.cpp +++ b/src/mame/handheld/tispellb.cpp @@ -14,8 +14,8 @@ 1st revision: Spelling B (US), 1978 - - TMS0270 MCU TMC0272 (die label 0272A T0270B) - - TMS1980 MCU TMC1984 (die label 1980A 84A) + - TMS0270 MCU TMC0272 (die label: 0272A T0270B) + - TMS1980 MCU TMC1984 (die label: 1980A 84A) - 8-digit cyan VFD display (seen with and without apostrophe) Spelling ABC (UK), 1979: exact same hardware as US version @@ -40,7 +40,7 @@ - 8-digit cyan VFD display - 1-bit sound - Letterlogic (UK), 1980: exact same hardware as US Mr. Challenger + Letterlogic (UK), 1980: exact same hardware as US Mr. Challenger (stylized as "LETTERlogic") Letterlogic (France), 1980: different VSM - TMC0355 4KB VSM ROM CD2603* @@ -48,13 +48,6 @@ Letterlogic (Germany), 1980: different VSM - TMC0355 4KB VSM ROM CD2604* - ----------------------------------------------------------------------------- - - TODO: - - spellb fetches wrong word sometimes (on lv1 SPOON and ANT) - roms were doublechecked - - ***************************************************************************/ #include "emu.h" @@ -79,8 +72,6 @@ public: void rev1(machine_config &config); void rev2(machine_config &config); - virtual DECLARE_INPUT_CHANGED_MEMBER(power_button) override; - private: // devices optional_device m_subcpu; @@ -90,7 +81,7 @@ private: u16 m_sub_o = 0; u16 m_sub_r = 0; - virtual void power_off() override; + virtual void set_power(bool state) override; void power_subcpu(); void update_display(); @@ -136,9 +127,9 @@ void tispellb_state::power_subcpu() m_subcpu->set_input_line(INPUT_LINE_RESET, m_power_on ? CLEAR_LINE : ASSERT_LINE); } -void tispellb_state::power_off() +void tispellb_state::set_power(bool state) { - hh_tms1k_state::power_off(); + hh_tms1k_state::set_power(state); power_subcpu(); } @@ -158,17 +149,18 @@ void tispellb_state::main_write_o(u16 data) void tispellb_state::main_write_r(u16 data) { - // R13: power-off request, on falling edge - if (~data & m_r & 0x2000) - power_off(); - // R0-R6: input mux // R0-R7: select digit // R15: filament on - m_r = data; m_inp_mux = data & 0x7f; m_grid = data & 0x80ff; update_display(); + + // R13: power-off request, on falling edge + if (~data & m_r & 0x2000) + power_off(); + + m_r = data; } u8 tispellb_state::main_read_k() @@ -245,12 +237,6 @@ void tispellb_state::rev2_write_r(u16 data) ***************************************************************************/ -INPUT_CHANGED_MEMBER(tispellb_state::power_button) -{ - hh_tms1k_state::power_button(field, param, oldval, newval); - power_subcpu(); -} - static INPUT_PORTS_START( spellb ) PORT_START("IN.0") // R0 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') @@ -392,39 +378,39 @@ void tispellb_state::rev2(machine_config &config) ROM_START( spellb ) ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tmc0272nl", 0x0000, 0x1000, CRC(f90318ff) SHA1(7cff03fafbc66b0e07b3c70a513fbb0b11eef4ea) ) + 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(3e021cbd) SHA1(c9bdfe10601b8a5a70442fe4805e4bfed8bbed35) ) + ROM_LOAD( "tms0270_spellb_output.pla", 0, 1246, CRC(b95e35e6) SHA1(430917486856c9e6c28af10ff3758242048096c4) ) - ROM_REGION( 0x1000, "subcpu", 0 ) - ROM_LOAD( "tmc1984nl", 0x0000, 0x1000, CRC(78c9c83a) SHA1(6307fe2a0228fd1b8d308fcaae1b8e856d40fe57) ) - - ROM_REGION( 1246, "subcpu:ipla", 0 ) - ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) - ROM_REGION( 2127, "subcpu:mpla", 0 ) - ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) - ROM_REGION( 525, "subcpu:opla", 0 ) - ROM_LOAD( "tms1980_spellb_output.pla", 0, 525, CRC(1e26a719) SHA1(eb031aa216fe865bc9e40b070ca5de2b1509f13b) ) + ROM_REGION( 0x1000, "tms6100", 0 ) + ROM_LOAD( "cd2602.vsm", 0x0000, 0x1000, CRC(dd1fff8c) SHA1(f1760b29aa50fc96a1538db814cc73289654ac25) ) ROM_END -ROM_START( spellb79 ) +ROM_START( spellba ) ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "tmc0274n2l", 0x0000, 0x1000, CRC(98e3bd32) SHA1(e79b59ac29b0183bf1ee8d84b2944450c5e5d8fb) ) + ROM_LOAD( "tmc0272nl", 0x0000, 0x1000, CRC(f90318ff) SHA1(7cff03fafbc66b0e07b3c70a513fbb0b11eef4ea) ) 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_spellb79_output.pla", 0, 1246, CRC(b95e35e6) SHA1(430917486856c9e6c28af10ff3758242048096c4) ) + ROM_LOAD( "tms0270_spellba_output.pla", 0, 1246, CRC(3e021cbd) SHA1(c9bdfe10601b8a5a70442fe4805e4bfed8bbed35) ) - ROM_REGION( 0x1000, "tms6100", 0 ) - ROM_LOAD( "cd2602.vsm", 0x0000, 0x1000, CRC(dd1fff8c) SHA1(f1760b29aa50fc96a1538db814cc73289654ac25) ) + ROM_REGION( 0x1000, "subcpu", 0 ) + ROM_LOAD( "tmc1984nl", 0x0000, 0x1000, CRC(78c9c83a) SHA1(6307fe2a0228fd1b8d308fcaae1b8e856d40fe57) ) + + ROM_REGION( 1246, "subcpu:ipla", 0 ) + ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) ) + ROM_REGION( 2127, "subcpu:mpla", 0 ) + ROM_LOAD( "tms0270_common2_micro.pla", 0, 2127, CRC(86737ac1) SHA1(4aa0444f3ddf88738ea74aec404c684bf54eddba) ) + ROM_REGION( 525, "subcpu:opla", 0 ) + ROM_LOAD( "tms1980_spellba_output.pla", 0, 525, CRC(1e26a719) SHA1(eb031aa216fe865bc9e40b070ca5de2b1509f13b) ) ROM_END @@ -445,8 +431,8 @@ ROM_END -// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1978, spellb, 0, 0, rev1, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) -COMP( 1979, spellb79, spellb, 0, rev2, spellb, tispellb_state, empty_init, "Texas Instruments", "Spelling B (1979 version)", MACHINE_SUPPORTS_SAVE ) +// 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 ) +COMP( 1979, mrchalgr, 0, 0, rev2, mrchalgr, tispellb_state, empty_init, "Texas Instruments", "Mr. Challenger", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 94b61018851..44d382585a2 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -41755,7 +41755,7 @@ vocaid // @source:handheld/tispellb.cpp mrchalgr // spellb // -spellb79 // +spellba // @source:apple/tk2000.cpp mpf2 // Multitech MPF-II -- cgit v1.2.3