diff options
author | Dirk Best <mail@dirk-best.de> | 2014-05-14 09:20:32 +0000 |
---|---|---|
committer | Dirk Best <mail@dirk-best.de> | 2014-05-14 09:20:32 +0000 |
commit | bf35b4dbb432b8d46d059781820bfc4d8e80b3b0 (patch) | |
tree | 8bb6a2c8535abb693b77cc965b695b73e38441bc /src | |
parent | 48e9b7663be8f84b58e73903f5571b78de8174ee (diff) |
Amiga: Create a GAYLE device, used by the A600 and A1200, and implement
the internal IDE controller for both
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/machine/gayle.c | 211 | ||||
-rw-r--r-- | src/emu/machine/gayle.h | 111 | ||||
-rw-r--r-- | src/emu/machine/machine.mak | 10 | ||||
-rw-r--r-- | src/mess/drivers/amiga.c | 208 | ||||
-rw-r--r-- | src/mess/mess.mak | 1 |
5 files changed, 390 insertions, 151 deletions
diff --git a/src/emu/machine/gayle.c b/src/emu/machine/gayle.c new file mode 100644 index 00000000000..4606555f19b --- /dev/null +++ b/src/emu/machine/gayle.c @@ -0,0 +1,211 @@ +/*************************************************************************** + + GAYLE + + license: MAME, GPL-2.0+ + copyright-holders: Dirk Best + + Gate array used in the Amiga 600 and Amiga 1200 computers. + +***************************************************************************/ + +#include "gayle.h" + + +//************************************************************************** +// CONSTANTS +//************************************************************************** + +#define VERBOSE 1 + + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +const device_type GAYLE = &device_creator<gayle_device>; + + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +//------------------------------------------------- +// gayle_device - constructor +//------------------------------------------------- + +gayle_device::gayle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : + device_t(mconfig, GAYLE, "GAYLE", tag, owner, clock, "gayle", __FILE__), + m_int2_w(*this), + m_cs0_read(*this), + m_cs0_write(*this), + m_cs1_read(*this), + m_cs1_write(*this), + m_gayle_id(0xff), + m_gayle_id_count(0) +{ +} + +//------------------------------------------------- +// set_id - set gayle id +//------------------------------------------------- + +void gayle_device::set_id(device_t &device, UINT8 id) +{ + gayle_device &gayle = downcast<gayle_device &>(device); + gayle.m_gayle_id = id; +} + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void gayle_device::device_start() +{ + // resolve callbacks + m_int2_w.resolve_safe(); + m_cs0_read.resolve_safe(0xffff); + m_cs0_write.resolve_safe(); + m_cs1_read.resolve_safe(0xffff); + m_cs1_write.resolve_safe(); +} + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void gayle_device::device_reset() +{ + m_gayle_reg[0] = 0; + m_gayle_reg[1] = 0; + m_gayle_reg[2] = 0; + m_gayle_reg[3] = 0; +} + + +//************************************************************************** +// IMPLEMENTATION +//************************************************************************** + +READ16_MEMBER( gayle_device::gayle_r ) +{ + UINT16 data = 0xffff; + offset <<= 1; + + // swap + mem_mask = (mem_mask << 8) | (mem_mask >> 8); + + if (BIT(offset, 15)) + { + switch (offset & 0x7fff) + { + case 0x0000: data = m_gayle_reg[0]; break; + case 0x1000: data = m_gayle_reg[1]; break; + case 0x2000: data = m_gayle_reg[2]; break; + case 0x3000: data = m_gayle_reg[3]; break; + } + } + else + { + if (!BIT(offset, 14)) + { + if (BIT(offset, 13)) + data = m_cs0_read(space, (offset >> 2) & 0x07, mem_mask); + else + data = m_cs1_read(space, (offset >> 2) & 0x07, mem_mask); + } + } + + if (VERBOSE) + logerror("gayle_r(%06x): %04x & %04x\n", offset, data, mem_mask); + + // swap data + data = (data << 8) | (data >> 8); + + return data; +} + +WRITE16_MEMBER( gayle_device::gayle_w ) +{ + offset <<= 1; + + // swap + mem_mask = (mem_mask << 8) | (mem_mask >> 8); + data = (data << 8) | (data >> 8); + + if (VERBOSE) + logerror("gayle_w(%06x): %04x & %04x\n", offset, data, mem_mask); + + if (BIT(offset, 15)) + { + switch (offset & 0x7fff) + { + case 0x0000: + m_gayle_reg[0] = data; + break; + case 0x1000: + m_gayle_reg[1] &= data; + m_gayle_reg[1] |= data & 0x03; + break; + case 0x2000: + m_gayle_reg[2] = data; + break; + case 0x3000: + m_gayle_reg[3] = data; + break; + } + } + else + { + if (!BIT(offset, 14)) + { + if (BIT(offset, 13)) + m_cs0_write(space, (offset >> 2) & 0x07, data, mem_mask); + else + m_cs1_write(space, (offset >> 2) & 0x07, data, mem_mask); + } + } +} + +WRITE_LINE_MEMBER( gayle_device::ide_interrupt_w ) +{ + if (VERBOSE) + logerror("ide_interrupt_w: %d\n", state); + + // did we change state? + if (BIT(m_gayle_reg[GAYLE_CS], 7) != state) + m_gayle_reg[GAYLE_IRQ] |= 1 << 7; + + // set line state + if (state) + m_gayle_reg[GAYLE_CS] |= 1 << 7; + else + m_gayle_reg[GAYLE_CS] &= ~(1 << 7); + + // update interrupts + if (BIT(m_gayle_reg[GAYLE_INTEN], 7)) + m_int2_w(BIT(m_gayle_reg[GAYLE_CS], 7)); +} + +READ16_MEMBER( gayle_device::gayle_id_r ) +{ + UINT16 data = 0xffff; + + if (ACCESSING_BITS_8_15) + data = ((m_gayle_id << m_gayle_id_count++) & 0x80) << 8; + else + data = 0xffff; + + if (VERBOSE) + logerror("gayle_id_r(%06x): %04x & %04x (id=%02x)\n", offset, data, mem_mask, m_gayle_id); + + return data; +} + +WRITE16_MEMBER( gayle_device::gayle_id_w ) +{ + if (VERBOSE) + logerror("gayle_id_w(%06x): %04x & %04x (id=%02x)\n", offset, data, mem_mask, m_gayle_id); + + m_gayle_id_count = 0; +} diff --git a/src/emu/machine/gayle.h b/src/emu/machine/gayle.h new file mode 100644 index 00000000000..d125cec0720 --- /dev/null +++ b/src/emu/machine/gayle.h @@ -0,0 +1,111 @@ +/*************************************************************************** + + GAYLE + + license: MAME, GPL-2.0+ + copyright-holders: Dirk Best + + Gate array used in the Amiga 600 and Amiga 1200 computers. + +***************************************************************************/ + +#pragma once + +#ifndef __GAYLE_H__ +#define __GAYLE_H__ + +#include "emu.h" + + +//************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_GAYLE_ADD(_tag, _clock, _id) \ + MCFG_DEVICE_ADD(_tag, GAYLE, _clock) \ + gayle_device::set_id(*device, _id); + +#define MCFG_GAYLE_INT2_HANDLER(_devcb) \ + devcb = &gayle_device::set_int2_handler(*device, DEVCB_##_devcb); + +#define MCFG_GAYLE_CS0_READ_HANDLER(_devcb) \ + devcb = &gayle_device::set_cs0_read_handler(*device, DEVCB_##_devcb); + +#define MCFG_GAYLE_CS0_WRITE_HANDLER(_devcb) \ + devcb = &gayle_device::set_cs0_write_handler(*device, DEVCB_##_devcb); + +#define MCFG_GAYLE_CS1_READ_HANDLER(_devcb) \ + devcb = &gayle_device::set_cs1_read_handler(*device, DEVCB_##_devcb); + +#define MCFG_GAYLE_CS1_WRITE_HANDLER(_devcb) \ + devcb = &gayle_device::set_cs1_write_handler(*device, DEVCB_##_devcb); + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +// ======================> gayle_device + +class gayle_device : public device_t +{ +public: + // construction/destruction + gayle_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // callbacks + template<class _Object> static devcb_base &set_int2_handler(device_t &device, _Object object) + { return downcast<gayle_device &>(device).m_int2_w.set_callback(object); } + + template<class _Object> static devcb_base &set_cs0_read_handler(device_t &device, _Object object) + { return downcast<gayle_device &>(device).m_cs0_read.set_callback(object); } + + template<class _Object> static devcb_base &set_cs0_write_handler(device_t &device, _Object object) + { return downcast<gayle_device &>(device).m_cs0_write.set_callback(object); } + + template<class _Object> static devcb_base &set_cs1_read_handler(device_t &device, _Object object) + { return downcast<gayle_device &>(device).m_cs1_read.set_callback(object); } + + template<class _Object> static devcb_base &set_cs1_write_handler(device_t &device, _Object object) + { return downcast<gayle_device &>(device).m_cs1_write.set_callback(object); } + + // interface + DECLARE_WRITE_LINE_MEMBER( ide_interrupt_w ); + + DECLARE_READ16_MEMBER( gayle_r ); + DECLARE_WRITE16_MEMBER( gayle_w ); + DECLARE_READ16_MEMBER( gayle_id_r ); + DECLARE_WRITE16_MEMBER( gayle_id_w ); + + // inline configuration + static void set_id(device_t &device, UINT8 id); + +protected: + virtual void device_start(); + virtual void device_reset(); + +private: + enum + { + GAYLE_CS = 0, // interrupt status + GAYLE_IRQ, // interrupt change + GAYLE_INTEN, // interrupt enable register + GAYLE_CFG // config register + }; + + devcb_write_line m_int2_w; + + devcb_read16 m_cs0_read; + devcb_write16 m_cs0_write; + devcb_read16 m_cs1_read; + devcb_write16 m_cs1_write; + + UINT8 m_gayle_id; + int m_gayle_id_count; + UINT8 m_gayle_reg[4]; +}; + +// device type definition +extern const device_type GAYLE; + +#endif diff --git a/src/emu/machine/machine.mak b/src/emu/machine/machine.mak index de303b9dfa7..fdf0bb3db80 100644 --- a/src/emu/machine/machine.mak +++ b/src/emu/machine/machine.mak @@ -56,6 +56,16 @@ endif #------------------------------------------------- # +#@src/emu/machine/gayle.h,MACHINES += GAYLE +#------------------------------------------------- + +ifneq ($(filter GAYLE,$(MACHINES)),) +MACHINEOBJS += $(MACHINEOBJ)/gayle.o +endif + + +#------------------------------------------------- +# #@src/emu/machine/40105.h,MACHINES += CMOS40105 #------------------------------------------------- diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c index 0b121512131..abe34ec870e 100644 --- a/src/mess/drivers/amiga.c +++ b/src/mess/drivers/amiga.c @@ -15,6 +15,8 @@ #include "machine/bankdev.h" #include "machine/6525tpi.h" #include "machine/6526cia.h" +#include "machine/gayle.h" +#include "machine/ataintf.h" #include "machine/dmac.h" #include "machine/nvram.h" #include "machine/i2cmem.h" @@ -209,53 +211,43 @@ class a600_state : public amiga_state public: a600_state(const machine_config &mconfig, device_type type, const char *tag) : amiga_state(mconfig, type, tag), - m_gayle_id_count(0) + m_gayle_int2(0) { } - DECLARE_READ16_MEMBER( ide_r ); - DECLARE_WRITE16_MEMBER( ide_w ); - DECLARE_READ16_MEMBER( gayle_r ); - DECLARE_WRITE16_MEMBER( gayle_w ); - DECLARE_READ16_MEMBER( gayle_id_r ); - DECLARE_WRITE16_MEMBER( gayle_id_w ); + DECLARE_WRITE_LINE_MEMBER( gayle_int2_w ); DECLARE_DRIVER_INIT( pal ); DECLARE_DRIVER_INIT( ntsc ); + static const UINT8 GAYLE_ID = 0xd0; + protected: - virtual void machine_reset(); + virtual void update_irq2(); private: - static const int GAYLE_ID = 0xd0; - - int m_gayle_id_count; - UINT8 m_gayle_reg[4]; + int m_gayle_int2; }; class a1200_state : public amiga_state { public: a1200_state(const machine_config &mconfig, device_type type, const char *tag) : - amiga_state(mconfig, type, tag) - //m_gayle_id_count(0) + amiga_state(mconfig, type, tag), + m_gayle_int2(0) { } - DECLARE_READ32_MEMBER( ide_r ); - DECLARE_WRITE32_MEMBER( ide_w ); - DECLARE_READ32_MEMBER( gayle_r ); - DECLARE_WRITE32_MEMBER( gayle_w ); + DECLARE_WRITE_LINE_MEMBER( gayle_int2_w ); DECLARE_DRIVER_INIT( pal ); DECLARE_DRIVER_INIT( ntsc ); + static const UINT8 GAYLE_ID = 0xd1; + protected: - virtual void machine_reset(); + virtual void update_irq2(); private: - static const int GAYLE_ID = 0xd1; - - //int m_gayle_id_count; - UINT8 m_gayle_reg[4]; + int m_gayle_int2; }; class a4000_state : public amiga_state @@ -659,130 +651,28 @@ WRITE32_MEMBER( a3000_state::motherboard_w ) logerror("motherboard_w(%06x): %08x & %08x\n", offset, data, mem_mask); } -void a600_state::machine_reset() -{ - // base reset - amiga_state::machine_reset(); - - m_gayle_reg[0] = 0; - m_gayle_reg[1] = 0; - m_gayle_reg[2] = 0; - m_gayle_reg[3] = 0; -} - -// note: for ide a12 = cs0/cs1, offset >> 2 for reg -READ16_MEMBER( a600_state::ide_r ) -{ - UINT16 data = 0xffff; - logerror("ide_r(%06x): %08x & %08x\n", offset, data, mem_mask); - return data; -} - -WRITE16_MEMBER( a600_state::ide_w ) -{ - logerror("ide_w(%06x): %08x & %08x\n", offset, data, mem_mask); -} - -READ16_MEMBER( a600_state::gayle_r ) -{ - UINT16 data = 0xffff; - - switch (offset) - { - case 0x0000: data = m_gayle_reg[0]; break; - case 0x1000: data = m_gayle_reg[1]; break; - case 0x2000: data = m_gayle_reg[2]; break; - case 0x3000: data = m_gayle_reg[3]; break; - } - - logerror("gayle_r(%06x): %08x & %08x\n", offset, data, mem_mask); - return data; -} - -WRITE16_MEMBER( a600_state::gayle_w ) +void a600_state::update_irq2() { - logerror("gayle_w(%06x): %08x & %08x\n", offset, data, mem_mask); - - switch (offset) - { - case 0x0000: - break; - case 0x1000: - break; - case 0x2000: - break; - case 0x3000: - break; - } -} - -READ16_MEMBER( a600_state::gayle_id_r ) -{ - if (ACCESSING_BITS_8_15) - return ((GAYLE_ID << m_gayle_id_count++) & 0x80) << 8; - else - return 0xffff; -} - -WRITE16_MEMBER( a600_state::gayle_id_w ) -{ - m_gayle_id_count = 0; -} - -void a1200_state::machine_reset() -{ - // base reset - amiga_state::machine_reset(); - - m_gayle_reg[0] = 0; - m_gayle_reg[1] = 0; - m_gayle_reg[2] = 0; - m_gayle_reg[3] = 0; -} - -READ32_MEMBER( a1200_state::ide_r ) -{ - UINT16 data = 0xffff; - logerror("ide_r(%06x): %08x & %08x\n", offset, data, mem_mask); - return data; + int state = (m_cia_0_irq || m_gayle_int2); + set_interrupt((state ? INTENA_SETCLR : 0x0000) | INTENA_PORTS); } -WRITE32_MEMBER( a1200_state::ide_w ) +WRITE_LINE_MEMBER( a600_state::gayle_int2_w ) { - logerror("ide_w(%06x): %08x & %08x\n", offset, data, mem_mask); + m_gayle_int2 = state; + update_irq2(); } -READ32_MEMBER( a1200_state::gayle_r ) +void a1200_state::update_irq2() { - UINT16 data = 0xffff; - - switch (offset) - { - case 0x0000: data = m_gayle_reg[0]; break; - case 0x1000: data = m_gayle_reg[1]; break; - case 0x2000: data = m_gayle_reg[2]; break; - case 0x3000: data = m_gayle_reg[3]; break; - } - - logerror("gayle_r(%06x): %08x & %08x\n", offset, data, mem_mask); - return data; + int state = (m_cia_0_irq || m_gayle_int2); + set_interrupt((state ? INTENA_SETCLR : 0x0000) | INTENA_PORTS); } -WRITE32_MEMBER( a1200_state::gayle_w ) +WRITE_LINE_MEMBER( a1200_state::gayle_int2_w ) { - logerror("gayle_w(%06x): %08x & %08x\n", offset, data, mem_mask); - - switch (offset) - { - case 0x0000: - break; - case 0x1000: - break; - case 0x2000: - break; - case 0x3000: - break; - } + m_gayle_int2 = state; + update_irq2(); } READ32_MEMBER( a4000_state::scsi_r ) @@ -1123,15 +1013,13 @@ static ADDRESS_MAP_START( a600_mem, AS_PROGRAM, 16, a600_state ) AM_RANGE(0xb80000, 0xbeffff) AM_NOP // reserved (cdtv) AM_RANGE(0xbf0000, 0xbfffff) AM_READWRITE(cia_r, gayle_cia_w) AM_RANGE(0xc00000, 0xd7ffff) AM_NOP // slow mem -// AM_RANGE(0xd80000, 0xd8ffff) AM_NOP // spare chip select -// AM_RANGE(0xd90000, 0xd9ffff) AM_NOP // arcnet chip select - AM_RANGE(0xda0000, 0xda3fff) AM_READWRITE(ide_r, ide_w) -// AM_RANGE(0xda4000, 0xda7fff) AM_NOP // ide reserved - AM_RANGE(0xda8000, 0xdaffff) AM_READWRITE(gayle_r, gayle_w) -// AM_RANGE(0xdb0000, 0xdbffff) AM_NOP // reserved (external ide) + AM_RANGE(0xd80000, 0xd8ffff) AM_NOP // spare chip select + AM_RANGE(0xd90000, 0xd9ffff) AM_NOP // arcnet chip select + AM_RANGE(0xda0000, 0xdaffff) AM_DEVREADWRITE("gayle", gayle_device, gayle_r, gayle_w) + AM_RANGE(0xdb0000, 0xdbffff) AM_NOP // reserved (external ide) AM_RANGE(0xdc0000, 0xdcffff) AM_NOP // rtc -// AM_RANGE(0xdd0000, 0xddffff) AM_NOP // reserved (dma controller) - AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(gayle_id_r, gayle_id_w) + AM_RANGE(0xdd0000, 0xddffff) AM_NOP // reserved (dma controller) + AM_RANGE(0xde0000, 0xdeffff) AM_DEVREADWRITE("gayle", gayle_device, gayle_id_r, gayle_id_w) AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs") AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r) AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices) @@ -1151,13 +1039,11 @@ static ADDRESS_MAP_START( a1200_mem, AS_PROGRAM, 32, a1200_state ) AM_RANGE(0xc00000, 0xd7ffff) AM_NOP // slow mem AM_RANGE(0xd80000, 0xd8ffff) AM_NOP // spare chip select AM_RANGE(0xd90000, 0xd9ffff) AM_NOP // arcnet chip select - AM_RANGE(0xda0000, 0xda3fff) AM_READWRITE(ide_r, ide_w) - AM_RANGE(0xda4000, 0xda7fff) AM_NOP // ide reserved - AM_RANGE(0xda8000, 0xdaffff) AM_READWRITE(gayle_r, gayle_w) + AM_RANGE(0xda0000, 0xdaffff) AM_DEVREADWRITE16("gayle", gayle_device, gayle_r, gayle_w, 0xffffffff) AM_RANGE(0xdb0000, 0xdbffff) AM_NOP // reserved (external ide) AM_RANGE(0xdc0000, 0xdcffff) AM_NOP // rtc AM_RANGE(0xdd0000, 0xddffff) AM_NOP // reserved (dma controller) - AM_RANGE(0xde0000, 0xdeffff) AM_NOP // reserved (mb resources) + AM_RANGE(0xde0000, 0xdeffff) AM_DEVREADWRITE16("gayle", gayle_device, gayle_id_r, gayle_id_w, 0xffffffff) AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs") AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror32_r) AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices) @@ -1646,7 +1532,17 @@ static MACHINE_CONFIG_DERIVED_CLASS( a600, amiga_base, a600_state ) MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(22) MCFG_ADDRESS_MAP_BANK_STRIDE(0x200000) - // todo: ide, pcmcia + MCFG_GAYLE_ADD("gayle", amiga_state::CLK_28M_PAL / 2, a600_state::GAYLE_ID) + MCFG_GAYLE_INT2_HANDLER(WRITELINE(a600_state, gayle_int2_w)) + MCFG_GAYLE_CS0_READ_HANDLER(DEVREAD16("ata", ata_interface_device, read_cs0)) + MCFG_GAYLE_CS0_WRITE_HANDLER(DEVWRITE16("ata", ata_interface_device, write_cs0)) + MCFG_GAYLE_CS1_READ_HANDLER(DEVREAD16("ata", ata_interface_device, read_cs1)) + MCFG_GAYLE_CS1_WRITE_HANDLER(DEVWRITE16("ata", ata_interface_device, write_cs1)) + + MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", NULL, false) + MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("gayle", gayle_device, ide_interrupt_w)) + + // todo: pcmcia MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED_CLASS( a600n, a600, a600_state ) @@ -1683,7 +1579,17 @@ static MACHINE_CONFIG_DERIVED_CLASS( a1200, amiga_base, a1200_state ) MCFG_VIDEO_START_OVERRIDE(amiga_state, amiga_aga) - // todo: ide, pcmcia + MCFG_GAYLE_ADD("gayle", amiga_state::CLK_28M_PAL / 2, a1200_state::GAYLE_ID) + MCFG_GAYLE_INT2_HANDLER(WRITELINE(a1200_state, gayle_int2_w)) + MCFG_GAYLE_CS0_READ_HANDLER(DEVREAD16("ata", ata_interface_device, read_cs0)) + MCFG_GAYLE_CS0_WRITE_HANDLER(DEVWRITE16("ata", ata_interface_device, write_cs0)) + MCFG_GAYLE_CS1_READ_HANDLER(DEVREAD16("ata", ata_interface_device, read_cs1)) + MCFG_GAYLE_CS1_WRITE_HANDLER(DEVWRITE16("ata", ata_interface_device, write_cs1)) + + MCFG_ATA_INTERFACE_ADD("ata", ata_devices, "hdd", NULL, false) + MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("gayle", gayle_device, ide_interrupt_w)) + + // todo: pcmcia MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED_CLASS( a1200n, a1200, a1200_state ) diff --git a/src/mess/mess.mak b/src/mess/mess.mak index e2ae5ac268a..d1fe3f8e62b 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -329,6 +329,7 @@ MACHINES += AKIKO MACHINES += AUTOCONFIG MACHINES += CR511B MACHINES += DMAC +MACHINES += GAYLE #MACHINES += NCR53C7XX #MACHINES += LSI53C810 MACHINES += 6522VIA |