summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-02-25 20:24:20 +0100
committer hap <happppp@users.noreply.github.com>2017-02-25 20:24:20 +0100
commitba7e8fb8eee2b3d7f82add55214fb358aa285287 (patch)
tree57cad3dea9517d8ac655b35ed5f8667f73825d85 /src
parent53399d4c4725104eded0a5d4095b6f9d7a05a4e3 (diff)
moved fphantom to fidel6502 driver (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/fidel6502.cpp94
-rw-r--r--src/mame/drivers/phantom.cpp155
-rw-r--r--src/mame/layout/fphantom.lay20
-rw-r--r--src/mame/mame.lst4
4 files changed, 89 insertions, 184 deletions
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp
index 595ed7a8ba9..b7f3f7b9669 100644
--- a/src/mame/drivers/fidel6502.cpp
+++ b/src/mame/drivers/fidel6502.cpp
@@ -18,6 +18,7 @@
- verify cpu speed and rom labels where unknown
- EAG missing bankswitch? where is the 2nd half of the 32KB ROM used, if at all?
- granits gives error beeps at start, need to press clear to play
+ - finish fphantom emulation
******************************************************************************
@@ -351,7 +352,7 @@ Designer 2000 (model 6102)
----------------
8KB RAM(KM6264AL-10), 32KB ROM(AMI 101.1077A01)
Ricoh RP65C02G CPU, 3MHz XTAL
-PCB label 510-1129A01
+PCB label 510.1129A01
basically same as (Par) Excellence hardware, reskinned board
Designer 2100 (model 6103): same hardware, XTAL 5MHz?, ROMs unknown
@@ -361,7 +362,7 @@ Designer 2100 Display (model 6106)
8KB RAM(MS6264L-10), 2*32KB ROM(27C256)
WDC W65C02P-6 CPU, 6MHz XTAL
4-digit LCD panel
-PCB label 510-1130A01
+PCB label 510.1130A01
Designer 2000 Display (model 6105): same hardware, XTAL and ROMs unknown
@@ -370,15 +371,32 @@ Designer 1500 is on 80C50 hardware
******************************************************************************
+Phantom (model 6100)
+----------------
+R65C02P4, XTAL marked 4.91?200
+2*32KB ROM 27C256-15, 8KB RAM MS6264L-10
+LCD driver, display panel for digits
+magnetized x/y motor under chessboard, chesspieces have magnet underneath
+piezo speaker, LEDs, 8*8 chessboard buttons
+PCB label 510.1128A01
+
+Fidelity licensed the design of the Milton/Phantom motorized chessboard and released
+their own version. It has a small LCD panel added, the rest looks nearly the same from
+the outside. After Fidelity was taken over by H&G, it was rereleased in 1990 as the
+Mephisto Phantom. This is assumed to be identical.
+
+
+******************************************************************************
+
Chesster (model 6120)
-There is also a German version titled Kishon Chesster
+There is also a German version titled Kishon Chesster (model 6120G, or 6127)
----------------
8*(8+1) buttons, 8+8+1 LEDs
8KB RAM(UM6264-12), 32KB ROM(M27C256B)
Ricoh RP65C02G CPU, 5MHz XTAL
8-bit DAC speech timed via IRQ, 128KB ROM(AMI custom label)
-PCB label 510-1141C01
+PCB label 510.1141C01
I/O is via TTL, very similar to Designer Display
@@ -473,6 +491,10 @@ public:
DECLARE_WRITE8_MEMBER(fdesdis_lcd_w);
DECLARE_READ8_MEMBER(fdesdis_input_r);
DECLARE_DRIVER_INIT(fdesdis);
+
+ // Phantom
+ DECLARE_MACHINE_RESET(fphantom);
+ DECLARE_DRIVER_INIT(fphantom);
// Chesster
DECLARE_WRITE8_MEMBER(chesster_control_w);
@@ -936,6 +958,25 @@ DRIVER_INIT_MEMBER(fidel6502_state, fdesdis)
/******************************************************************************
+ Phantom
+******************************************************************************/
+
+// TTL/generic
+
+MACHINE_RESET_MEMBER(fidel6502_state, fphantom)
+{
+ machine_reset();
+ membank("bank1")->set_entry(0);
+}
+
+DRIVER_INIT_MEMBER(fidel6502_state, fphantom)
+{
+ membank("bank1")->configure_entries(0, 2, memregion("user1")->base(), 0x4000);
+}
+
+
+
+/******************************************************************************
Chesster
******************************************************************************/
@@ -1082,7 +1123,7 @@ static ADDRESS_MAP_START( fexcelb_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_END
-// Designer Display, Chesster
+// Designer Display, Phantom, Chesster
static ADDRESS_MAP_START( fdesdis_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
@@ -1092,6 +1133,12 @@ static ADDRESS_MAP_START( fdesdis_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
+static ADDRESS_MAP_START( fphantom_map, AS_PROGRAM, 8, fidel6502_state )
+ AM_RANGE(0x0000, 0x1fff) AM_RAM
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x8000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( chesster_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, chesster_control_w)
@@ -1532,6 +1579,11 @@ static INPUT_PORTS_START( chesster )
INPUT_PORTS_END
+static INPUT_PORTS_START( fphantom )
+ PORT_INCLUDE( cb_buttons )
+INPUT_PORTS_END
+
+
/******************************************************************************
Machine Drivers
@@ -1816,6 +1868,25 @@ static MACHINE_CONFIG_DERIVED( fdes2000d, fdes2100d )
MCFG_CPU_PROGRAM_MAP(fdesdis_map)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( fphantom, fidel6502_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", R65C02, XTAL_4_9152MHz) // R65C02P4
+ MCFG_CPU_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // guessed
+ MCFG_CPU_PROGRAM_MAP(fphantom_map)
+
+ MCFG_MACHINE_RESET_OVERRIDE(fidel6502_state, fphantom)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1))
+ //MCFG_DEFAULT_LAYOUT(layout_fidel_phantom)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("speaker")
+ MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
+ MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
+ MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( chesster, fidel6502_state )
/* basic machine hardware */
@@ -2136,7 +2207,7 @@ ROM_START( fscc9ps )
ROM_END
-ROM_START( fscc12 )
+ROM_START( fscc12 ) // PCB label 510-1084B01
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1068a01", 0x8000, 0x2000, CRC(63c76cdd) SHA1(e0771c98d4483a6b1620791cb99a7e46b0db95c4) ) // SSS SCM23C65E4
ROM_LOAD("tms2732ajl-45", 0xc000, 0x1000, CRC(45070a71) SHA1(8aeecff828f26fb7081902c757559903be272649) ) // TI TMS2732AJL-45
@@ -2210,6 +2281,15 @@ ROM_START( fdes2000d ) // model 6105, PCB label 510.1130A01
ROM_END
+ROM_START( fphantom ) // model 6100, PCB label 510.1128A01
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("u_3c_yellow.u3", 0x8000, 0x8000, CRC(fb7c38ae) SHA1(a1aa7637705052cb4eec92644dc79aee7ba4d77c) ) // 27C256
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_LOAD("u_4_white.u4", 0x0000, 0x8000, CRC(e4181ba2) SHA1(1f77d1867c6f566be98645fc252a01108f412c96) ) // 27C256
+ROM_END
+
+
ROM_START( chesster ) // model 6120, PCB label 510.1141C01
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("ch_1.3.ic9", 0x8000, 0x8000, CRC(8b42d1ad) SHA1(2161fc5ab2476fe7ca4ffc226e3cb329b8a57a01) ) // 27256, CH 1.3 on sticker
@@ -2279,5 +2359,7 @@ CONS( 1989, fdes2000, fexcelp, 0, fdes2000, fdes, driver_device, 0
CONS( 1988, fdes2100d, 0, 0, fdes2100d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2100 Display (rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, fdes2000d, fdes2100d,0, fdes2000d, fdesdis, fidel6502_state, fdesdis, "Fidelity Electronics", "Designer 2000 Display", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1988, fphantom, 0, 0, fphantom, fphantom, fidel6502_state, fphantom, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
+
CONS( 1990, chesster, 0, 0, chesster, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Chesster Challenger (V1.3)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, chesstera, chesster, 0, chesster, chesster, fidel6502_state, chesster, "Fidelity Electronics", "Chesster Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/phantom.cpp b/src/mame/drivers/phantom.cpp
deleted file mode 100644
index ab9f9923319..00000000000
--- a/src/mame/drivers/phantom.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:hap
-/******************************************************************************
-
- Milton Bradley Phantom chess computer
-
- TODO:
- - no romdump of MB version yet
- - sort out fphantom memory map
-
--------------------------------------------------------------------------------
-
-Milton Bradley Phantom (1983):
-sold as Milton in Europe, Phantom in UK, Grand Master in USA
-
-Hardware notes:
-- CPU: SY6502A, 2MHz?(resonator)
-- ROM: 2x8KB?, labels C19679, C19680
-- RAM: 2KB 4*2114
-- magnetized x/y motor under chessboard, chesspieces have magnet underneath
-- piezo speaker, LEDs
-
-
--------------------------------------------------------------------------------
-
-Fidelity Phantom (1988, model 6100):
-
-Fidelity bought the design from Milton Bradley and released their own version.
-It has a small LCD panel added, the rest looks nearly the same from the outside.
-
-Hardware notes:
-- PCB label 510.1128A01
-- CPU: R65C02P4, XTAL marked 4.91?200
-- ROM 2*32KB 27C256-15
-- RAM: 8KB MS6264L-10
-- LCD driver, display panel for digits
-- piezo speaker, LEDs(not as many)
-- motor mechanism is assumed same as MB version
-
-After Fidelity was taken over by H&G, it was rereleased in 1990 as the Mephisto
-Phantom. This is assumed to be identical.
-
-******************************************************************************/
-
-#include "emu.h"
-#include "cpu/m6502/r65c02.h"
-#include "sound/speaker.h"
-
-// internal artwork
-#include "fphantom.lh" // clickable
-
-
-class phantom_state : public driver_device
-{
-public:
- phantom_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_speaker(*this, "speaker")
- { }
-
- // devices/pointers
- required_device<cpu_device> m_maincpu;
- required_device<speaker_sound_device> m_speaker;
-
- DECLARE_DRIVER_INIT(fphantom);
-
-protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
-};
-
-
-// machine start/reset
-
-DRIVER_INIT_MEMBER(phantom_state, fphantom)
-{
- uint8_t *ROM = memregion("maincpu")->base();
- membank("bank1")->configure_entries(0, 2, &ROM[0], 0x4000);
-}
-
-void phantom_state::machine_start()
-{
- // zerofill
-
- // register for savestates
-}
-
-void phantom_state::machine_reset()
-{
- membank("bank1")->set_entry(0);
-}
-
-
-
-/******************************************************************************
- I/O, Memory Maps
-******************************************************************************/
-
-static ADDRESS_MAP_START( fphantom_mem, AS_PROGRAM, 8, phantom_state )
- AM_RANGE(0x0000, 0x1fff) AM_RAM
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-
-/******************************************************************************
- Input Ports
-******************************************************************************/
-
-static INPUT_PORTS_START( fphantom )
-INPUT_PORTS_END
-
-
-
-/******************************************************************************
- Machine Drivers
-******************************************************************************/
-
-static MACHINE_CONFIG_START( fphantom, phantom_state )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", R65C02, XTAL_4_9152MHz)
- MCFG_CPU_PERIODIC_INT_DRIVER(phantom_state, irq0_line_hold, 600) // guessed
- MCFG_CPU_PROGRAM_MAP(fphantom_mem)
-
- MCFG_DEFAULT_LAYOUT(layout_fphantom)
-
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
-MACHINE_CONFIG_END
-
-
-
-/******************************************************************************
- ROM Definitions
-******************************************************************************/
-
-ROM_START( fphantom )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD("u_4.u4", 0x0000, 0x8000, CRC(e4181ba2) SHA1(1f77d1867c6f566be98645fc252a01108f412c96) ) // banked
- ROM_LOAD("u_3c.u3", 0x8000, 0x8000, CRC(fb7c38ae) SHA1(a1aa7637705052cb4eec92644dc79aee7ba4d77c) )
-ROM_END
-
-
-
-/******************************************************************************
- Drivers
-******************************************************************************/
-
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-CONS( 1988, fphantom, 0, 0, fphantom, fphantom, phantom_state, fphantom, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/layout/fphantom.lay b/src/mame/layout/fphantom.lay
deleted file mode 100644
index 9d3e4d2766a..00000000000
--- a/src/mame/layout/fphantom.lay
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<mamelayout version="2">
-
-<!-- define elements -->
-
- <element name="led" defstate="0">
- <disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk>
- <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
- </element>
-
-
-<!-- build screen -->
-
- <view name="Internal Layout">
- <bounds left="0" right="100" top="0" bottom="100" />
-
- <bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel>
-
- </view>
-</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index ea58f7da07e..da9eb1d2e3d 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12324,6 +12324,7 @@ fexceld //
fexcelp //
fexcelpb //
fexcelv //
+fphantom //
fscc9 //
fscc9b //
fscc9ps //
@@ -30679,9 +30680,6 @@ kov3hd103
kov3hd102
kov3hd101
-@source:phantom.cpp
-fphantom //
-
@source:phc25.cpp
phc25 //
phc25j //