From 032a996d5edd4967a502876409b74d2ab3a08aa3 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Sun, 10 Nov 2013 04:16:40 +0000 Subject: [PATCH] (MESS) New skeleton drivers: [R. Belmont] - Ensoniq ASR-10 - Ensoniq ASR-X --- .gitattributes | 1 + src/mess/drivers/esqasr.c | 163 ++++++++++++++++++++++++++++++++++++++ src/mess/mess.lst | 4 +- src/mess/mess.mak | 1 + 4 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 src/mess/drivers/esqasr.c diff --git a/.gitattributes b/.gitattributes index abe2142f86b..97f3ade411e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6903,6 +6903,7 @@ src/mess/drivers/elwro800.c svneol=native#text/plain src/mess/drivers/ep64.c svneol=native#text/plain src/mess/drivers/esq1.c svneol=native#text/plain src/mess/drivers/esq5505.c svneol=native#text/plain +src/mess/drivers/esqasr.c svneol=native#text/plain src/mess/drivers/esqkt.c svneol=native#text/plain src/mess/drivers/esqmr.c svneol=native#text/plain src/mess/drivers/et3400.c svneol=native#text/plain diff --git a/src/mess/drivers/esqasr.c b/src/mess/drivers/esqasr.c new file mode 100644 index 00000000000..4aca942956b --- /dev/null +++ b/src/mess/drivers/esqasr.c @@ -0,0 +1,163 @@ +/*************************************************************************** + + esqasr.c - Ensoniq ASR-10 and ASR-X + + Skeleton driver by R. Belmont + + ASR-10 hardware: + CPU: 68302 MCU + Sound: ES5506 + Effects: ES5510 + FDC: NEC uPD72069 + DUART: 2681 + + Memory map: + 0x000000-0x03ffff OS ROM + 0xfb0000-0xfcffff OS RAM + + + ASR-X hardware: + CPU: 68340 MCU + Sound: ES5506 + Effects: ES5511 + FDC: NEC uPD72069 + + http://www.gweep.net/~shifty/music/asrxhack/ + + Memory map: + 0x00000000-0x000fffff OS ROM + 0x00800000-0x008000ff ESP2 5511? + 0x00f00000-0x00f007ff Unknown + 0x08000000-0x08200000 RAM + 0x0be00000-0x0befffff RAM (size unknown) + + These may want to be separated when they run more. + +***************************************************************************/ + +#include "emu.h" +#include "machine/68340.h" +#include "sound/es5506.h" +#include "cpu/es5510/es5510.h" +#include "machine/upd765.h" + +#include "machine/esqvfd.h" + +class esqasr_state : public driver_device +{ +public: + esqasr_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_esp(*this, "esp"), + m_sq1vfd(*this, "sq1vfd") + { } + + required_device m_maincpu; + required_device m_esp; + required_device m_sq1vfd; + + virtual void machine_reset(); + +public: + DECLARE_DRIVER_INIT(asr); +}; + +void esqasr_state::machine_reset() +{ +} + +static ADDRESS_MAP_START( asr_map, AS_PROGRAM, 16, esqasr_state ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_REGION("maincpu", 0) + AM_RANGE(0xf00000, 0xffffff) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START( asrx_map, AS_PROGRAM, 32, esqasr_state ) + AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("maincpu", 0) + AM_RANGE(0x08000000, 0x081fffff) AM_RAM + AM_RANGE(0x0be00000, 0x0befffff) AM_RAM +ADDRESS_MAP_END + +static void esq5506_otto_irq(device_t *device, int state) +{ +} + +static READ16_DEVICE_HANDLER(esq5506_read_adc) +{ + return 0; +} + +static const es5506_interface es5506_config = +{ + "waverom", /* Bank 0 */ + "waverom2", /* Bank 1 */ + "waverom3", /* Bank 0 */ + "waverom4", /* Bank 1 */ + 1, /* channels */ + DEVCB_LINE(esq5506_otto_irq), /* irq */ + DEVCB_DEVICE_HANDLER(DEVICE_SELF, esq5506_read_adc) +}; + +static MACHINE_CONFIG_START( asr, esqasr_state ) + MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // actually MC68302 + MCFG_CPU_PROGRAM_MAP(asr_map) + + MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) + MCFG_DEVICE_DISABLE() + + MCFG_ESQ2x40_SQ1_ADD("sq1vfd") + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) + MCFG_SOUND_CONFIG(es5506_config) + MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) +MACHINE_CONFIG_END + +static MACHINE_CONFIG_START( asrx, esqasr_state ) + MCFG_CPU_ADD("maincpu", M68020, XTAL_16MHz) // unknown, possibly 68340? + MCFG_CPU_PROGRAM_MAP(asrx_map) + + MCFG_CPU_ADD("esp", ES5510, XTAL_10MHz) + MCFG_DEVICE_DISABLE() + + MCFG_ESQ2x40_SQ1_ADD("sq1vfd") + + MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") + MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) + MCFG_SOUND_CONFIG(es5506_config) + MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) + MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) +MACHINE_CONFIG_END + +static INPUT_PORTS_START( asr ) +INPUT_PORTS_END + +ROM_START( asr10 ) + ROM_REGION(0x100000, "maincpu", 0) + ROM_LOAD16_BYTE( "asr-648c-lo-1.5b.bin", 0x000001, 0x020000, CRC(8e437843) SHA1(418f042acbc5323f5b59cbbd71fdc8b2d851f7d0) ) + ROM_LOAD16_BYTE( "asr-65e0-hi-1.5b.bin", 0x000000, 0x020000, CRC(b37cd3b6) SHA1(c4371848428a628b5e5a50e99be602d7abfc7904) ) + + ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom3", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom4", ROMREGION_ERASE00) +ROM_END + +ROM_START( asrx ) + ROM_REGION(0x100000, "maincpu", 0) + ROM_LOAD16_BYTE( "asr267lo.bin", 0x000001, 0x080000, CRC(7408d441) SHA1(0113f84b6d224bf1423ad62c173f32a0c95ca715) ) + ROM_LOAD16_BYTE( "asr267hi.bin", 0x000000, 0x080000, CRC(7df14ea7) SHA1(895b99013c0f924edb52612eb93c3e6babb9f053) ) + + ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom3", ROMREGION_ERASE00) + ROM_REGION(0x200000, "waverom4", ROMREGION_ERASE00) +ROM_END + +DRIVER_INIT_MEMBER(esqasr_state, asr) +{ +} + +CONS( 1992, asr10, 0, 0, asr, asr, esqasr_state, asr, "Ensoniq", "ASR-10", GAME_NOT_WORKING ) +CONS( 1997, asrx, 0, 0, asrx,asr, esqasr_state, asr, "Ensoniq", "ASR-X", GAME_NOT_WORKING ) diff --git a/src/mess/mess.lst b/src/mess/mess.lst index 7501c6351f8..6b2ae3b6863 100644 --- a/src/mess/mess.lst +++ b/src/mess/mess.lst @@ -174,12 +174,14 @@ vfx // 1989 VFX vfxsd // 1989 VFX-SD eps16p // 1990 EPS 16 Plus sd1 // 1990 SD-1 -sd132 // 1991 SD-1 32 sq1 // 1990 SQ-1 sqrack // 1990 SQ-Rack +sd132 // 1991 SD-1 32 +asr10 // 1992 ASR-10 kt76 // 1996 KT-76 mr61 // 1996 MR-61 mrrack // 1996 MR-Rack +asrx // 1997 ASR-X // Fairchild channelf // Fairchild Channel F VES - 1976 diff --git a/src/mess/mess.mak b/src/mess/mess.mak index 931630ab79a..23749adce69 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -1212,6 +1212,7 @@ $(MESSOBJ)/ensoniq.a: \ $(MESS_DRIVERS)/esq5505.o \ $(MESS_DRIVERS)/esqkt.o \ $(MESS_DRIVERS)/esqmr.o \ + $(MESS_DRIVERS)/esqasr.o \ $(MESS_MACHINE)/esqvfd.o \ $(MESS_MACHINE)/esqpanel.o \