mirror of
https://github.com/holub/mame
synced 2025-06-30 07:58:56 +03:00
(MESS) rmnimbus: reduced tagmap lookups. nw.
This commit is contained in:
parent
91b0b7d6c1
commit
cf2556e193
@ -12,6 +12,7 @@
|
|||||||
#include "machine/6522via.h"
|
#include "machine/6522via.h"
|
||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
|
#include "sound/msm5205.h"
|
||||||
|
|
||||||
#define MAINCPU_TAG "maincpu"
|
#define MAINCPU_TAG "maincpu"
|
||||||
#define IOCPU_TAG "iocpu"
|
#define IOCPU_TAG "iocpu"
|
||||||
@ -394,14 +395,20 @@ class rmnimbus_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
rmnimbus_state(const machine_config &mconfig, device_type type, const char *tag)
|
rmnimbus_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_scsibus(*this, SCSIBUS_TAG ":host"),
|
|
||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_ram(*this, RAM_TAG),
|
m_msm(*this, MSM5205_TAG),
|
||||||
m_ay8910(*this, AY8910_TAG)
|
m_ay8910(*this, AY8910_TAG),
|
||||||
|
m_scsibus(*this, SCSIBUS_TAG ":host"),
|
||||||
|
m_ram(*this, RAM_TAG)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<msm5205_device> m_msm;
|
||||||
|
required_device<ay8910_device> m_ay8910;
|
||||||
required_device<scsicb_device> m_scsibus;
|
required_device<scsicb_device> m_scsibus;
|
||||||
|
required_device<ram_device> m_ram;
|
||||||
|
|
||||||
UINT32 m_debug_machine;
|
UINT32 m_debug_machine;
|
||||||
i186_state m_i186;
|
i186_state m_i186;
|
||||||
keyboard_t m_keyboard;
|
keyboard_t m_keyboard;
|
||||||
@ -473,9 +480,6 @@ public:
|
|||||||
DECLARE_WRITE_LINE_MEMBER(nimbus_scsi_req_w);
|
DECLARE_WRITE_LINE_MEMBER(nimbus_scsi_req_w);
|
||||||
void nimbus_scsi_linechange( UINT8 mask, UINT8 state );
|
void nimbus_scsi_linechange( UINT8 mask, UINT8 state );
|
||||||
IRQ_CALLBACK_MEMBER(int_callback);
|
IRQ_CALLBACK_MEMBER(int_callback);
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_device<ram_device> m_ram;
|
|
||||||
required_device<ay8910_device> m_ay8910;
|
|
||||||
UINT8 get_pixel(UINT16 x, UINT16 y);
|
UINT8 get_pixel(UINT16 x, UINT16 y);
|
||||||
UINT16 read_pixel_line(UINT16 x, UINT16 y, UINT8 width);
|
UINT16 read_pixel_line(UINT16 x, UINT16 y, UINT8 width);
|
||||||
UINT16 read_pixel_data(UINT16 x, UINT16 y);
|
UINT16 read_pixel_data(UINT16 x, UINT16 y);
|
||||||
|
@ -68,7 +68,6 @@ chdman createhd -o ST125N.chd -chs 407,4,26 -ss 512
|
|||||||
#include "machine/ctronics.h"
|
#include "machine/ctronics.h"
|
||||||
#include "machine/6522via.h"
|
#include "machine/6522via.h"
|
||||||
#include "machine/scsibus.h"
|
#include "machine/scsibus.h"
|
||||||
#include "sound/msm5205.h"
|
|
||||||
|
|
||||||
#include "includes/rmnimbus.h"
|
#include "includes/rmnimbus.h"
|
||||||
|
|
||||||
@ -2671,7 +2670,6 @@ READ8_MEMBER(rmnimbus_state::nimbus_iou_r)
|
|||||||
WRITE8_MEMBER(rmnimbus_state::nimbus_iou_w)
|
WRITE8_MEMBER(rmnimbus_state::nimbus_iou_w)
|
||||||
{
|
{
|
||||||
int pc=space.device().safe_pc();
|
int pc=space.device().safe_pc();
|
||||||
msm5205_device *msm5205 = machine().device<msm5205_device>(MSM5205_TAG);
|
|
||||||
|
|
||||||
if(LOG_IOU)
|
if(LOG_IOU)
|
||||||
logerror("Nimbus IOUW %08X write of %02X to %04X\n",pc,data,(offset*2)+0x92);
|
logerror("Nimbus IOUW %08X write of %02X to %04X\n",pc,data,(offset*2)+0x92);
|
||||||
@ -2679,7 +2677,7 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_iou_w)
|
|||||||
if(offset==0)
|
if(offset==0)
|
||||||
{
|
{
|
||||||
m_iou_reg092=data;
|
m_iou_reg092=data;
|
||||||
msm5205->reset_w((data & MSM5205_INT_ENABLE) ? 0 : 1);
|
m_msm->reset_w((data & MSM5205_INT_ENABLE) ? 0 : 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2704,14 +2702,11 @@ void rmnimbus_state::iou_reset()
|
|||||||
|
|
||||||
void rmnimbus_state::rmni_sound_reset()
|
void rmnimbus_state::rmni_sound_reset()
|
||||||
{
|
{
|
||||||
//device_t *ay8910 = machine().device(AY8910_TAG);
|
//m_ay8910->reset();
|
||||||
msm5205_device *msm5205 = machine().device<msm5205_device>(MSM5205_TAG);
|
m_msm->reset_w(1);
|
||||||
|
|
||||||
//ay8910->reset();
|
|
||||||
msm5205->reset_w(1);
|
|
||||||
|
|
||||||
m_last_playmode = MSM5205_S48_4B;
|
m_last_playmode = MSM5205_S48_4B;
|
||||||
msm5205->playmode_w(m_last_playmode);
|
m_msm->playmode_w(m_last_playmode);
|
||||||
|
|
||||||
m_ay8910_a=0;
|
m_ay8910_a=0;
|
||||||
}
|
}
|
||||||
@ -2743,9 +2738,7 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_w)
|
|||||||
|
|
||||||
WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_porta_w)
|
WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_porta_w)
|
||||||
{
|
{
|
||||||
msm5205_device *msm5205 = machine().device<msm5205_device>(MSM5205_TAG);
|
m_msm->data_w(data);
|
||||||
|
|
||||||
msm5205->data_w(data);
|
|
||||||
|
|
||||||
// Mouse code needs a copy of this.
|
// Mouse code needs a copy of this.
|
||||||
m_ay8910_a=data;
|
m_ay8910_a=data;
|
||||||
@ -2753,12 +2746,10 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_porta_w)
|
|||||||
|
|
||||||
WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_portb_w)
|
WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_portb_w)
|
||||||
{
|
{
|
||||||
msm5205_device *msm5205 = machine().device<msm5205_device>(MSM5205_TAG);
|
|
||||||
|
|
||||||
if ((data & 0x07) != m_last_playmode)
|
if ((data & 0x07) != m_last_playmode)
|
||||||
{
|
{
|
||||||
m_last_playmode = (data & 0x07);
|
m_last_playmode = (data & 0x07);
|
||||||
msm5205->playmode_w(m_last_playmode);
|
m_msm->playmode_w(m_last_playmode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user