summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2017-07-08 17:54:26 +0200
committer hap <happppp@users.noreply.github.com>2017-07-08 17:54:48 +0200
commitca9de0f13d2fe581eebdd70356fa2edc8ded36e8 (patch)
treef4f563995c28fda4c987461261dd6e58450bf73d
parent9ed831e0a665886691930e72b417432e95424d08 (diff)
New working clones added
------------- Fidelity Excel 68000 Mach II (rev. C+) [CB-Emu] Fidelity Excel 68000 Mach III [CB-Emu]
-rw-r--r--src/mame/drivers/fidel68k.cpp91
-rw-r--r--src/mame/mame.lst4
2 files changed, 73 insertions, 22 deletions
diff --git a/src/mame/drivers/fidel68k.cpp b/src/mame/drivers/fidel68k.cpp
index 36e4c65f0d6..b2e5ded41d4 100644
--- a/src/mame/drivers/fidel68k.cpp
+++ b/src/mame/drivers/fidel68k.cpp
@@ -11,6 +11,7 @@
such as Arena(in editmode).
TODO:
+ - fex68km3 addressmap RAM mirror? PCB has 2*32K RAM, emulated has 16K+64K
- how does dual-CPU work?
- USART is not emulated
- V9(68030 @ 32MHz) is faster than V10(68040 @ 25MHz) but it should be the other
@@ -23,11 +24,14 @@
Excel 68000 (model 6094)
------------------------
-16KB RAM(2*SRM2264C-10), 64KB ROM(2*AT27C256-15DC)
+16KB RAM(2*SRM2264C-10 @ U8/U9), 64KB ROM(2*AT27C256-15DC @ U6/U7)
HD68HC000P12 CPU, 12MHz XTAL
PCB label 510-1129A01
PCB has edge connector for module, but no external slot
+There's room for 2 SIMMs at U22 and U23. Unpopulated in Excel 68000, used for
+128KB hashtable RAM in Mach II. Mach III has wire mods to U8/U9(2*32KB).
+
I/O is via TTL, overall very similar to EAG.
@@ -181,7 +185,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); }
// Excel 68000
- DECLARE_WRITE8_MEMBER(fexcel68k_mux_w);
+ DECLARE_WRITE8_MEMBER(fex68k_mux_w);
// EAG(6114/6117)
DECLARE_DRIVER_INIT(eag);
@@ -202,7 +206,7 @@ public:
Excel 68000
******************************************************************************/
-WRITE8_MEMBER(fidel68k_state::fexcel68k_mux_w)
+WRITE8_MEMBER(fidel68k_state::fex68k_mux_w)
{
// a1-a3,d0: 74259
u8 mask = 1 << offset;
@@ -282,13 +286,23 @@ READ8_MEMBER(fidel68k_state::eag_cart_r)
// Excel 68000
-static ADDRESS_MAP_START( fexcel68k_map, AS_PROGRAM, 16, fidel68k_state )
+static ADDRESS_MAP_START( fex68k_map, AS_PROGRAM, 16, fidel68k_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x000000, 0x00000f) AM_MIRROR(0x00fff0) AM_WRITE8(eag_leds_w, 0x00ff)
AM_RANGE(0x000000, 0x00000f) AM_MIRROR(0x00fff0) AM_WRITE8(eag_7seg_w, 0xff00)
AM_RANGE(0x044000, 0x047fff) AM_RAM
AM_RANGE(0x100000, 0x10000f) AM_MIRROR(0x03fff0) AM_READ8(eag_input1_r, 0x00ff)
- AM_RANGE(0x140000, 0x14000f) AM_MIRROR(0x03fff0) AM_WRITE8(fexcel68k_mux_w, 0x00ff)
+ AM_RANGE(0x140000, 0x14000f) AM_MIRROR(0x03fff0) AM_WRITE8(fex68k_mux_w, 0x00ff)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( fex68km2_map, AS_PROGRAM, 16, fidel68k_state )
+ AM_RANGE(0x200000, 0x21ffff) AM_RAM
+ AM_IMPORT_FROM( fex68k_map )
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( fex68km3_map, AS_PROGRAM, 16, fidel68k_state )
+ AM_RANGE(0x200000, 0x20ffff) AM_RAM
+ AM_IMPORT_FROM( fex68k_map )
ADDRESS_MAP_END
@@ -345,7 +359,7 @@ ADDRESS_MAP_END
Input Ports
******************************************************************************/
-static INPUT_PORTS_START( fexcel68k )
+static INPUT_PORTS_START( fex68k )
PORT_INCLUDE( fidel_cb_buttons )
PORT_START("IN.8")
@@ -389,11 +403,11 @@ INPUT_PORTS_END
Machine Drivers
******************************************************************************/
-static MACHINE_CONFIG_START( fexcel68k )
+static MACHINE_CONFIG_START( fex68k )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) // HD68HC000P12
- MCFG_CPU_PROGRAM_MAP(fexcel68k_map)
+ MCFG_CPU_PROGRAM_MAP(fex68k_map)
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_on", fidel68k_state, irq_on, attotime::from_hz(618)) // theoretical frequency from 556 timer (22nF, 91K + 20K POT @ 14.8K, 0.1K), measurement was 580Hz
MCFG_TIMER_START_DELAY(attotime::from_hz(618) - attotime::from_nsec(1525)) // active for 1.525us
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_off", fidel68k_state, irq_off, attotime::from_hz(618))
@@ -408,6 +422,21 @@ static MACHINE_CONFIG_START( fexcel68k )
MCFG_SOUND_ROUTE_EX(0, "dac", 1.0, DAC_VREF_POS_INPUT)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( fex68km2, fex68k )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(fex68km2_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( fex68km3, fex68k )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_DEVICE_CLOCK(XTAL_16MHz) // factory overclock
+ MCFG_CPU_PROGRAM_MAP(fex68km3_map)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( eag )
/* basic machine hardware */
@@ -479,10 +508,22 @@ MACHINE_CONFIG_END
ROM Definitions
******************************************************************************/
-ROM_START( fexcel68k ) // model 6094, PCB label 510.1120B01
+ROM_START( fex68k ) // model 6094, PCB label 510.1120B01
ROM_REGION16_BE( 0x10000, "maincpu", 0 )
ROM_LOAD16_BYTE("e3_yellow.u6", 0x00000, 0x08000, CRC(a8a27714) SHA1(bc42a561eb39dd389c7831f1a25ad260510085d8) ) // AT27C256-15
- ROM_LOAD16_BYTE("04_red.u7", 0x00001, 0x08000, CRC(560a14b7) SHA1(11f2375255bfa229314697f103e891ba1cf0c715) ) // "
+ ROM_LOAD16_BYTE("o4_red.u7", 0x00001, 0x08000, CRC(560a14b7) SHA1(11f2375255bfa229314697f103e891ba1cf0c715) ) // "
+ROM_END
+
+ROM_START( fex68km2 ) // model 6097, PCB label 510.1120B01
+ ROM_REGION16_BE( 0x10000, "maincpu", 0 )
+ ROM_LOAD16_BYTE("fex68km2.u6", 0x00000, 0x08000, CRC(2e65e7ad) SHA1(4f3aec12041c9014d5d700909bac66bae1f9eadf) )
+ ROM_LOAD16_BYTE("fex68km2.u7", 0x00001, 0x08000, CRC(4c20334a) SHA1(2e575b88c41505cc89599d2fc13e1e84fe474469) )
+ROM_END
+
+ROM_START( fex68km3 ) // model 6098, PCB label 510.1120B01
+ ROM_REGION16_BE( 0x10000, "maincpu", 0 )
+ ROM_LOAD16_BYTE("me_white.u6", 0x00000, 0x08000, CRC(4b14cd9f) SHA1(4d41196900a71bf0699dae50f4726acc0ed3dced) ) // 27c256
+ ROM_LOAD16_BYTE("mo_yellow.u7", 0x00001, 0x08000, CRC(b96b0b5f) SHA1(281145be802efb38ed764aecb26b511dcd71cb87) ) // "
ROM_END
@@ -510,7 +551,7 @@ ROM_START( feagv9 )
ROM_LOAD16_BYTE("eag-v9a", 0x00001, 0x10000, CRC(255c63c0) SHA1(8aa0397bdb3731002f5b066cd04ec62531267e22) )
ROM_END
-ROM_START( feagv11 )
+ROM_START( feagv10 )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD32_BYTE("16", 0x00000, 0x08000, CRC(8375d61f) SHA1(e042f6f01480c59ee09a458cf34f135664479824) ) // 27c256
ROM_LOAD32_BYTE("17", 0x00001, 0x08000, CRC(bfd14916) SHA1(115af6dfd29ddd8ad6d2ce390f8ecc4d60de6fce) ) // "
@@ -518,7 +559,13 @@ ROM_START( feagv11 )
ROM_LOAD32_BYTE("19", 0x00003, 0x08000, CRC(a70c5468) SHA1(7f6b4f46577d5cfdaa84d387c7ce35d941e5bbc7) ) // "
ROM_END
-#define rom_feagv10 rom_feagv11
+ROM_START( feagv11 )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD32_BYTE("16", 0x00000, 0x08000, CRC(8375d61f) SHA1(e042f6f01480c59ee09a458cf34f135664479824) ) // 27c256
+ ROM_LOAD32_BYTE("17", 0x00001, 0x08000, CRC(bfd14916) SHA1(115af6dfd29ddd8ad6d2ce390f8ecc4d60de6fce) ) // "
+ ROM_LOAD32_BYTE("18", 0x00002, 0x08000, CRC(9341dcaf) SHA1(686bd4799e89ffaf11a813d4cf5a2aedd4c2d97a) ) // "
+ ROM_LOAD32_BYTE("19", 0x00003, 0x08000, CRC(a70c5468) SHA1(7f6b4f46577d5cfdaa84d387c7ce35d941e5bbc7) ) // "
+ROM_END
@@ -526,12 +573,14 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1987, fexcel68k, 0, 0, fexcel68k, fexcel68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-
-CONS( 1989, feagv2, 0, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, feagv2a, feagv2, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1987, fex68k, 0, 0, fex68k, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1988, fex68km2, fex68k, 0, fex68km2, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach II (rev. C+)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1988, fex68km3, fex68k, 0, fex68km3, fex68k, fidel68k_state, 0, "Fidelity Electronics", "Excel 68000 Mach III", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+
+CONS( 1989, feagv2, 0, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1989, feagv2a, feagv2, 0, eag, eag, fidel68k_state, eag, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, feagv7, feagv2, 0, eagv7, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, feagv9, feagv2, 0, eagv9, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, feagv10, feagv2, 0, eagv10, eag, fidel68k_state, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 2002, feagv11, feagv2, 0, eagv11, eag, fidel68k_state, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index e7cdc33039b..1f63bae7c30 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12490,7 +12490,9 @@ feagv2 //
feagv2a //
feagv7 //
feagv9 //
-fexcel68k //
+fex68k //
+fex68km2 //
+fex68km3 //
@source:fidelmcs48.cpp
fscc6 //