(MESS) Rename the bridge challenger 3 model 7014 driver from 'abc' to 'bridgec3', added pcb locations, notes, and better labels. [Lord Nightmare]

This commit is contained in:
Jonathan Gevaryahu 2013-06-13 19:28:07 +00:00
parent f316148191
commit dd3d8666e6
6 changed files with 40 additions and 36 deletions

2
.gitattributes vendored
View File

@ -6736,7 +6736,6 @@ src/mess/includes/z80ne.h svneol=native#text/plain
src/mess/includes/z88.h svneol=native#text/plain
src/mess/includes/zx.h svneol=native#text/plain
src/mess/layout/4004clk.lay svneol=native#text/plain
src/mess/layout/abc.lay svneol=native#text/plain
src/mess/layout/abc1600.lay svneol=native#text/plain
src/mess/layout/acrnsys1.lay svneol=native#text/plain
src/mess/layout/aim65.lay svneol=native#text/plain
@ -6752,6 +6751,7 @@ src/mess/layout/babbage.lay svneol=native#text/plain
src/mess/layout/beta.lay svneol=native#text/plain
src/mess/layout/bob85.lay svneol=native#text/plain
src/mess/layout/borisdpl.lay svneol=native#text/plain
src/mess/layout/bridgec3.lay svneol=native#text/plain
src/mess/layout/c80.lay svneol=native#text/plain
src/mess/layout/chessmst.lay svneol=native#text/plain
src/mess/layout/chesstrv.lay svneol=native#text/plain

View File

@ -8,7 +8,7 @@
* TODO:
* * Figure out why it says the first speech line twice; it shouldn't. (It sometimes does this on the sensory chess challenger real hardware)
* * Get rom locations from pcb (done for UVC, VCC is probably similar)
* * correctly hook up VBC/ABC speech so that the z80 is halted while words are being spoken
* * correctly hook up VBC and 7014/bridgec3 speech so that the z80 is halted while words are being spoken
*
***********************************************************************
@ -151,13 +151,16 @@ PC.7 - button column D (W)
******************************************************************************
Voice Bridge Challenger (VBC)
and Advanced Bridge Challenger (ABC)
and Bridge Challenger 3 (7014)
--------------------------------
This unit is similar in construction kinda to the chess challengers, however it
has an 8041 which does ALL of the system I/O. The Z80 has NO IO AT ALL other than
what is performed through the 8041!
Note: The Bridge Challenger 3 does not actually have the 8 LEDs nor the
latches which operate them populated, but they do work if manually added.
The main CPU is a Z80 running at 2.5MHz
INT connects to VCC (not used)
@ -585,7 +588,7 @@ expect that the software reads these once on startup only.
#include "includes/fidelz80.h"
#include "fidelz80.lh"
#include "vsc.lh"
#include "abc.lh"
#include "bridgec3.lh"
//#include "debugger.h"
@ -841,7 +844,7 @@ static Z80PIO_INTERFACE( vsc_z80pio_intf )
};
/******************************************************************************
I8041 MCU, for VBC and ABC
I8041 MCU, for VBC and bridgec3/7014
******************************************************************************/
WRITE8_MEMBER(fidelz80_state::kp_matrix_w)
@ -989,7 +992,7 @@ READ8_MEMBER(fidelz80_state::mcu_status_r)
return upi41_master_r(m_i8041, 1);
}
WRITE8_MEMBER( fidelz80_state::abc_speech_w )
WRITE8_MEMBER( fidelz80_state::bridgec_speech_w )
{
// todo: HALT THE z80 here, and set up a callback to poll the s14001a DONE line to resume z80
s14001a_set_volume(m_speech, 15); // hack, s14001a core should assume a volume of 15 unless otherwise stated...
@ -1037,13 +1040,13 @@ static ADDRESS_MAP_START(vsc_mem, AS_PROGRAM, 8, fidelz80_state)
AM_RANGE(0x6000, 0x7fff) AM_RAM AM_MIRROR(0x1c00) // 1k ram (2114*2) mirrored 8 times
ADDRESS_MAP_END
static ADDRESS_MAP_START(abc_z80_mem, AS_PROGRAM, 8, fidelz80_state)
static ADDRESS_MAP_START(bridgec_z80_mem, AS_PROGRAM, 8, fidelz80_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_ROM // 8k rom
AM_RANGE(0x2000, 0x3fff) AM_ROM // 8k rom
AM_RANGE(0x4000, 0x5fff) AM_ROM // 8k rom
AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00) // 1k ram (2114*2) mirrored 8 times
AM_RANGE(0xE000, 0xE000) AM_WRITE(abc_speech_w) AM_MIRROR(0x1FFF) // write to speech chip, halts cpu
AM_RANGE(0xE000, 0xE000) AM_WRITE(bridgec_speech_w) AM_MIRROR(0x1FFF) // write to speech chip, halts cpu
ADDRESS_MAP_END
static ADDRESS_MAP_START(fidel_z80_io, AS_IO, 8, fidelz80_state)
@ -1059,14 +1062,14 @@ static ADDRESS_MAP_START(vsc_io, AS_IO, 8, fidelz80_state)
AM_RANGE(0x08, 0x0b) AM_MIRROR(0xf0) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
ADDRESS_MAP_END
static ADDRESS_MAP_START(abc_z80_io, AS_IO, 8, fidelz80_state)
static ADDRESS_MAP_START(bridgec_z80_io, AS_IO, 8, fidelz80_state)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READWRITE(mcu_data_r, mcu_data_w)
AM_RANGE(0x01, 0x01) AM_READWRITE(mcu_status_r, mcu_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START(abc_mcu_io, AS_IO, 8, fidelz80_state)
static ADDRESS_MAP_START(bridgec_mcu_io, AS_IO, 8, fidelz80_state)
ADDRESS_MAP_UNMAP_LOW
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(kp_matrix_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(exp_i8243_p2_r, exp_i8243_p2_w)
@ -1086,7 +1089,7 @@ INPUT_CHANGED_MEMBER(fidelz80_state::fidelz80_trigger_reset)
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
}
INPUT_CHANGED_MEMBER(fidelz80_state::abc_trigger_reset)
INPUT_CHANGED_MEMBER(fidelz80_state::bridgec_trigger_reset)
{
m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
m_i8041->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
@ -1219,7 +1222,7 @@ static INPUT_PORTS_START( vsc )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ST") PORT_CODE(KEYCODE_S)
INPUT_PORTS_END
static INPUT_PORTS_START( abc )
static INPUT_PORTS_START( bridgec )
PORT_START("LINE1")
PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED) PORT_UNUSED
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A") PORT_CODE(KEYCODE_A)
@ -1271,7 +1274,7 @@ static INPUT_PORTS_START( abc )
PORT_START("LINE8")
PORT_BIT(0x0f, IP_ACTIVE_LOW, IPT_UNUSED) PORT_UNUSED
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, abc_trigger_reset, 0)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, bridgec_trigger_reset, 0)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("BR") PORT_CODE(KEYCODE_T)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("DL") PORT_CODE(KEYCODE_L)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clubs") PORT_CODE(KEYCODE_4_PAD)
@ -1340,19 +1343,19 @@ static MACHINE_CONFIG_START( vsc, fidelz80_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( abc, fidelz80_state )
static MACHINE_CONFIG_START( bridgec, fidelz80_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz/2) // 2.5MHz
MCFG_CPU_PROGRAM_MAP(abc_z80_mem)
MCFG_CPU_IO_MAP(abc_z80_io)
MCFG_CPU_PROGRAM_MAP(bridgec_z80_mem)
MCFG_CPU_IO_MAP(bridgec_z80_io)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* video hardware */
MCFG_DEFAULT_LAYOUT(layout_abc)
MCFG_DEFAULT_LAYOUT(layout_bridgec3)
/* other hardware */
MCFG_CPU_ADD("mcu", I8041, XTAL_5MHz) // 5MHz
MCFG_CPU_IO_MAP(abc_mcu_io)
MCFG_CPU_IO_MAP(bridgec_mcu_io)
MCFG_I8243_ADD("i8243", NOOP, WRITE8(fidelz80_state,digit_w))
@ -1403,28 +1406,29 @@ ROM_END
ROM_START(vbc)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("101-64108.bin", 0x0000, 0x2000, CRC(08472223) SHA1(859865B13C908DBB474333263DC60F6A32461141))
ROM_LOAD("101-64109.bin", 0x2000, 0x2000, CRC(320AFA0F) SHA1(90EDFE0AC19B108D232CDA376B03A3A24BEFAD4C))
ROM_LOAD("101-64110.bin", 0x4000, 0x2000, CRC(3040D0BD) SHA1(CAA55FC8D9196E408FB41E7171A68E5099519813))
ROM_LOAD("101-64108.g3", 0x0000, 0x2000, CRC(08472223) SHA1(859865B13C908DBB474333263DC60F6A32461141))
ROM_LOAD("101-64109.f3", 0x2000, 0x2000, CRC(320AFA0F) SHA1(90EDFE0AC19B108D232CDA376B03A3A24BEFAD4C))
ROM_LOAD("101-64110.e3", 0x4000, 0x2000, CRC(3040D0BD) SHA1(CAA55FC8D9196E408FB41E7171A68E5099519813))
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD("100-1009.bin", 0x0000, 0x0400, CRC(60eb343f) SHA1(8a63e95ebd62e123bdecc330c0484a47c354bd1a))
ROM_LOAD("100-1009.a3", 0x0000, 0x0400, CRC(60eb343f) SHA1(8a63e95ebd62e123bdecc330c0484a47c354bd1a))
ROM_REGION(0x2000, "speech", 0)
ROM_LOAD("101-32118.bin", 0x0000, 0x1000, CRC(A0B8BB8F) SHA1(F56852108928D5C6CACCFC8166FA347D6760A740))
ROM_LOAD("101-32118.i2", 0x0000, 0x1000, CRC(A0B8BB8F) SHA1(F56852108928D5C6CACCFC8166FA347D6760A740))
ROM_END
ROM_START(abc)
ROM_START(bridgec3) // 510-1016 Rev.1 PCB has neither locations nor ic labels, so I declare the big heatsink is at C1, numbers count on the shorter length of pcb
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("bridge_w.bin", 0x0000, 0x2000, CRC(eb1620ef) SHA1(987a9abc8c685f1a68678ea4ee65ec4a99419179))
ROM_LOAD("bridge_r.bin", 0x2000, 0x2000, CRC(74af0019) SHA1(8dc05950c254ca050b95b93e5d0cf48f913a6d49))
ROM_LOAD("bridge_b.bin", 0x4000, 0x2000, CRC(341d9ca6) SHA1(370876573bb9408e75f4fc797304b6c64af0590a))
// these 3 roms are TMM2764AD-20 chips with tiny hole-punch sized colored stickers (mostly) covering the quartz windows.
ROM_LOAD("7014_white.g3", 0x0000, 0x2000, CRC(eb1620ef) SHA1(987a9abc8c685f1a68678ea4ee65ec4a99419179)) // white sticker
ROM_LOAD("7014_red.f3", 0x2000, 0x2000, CRC(74af0019) SHA1(8dc05950c254ca050b95b93e5d0cf48f913a6d49)) // red sticker
ROM_LOAD("7014_blue.e3", 0x4000, 0x2000, CRC(341d9ca6) SHA1(370876573bb9408e75f4fc797304b6c64af0590a)) // blue sticker
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD("100-1009.bin", 0x0000, 0x0400, CRC(60eb343f) SHA1(8a63e95ebd62e123bdecc330c0484a47c354bd1a))
ROM_LOAD("100-1009.a3", 0x0000, 0x0400, CRC(60eb343f) SHA1(8a63e95ebd62e123bdecc330c0484a47c354bd1a)) // "NEC P07021-027 || D8041C 563 100-1009"
ROM_REGION(0x2000, "speech", 0)
ROM_LOAD("101-32118.bin", 0x0000, 0x1000, CRC(A0B8BB8F) SHA1(F56852108928D5C6CACCFC8166FA347D6760A740))
ROM_LOAD("101-32118.i2", 0x0000, 0x1000, CRC(A0B8BB8F) SHA1(F56852108928D5C6CACCFC8166FA347D6760A740)) // "ea 101-32118 || (C) 1980 || EA 8332A247-4 || 8034"
ROM_END
/******************************************************************************
@ -1434,7 +1438,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1978, cc10, 0, 0, cc10, fidelz80, driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (Model CC10/BCC)", GAME_NOT_WORKING )
COMP( 1979, vcc, 0, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Talking Chess Challenger (model VCC)", GAME_NOT_WORKING )
COMP( 1979, vbc, 0, 0, abc, abc, driver_device, 0, "Fidelity Electronics", "Bridge Challenger (model VBC)", GAME_NOT_WORKING )
COMP( 1979, vbc, 0, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger (model VBC)", GAME_NOT_WORKING )
COMP( 1980, uvc, vcc, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Advanced Talking Chess Challenger (model UVC)", GAME_NOT_WORKING )
COMP( 1980, abc, vbc, 0, abc, abc, driver_device, 0, "Fidelity Electronics", "Advanced Bridge Challenger (model ABC)", GAME_NOT_WORKING )
COMP( 1980, bridgec3, vbc, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger 3 (model 7014)", GAME_NOT_WORKING )
COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Sensory Chess Challenger (model VSC)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )

View File

@ -47,8 +47,8 @@ public:
DECLARE_READ8_MEMBER( vcc_portb_r );
DECLARE_WRITE8_MEMBER( vcc_porta_w );
//model ABC/VBC
DECLARE_WRITE8_MEMBER( abc_speech_w );
//model 7014 and VBC
DECLARE_WRITE8_MEMBER(bridgec_speech_w );
DECLARE_WRITE8_MEMBER(kp_matrix_w);
DECLARE_READ8_MEMBER(unknown_r);
DECLARE_READ8_MEMBER(exp_i8243_p2_r);
@ -58,6 +58,7 @@ public:
DECLARE_WRITE8_MEMBER(mcu_command_w);
DECLARE_READ8_MEMBER(mcu_data_r);
DECLARE_READ8_MEMBER(mcu_status_r);
DECLARE_INPUT_CHANGED_MEMBER(bridgec_trigger_reset);
//model VSC
DECLARE_WRITE8_MEMBER(vsc_porta_w);
@ -67,7 +68,6 @@ public:
DECLARE_READ8_MEMBER(vsc_pio_portb_r);
DECLARE_WRITE8_MEMBER(vsc_pio_portb_w);
DECLARE_INPUT_CHANGED_MEMBER(fidelz80_trigger_reset);
DECLARE_INPUT_CHANGED_MEMBER(abc_trigger_reset);
TIMER_DEVICE_CALLBACK_MEMBER(nmi_timer);
DECLARE_WRITE8_MEMBER(digit_w);

View File

@ -2054,7 +2054,7 @@ codata
rvoicepc
vcc
uvc
abc
bridgec3
vbc
vsc
victor9k

View File

@ -2504,7 +2504,7 @@ $(MESS_MACHINE)/esqvfd.o: $(MESS_LAYOUT)/esq2by40.lh \
$(MESS_DRIVERS)/et3400.o: $(MESS_LAYOUT)/et3400.lh
$(MESS_DRIVERS)/ex800.o: $(MESS_LAYOUT)/ex800.lh
$(MESS_DRIVERS)/fidelz80.o: $(MESS_LAYOUT)/fidelz80.lh \
$(MESS_LAYOUT)/abc.lh \
$(MESS_LAYOUT)/bridgec3.lh \
$(MESS_LAYOUT)/vsc.lh
$(MESS_DRIVERS)/glasgow.o: $(MESS_LAYOUT)/glasgow.lh
$(MESS_DRIVERS)/h8.o: $(MESS_LAYOUT)/h8.lh