wpc_dot: Made a start on the DMD. Still needs work.
This commit is contained in:
parent
32d07795c5
commit
db9e46bf76
@ -12,46 +12,6 @@
|
||||
|
||||
#define LOG_WPC (1)
|
||||
|
||||
/* AMFDS9 */
|
||||
/* Printer board */
|
||||
#define WPC_PRINTBUSY (0x10) /* xxxxx R: Printer ready ??? */
|
||||
#define WPC_PRINTDATA (0x11) /* xxxxx W: send to printer */
|
||||
#define WPC_PRINTDATAX (0x12) /* xxxxx W: 0: Printer data available */
|
||||
/* Sound board */
|
||||
#define WPC_SOUNDS11 (0x21) /* xxx RW: R: Sound data availble, W: Reset soundboard ? */
|
||||
#define WPC_SOUNDIF (0x2c) /* xxx RW: Sound board interface */
|
||||
#define WPC_SOUNDBACK (0x2d) /* xxx RW: R: Sound data availble, W: Reset soundboard ? */
|
||||
|
||||
#define WPC_SOLENOID1 (0x30) /* xxxxxx W: Solenoid 25-28 */
|
||||
#define WPC_SOLENOID2 (0x31) /* xxxxxx W: Solenoid 1- 8 */
|
||||
#define WPC_SOLENOID3 (0x32) /* xxxxxx W: Solenoid 17-24 */
|
||||
#define WPC_SOLENOID4 (0x33) /* xxxxxx W: Solenoid 9-16 */
|
||||
#define WPC_LAMPROW (0x34) /* xxxxxx W: Lamp row */
|
||||
#define WPC_LAMPCOLUMN (0x35) /* xxxxxx W: Lamp column enable */
|
||||
#define WPC_GILAMPS (0x36) /* W: GI lights ?? */
|
||||
#define WPC_DIPSWITCH (0x37) /* xxxxxx R: CPU board dip-switches */
|
||||
#define WPC_SWCOINDOOR (0x38) /* xxxxxx W: Coin door switches */
|
||||
#define WPC_SWROWREAD (0x39) /* xxxx R: Switch row read */
|
||||
#define WPC_SWCOLSELECT (0x3a) /* xxxx W: Switch column enable */
|
||||
#define WPC_ALPHAPOS (0x3b) /* x W: Select alphanumeric position */
|
||||
#define WPC_ALPHA1LO (0x3c) /* x W: Display 1st row hi bits */
|
||||
#define WPC_ALPHA1HI (0x3d) /* x W: Display 1st row lo bits */
|
||||
#define WPC_ALPHA2LO (0x3e) /* x W: Display 2nd row hi bits */
|
||||
#define WPC_ALPHA2HI (0x3f) /* x W: b 2nd row lo bits */
|
||||
#define WPC_LED (0x42) /* xxxxxx W: CPU LED (bit 7) */
|
||||
#define WPC_IRQACK (0x43) /* W: IRQ Ack ??? */
|
||||
#define WPC_SHIFTADRH (0x44) /* xxxxxx RW: See above */
|
||||
#define WPC_SHIFTADRL (0x45) /* xxxxxx RW: See above */
|
||||
#define WPC_SHIFTBIT (0x46) /* xxxxxx RW: See above */
|
||||
#define WPC_SHIFTBIT2 (0x47) /* xxxxxx RW: See above */
|
||||
#define WPC_FIRQSRC (0x48) /* xxxx R: bit 7 0=DMD, 1=SOUND? W: Clear FIRQ line */
|
||||
#define WPC_RTCHOUR (0x4a) /* xxxxxx RW: Real time clock: hour */
|
||||
#define WPC_RTCMIN (0x4b) /* xxxxxx RW: Real time clock: minute */
|
||||
#define WPC_ROMBANK (0x4c) /* xxxxxx W: Rombank switch */
|
||||
#define WPC_PROTMEM (0x4d) /* xxxxxx W: enabled/disable protected memory */
|
||||
#define WPC_PROTMEMCTRL (0x4e) /* xxxxxx W: Set protected memory area */
|
||||
#define WPC_WATCHDOG (0x4f) /* xxxxxx W: Watchdog */
|
||||
|
||||
class wpc_an_state : public driver_device
|
||||
{
|
||||
public:
|
||||
@ -92,20 +52,10 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(wpc_sound_s11_w);
|
||||
DECLARE_WRITE8_MEMBER(wpc_rombank_w);
|
||||
private:
|
||||
UINT8 m_alpha_pos; // selected LED position
|
||||
UINT16 m_alpha_data[40];
|
||||
UINT16 m_vblank_count;
|
||||
UINT32 m_irq_count;
|
||||
UINT8 m_switch_col; // select switch column
|
||||
UINT8 m_bankmask;
|
||||
UINT8 m_switches[12];
|
||||
UINT8 m_memprotect;
|
||||
UINT16 m_memprotect_mask;
|
||||
UINT8 m_ram[0x3000];
|
||||
UINT8 m_shift_addr_high;
|
||||
UINT8 m_shift_addr_low;
|
||||
UINT8 m_shift_bit1;
|
||||
UINT8 m_shift_bit2;
|
||||
emu_timer* m_vblank_timer;
|
||||
emu_timer* m_irq_timer;
|
||||
};
|
||||
@ -258,7 +208,6 @@ void wpc_an_state::device_timer(emu_timer &timer, device_timer_id id, int param,
|
||||
WRITE8_MEMBER(wpc_an_state::wpc_rombank_w)
|
||||
{
|
||||
m_cpubank->set_entry(data & m_bankmask);
|
||||
logerror("WPC: masked ROM bank selected %02x\n",data & m_bankmask);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(wpc_an_state::wpcsnd_reply_w)
|
||||
|
@ -1,46 +1,389 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "audio/wpcsnd.h"
|
||||
#include "machine/wpc.h"
|
||||
#include "rendlay.h"
|
||||
|
||||
class wpc_dot_state : public driver_device
|
||||
{
|
||||
public:
|
||||
wpc_dot_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu")
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_wpcsnd(*this,"wpcsnd"),
|
||||
m_wpc(*this,"wpc"),
|
||||
m_cpubank(*this, "cpubank"),
|
||||
m_fixedbank(*this, "fixedbank"),
|
||||
m_dmdbank1(*this, "dmdbank1"),
|
||||
m_dmdbank2(*this, "dmdbank2"),
|
||||
m_dmdbank3(*this, "dmdbank3"),
|
||||
m_dmdbank4(*this, "dmdbank4"),
|
||||
m_dmdbank5(*this, "dmdbank5"),
|
||||
m_dmdbank6(*this, "dmdbank6")
|
||||
{ }
|
||||
|
||||
protected:
|
||||
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<wpcsnd_device> m_wpcsnd;
|
||||
required_device<wpc_device> m_wpc;
|
||||
required_memory_bank m_cpubank;
|
||||
required_memory_bank m_fixedbank;
|
||||
required_memory_bank m_dmdbank1;
|
||||
required_memory_bank m_dmdbank2;
|
||||
required_memory_bank m_dmdbank3;
|
||||
required_memory_bank m_dmdbank4;
|
||||
required_memory_bank m_dmdbank5;
|
||||
required_memory_bank m_dmdbank6;
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_reset();
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
static const device_timer_id TIMER_VBLANK = 0;
|
||||
static const device_timer_id TIMER_IRQ = 1;
|
||||
public:
|
||||
DECLARE_DRIVER_INIT(wpc_dot);
|
||||
DECLARE_READ8_MEMBER(ram_r);
|
||||
DECLARE_WRITE8_MEMBER(ram_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(wpcsnd_reply_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(wpc_irq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(wpc_firq_w);
|
||||
DECLARE_READ8_MEMBER(wpc_sound_ctrl_r);
|
||||
DECLARE_WRITE8_MEMBER(wpc_sound_ctrl_w);
|
||||
DECLARE_READ8_MEMBER(wpc_sound_data_r);
|
||||
DECLARE_WRITE8_MEMBER(wpc_sound_data_w);
|
||||
DECLARE_WRITE8_MEMBER(wpc_sound_s11_w);
|
||||
DECLARE_WRITE8_MEMBER(wpc_rombank_w);
|
||||
DECLARE_WRITE8_MEMBER(wpc_dmdbank_w);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
private:
|
||||
UINT16 m_vblank_count;
|
||||
UINT32 m_irq_count;
|
||||
UINT8 m_bankmask;
|
||||
UINT8 m_ram[0x3000];
|
||||
UINT8 m_dmdram[0x2000];
|
||||
emu_timer* m_vblank_timer;
|
||||
emu_timer* m_irq_timer;
|
||||
};
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( wpc_dot_map, AS_PROGRAM, 8, wpc_dot_state )
|
||||
AM_RANGE(0x0000, 0xffff) AM_NOP
|
||||
AM_RANGE(0x0000, 0x2fff) AM_READWRITE(ram_r,ram_w)
|
||||
AM_RANGE(0x3000, 0x31ff) AM_RAMBANK("dmdbank1")
|
||||
AM_RANGE(0x3200, 0x33ff) AM_RAMBANK("dmdbank2")
|
||||
AM_RANGE(0x3400, 0x35ff) AM_RAMBANK("dmdbank3")
|
||||
AM_RANGE(0x3600, 0x37ff) AM_RAMBANK("dmdbank4")
|
||||
AM_RANGE(0x3800, 0x39ff) AM_RAMBANK("dmdbank5")
|
||||
AM_RANGE(0x3a00, 0x3bff) AM_RAMBANK("dmdbank6")
|
||||
AM_RANGE(0x3c00, 0x3faf) AM_RAM
|
||||
AM_RANGE(0x3fb0, 0x3fff) AM_DEVREADWRITE("wpc",wpc_device,read,write) // WPC device
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("cpubank")
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("fixedbank")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( wpc_dot )
|
||||
PORT_START("INP0")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("INP1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) // left flipper
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) // right flipper
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
|
||||
|
||||
PORT_START("INP2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) // always closed
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
|
||||
|
||||
PORT_START("INP4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
|
||||
|
||||
PORT_START("INP8")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE)
|
||||
|
||||
PORT_START("INP10")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN)
|
||||
|
||||
PORT_START("INP20")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
|
||||
|
||||
PORT_START("INP40")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LALT)
|
||||
PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("INP80")
|
||||
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("COIN")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service / Escape") PORT_CODE(KEYCODE_DEL_PAD)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_CODE(KEYCODE_MINUS_PAD)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_VOLUME_UP ) PORT_CODE(KEYCODE_PLUS_PAD)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Begin Test / Enter") PORT_CODE(KEYCODE_ENTER_PAD)
|
||||
|
||||
PORT_START("DIPS")
|
||||
PORT_DIPNAME(0x01,0x01,"Switch 1") PORT_DIPLOCATION("SWA:1")
|
||||
PORT_DIPSETTING(0x00,DEF_STR( Off ))
|
||||
PORT_DIPSETTING(0x01,DEF_STR( On ))
|
||||
PORT_DIPNAME(0x02,0x02,"Switch 2") PORT_DIPLOCATION("SWA:2")
|
||||
PORT_DIPSETTING(0x00,DEF_STR( Off ))
|
||||
PORT_DIPSETTING(0x02,DEF_STR( On ))
|
||||
PORT_DIPNAME(0x04,0x00,"W20") PORT_DIPLOCATION("SWA:3")
|
||||
PORT_DIPSETTING(0x00,DEF_STR( Off ))
|
||||
PORT_DIPSETTING(0x04,DEF_STR( On ))
|
||||
PORT_DIPNAME(0x08,0x00,"W19") PORT_DIPLOCATION("SWA:4")
|
||||
PORT_DIPSETTING(0x00,DEF_STR( Off ))
|
||||
PORT_DIPSETTING(0x08,DEF_STR( On ))
|
||||
PORT_DIPNAME(0xf0,0x00,"Country") PORT_DIPLOCATION("SWA:5,6,7,8")
|
||||
PORT_DIPSETTING(0x00,"USA 1")
|
||||
PORT_DIPSETTING(0x10,"France 1")
|
||||
PORT_DIPSETTING(0x20,"Germany")
|
||||
PORT_DIPSETTING(0x30,"France 2")
|
||||
PORT_DIPSETTING(0x40,"Unknown 1")
|
||||
PORT_DIPSETTING(0x50,"Unknown 2")
|
||||
PORT_DIPSETTING(0x60,"Unknown 3")
|
||||
PORT_DIPSETTING(0x70,"Unknown 4")
|
||||
PORT_DIPSETTING(0x80,"Export 1")
|
||||
PORT_DIPSETTING(0x90,"France 3")
|
||||
PORT_DIPSETTING(0xa0,"Export 2")
|
||||
PORT_DIPSETTING(0xb0,"France 4")
|
||||
PORT_DIPSETTING(0xc0,"UK")
|
||||
PORT_DIPSETTING(0xd0,"Europe")
|
||||
PORT_DIPSETTING(0xe0,"Spain")
|
||||
PORT_DIPSETTING(0xf0,"USA 2")
|
||||
INPUT_PORTS_END
|
||||
|
||||
void wpc_dot_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
{
|
||||
switch(id)
|
||||
{
|
||||
case TIMER_VBLANK:
|
||||
if((m_vblank_count % 4) == (m_wpc->get_dmd_firq_line()*4/32))
|
||||
{
|
||||
m_maincpu->set_input_line(M6809_FIRQ_LINE,ASSERT_LINE);
|
||||
m_wpc->set_dmd_firq();
|
||||
}
|
||||
m_vblank_count++;
|
||||
break;
|
||||
case TIMER_IRQ:
|
||||
m_maincpu->set_input_line(M6809_IRQ_LINE,ASSERT_LINE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void wpc_dot_state::machine_reset()
|
||||
{
|
||||
m_cpubank->set_entry(0);
|
||||
m_vblank_count = 0;
|
||||
m_irq_count = 0;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(wpc_dot_state,wpc_dot)
|
||||
{
|
||||
UINT8 *fixed = memregion("code")->base();
|
||||
UINT32 codeoff = memregion("code")->bytes() - 0x8000;
|
||||
m_cpubank->configure_entries(0, 32, &fixed[0], 0x4000);
|
||||
m_cpubank->set_entry(0);
|
||||
m_fixedbank->configure_entries(0, 1, &fixed[codeoff],0x8000);
|
||||
m_fixedbank->set_entry(0);
|
||||
m_dmdbank1->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank1->set_entry(0);
|
||||
m_dmdbank2->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank2->set_entry(1);
|
||||
m_dmdbank3->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank3->set_entry(2);
|
||||
m_dmdbank4->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank4->set_entry(3);
|
||||
m_dmdbank5->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank5->set_entry(4);
|
||||
m_dmdbank6->configure_entries(0, 16, &m_dmdram[0x0000],0x200);
|
||||
m_dmdbank6->set_entry(5);
|
||||
m_vblank_timer = timer_alloc(TIMER_VBLANK);
|
||||
m_vblank_timer->adjust(attotime::from_hz(60),0,attotime::from_hz(60));
|
||||
m_irq_timer = timer_alloc(TIMER_IRQ);
|
||||
m_irq_timer->adjust(attotime::from_hz(976),0,attotime::from_hz(976));
|
||||
m_bankmask = (memregion("code")->bytes() >> 14) - 1;
|
||||
logerror("WPC: ROM bank mask = %02x\n",m_bankmask);
|
||||
memset(m_ram,0,0x3000);
|
||||
save_pointer(m_dmdram,"DMD RAM",0x2000);
|
||||
}
|
||||
|
||||
READ8_MEMBER(wpc_dot_state::ram_r)
|
||||
{
|
||||
return m_ram[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wpc_dot_state::ram_w)
|
||||
{
|
||||
if((!m_wpc->memprotect_active()) || ((offset & m_wpc->get_memprotect_mask()) != m_wpc->get_memprotect_mask()))
|
||||
m_ram[offset] = data;
|
||||
else
|
||||
logerror("WPC: Memory protection violation at 0x%04x (mask=0x%04x)\n",offset,m_wpc->get_memprotect_mask());
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wpc_dot_state::wpc_rombank_w)
|
||||
{
|
||||
m_cpubank->set_entry(data & m_bankmask);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wpc_dot_state::wpc_dmdbank_w)
|
||||
{
|
||||
UINT8 page = offset >> 4;
|
||||
|
||||
switch(offset & 0x07)
|
||||
{
|
||||
case 0:
|
||||
m_dmdbank1->set_entry(data + (page*16));
|
||||
break;
|
||||
case 1:
|
||||
m_dmdbank2->set_entry(data + (page*16));
|
||||
break;
|
||||
case 2:
|
||||
m_dmdbank3->set_entry(data + (page*16));
|
||||
break;
|
||||
case 3:
|
||||
m_dmdbank4->set_entry(data + (page*16));
|
||||
break;
|
||||
case 4:
|
||||
m_dmdbank5->set_entry(data + (page*16));
|
||||
break;
|
||||
case 5:
|
||||
m_dmdbank6->set_entry(data + (page*16));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(wpc_dot_state::wpcsnd_reply_w)
|
||||
{
|
||||
if(state)
|
||||
{
|
||||
m_maincpu->set_input_line(M6809_FIRQ_LINE,ASSERT_LINE);
|
||||
m_wpc->set_snd_firq();
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(wpc_dot_state::wpc_irq_w)
|
||||
{
|
||||
m_maincpu->set_input_line(M6809_IRQ_LINE,CLEAR_LINE);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(wpc_dot_state::wpc_firq_w)
|
||||
{
|
||||
m_maincpu->set_input_line(M6809_FIRQ_LINE,CLEAR_LINE);
|
||||
}
|
||||
|
||||
READ8_MEMBER(wpc_dot_state::wpc_sound_ctrl_r)
|
||||
{
|
||||
return m_wpcsnd->ctrl_r(); // ack FIRQ?
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wpc_dot_state::wpc_sound_ctrl_w)
|
||||
{
|
||||
m_wpcsnd->ctrl_w(data);
|
||||
}
|
||||
|
||||
READ8_MEMBER(wpc_dot_state::wpc_sound_data_r)
|
||||
{
|
||||
return m_wpcsnd->data_r();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(wpc_dot_state::wpc_sound_data_w)
|
||||
{
|
||||
m_wpcsnd->data_w(data);
|
||||
}
|
||||
|
||||
UINT32 wpc_dot_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
UINT8 x,y,bit;
|
||||
UINT32 offset = (m_wpc->get_visible_page() * 0x200);
|
||||
UINT32 col;
|
||||
|
||||
for(y=0;y<32;y++) // scanline
|
||||
{
|
||||
for(x=0;x<128;x+=8) // column
|
||||
{
|
||||
for(bit=0;bit<8;bit++) // bits
|
||||
{
|
||||
if(m_dmdram[offset] & (1<<bit))
|
||||
col = MAKE_RGB(0xff,0xaa,0x00);
|
||||
else
|
||||
col = MAKE_RGB(0x00,0x00,0x00);
|
||||
bitmap.pix32(y,x+bit) = col;
|
||||
}
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( wpc_dot, wpc_dot_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6809, 2000000)
|
||||
MCFG_CPU_PROGRAM_MAP(wpc_dot_map)
|
||||
|
||||
MCFG_WMS_WPC_ADD("wpc")
|
||||
MCFG_WPC_IRQ_ACKNOWLEDGE(WRITELINE(wpc_dot_state,wpc_irq_w))
|
||||
MCFG_WPC_FIRQ_ACKNOWLEDGE(WRITELINE(wpc_dot_state,wpc_firq_w))
|
||||
MCFG_WPC_ROMBANK(WRITE8(wpc_dot_state,wpc_rombank_w))
|
||||
MCFG_WPC_SOUND_CTRL(READ8(wpc_dot_state,wpc_sound_ctrl_r),WRITE8(wpc_dot_state,wpc_sound_ctrl_w))
|
||||
MCFG_WPC_SOUND_DATA(READ8(wpc_dot_state,wpc_sound_data_r),WRITE8(wpc_dot_state,wpc_sound_data_w))
|
||||
MCFG_WPC_DMDBANK(WRITE8(wpc_dot_state,wpc_dmdbank_w))
|
||||
|
||||
MCFG_WMS_WPC_SOUND_ADD("wpcsnd",":sound1")
|
||||
MCFG_WPC_SOUND_REPLY_CALLBACK(WRITELINE(wpc_dot_state,wpcsnd_reply_w))
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_lcd)
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_SIZE(128, 32)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 32-1)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(wpc_dot_state, screen_update)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/*-----------------
|
||||
@ -48,12 +391,10 @@ MACHINE_CONFIG_END
|
||||
/------------------*/
|
||||
ROM_START(gi_l9)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("gilli_l9.rom", 0x00000, 0x40000, CRC(af07a757) SHA1(29c4f4ac2aed5b36e1d22490d656b1c4acba7f4c))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1",0)
|
||||
ROM_LOAD("gi_u18.l2", 0x000000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_LOAD("gi_u14.l2", 0x000000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -61,7 +402,7 @@ ROM_START(gi_l9)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("gi_u14.l2", 0x100000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_LOAD("gi_u18.l2", 0x100000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -69,12 +410,10 @@ ROM_END
|
||||
|
||||
ROM_START(gi_l3)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("gi_l3.u6", 0x00000, 0x40000, CRC(d4e26140) SHA1(c2a9f02217071768ec1ef9169d2922c0e1585bee))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1",0)
|
||||
ROM_LOAD("gi_u18.l2", 0x000000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_LOAD("gi_u14.l2", 0x000000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -82,7 +421,7 @@ ROM_START(gi_l3)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("gi_u14.l2", 0x100000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_LOAD("gi_u18.l2", 0x100000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -90,12 +429,10 @@ ROM_END
|
||||
|
||||
ROM_START(gi_l4)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("gi_l4.u6", 0x00000, 0x40000, CRC(2313986d) SHA1(6e0dd293b869ea986ac9cb65b020463a86d955d4))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1",0)
|
||||
ROM_LOAD("gi_u18.l2", 0x000000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_LOAD("gi_u14.l2", 0x000000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -103,7 +440,7 @@ ROM_START(gi_l4)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("gi_u14.l2", 0x100000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_LOAD("gi_u18.l2", 0x100000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -111,12 +448,10 @@ ROM_END
|
||||
|
||||
ROM_START(gi_l6)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("gi_l6.u6", 0x00000, 0x40000, CRC(7b73eef2) SHA1(fade23019600d84492d5a0fc6f4f5be52ec319be))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1",0)
|
||||
ROM_LOAD("gi_u18.l2", 0x000000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_LOAD("gi_u14.l2", 0x000000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -124,7 +459,7 @@ ROM_START(gi_l6)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("gi_u14.l2", 0x100000, 0x20000, CRC(0e7a4140) SHA1(c6408794120b5e45a48b35c380333879e1f0be78))
|
||||
ROM_LOAD("gi_u18.l2", 0x100000, 0x20000, CRC(ea53e196) SHA1(5dcf3f44d2d658f6a7b130fa9e48d3cd616b4300))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -135,16 +470,14 @@ ROM_END
|
||||
/------------------*/
|
||||
ROM_START(hshot_p8)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "user2", 0)
|
||||
ROM_REGION(0x80000, "code", 0)
|
||||
ROM_LOAD("hshot_p8.u6", 0x00000, 0x80000, CRC(26dd6bb2) SHA1(45674885052838b6bd6b3ed0a276a4d9323290c5))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("hshot_l1.u18", 0x000000, 0x20000, CRC(a0e5beba) SHA1(c54a22527d861df54891308752ebdec5829deceb))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("hshot_l1.u14", 0x100000, 0x80000, CRC(a3ccf557) SHA1(a8e518ea115cd1963544273c45d9ae9a6cab5e1f))
|
||||
ROM_LOAD("hshot_l1.u18", 0x100000, 0x20000, CRC(a0e5beba) SHA1(c54a22527d861df54891308752ebdec5829deceb))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("hshot_l1.u14", 0x000000, 0x80000, CRC(a3ccf557) SHA1(a8e518ea115cd1963544273c45d9ae9a6cab5e1f))
|
||||
ROM_END
|
||||
|
||||
/*-----------------
|
||||
@ -152,12 +485,10 @@ ROM_END
|
||||
/------------------*/
|
||||
ROM_START(hurr_l2)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("hurcnl_2.rom", 0x00000, 0x40000, CRC(fda6155f) SHA1(0088155a2582524d8720d71cd3ff82e8733ef434))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("u18.pp", 0x000000, 0x20000, CRC(63944b37) SHA1(045f8046ba5bf1c88b65a80737e2d3d017271c04))
|
||||
ROM_LOAD("u14.pp", 0x000000, 0x20000, CRC(51c82899) SHA1(aa6c3d9e7efa3708727b06fb3372638d5245a510))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -165,7 +496,7 @@ ROM_START(hurr_l2)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("u14.pp", 0x100000, 0x20000, CRC(51c82899) SHA1(aa6c3d9e7efa3708727b06fb3372638d5245a510))
|
||||
ROM_LOAD("u18.pp", 0x100000, 0x20000, CRC(63944b37) SHA1(045f8046ba5bf1c88b65a80737e2d3d017271c04))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -176,78 +507,70 @@ ROM_END
|
||||
/------------------*/
|
||||
ROM_START(pz_f4)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("pzonef_4.rom", 0x00000, 0x40000, CRC(041d7d15) SHA1(d40e7010caa3bc664dc985c748309fe84ae17dac))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("pz_u18.l1", 0x000000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x000000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u15.l1", 0x080000, 0x20000, CRC(168bcc52) SHA1(0bae89278cd24950b2e247bba48eaa636f7b566c))
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x100000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u18.l1", 0x100000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
ROM_END
|
||||
|
||||
ROM_START(pz_l1)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("u6-l1.rom", 0x00000, 0x40000, CRC(48023444) SHA1(0c14f5902c6c0b3466fb4265a2e1fc6a1050f8d7))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("pz_u18.l1", 0x000000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x000000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u15.l1", 0x080000, 0x20000, CRC(168bcc52) SHA1(0bae89278cd24950b2e247bba48eaa636f7b566c))
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x100000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u18.l1", 0x100000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
ROM_END
|
||||
|
||||
ROM_START(pz_l2)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("pz_u6.l2", 0x00000, 0x40000, CRC(200455a9) SHA1(d0f9a2227c67ddc73111a120a6a19dc5ac218baa))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("pz_u18.l1", 0x000000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x000000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u15.l1", 0x080000, 0x20000, CRC(168bcc52) SHA1(0bae89278cd24950b2e247bba48eaa636f7b566c))
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x100000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u18.l1", 0x100000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
ROM_END
|
||||
|
||||
ROM_START(pz_l3)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("pzonel_3.rom", 0x00000, 0x40000, CRC(156f158f) SHA1(73a31deee6b299e5f5479b43210a822009e116d0))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("pz_u18.l1", 0x000000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x000000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u15.l1", 0x080000, 0x20000, CRC(168bcc52) SHA1(0bae89278cd24950b2e247bba48eaa636f7b566c))
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("pz_u14.l1", 0x100000, 0x40000, CRC(4d8897ce) SHA1(7a4ac9e849dae93078ddd60adbd34f3930e4cd46))
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x40000)
|
||||
ROM_LOAD("pz_u18.l1", 0x100000, 0x20000, CRC(b7fbba98) SHA1(6533a1474dd335419331d37d4a4447951171412b))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
ROM_END
|
||||
|
||||
/*--------------------
|
||||
@ -255,12 +578,10 @@ ROM_END
|
||||
/--------------------*/
|
||||
ROM_START(sf_l1)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("sf_u6.l1", 0x00000, 0x40000, CRC(ada93967) SHA1(90094d207dafdacfaf7d259c6cc3dc2b552c8588))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("sf_u18.l1", 0x000000, 0x20000, CRC(78092c83) SHA1(7c922dfd8be4bb5e23d4c86b6eb18a29cc034338))
|
||||
ROM_LOAD("sf_u14.l1", 0x000000, 0x20000, CRC(b830b419) SHA1(c59980a78d8cb1d979de21dfc5ad3d671d8486e7))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -268,7 +589,7 @@ ROM_START(sf_l1)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("sf_u14.l1", 0x100000, 0x20000, CRC(b830b419) SHA1(c59980a78d8cb1d979de21dfc5ad3d671d8486e7))
|
||||
ROM_LOAD("sf_u18.l1", 0x100000, 0x20000, CRC(78092c83) SHA1(7c922dfd8be4bb5e23d4c86b6eb18a29cc034338))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -279,12 +600,10 @@ ROM_END
|
||||
/------------------*/
|
||||
ROM_START(t2_l8)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x80000, "user2", 0)
|
||||
ROM_REGION(0x80000, "code", 0)
|
||||
ROM_LOAD("t2_l8.rom", 0x00000, 0x80000, CRC(c00e52e9) SHA1(830c1a7eabf3c8e4fa6242421587b398e21449e8))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("t2_u14.l3", 0x000000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -292,7 +611,7 @@ ROM_START(t2_l8)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("t2_u14.l3", 0x100000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -300,12 +619,10 @@ ROM_END
|
||||
|
||||
ROM_START(t2_l6)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("t2_l6.u6", 0x00000, 0x40000, CRC(0d714b35) SHA1(050fd2b3afbecbbd03d58ab206ff6cfac8780a2b))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("t2_u14.l3", 0x000000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -313,7 +630,7 @@ ROM_START(t2_l6)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("t2_u14.l3", 0x100000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -321,12 +638,10 @@ ROM_END
|
||||
|
||||
ROM_START(t2_p2f)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("u6-nasty.rom", 0x00000, 0x40000, CRC(add685a4) SHA1(d1ee7eb620864b017495e52ea8fe8db18508c3eb))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("u14-nsty.rom", 0x000000, 0x20000, CRC(b4d64152) SHA1(03a828cef8b067d4da058fd3a1e972265a72f10a))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -334,7 +649,7 @@ ROM_START(t2_p2f)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("u14-nsty.rom", 0x100000, 0x20000, CRC(b4d64152) SHA1(03a828cef8b067d4da058fd3a1e972265a72f10a))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -342,12 +657,10 @@ ROM_END
|
||||
|
||||
ROM_START(t2_l4)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("u6-l4.rom", 0x00000, 0x40000, CRC(4d8b894d) SHA1(218b3628e7709c329c2030a5391ded60301aad26))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("t2_u14.l3", 0x000000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -355,7 +668,7 @@ ROM_START(t2_l4)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("t2_u14.l3", 0x100000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -363,12 +676,10 @@ ROM_END
|
||||
|
||||
ROM_START(t2_l3)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("u6-l3.rom", 0x00000, 0x40000, CRC(7520398a) SHA1(862881481dc7b617f3b14bbb35d48cffb0ce950e))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("t2_u14.l3", 0x000000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -376,7 +687,7 @@ ROM_START(t2_l3)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("t2_u14.l3", 0x100000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -384,12 +695,10 @@ ROM_END
|
||||
|
||||
ROM_START(t2_l2)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x40000, "user2", 0)
|
||||
ROM_REGION(0x40000, "code", 0)
|
||||
ROM_LOAD("u6-l2.rom", 0x00000, 0x40000, CRC(efe49c18) SHA1(9f91081c384990eac6e3c57f318a2639626929f9))
|
||||
ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_LOAD("t2_u18.l3", 0x000000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_LOAD("t2_u14.l3", 0x000000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_RELOAD( 0x000000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x000000 + 0x60000, 0x20000)
|
||||
@ -397,7 +706,7 @@ ROM_START(t2_l2)
|
||||
ROM_RELOAD( 0x080000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x080000 + 0x60000, 0x20000)
|
||||
ROM_LOAD("t2_u14.l3", 0x100000, 0x20000, CRC(9addc9dc) SHA1(847bb027f6b9167cbbaa13f1af50d61e0c69f01f))
|
||||
ROM_LOAD("t2_u18.l3", 0x100000, 0x20000, CRC(2280bdd0) SHA1(ea94265cb8291ee427e0a2119d901ba1eb50d8ee))
|
||||
ROM_RELOAD( 0x100000 + 0x20000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x40000, 0x20000)
|
||||
ROM_RELOAD( 0x100000 + 0x60000, 0x20000)
|
||||
@ -408,9 +717,10 @@ ROM_END
|
||||
/---------------*/
|
||||
ROM_START(tfdmd_l3)
|
||||
ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x2000, "user1", ROMREGION_ERASEFF)
|
||||
ROM_REGION(0x20000, "user2", 0)
|
||||
ROM_REGION(0x20000, "code", 0)
|
||||
ROM_LOAD("u6_l3.rom", 0x00000, 0x20000, CRC(bd43e28c) SHA1(df0a64a9fddbc59e3edde56ae12b68f76e44ba2e))
|
||||
ROM_REGION(0x180000, "sound1", 0)
|
||||
ROM_FILL(0x0000,0x180000,0x00)
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -19,7 +19,8 @@ wpc_device::wpc_device(const machine_config &mconfig, const char *tag, device_t
|
||||
m_soundctrl_r(*this),
|
||||
m_soundctrl_w(*this),
|
||||
m_sounds11_w(*this),
|
||||
m_bank_w(*this)
|
||||
m_bank_w(*this),
|
||||
m_dmdbank_w(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -35,6 +36,7 @@ void wpc_device::device_start()
|
||||
m_soundctrl_w.resolve_safe();
|
||||
m_sounds11_w.resolve_safe();
|
||||
m_bank_w.resolve_safe();
|
||||
m_dmdbank_w.resolve_safe();
|
||||
|
||||
m_zc_timer = timer_alloc(TIMER_ZEROCROSS);
|
||||
m_zc_timer->adjust(attotime::from_hz(120),0,attotime::from_hz(120));
|
||||
@ -43,6 +45,8 @@ void wpc_device::device_start()
|
||||
void wpc_device::device_reset()
|
||||
{
|
||||
m_memprotect = 0;
|
||||
m_dmd_irqsrc = false;
|
||||
m_snd_irqsrc = false;
|
||||
}
|
||||
|
||||
void wpc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
@ -62,6 +66,10 @@ READ8_MEMBER(wpc_device::read)
|
||||
|
||||
switch(offset)
|
||||
{
|
||||
case DMD_FIRQLINE:
|
||||
if(m_dmd_irqsrc)
|
||||
ret |= 0x80;
|
||||
break;
|
||||
case WPC_WATCHDOG:
|
||||
if(m_zerocross)
|
||||
{
|
||||
@ -94,7 +102,8 @@ READ8_MEMBER(wpc_device::read)
|
||||
ret = m_soundctrl_r(space,0);
|
||||
break;
|
||||
case WPC_FIRQSRC:
|
||||
ret = 0x80; // always 0x80 since there is no DMD
|
||||
if(m_snd_irqsrc)
|
||||
ret |= 0x80;
|
||||
break;
|
||||
case WPC_SHIFTADRH:
|
||||
ret = m_shift_addr_high + ((m_shift_addr_low + (m_shift_bit1 >> 3)) >> 8);
|
||||
@ -119,6 +128,33 @@ WRITE8_MEMBER(wpc_device::write)
|
||||
{
|
||||
switch(offset)
|
||||
{
|
||||
case DMD_PAGE3000:
|
||||
m_dmdbank_w(space,0,data & 0x0f);
|
||||
break;
|
||||
case DMD_PAGE3200:
|
||||
m_dmdbank_w(space,1,data & 0x0f);
|
||||
break;
|
||||
case DMD_PAGE3400:
|
||||
m_dmdbank_w(space,2,data & 0x0f);
|
||||
break;
|
||||
case DMD_PAGE3600:
|
||||
m_dmdbank_w(space,3,data & 0x0f);
|
||||
break;
|
||||
case DMD_PAGE3800:
|
||||
m_dmdbank_w(space,4,data & 0x0f);
|
||||
break;
|
||||
case DMD_PAGE3A00:
|
||||
m_dmdbank_w(space,5,data & 0x0f);
|
||||
break;
|
||||
case DMD_FIRQLINE:
|
||||
m_firq_cb(space,0);
|
||||
m_dmd_irqsrc = false;
|
||||
m_dmd_irqline = data;
|
||||
break;
|
||||
case DMD_VISIBLEPAGE:
|
||||
m_dmd_visiblepage = data;
|
||||
if(LOG_WPC) logerror("WPC: DMD Visible page set to %i\n",data);
|
||||
break;
|
||||
case WPC_ROMBANK:
|
||||
m_bank_w(space,0,data);
|
||||
if(LOG_WPC) logerror("WPC: ROM bank set to %02x\n",data);
|
||||
@ -163,6 +199,7 @@ WRITE8_MEMBER(wpc_device::write)
|
||||
break;
|
||||
case WPC_FIRQSRC:
|
||||
m_firq_cb(space,0);
|
||||
m_snd_irqsrc = false;
|
||||
break;
|
||||
case WPC_PROTMEMCTRL:
|
||||
if(m_memprotect == 0xb4)
|
||||
|
@ -17,6 +17,15 @@
|
||||
* 9 = WPC-95
|
||||
*/
|
||||
/* AMFDS9 */
|
||||
/* DMD */
|
||||
#define DMD_PAGE3200 (0x08)
|
||||
#define DMD_PAGE3000 (0x09)
|
||||
#define DMD_PAGE3600 (0x0a)
|
||||
#define DMD_PAGE3400 (0x0b)
|
||||
#define DMD_PAGE3A00 (0x0c)
|
||||
#define DMD_FIRQLINE (0x0d)
|
||||
#define DMD_PAGE3800 (0x0e)
|
||||
#define DMD_VISIBLEPAGE (0x0f)
|
||||
/* Printer board */
|
||||
#define WPC_PRINTBUSY (0x10) /* xxxxx R: Printer ready ??? */
|
||||
#define WPC_PRINTDATA (0x11) /* xxxxx W: send to printer */
|
||||
@ -80,6 +89,9 @@
|
||||
#define MCFG_WPC_ROMBANK(_bank_w) \
|
||||
downcast<wpc_device *>(device)->set_bank_write(DEVCB2_##_bank_w);
|
||||
|
||||
#define MCFG_WPC_DMDBANK(_dmdbank_w) \
|
||||
downcast<wpc_device *>(device)->set_dmdbank_write(DEVCB2_##_dmdbank_w);
|
||||
|
||||
class wpc_device : public device_t
|
||||
{
|
||||
public:
|
||||
@ -92,6 +104,10 @@ public:
|
||||
bool memprotect_active() { if(m_memprotect == 0xb4) return false; else return true; }
|
||||
UINT16 get_alphanumeric(UINT8 offset) { if(offset < 40) return m_alpha_data[offset]; else return 0; }
|
||||
void reset_alphanumeric() { memset(m_alpha_data,0,40*2); }
|
||||
UINT8 get_visible_page() { return m_dmd_visiblepage; }
|
||||
UINT8 get_dmd_firq_line() { return m_dmd_irqline; }
|
||||
void set_dmd_firq() { m_dmd_irqsrc = true; }
|
||||
void set_snd_firq() { m_snd_irqsrc = true; }
|
||||
|
||||
// callbacks
|
||||
template<class _irq> void set_irq_callback(_irq irq) { m_irq_cb.set_callback(irq); }
|
||||
@ -102,6 +118,7 @@ public:
|
||||
template<class _soundctrl_w> void set_sound_ctrl_write(_soundctrl_w soundctrl_w) { m_soundctrl_w.set_callback(soundctrl_w); }
|
||||
template<class _sounds11> void set_sound_s11_write(_sounds11 sounds11) { m_sounds11_w.set_callback(sounds11); }
|
||||
template<class _bank_w> void set_bank_write(_bank_w bank_w) { m_bank_w.set_callback(bank_w); }
|
||||
template<class _dmdbank_w> void set_dmdbank_write(_dmdbank_w dmdbank_w) { m_dmdbank_w.set_callback(dmdbank_w); }
|
||||
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
static const device_timer_id TIMER_IRQ = 1;
|
||||
@ -123,7 +140,10 @@ private:
|
||||
UINT16 m_alpha_data[40];
|
||||
bool m_zerocross;
|
||||
UINT32 m_irq_count;
|
||||
emu_timer* m_irq_timer;
|
||||
UINT8 m_dmd_visiblepage;
|
||||
bool m_dmd_irqsrc;
|
||||
bool m_snd_irqsrc;
|
||||
UINT8 m_dmd_irqline;
|
||||
emu_timer* m_zc_timer;
|
||||
|
||||
devcb2_write_line m_irq_cb;
|
||||
@ -134,6 +154,7 @@ private:
|
||||
devcb2_write8 m_soundctrl_w;
|
||||
devcb2_write8 m_sounds11_w;
|
||||
devcb2_write8 m_bank_w;
|
||||
devcb2_write8 m_dmdbank_w;
|
||||
};
|
||||
|
||||
extern const device_type WPCASIC;
|
||||
|
Loading…
Reference in New Issue
Block a user