diff --git a/src/mess/drivers/elecbowl.c b/src/mess/drivers/elecbowl.c index 273be7435d3..f1f9cd524bd 100644 --- a/src/mess/drivers/elecbowl.c +++ b/src/mess/drivers/elecbowl.c @@ -11,7 +11,8 @@ 2*CD4043 quad r/s input latch * 5 7seg LEDs, 15 lamps(10 lamps projected to bowling pins reflection), 1bit-sound with crude volume control - * edge connector to sensor board, inputs, ...? + * edge connector to sensors(switches trigger when ball rolls over) + and other inputs lamp translation table: SN74259.u5(mux 1) goes to MESS output lamp5x, SN74259.u6(mux 2) goes to MESS output lamp6x. u1-u3 are SN75492 ICs, @@ -62,11 +63,14 @@ void elecbowl_state::prepare_display() } // lamp muxes - UINT8 d = m_r >> 1 & 1; - m_display_state[5] = (m_r & 1) ? (d << (m_o & 7)) : 0; - m_display_state[6] = (m_r >> 2 & 1) ? (d << (m_o & 7)) : 0; + UINT8 mask = 1 << (m_o & 7); + UINT8 d = (m_r & 2) ? mask : 0; + if (~m_r & 1) + m_display_state[5] = (m_display_state[5] & ~mask) | d; + if (~m_r & 4) + m_display_state[6] = (m_display_state[6] & ~mask) | d; - // digit 4 is from u6 Q7 + // digit 4 is from mux2 Q7 m_display_segmask[4] = 6; m_display_state[4] = (m_display_state[6] & 0x80) ? 6 : 0; @@ -92,7 +96,7 @@ WRITE16_MEMBER(elecbowl_state::write_r) m_speaker->level_w(data >> 9 & 1); // R4-R7: select digit - // R0,R2: lamp muxes enable + // R0,R2: lamp mux1,2 _enable // R1: lamp muxes state m_r = data; prepare_display(); @@ -100,11 +104,11 @@ WRITE16_MEMBER(elecbowl_state::write_r) WRITE16_MEMBER(elecbowl_state::write_o) { - // O0-O2: lamp mux + //if (data & 0x80) printf("%X ",data&0x7f); + + // O0-O2: lamp muxes select // O0-O6: digit segments A-G // O7: N/C - //if (data & 0x80) printf("%X ",data&0x7f); - m_o = data & 0x7f; prepare_display(); } @@ -132,8 +136,8 @@ static INPUT_PORTS_START( elecbowl ) PORT_START("IN.1") // R6 PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) // reset/newgame? + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) // reset/test? + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) // reset/test? PORT_START("IN.2") // R7 PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) @@ -145,7 +149,7 @@ static INPUT_PORTS_START( elecbowl ) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) // 2 players sw? INPUT_PORTS_END @@ -171,7 +175,7 @@ static const UINT16 elecbowl_output_pla[0x20] = lA+lB+lG+lF+lC+lD, // 9 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0,1,2,3,4,5,6,7, // lamp muxes select 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f }; diff --git a/src/mess/drivers/tispeak.c b/src/mess/drivers/tispeak.c index b8794c98b37..8ddb4747363 100644 --- a/src/mess/drivers/tispeak.c +++ b/src/mess/drivers/tispeak.c @@ -50,7 +50,7 @@ above expectations. TI continued to manufacture many products for this line. - notes: only 1 VSM, meaning much smaller internal vocabulary Speak & Spell (Japan), 1980 - - MCU: TMC0271* (assume same as US 1978 version) + - MCU: TMC0271* (assume same as US 1978 or 1979 version) - TMS51xx(1/2): 16KB CD2321 - TMS51xx(2/2): 16KB CD2322 - notes: no local name for the product, words are in English but very low difficulty @@ -161,11 +161,11 @@ Speak & Read modules: - Sea Sights: TMS51xx: 16KB CD2396 (rev.A) - Who's Who at the Zoo: TMS51xx: 16KB CD2397 - A Dog on a Log: TMS51xx: 16KB CD3534 (rev.A) - - The Seal That Could Fly: TMS51xx: 16KB CD3535* + - The Seal That Could Fly: TMS51xx: 16KB CD3535 - A Ghost in the House: TMS51xx: 16KB CD3536* - On the Track: TMS51xx: 16KB CD3538 - The Third Circle: TMS51xx: 16KB CD3539* - - The Millionth Knight: TMS51xx: 16KB CD3540* + - The Millionth Knight: TMS51xx: 16KB CD3540 Touch & Tell: @@ -743,7 +743,7 @@ MACHINE_CONFIG_END ROM_START( snspell ) ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent 4189779, may have errors + ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent 4189779, verified by 2 sources ROM_REGION( 1246, "maincpu:ipla", 0 ) ROM_LOAD( "tms0980_default_ipla.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )