mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
40love: use mb14241 device (nw)
This commit is contained in:
parent
22b5b57f86
commit
d361cd89d1
@ -227,6 +227,7 @@ Notes - Has jumper setting for 122HZ or 61HZ)
|
||||
#include "cpu/m6805/m6805.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/input_merger.h"
|
||||
#include "machine/mb14241.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "screen.h"
|
||||
@ -252,14 +253,6 @@ void fortyl_state::bank_select_w(uint8_t data)
|
||||
membank("bank1")->set_entry(data & 1);
|
||||
}
|
||||
|
||||
void fortyl_state::pix1_w(uint8_t data)
|
||||
{
|
||||
// if (data > 7)
|
||||
// logerror("pix1 = %2x\n", data);
|
||||
|
||||
m_pix1 = data;
|
||||
}
|
||||
|
||||
uint8_t fortyl_state::fortyl_mcu_status_r()
|
||||
{
|
||||
// bit 0 = when 1, MCU is ready to receive data from main CPU
|
||||
@ -269,40 +262,6 @@ uint8_t fortyl_state::fortyl_mcu_status_r()
|
||||
((CLEAR_LINE != m_bmcu->mcu_semaphore_r()) ? 0x02 : 0x00);
|
||||
}
|
||||
|
||||
void fortyl_state::pix1_mcu_w(uint8_t data)
|
||||
{
|
||||
// if (data > 7)
|
||||
// logerror("pix1 = %2x\n", data);
|
||||
|
||||
m_pix1 = data;
|
||||
}
|
||||
|
||||
void fortyl_state::pix2_w(uint8_t data)
|
||||
{
|
||||
// if ((data!=0x00) && (data != 0xff))
|
||||
// logerror("pix2 = %2x\n", data);
|
||||
|
||||
m_pix2[0] = m_pix2[1];
|
||||
m_pix2[1] = data;
|
||||
}
|
||||
|
||||
#if 0
|
||||
uint8_t fortyl_state::pix1_r()
|
||||
{
|
||||
return m_pix1;
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t fortyl_state::pix2_r()
|
||||
{
|
||||
int res;
|
||||
int d1 = m_pix1 & 7;
|
||||
|
||||
res = (((m_pix2[1] << (d1 + 8)) | (m_pix2[0] << d1)) & 0xff00) >> 8;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
@ -331,9 +290,9 @@ void fortyl_state::_40love_map(address_map &map)
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0x87ff).ram(); /* M5517P on main board */
|
||||
map(0x8800, 0x8800).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w));
|
||||
map(0x8801, 0x8801).rw(FUNC(fortyl_state::fortyl_mcu_status_r), FUNC(fortyl_state::pix1_mcu_w)); //pixel layer related
|
||||
map(0x8801, 0x8801).r(FUNC(fortyl_state::fortyl_mcu_status_r)).w("mb14241", FUNC(mb14241_device::shift_count_w)); //pixel layer related
|
||||
map(0x8802, 0x8802).w(FUNC(fortyl_state::bank_select_w));
|
||||
map(0x8803, 0x8803).rw(FUNC(fortyl_state::pix2_r), FUNC(fortyl_state::pix2_w)); //pixel layer related
|
||||
map(0x8803, 0x8803).r("mb14241", FUNC(mb14241_device::shift_result_r)).w("mb14241", FUNC(mb14241_device::shift_data_w)); //pixel layer related
|
||||
map(0x8804, 0x8804).r(m_soundlatch2, FUNC(generic_latch_8_device::read));
|
||||
map(0x8804, 0x8804).w("soundlatch", FUNC(generic_latch_8_device::write));
|
||||
map(0x8805, 0x8805).r(FUNC(fortyl_state::snd_flag_r)).nopw(); /*sound_reset*/ //????
|
||||
@ -360,9 +319,9 @@ void fortyl_state::undoukai_map(address_map &map)
|
||||
map(0x8000, 0x9fff).bankr("bank1");
|
||||
map(0xa000, 0xa7ff).ram().share("mcu_ram"); /* M5517P on main board */
|
||||
map(0xa800, 0xa800).rw(m_bmcu, FUNC(taito68705_mcu_device::data_r), FUNC(taito68705_mcu_device::data_w));
|
||||
map(0xa801, 0xa801).rw(FUNC(fortyl_state::fortyl_mcu_status_r), FUNC(fortyl_state::pix1_w)); //pixel layer related
|
||||
map(0xa801, 0xa801).r(FUNC(fortyl_state::fortyl_mcu_status_r)).w("mb14241", FUNC(mb14241_device::shift_count_w)); //pixel layer related
|
||||
map(0xa802, 0xa802).w(FUNC(fortyl_state::bank_select_w));
|
||||
map(0xa803, 0xa803).rw(FUNC(fortyl_state::pix2_r), FUNC(fortyl_state::pix2_w)); //pixel layer related
|
||||
map(0xa803, 0xa803).r("mb14241", FUNC(mb14241_device::shift_result_r)).w("mb14241", FUNC(mb14241_device::shift_data_w)); //pixel layer related
|
||||
map(0xa804, 0xa804).r(m_soundlatch2, FUNC(generic_latch_8_device::read));
|
||||
map(0xa804, 0xa804).w("soundlatch", FUNC(generic_latch_8_device::write));
|
||||
map(0xa805, 0xa805).r(FUNC(fortyl_state::snd_flag_r)).nopw(); /*sound_reset*/ //????
|
||||
@ -644,10 +603,9 @@ GFXDECODE_END
|
||||
void fortyl_state::machine_start()
|
||||
{
|
||||
/* video */
|
||||
save_item(NAME(m_pix1));
|
||||
save_item(NAME(m_pix2));
|
||||
save_item(NAME(m_color_bank));
|
||||
save_item(NAME(m_screen_disable));
|
||||
|
||||
/* sound */
|
||||
save_item(NAME(m_vol_ctrl));
|
||||
save_item(NAME(m_snd_ctrl0));
|
||||
@ -660,9 +618,6 @@ void fortyl_state::machine_start()
|
||||
void fortyl_state::machine_reset()
|
||||
{
|
||||
/* video */
|
||||
m_pix1 = 0;
|
||||
m_pix2[0] = 0;
|
||||
m_pix2[1] = 0;
|
||||
m_color_bank = false;
|
||||
|
||||
/* sound */
|
||||
@ -683,7 +638,6 @@ void fortyl_state::common(machine_config &config)
|
||||
m_audiocpu->set_periodic_int(FUNC(fortyl_state::irq0_line_hold), attotime::from_hz(2*60)); /* source/number of IRQs is unknown */
|
||||
|
||||
GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set("soundnmi", FUNC(input_merger_device::in_w<0>));
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch2);
|
||||
|
||||
INPUT_MERGER_ALL_HIGH(config, "soundnmi").output_handler().set_inputline("audiocpu", INPUT_LINE_NMI);
|
||||
@ -692,6 +646,8 @@ void fortyl_state::common(machine_config &config)
|
||||
|
||||
config.set_maximum_quantum(attotime::from_hz(6000)); /* high interleave to ensure proper synchronization of CPUs */
|
||||
|
||||
MB14241(config, "mb14241");
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
|
@ -58,9 +58,6 @@ private:
|
||||
virtual void video_start() override;
|
||||
|
||||
void bank_select_w(uint8_t data);
|
||||
void pix1_w(uint8_t data);
|
||||
void pix2_w(uint8_t data);
|
||||
uint8_t pix2_r();
|
||||
uint8_t snd_flag_r();
|
||||
uint8_t fortyl_mcu_status_r();
|
||||
void fortyl_pixram_sel_w(uint8_t data);
|
||||
@ -70,7 +67,6 @@ private:
|
||||
uint8_t fortyl_bg_videoram_r(offs_t offset);
|
||||
void fortyl_bg_colorram_w(offs_t offset, uint8_t data);
|
||||
uint8_t fortyl_bg_colorram_r(offs_t offset);
|
||||
void pix1_mcu_w(uint8_t data);
|
||||
void sound_control_0_w(uint8_t data);
|
||||
void sound_control_1_w(uint8_t data);
|
||||
void sound_control_2_w(uint8_t data);
|
||||
@ -113,8 +109,6 @@ private:
|
||||
|
||||
/* misc */
|
||||
int m_pix_color[4];
|
||||
uint8_t m_pix1;
|
||||
uint8_t m_pix2[2];
|
||||
int m_vol_ctrl[16];
|
||||
uint8_t m_snd_ctrl0;
|
||||
uint8_t m_snd_ctrl1;
|
||||
|
Loading…
Reference in New Issue
Block a user