mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
s220, s550: Add BU3905 skeleton (nw)
This commit is contained in:
parent
2a755734ef
commit
31ccd34584
@ -3323,6 +3323,8 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/roland_tr606.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_tr707.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/roland_u20.cpp",
|
||||
MAME_DIR .. "src/mame/audio/bu3905.cpp",
|
||||
MAME_DIR .. "src/mame/audio/bu3905.h",
|
||||
MAME_DIR .. "src/mame/audio/jx8p_synth.cpp",
|
||||
MAME_DIR .. "src/mame/audio/jx8p_synth.h",
|
||||
MAME_DIR .. "src/mame/machine/mb62h195.cpp",
|
||||
|
31
src/mame/audio/bu3905.cpp
Normal file
31
src/mame/audio/bu3905.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/****************************************************************************
|
||||
|
||||
Skeleton device for Roland BU3905 output assigner gate array.
|
||||
|
||||
This 42-pin IC has Roland part number 15229873. Most of its outputs
|
||||
are used to control analog switches. The CE0 and XRST inputs are
|
||||
normally tied to Vcc.
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "bu3905.h"
|
||||
|
||||
// device type definition
|
||||
DEFINE_DEVICE_TYPE(BU3905, bu3905_device, "bu3905", "Roland BU3905S R11-0006 Output Assigner")
|
||||
|
||||
bu3905_device::bu3905_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, BU3905, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void bu3905_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
void bu3905_device::write(offs_t offset, u8 data)
|
||||
{
|
||||
logerror("%s: Writing %02X to offset %X\n", machine().describe_context(), data, offset & 0xf);
|
||||
}
|
56
src/mame/audio/bu3905.h
Normal file
56
src/mame/audio/bu3905.h
Normal file
@ -0,0 +1,56 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:AJR
|
||||
/****************************************************************************
|
||||
_____ _____
|
||||
XCE2 1 |* \_/ | 42 VDD
|
||||
XCE1 2 | | 41 Q7
|
||||
CE0 3 | | 40 Q6
|
||||
D7 4 | | 39 Q5
|
||||
D6 5 | | 38 Q4
|
||||
D5 6 | | 37 Q3
|
||||
D4 7 | | 36 Q2
|
||||
D3 8 | | 35 Q1
|
||||
D2 9 | | 34 Q0
|
||||
D1 10 | | 33 XQ7
|
||||
NC 11 | BU3905S | 32 NC
|
||||
D0 12 | | 31 XQ6
|
||||
A3 13 | | 30 XQ5
|
||||
A2 14 | | 29 XQ4
|
||||
A1 15 | | 28 XQ3
|
||||
A0 16 | | 27 XQ2
|
||||
CH0 17 | | 26 XQ1
|
||||
CH1 18 | | 25 XQ0
|
||||
CH2 19 | | 24 AXO
|
||||
XEN 20 | | 23 AXI
|
||||
GND 21 |_____________| 22 XRST
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef MAME_AUDIO_BU3905_H
|
||||
#define MAME_AUDIO_BU3905_H
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> bu3905_device
|
||||
|
||||
class bu3905_device : public device_t
|
||||
{
|
||||
public: // construction/destruction
|
||||
bu3905_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
|
||||
|
||||
void write(offs_t offset, u8 data);
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
};
|
||||
|
||||
// device type declaration
|
||||
DECLARE_DEVICE_TYPE(BU3905, bu3905_device)
|
||||
|
||||
#endif // MAME_AUDIO_BU3905_H
|
@ -11,6 +11,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "audio/bu3905.h"
|
||||
//#include "bus/midi/midi.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
#include "machine/i8251.h"
|
||||
@ -66,6 +67,7 @@ class roland_s220_state : public roland_s10_state
|
||||
public:
|
||||
roland_s220_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: roland_s10_state(mconfig, type, tag)
|
||||
, m_outctrl(*this, "outctrl")
|
||||
{
|
||||
}
|
||||
|
||||
@ -80,6 +82,8 @@ private:
|
||||
void led_latch2_w(u8 data);
|
||||
|
||||
void s220_ext_map(address_map &map);
|
||||
|
||||
required_device<bu3905_device> m_outctrl;
|
||||
};
|
||||
|
||||
|
||||
@ -136,6 +140,7 @@ void roland_s10_state::led_latch_w(u8 data)
|
||||
|
||||
void roland_s220_state::output_control_w(offs_t offset, u8 data)
|
||||
{
|
||||
m_outctrl->write(offset, data & 0x0f);
|
||||
}
|
||||
|
||||
void roland_s220_state::vca_cv_w(offs_t offset, u8 data)
|
||||
@ -276,6 +281,8 @@ void roland_s220_state::s220(machine_config &config)
|
||||
subdevice<screen_device>("screen")->set_size(6*16, 8*2);
|
||||
subdevice<screen_device>("screen")->set_visarea_full();
|
||||
m_lcdc->set_pixel_update_cb(FUNC(roland_s220_state::lcd_pixel_update));
|
||||
|
||||
BU3905(config, m_outctrl);
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "audio/bu3905.h"
|
||||
//#include "bus/midi/midi.h"
|
||||
#include "cpu/mcs96/i8x9x.h"
|
||||
#include "imagedev/floppy.h"
|
||||
@ -199,6 +200,9 @@ void roland_s50_state::s550_io_map(address_map &map)
|
||||
map(0x1000, 0x1000).r(m_vdp, FUNC(tms3556_device::vram_r));
|
||||
map(0x1002, 0x1002).rw(m_vdp, FUNC(tms3556_device::initptr_r), FUNC(tms3556_device::vram_w));
|
||||
map(0x1004, 0x1004).rw(m_vdp, FUNC(tms3556_device::reg_r), FUNC(tms3556_device::reg_w));
|
||||
//map(0x1800, 0x181f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff);
|
||||
map(0x2800, 0x281f).w("outas", FUNC(bu3905_device::write)).umask16(0x00ff);
|
||||
//map(0x3800, 0x381f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
|
||||
//map(0x0000, 0x3fff).rw(m_wave, FUNC(rf5c16_device::read), FUNC(rf5c16_device::write)).umask16(0xff00);
|
||||
}
|
||||
|
||||
@ -212,7 +216,7 @@ void roland_w30_state::w30_mem_map(address_map &map)
|
||||
map(0xc600, 0xc600).rw(FUNC(roland_w30_state::psram_bank_r), FUNC(roland_w30_state::psram_bank_w));
|
||||
map(0xc800, 0xc807).rw(m_fdc, FUNC(wd1772_device::read), FUNC(wd1772_device::write)).umask16(0x00ff);
|
||||
map(0xd806, 0xd806).r(FUNC(roland_w30_state::unknown_status_r));
|
||||
//map(0xe000, 0xe01f).rw("scsic", FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
|
||||
//map(0xe000, 0xe01f).rw(m_scsic, FUNC(mb89352_device::read), FUNC(mb89352_device::write)).umask16(0x00ff);
|
||||
map(0xe400, 0xe403).rw("lcd", FUNC(lm24014h_device::read), FUNC(lm24014h_device::write)).umask16(0x00ff);
|
||||
//map(0xe800, 0xe83f).w("output", FUNC(upd65006gf_376_3b8_device::write)).umask16(0x00ff);
|
||||
//map(0xf000, 0xf01f).rw(m_tvf, FUNC(mb654419u_device::read), FUNC(mb654419u_device::write)).umask16(0x00ff);
|
||||
@ -336,6 +340,13 @@ void roland_s50_state::s550(machine_config &config)
|
||||
//UPD7537(config.device_replace(), "fipcpu", 400_kHz_XTAL);
|
||||
|
||||
config.device_remove("keyscan");
|
||||
|
||||
//MB89352(config, m_scsic, 8_MHz_XTAL); // on Option Board
|
||||
//m_scsic->intr_callback().set_inputline(m_maincpu, i8x9x_device::EXTINT_LINE);
|
||||
|
||||
BU3905(config, "outas");
|
||||
|
||||
//MB654419U(config, m_tvf, 20_MHz_XTAL);
|
||||
}
|
||||
|
||||
void roland_w30_state::w30(machine_config &config)
|
||||
@ -365,7 +376,7 @@ void roland_w30_state::w30(machine_config &config)
|
||||
// Floppy unit: FX-354 (307F1JC)
|
||||
FLOPPY_CONNECTOR(config, m_floppy, s50_floppies, "35dd", floppy_image_device::default_floppy_formats).enable_sound(true);
|
||||
|
||||
//MB89352(config, "scsic", 8_MHz_XTAL); // by option
|
||||
//MB89352(config, m_scsic, 8_MHz_XTAL); // by option
|
||||
|
||||
LM24014H(config, "lcd"); // LCD unit: LM240142
|
||||
|
||||
@ -423,7 +434,7 @@ void roland_w30_state::s330(machine_config &config)
|
||||
//R15229874(config, m_wave, 26.88_MHz_XTAL);
|
||||
//m_wave->int_callback().set_inputline(m_maincpu, i8x9x_device::HSI0_LINE);
|
||||
|
||||
//BU3905S(config, "output");
|
||||
BU3905(config, "outas");
|
||||
|
||||
//MB654419U(config, m_tvf, 20_MHz_XTAL);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user