Death to m68kfmly.c/.h, hooked parallel port to TMP68301 (very preliminary)

This commit is contained in:
Angelo Salese 2013-11-26 01:19:26 +00:00
parent efab06b18e
commit 5a257583f5
11 changed files with 143 additions and 271 deletions

2
.gitattributes vendored
View File

@ -5753,8 +5753,6 @@ src/mame/machine/konppc.h svneol=native#text/plain
src/mame/machine/leland.c svneol=native#text/plain
src/mame/machine/lkage.c svneol=native#text/plain
src/mame/machine/lsasquad.c svneol=native#text/plain
src/mame/machine/m68kfmly.c svneol=native#text/plain
src/mame/machine/m68kfmly.h svneol=native#text/plain
src/mame/machine/maniach.c svneol=native#text/plain
src/mame/machine/maple-dc.c svneol=native#text/plain
src/mame/machine/maple-dc.h svneol=native#text/plain

View File

@ -18,7 +18,10 @@ static ADDRESS_MAP_START( tmp68301_regs, AS_0, 16, tmp68301_device )
AM_RANGE(0x094,0x095) AM_READWRITE(imr_r,imr_w)
AM_RANGE(0x098,0x099) AM_READWRITE(iisr_r,iisr_w)
/* Serial */
/* Parallel Port */
AM_RANGE(0x10a,0x10b) AM_READWRITE(pdr_r,pdr_w)
/* Serial Port */
AM_RANGE(0x18e,0x18f) AM_READWRITE(scr_r,scr_w)
ADDRESS_MAP_END
@ -62,6 +65,17 @@ WRITE16_MEMBER(tmp68301_device::scr_w)
m_scr &= 0xa1;
}
/* TODO: bit direction */
READ16_MEMBER(tmp68301_device::pdr_r)
{
return m_in_parallel_func(0);
}
WRITE16_MEMBER(tmp68301_device::pdr_w)
{
m_out_parallel_func(0,data);
}
tmp68301_device::tmp68301_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, TMP68301, "TMP68301", tag, owner, clock, "tmp68301", __FILE__),
@ -78,6 +92,18 @@ tmp68301_device::tmp68301_device(const machine_config &mconfig, const char *tag,
void tmp68301_device::device_config_complete()
{
// inherit a copy of the static data
const tmp68301_interface *intf = reinterpret_cast<const tmp68301_interface *>(static_config());
if (intf != NULL)
*static_cast<tmp68301_interface *>(this) = *intf;
// or defaults to 0 if none provided
else
{
memset(&m_in_parallel_cb, 0, sizeof(m_in_parallel_cb));
memset(&m_out_parallel_cb, 0, sizeof(m_out_parallel_cb));
}
}
//-------------------------------------------------
@ -89,6 +115,9 @@ void tmp68301_device::device_start()
int i;
for (i = 0; i < 3; i++)
m_tmp68301_timer[i] = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tmp68301_device::timer_callback), this));
m_in_parallel_func.resolve(m_in_parallel_cb, *this);
m_out_parallel_func.resolve(m_out_parallel_cb, *this);
}
//-------------------------------------------------

View File

@ -1,8 +1,40 @@
#ifndef TMP68301_H
#define TMP68301_H
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
/* TODO: frequency & hook it up with m68k */
#define MCFG_TMP68301_ADD(_tag, _config) \
MCFG_DEVICE_ADD(_tag, TMP68301, 0) \
MCFG_DEVICE_CONFIG(_config)
#define MCFG_TMP68301_MODIFY(_tag, _config) \
MCFG_DEVICE_MODIFY(_tag) \
MCFG_DEVICE_CONFIG(_config)
#define TMP68301_INTERFACE(name) \
const tmp68301_interface (name) =
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// ======================> mb_vcu_interface
struct tmp68301_interface
{
devcb_read16 m_in_parallel_cb;
devcb_write16 m_out_parallel_cb;
// TODO: serial ports
};
class tmp68301_device : public device_t,
public device_memory_interface
public device_memory_interface,
public tmp68301_interface
{
public:
tmp68301_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@ -23,6 +55,8 @@ public:
DECLARE_WRITE16_MEMBER(iisr_w);
DECLARE_READ16_MEMBER(scr_r);
DECLARE_WRITE16_MEMBER(scr_w);
DECLARE_READ16_MEMBER(pdr_r);
DECLARE_WRITE16_MEMBER(pdr_w);
protected:
// device-level overrides
@ -31,6 +65,8 @@ protected:
virtual void device_reset();
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
devcb_resolved_read16 m_in_parallel_func;
devcb_resolved_write16 m_out_parallel_func;
private:
// internal state
UINT16 m_regs[0x400];
@ -56,7 +92,4 @@ private:
extern const device_type TMP68301;
#define MCFG_TMP68301_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, TMP68301, 0)
#endif

View File

@ -634,6 +634,12 @@ static const z80_daisy_config daisy_chain_sound[] =
{ NULL }
};
static TMP68301_INTERFACE( tmp68301_interface )
{
DEVCB_NULL,
DEVCB_NULL
};
static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
@ -642,7 +648,7 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
MCFG_CPU_PROGRAM_MAP(csplayh5_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", csplayh5_state, csplayh5_irq, "screen", 0, 1)
MCFG_TMP68301_ADD("tmp68301")
MCFG_TMP68301_ADD("tmp68301",tmp68301_interface)
#if USE_H8
MCFG_CPU_ADD("subcpu", H83002, 16000000) /* unknown clock */

View File

@ -23,8 +23,6 @@
/******************************************************************************
Memo:
- TMP68301 emulation is not implemented (machine/m68kfmly.c, .h does nothing).
- niyanpai's 2p start does not mean 2p simultaneous or exchanging play.
Simply uses controls for 2p side.
@ -38,7 +36,7 @@ Memo:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
#include "machine/m68kfmly.h"
#include "machine/tmp68301.h"
#include "machine/z80ctc.h"
#include "includes/nb1413m3.h"
#include "sound/dac.h"
@ -306,15 +304,22 @@ READ16_MEMBER(niyanpai_state::musobana_inputport_0_r)
return (portdata);
}
CUSTOM_INPUT_MEMBER(niyanpai_state::musobana_outcoin_flag_r)
WRITE16_MEMBER(niyanpai_state::tmp68301_parallel_port_w)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
// tmp68301_parallel_interface[0x05]
// bit 0 coin counter
// bit 2 motor on
// bit 3 coin lock
// bit 8-9 video page select?
if (tmp68301_parallel_interface_r(space, 0x0005, 0x00ff) & 0x0004) m_musobana_outcoin_flag ^= 1;
m_motor_on = data & 4;
coin_counter_w(machine(),0,data & 1);
coin_lockout_w(machine(), 0,data & 0x08);
}
CUSTOM_INPUT_MEMBER(niyanpai_state::musobana_outcoin_flag_r)
{
if (m_motor_on) m_musobana_outcoin_flag ^= 1;
else m_musobana_outcoin_flag = 1;
return m_musobana_outcoin_flag & 0x01;
@ -325,14 +330,6 @@ WRITE16_MEMBER(niyanpai_state::musobana_inputport_w)
m_musobana_inputport = data;
}
static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0xfffc00, 0xfffc0f) AM_READWRITE_LEGACY(tmp68301_address_decoder_r,tmp68301_address_decoder_w)
AM_RANGE(0xfffc80, 0xfffc9f) AM_READWRITE_LEGACY(tmp68301_interrupt_controller_r,tmp68301_interrupt_controller_w)
AM_RANGE(0xfffd00, 0xfffd0f) AM_READWRITE_LEGACY(tmp68301_parallel_interface_r,tmp68301_parallel_interface_w)
AM_RANGE(0xfffd80, 0xfffdaf) AM_READWRITE_LEGACY(tmp68301_serial_interface_r,tmp68301_serial_interface_w)
AM_RANGE(0xfffe00, 0xfffe4f) AM_READWRITE_LEGACY(tmp68301_timer_r,tmp68301_timer_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram")
@ -365,7 +362,7 @@ static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x240c00, 0x240c01) AM_WRITE(niyanpai_clutsel_1_w)
AM_RANGE(0x240e00, 0x240e01) AM_WRITE(niyanpai_clutsel_2_w)
AM_IMPORT_FROM( tmp68301_regs )
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state )
@ -403,7 +400,7 @@ static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM( tmp68301_regs )
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state )
@ -443,7 +440,7 @@ static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM( tmp68301_regs )
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
static ADDRESS_MAP_START( zokumahj_map, AS_PROGRAM, 16, niyanpai_state )
@ -482,7 +479,7 @@ static ADDRESS_MAP_START( zokumahj_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM( tmp68301_regs )
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@ -928,7 +925,7 @@ INPUT_PORTS_END
INTERRUPT_GEN_MEMBER(niyanpai_state::niyanpai_interrupt)
{
device.execute().set_input_line_and_vector(1, HOLD_LINE,0x100/4);
m_tmp68301->external_interrupt_0();
}
static const z80_daisy_config daisy_chain_sound[] =
@ -937,6 +934,11 @@ static const z80_daisy_config daisy_chain_sound[] =
{ NULL }
};
static TMP68301_INTERFACE( tmp68301_interface )
{
DEVCB_NULL,
DEVCB_DRIVER_MEMBER16(niyanpai_state,tmp68301_parallel_port_w)
};
static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
@ -945,6 +947,8 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_CPU_PROGRAM_MAP(niyanpai_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", niyanpai_state, niyanpai_interrupt)
MCFG_TMP68301_ADD("tmp68301",tmp68301_interface)
MCFG_CPU_ADD("audiocpu", Z80, 8000000) /* TMPZ84C011, 8.00 MHz */
MCFG_CPU_CONFIG(daisy_chain_sound)
MCFG_CPU_PROGRAM_MAP(niyanpai_sound_map)

View File

@ -172,7 +172,6 @@ static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_SHARE("dsw_select") // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(realbrk_flipscreen_w ) // Hack! Parallel port data register
AM_IMPORT_FROM(base_mem)
ADDRESS_MAP_END
@ -751,6 +750,12 @@ INTERRUPT_GEN_MEMBER(realbrk_state::realbrk_interrupt)
m_tmp68301->external_interrupt_1();
}
static TMP68301_INTERFACE( tmp68301_interface )
{
DEVCB_NULL,
DEVCB_DRIVER_MEMBER16(realbrk_state,realbrk_flipscreen_w)
};
static MACHINE_CONFIG_START( realbrk, realbrk_state )
/* basic machine hardware */
@ -758,7 +763,7 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state )
MCFG_CPU_PROGRAM_MAP(realbrk_mem)
MCFG_CPU_VBLANK_INT_DRIVER("screen", realbrk_state, realbrk_interrupt)
MCFG_TMP68301_ADD("tmp68301")
MCFG_TMP68301_ADD("tmp68301", tmp68301_interface)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -210,7 +210,6 @@ static ADDRESS_MAP_START( gundamex_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks
AM_RANGE(0xfffd0a, 0xfffd0b) AM_READWRITE(gundamex_eeprom_r,gundamex_eeprom_w) // parallel data register
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@ -442,7 +441,6 @@ static ADDRESS_MAP_START( reelquak_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_SHARE("spriteram") // Sprites
AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // Palette
AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_SHARE("vregs") // Video Registers
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(reelquak_leds_w ) // parallel data register (leds)
AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@ -502,7 +500,6 @@ static ADDRESS_MAP_START( samshoot_map, AS_PROGRAM, 16, seta2_state )
AM_RANGE( 0x900000, 0x903fff ) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
AM_RANGE( 0xfffd0a, 0xfffd0b ) AM_READ_PORT("DSW2") // parallel data register (DSW 2)
AM_RANGE( 0xfffc00, 0xffffff ) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
ADDRESS_MAP_END
@ -1990,13 +1987,37 @@ static const x1_010_interface x1_010_sound_intf =
0x0000, /* address */
};
static TMP68301_INTERFACE( tmp68301_default_intf )
{
DEVCB_NULL,
DEVCB_NULL
};
static TMP68301_INTERFACE( tmp68301_gundamex_intf )
{
DEVCB_DRIVER_MEMBER16(seta2_state,gundamex_eeprom_r),
DEVCB_DRIVER_MEMBER16(seta2_state,gundamex_eeprom_w)
};
static TMP68301_INTERFACE( tmp68301_reelquak_intf )
{
DEVCB_NULL,
DEVCB_DRIVER_MEMBER16(seta2_state,reelquak_leds_w)
};
static TMP68301_INTERFACE( tmp68301_samshoot_intf )
{
DEVCB_INPUT_PORT("DSW2"),
DEVCB_NULL
};
static MACHINE_CONFIG_START( seta2, seta2_state )
MCFG_CPU_ADD("maincpu", M68301, XTAL_50MHz/3) // !! TMP68301 !!
MCFG_CPU_PROGRAM_MAP(mj4simai_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt)
MCFG_TMP68301_ADD("tmp68301")
MCFG_TMP68301_ADD("tmp68301", tmp68301_default_intf)
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
@ -2036,6 +2057,8 @@ static MACHINE_CONFIG_DERIVED( gundamex, seta2 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(gundamex_map)
MCFG_TMP68301_MODIFY("tmp68301",tmp68301_gundamex_intf)
MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
// video hardware
@ -2102,6 +2125,8 @@ static MACHINE_CONFIG_DERIVED( reelquak, seta2 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(reelquak_map)
MCFG_TMP68301_MODIFY("tmp68301",tmp68301_reelquak_intf)
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
@ -2118,6 +2143,8 @@ static MACHINE_CONFIG_DERIVED( samshoot, seta2 )
MCFG_CPU_PROGRAM_MAP(samshoot_map)
MCFG_CPU_PERIODIC_INT_DRIVER(seta2_state, samshoot_interrupt, 60)
MCFG_TMP68301_MODIFY("tmp68301",tmp68301_samshoot_intf)
MCFG_NVRAM_ADD_0FILL("nvram")
// video hardware
@ -2240,7 +2267,7 @@ static MACHINE_CONFIG_START( namcostr, seta2_state )
MCFG_CPU_PROGRAM_MAP(namcostr_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", seta2_state, seta2_interrupt)
MCFG_TMP68301_ADD("tmp68301")
MCFG_TMP68301_ADD("tmp68301",tmp68301_reelquak_intf)
// video hardware

View File

@ -1,4 +1,5 @@
#include "sound/dac.h"
#include "machine/tmp68301.h"
#define VRAM_MAX 3
class niyanpai_state : public driver_device
@ -12,6 +13,7 @@ public:
niyanpai_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) ,
m_maincpu(*this, "maincpu"),
m_tmp68301(*this, "tmp68301"),
m_dac1(*this, "dac1"),
m_dac2(*this, "dac2") { }
@ -86,6 +88,8 @@ public:
DECLARE_WRITE16_MEMBER(niyanpai_clutsel_2_w);
DECLARE_CUSTOM_INPUT_MEMBER(musobana_outcoin_flag_r);
DECLARE_DRIVER_INIT(niyanpai);
DECLARE_WRITE16_MEMBER(tmp68301_parallel_port_w);
UINT8 m_motor_on;
virtual void machine_reset();
virtual void video_start();
UINT32 screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@ -99,6 +103,7 @@ public:
void niyanpai_gfxdraw(int vram);
void niyanpai_soundbank_w(int data);
required_device<cpu_device> m_maincpu;
required_device<tmp68301_device> m_tmp68301;
required_device<dac_device> m_dac1;
required_device<dac_device> m_dac2;

View File

@ -1,217 +0,0 @@
/******************************************************************************
TMP68301 support (dummy) driver
Driver by Takahiro Nogi <nogi@kt.rim.or.jp> 2000/12/23 -
******************************************************************************/
/******************************************************************************
Memo:
******************************************************************************/
#include "emu.h"
#include "m68kfmly.h"
#include "cpu/m68000/m68000.h"
#define VERBOSE 0
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
// TMP68301 System Memory Map
//
// 0xFFFC00 - 0xFFFC0F TMP68301 Address decoder
// 0xFFFC80 - 0xFFFC9F TMP68301 Interrupt controller
// 0xFFFD00 - 0xFFFD0F TMP68301 Parallel interface
// 0xFFFD80 - 0xFFFDAF TMP68301 Serial interface
// 0xFFFE00 - 0xFFFE4F TMP68301 Timer
//
// Address decoder
// 15 7
// 0xFFFC00 AMAR0 AAMR0
// 0xFFFC02 - AACR0
// 0xFFFC04 AMAR1 AAMR1
// 0xFFFC06 - AACR1
// 0xFFFC08 - AACR2
// 0xFFFC0A - ATOR
// 0xFFFC0C ARELR
// 0xFFFC0E - -
//
// Interrupt controller
// 15 7
// 0xFFFC80 - ICR0
// 0xFFFC82 - ICR1
// 0xFFFC84 - ICR2
// 0xFFFC86 - ICR3
// 0xFFFC88 - ICR4
// 0xFFFC8A - ICR5
// 0xFFFC8C - ICR6
// 0xFFFC8E - ICR7
// 0xFFFC90 - ICR8
// 0xFFFC92 - ICR9
// 0xFFFC94 IMR
// 0xFFFC96 IPR
// 0xFFFC98 IISR
// 0xFFFC9A - IVNR
// 0xFFFC9C - IEIR
// 0xFFFC9E - -
//
// Parallel interface
// 15 7
// 0xFFFD00 PDIR
// 0xFFFD02 - PCR
// 0xFFFD04 - PSR
// 0xFFFD06 - PCMR
// 0xFFFD08 - PMR
// 0xFFFD0A PDR
// 0xFFFD0C - PPR1
// 0xFFFD0E - PPR2
//
// Serial interface
// 15 7
// 0xFFFD80 - SMR0
// 0xFFFD82 - SCMR0
// 0xFFFD84 - SBRR0
// 0xFFFD86 - SSR0
// 0xFFFD88 - SDR0
// 0xFFFD8A - -
// 0xFFFD8C - SPR
// 0xFFFD8E - SCR
// 0xFFFD90 - SMR1
// 0xFFFD92 - SCMR1
// 0xFFFD94 - SBRR1
// 0xFFFD96 - SSR1
// 0xFFFD98 - SDR1
// 0xFFFD9A - -
// 0xFFFD9C - -
// 0xFFFD9E - -
// 0xFFFDA0 - SMR2
// 0xFFFDA2 - SCMR2
// 0xFFFDA4 - SBRR2
// 0xFFFDA6 - SSR2
// 0xFFFDA8 - SDR2
// 0xFFFDAA - -
// 0xFFFDAC - -
// 0xFFFDAE - -
//
// Timer
// 15 7
// 0xFFFE00 TCR0
// 0xFFFE02 - -
// 0xFFFE04 TMCR0
// 0xFFFE06 - -
// 0xFFFE08 - -
// 0xFFFE0A - -
// 0xFFFE0C TCTR0
// 0xFFFE0E - -
// 0xFFFE10 - -
// 0xFFFE12 - -
// 0xFFFE14 - -
// 0xFFFE16 - -
// 0xFFFE18 - -
// 0xFFFE1A - -
// 0xFFFE1C - -
// 0xFFFE1E - -
// 0xFFFE20 TCR1
// 0xFFFE22 - -
// 0xFFFE24 TMCR11
// 0xFFFE26 - -
// 0xFFFE28 TMCR12
// 0xFFFE2A - -
// 0xFFFE2C TCTR1
// 0xFFFE2E - -
// 0xFFFE30 - -
// 0xFFFE32 - -
// 0xFFFE34 - -
// 0xFFFE36 - -
// 0xFFFE38 - -
// 0xFFFE3A - -
// 0xFFFE3C - -
// 0xFFFE3E - -
// 0xFFFE40 TCR2
// 0xFFFE42 - -
// 0xFFFE44 TMCR21
// 0xFFFE46 - -
// 0xFFFE48 TMCR22
// 0xFFFE4A - -
// 0xFFFE4C TCTR2
// 0xFFFE4E - -
static UINT16 tmp68301_address_decoder[0x10];
static UINT16 tmp68301_interrupt_controller[0x20];
static UINT16 tmp68301_parallel_interface[0x10];
static UINT16 tmp68301_serial_interface[0x30];
static UINT16 tmp68301_timer[0x50];
READ16_HANDLER( tmp68301_address_decoder_r )
{
LOG(("PC %08X: TMP68301_address_decoder_r (%08X)\n", space.device().safe_pc(), (0xfffc00 + (offset * 2))));
return tmp68301_address_decoder[offset];
}
WRITE16_HANDLER( tmp68301_address_decoder_w )
{
LOG(("PC %08X: TMP68301_address_decoder_w (%08X = %04X)\n", space.device().safe_pc(), (0xfffc00 + (offset * 2)), data));
tmp68301_address_decoder[offset] = data;
}
READ16_HANDLER( tmp68301_interrupt_controller_r )
{
LOG(("PC %08X: TMP68301_interrupt_controller_r (%08X)\n", space.device().safe_pc(), (0xfffc80 + (offset * 2))));
return tmp68301_interrupt_controller[offset];
}
WRITE16_HANDLER( tmp68301_interrupt_controller_w )
{
LOG(("PC %08X: TMP68301_interrupt_controller_w (%08X = %04X)\n", space.device().safe_pc(), (0xfffc80 + (offset * 2)), data));
tmp68301_interrupt_controller[offset] = data;
}
READ16_HANDLER( tmp68301_parallel_interface_r )
{
LOG(("PC %08X: TMP68301_parallel_interface_r (%08X)\n", space.device().safe_pc(), (0xfffd00 + (offset * 2))));
return tmp68301_parallel_interface[offset];
}
WRITE16_HANDLER( tmp68301_parallel_interface_w )
{
LOG(("PC %08X: TMP68301_parallel_interface_w (%08X = %04X)\n", space.device().safe_pc(), (0xfffd00 + (offset * 2)), data));
tmp68301_parallel_interface[offset] = data;
}
READ16_HANDLER( tmp68301_serial_interface_r )
{
LOG(("PC %08X: TMP68301_serial_interface_r (%08X)\n", space.device().safe_pc(), (0xfffd80 + (offset * 2))));
return tmp68301_serial_interface[offset];
}
WRITE16_HANDLER( tmp68301_serial_interface_w )
{
LOG(("PC %08X: TMP68301_serial_interface_w (%08X = %04X)\n", space.device().safe_pc(), (0xfffd80 + (offset * 2)), data));
tmp68301_serial_interface[offset] = data;
}
READ16_HANDLER( tmp68301_timer_r )
{
LOG(("PC %08X: TMP68301_timer_r (%08X)\n", space.device().safe_pc(), (0xfffe00 + (offset * 2))));
return tmp68301_timer[offset];
}
WRITE16_HANDLER( tmp68301_timer_w )
{
LOG(("PC %08X: TMP68301_timer_w (%08X = %04X)\n", space.device().safe_pc(), (0xfffe00 + (offset * 2)), data));
tmp68301_timer[offset] = data;
}

View File

@ -1,18 +0,0 @@
/******************************************************************************
TMP68301 support (dummy) driver
Driver by Takahiro Nogi <nogi@kt.rim.or.jp> 2000/12/23 -
******************************************************************************/
ATTR_DEPRECATED DECLARE_READ16_HANDLER( tmp68301_address_decoder_r );
ATTR_DEPRECATED DECLARE_WRITE16_HANDLER( tmp68301_address_decoder_w );
ATTR_DEPRECATED DECLARE_READ16_HANDLER( tmp68301_interrupt_controller_r );
ATTR_DEPRECATED DECLARE_WRITE16_HANDLER( tmp68301_interrupt_controller_w );
ATTR_DEPRECATED DECLARE_READ16_HANDLER( tmp68301_parallel_interface_r );
ATTR_DEPRECATED DECLARE_WRITE16_HANDLER( tmp68301_parallel_interface_w );
ATTR_DEPRECATED DECLARE_READ16_HANDLER( tmp68301_serial_interface_r );
ATTR_DEPRECATED DECLARE_WRITE16_HANDLER( tmp68301_serial_interface_w );
ATTR_DEPRECATED DECLARE_READ16_HANDLER( tmp68301_timer_r );
ATTR_DEPRECATED DECLARE_WRITE16_HANDLER( tmp68301_timer_w );

View File

@ -1394,7 +1394,7 @@ $(MAMEOBJ)/nichibut.a: \
$(DRIVERS)/nbmj8991.o $(VIDEO)/nbmj8991.o \
$(DRIVERS)/nbmj9195.o $(VIDEO)/nbmj9195.o \
$(DRIVERS)/nightgal.o \
$(DRIVERS)/niyanpai.o $(MACHINE)/m68kfmly.o $(VIDEO)/niyanpai.o \
$(DRIVERS)/niyanpai.o $(VIDEO)/niyanpai.o \
$(DRIVERS)/pastelg.o $(VIDEO)/pastelg.o \
$(DRIVERS)/seicross.o $(VIDEO)/seicross.o \
$(DRIVERS)/terracre.o $(VIDEO)/terracre.o \