mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
fidel68k: added 6114-2/3/4 configurable ramsize (nw)
This commit is contained in:
parent
0cbc070ce4
commit
497ca5f44a
@ -11,7 +11,6 @@
|
||||
such as Arena(in editmode).
|
||||
|
||||
TODO:
|
||||
- configurable RAM size
|
||||
- how does dual-CPU work?
|
||||
- USART is not emulated
|
||||
- V9(68030 @ 32MHz) is faster than V10(68040 @ 25MHz) but it should be the other
|
||||
@ -158,6 +157,7 @@ B0000x-xxxxxx: see V7, -800000
|
||||
#include "emu.h"
|
||||
#include "includes/fidelz80.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/volt_reg.h"
|
||||
|
||||
@ -170,9 +170,12 @@ class fidel68k_state : public fidelz80base_state
|
||||
{
|
||||
public:
|
||||
fidel68k_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: fidelz80base_state(mconfig, type, tag)
|
||||
: fidelz80base_state(mconfig, type, tag),
|
||||
m_ram(*this, "ram")
|
||||
{ }
|
||||
|
||||
optional_device<ram_device> m_ram;
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(M68K_IRQ_2, ASSERT_LINE); }
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(M68K_IRQ_2, CLEAR_LINE); }
|
||||
|
||||
@ -180,6 +183,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(fexcel68k_mux_w);
|
||||
|
||||
// EAG(6114/6117)
|
||||
DECLARE_DRIVER_INIT(eag);
|
||||
void eag_prepare_display();
|
||||
DECLARE_READ8_MEMBER(eag_input1_r);
|
||||
DECLARE_WRITE8_MEMBER(eag_leds_w);
|
||||
@ -289,10 +293,15 @@ ADDRESS_MAP_END
|
||||
|
||||
// EAG
|
||||
|
||||
DRIVER_INIT_MEMBER(fidel68k_state, eag)
|
||||
{
|
||||
// eag_map: DRAM slots at $200000-$2fffff - V1/V2: 128K, V3: 512K, V4: 1M
|
||||
m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x200000 + m_ram->size() - 1, m_ram->pointer());
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( eag_map, AS_PROGRAM, 16, fidel68k_state )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0x104000, 0x107fff) AM_RAM
|
||||
AM_RANGE(0x200000, 0x2fffff) AM_RAM // DRAM slots
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_READWRITE8(eag_input1_r, eag_leds_w, 0x00ff)
|
||||
AM_RANGE(0x300000, 0x30000f) AM_MIRROR(0x000010) AM_WRITE8(eag_7seg_w, 0xff00) AM_READNOP
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READ8(eag_cart_r, 0xff00)
|
||||
@ -575,6 +584,10 @@ static MACHINE_CONFIG_START( eag, fidel68k_state )
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelz80base_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_fidel_eag_68k)
|
||||
|
||||
MCFG_RAM_ADD("ram")
|
||||
MCFG_RAM_DEFAULT_SIZE("1M")
|
||||
MCFG_RAM_EXTRA_OPTIONS("128K, 512K, 1M")
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("speaker")
|
||||
MCFG_SOUND_ADD("dac", DAC_1BIT, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.25)
|
||||
@ -594,9 +607,11 @@ static MACHINE_CONFIG_DERIVED( eagv7, eag )
|
||||
MCFG_CPU_REPLACE("maincpu", M68020, XTAL_20MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(eagv7_map)
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(fidel68k_state, irq2_line_hold, XTAL_4_9152MHz/0x2000) // 600hz
|
||||
|
||||
MCFG_RAM_REMOVE("ram")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( eagv9, eag )
|
||||
static MACHINE_CONFIG_DERIVED( eagv9, eagv7 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_REPLACE("maincpu", M68030, XTAL_32MHz)
|
||||
@ -604,7 +619,7 @@ static MACHINE_CONFIG_DERIVED( eagv9, eag )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(fidel68k_state, irq2_line_hold, XTAL_4_9152MHz/0x2000) // 600hz
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( eagv10, eag )
|
||||
static MACHINE_CONFIG_DERIVED( eagv10, eagv7 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_REPLACE("maincpu", M68040, XTAL_25MHz)
|
||||
@ -612,7 +627,7 @@ static MACHINE_CONFIG_DERIVED( eagv10, eag )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(fidel68k_state, irq2_line_hold, XTAL_4_9152MHz/0x2000) // 600hz
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( eagv11, eag )
|
||||
static MACHINE_CONFIG_DERIVED( eagv11, eagv7 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_REPLACE("maincpu", M68EC040, XTAL_36MHz*2*2) // wrong! should be M68EC060 @ 72MHz
|
||||
@ -673,12 +688,12 @@ ROM_END
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1987, fexcel68k, 0, 0, fexcel68k, fexcel68k, driver_device, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1987, fexcel68k, 0, 0, fexcel68k, fexcel68k, driver_device, 0, "Fidelity Electronics", "Excel 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
||||
CONS( 1989, feagv2, 0, 0, eag, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // emulated as V4(1MB RAM)
|
||||
CONS( 1989, feagv2a, feagv2, 0, eag, eag, driver_device, 0, "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, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, feagv9, feagv2, 0, eagv9, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, feagv10, feagv2, 0, eagv10, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 2002, feagv11, feagv2, 0, eagv11, eag, driver_device, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", 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, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, feagv9, feagv2, 0, eagv9, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-9)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 1990, feagv10, feagv2, 0, eagv10, eag, driver_device, 0, "Fidelity Electronics", "Elite Avant Garde (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 2002, feagv11, feagv2, 0, eagv11, eag, driver_device, 0, "hack (Wilfried Bucke)", "Elite Avant Garde (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
Loading…
Reference in New Issue
Block a user