mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
bus/coco: Added Speech Systems Stereo Composer cartridge. (#7379)
This commit is contained in:
parent
057a384ccf
commit
d37876bd20
@ -3364,32 +3364,34 @@ end
|
||||
---------------------------------------------------
|
||||
if (BUSES["COCO"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/coco/cococart.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/cococart.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_rs232.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_rs232.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dcmodem.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dcmodem.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_orch90.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_orch90.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ram.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ram.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ssc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ssc.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_pak.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_pak.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_fdc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_fdc.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_gmc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_gmc.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_multi.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_multi.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_dwsock.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_orch90.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_orch90.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_pak.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_pak.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_psg.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_psg.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ram.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ram.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_rs232.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_rs232.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ssc.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_ssc.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_stecomp.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_stecomp.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/coco_t4426.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/cococart.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/cococart.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/dragon_amtor.cpp",
|
||||
MAME_DIR .. "src/devices/bus/coco/dragon_amtor.h",
|
||||
MAME_DIR .. "src/devices/bus/coco/dragon_fdc.cpp",
|
||||
|
@ -62,9 +62,10 @@
|
||||
#include "coco_gmc.h"
|
||||
#include "coco_orch90.h"
|
||||
#include "coco_pak.h"
|
||||
#include "coco_ram.h"
|
||||
#include "coco_rs232.h"
|
||||
#include "coco_ssc.h"
|
||||
#include "coco_ram.h"
|
||||
#include "coco_stecomp.h"
|
||||
|
||||
#define SLOT1_TAG "slot1"
|
||||
#define SLOT2_TAG "slot2"
|
||||
@ -161,28 +162,30 @@ namespace
|
||||
|
||||
static void coco_cart_slot1_3(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("dcmodem", COCO_DCMODEM);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("games_master", COCO_PAK_GMC);
|
||||
device.option_add("banked_16k", COCO_PAK_BANKED);
|
||||
device.option_add("dcmodem", COCO_DCMODEM);
|
||||
device.option_add("games_master", COCO_PAK_GMC);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("stecomp", COCO_STEREO_COMPOSER);
|
||||
}
|
||||
static void coco_cart_slot4(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("banked_16k", COCO_PAK_BANKED);
|
||||
device.option_add("cc2hdb1", COCO2_HDB1);
|
||||
device.option_add("cc3hdb1", COCO3_HDB1);
|
||||
device.option_add("fdcv11", COCO_FDC_V11);
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("dcmodem", COCO_DCMODEM);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("fdcv11", COCO_FDC_V11);
|
||||
device.option_add("games_master", COCO_PAK_GMC);
|
||||
device.option_add("banked_16k", COCO_PAK_BANKED);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("stecomp", COCO_STEREO_COMPOSER);
|
||||
}
|
||||
|
||||
|
||||
|
@ -66,10 +66,10 @@ namespace
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
// optional information overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override
|
||||
{
|
||||
@ -108,31 +108,30 @@ namespace
|
||||
required_device<dac_byte_interface> m_ldac;
|
||||
required_device<dac_byte_interface> m_rdac;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACHINE AND ROM DECLARATIONS
|
||||
//**************************************************************************
|
||||
//**************************************************************************
|
||||
// MACHINE AND ROM DECLARATIONS
|
||||
//**************************************************************************
|
||||
|
||||
void coco_orch90_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
DAC_8BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // ls374.ic5 + r7 (8x20k) + r9 (8x10k)
|
||||
DAC_8BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // ls374.ic4 + r6 (8x20k) + r8 (8x10k)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// cts_read
|
||||
//-------------------------------------------------
|
||||
|
||||
u8 coco_orch90_device::cts_read(offs_t offset)
|
||||
{
|
||||
return m_eprom->base()[offset & 0x1fff];
|
||||
}
|
||||
|
||||
void coco_orch90_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
DAC_8BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // ls374.ic5 + r7 (8x20k) + r9 (8x10k)
|
||||
DAC_8BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // ls374.ic4 + r6 (8x20k) + r8 (8x10k)
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// cts_read
|
||||
//-------------------------------------------------
|
||||
|
||||
u8 coco_orch90_device::cts_read(offs_t offset)
|
||||
{
|
||||
return m_eprom->base()[offset & 0x1fff];
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DECLARATION
|
||||
//**************************************************************************
|
||||
|
86
src/devices/bus/coco/coco_stecomp.cpp
Normal file
86
src/devices/bus/coco/coco_stecomp.cpp
Normal file
@ -0,0 +1,86 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:tim lidnner
|
||||
/***************************************************************************
|
||||
|
||||
coco_stecomp.cpp
|
||||
|
||||
|
||||
Code for emulating The Stereo Composer by Speech Systems
|
||||
|
||||
This cartridge is a simple sound cartridge. It had two 8-bit DACs
|
||||
connected thru a PIA. It contained no ROM.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "coco_stecomp.h"
|
||||
#include "cococart.h"
|
||||
|
||||
#include "sound/dac.h"
|
||||
#include "speaker.h"
|
||||
#include "machine/6821pia.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// STEREO_COMPOSER DEVICE CLASS
|
||||
//**************************************************************************
|
||||
|
||||
namespace
|
||||
{
|
||||
// ======================> coco_stereo_composer_device
|
||||
|
||||
class coco_stereo_composer_device :
|
||||
public device_t,
|
||||
public device_cococart_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
coco_stereo_composer_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: device_t(mconfig, COCO_STEREO_COMPOSER, tag, owner, clock)
|
||||
, device_cococart_interface(mconfig, *this)
|
||||
, m_pia(*this, "sc_pia")
|
||||
, m_ldac(*this, "sc_ldac")
|
||||
, m_rdac(*this, "sc_rdac")
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
// optional information overrides
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() override
|
||||
{
|
||||
// install handlers
|
||||
install_readwrite_handler( 0xFF70, 0xFF73, read8sm_delegate(*m_pia, FUNC(pia6821_device::read)), write8sm_delegate(*m_pia, FUNC(pia6821_device::write)));
|
||||
}
|
||||
|
||||
private:
|
||||
// internal state
|
||||
required_device<pia6821_device> m_pia;
|
||||
required_device<dac_byte_interface> m_ldac;
|
||||
required_device<dac_byte_interface> m_rdac;
|
||||
};
|
||||
|
||||
//**************************************************************************
|
||||
// STEREO_COMPOSER MACHINE DECLARATIONS
|
||||
//**************************************************************************
|
||||
|
||||
void coco_stereo_composer_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SPEAKER(config, "sc_lspeaker").front_left();
|
||||
SPEAKER(config, "sc_rspeaker").front_right();
|
||||
DAC_8BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "sc_lspeaker", 0.5);
|
||||
DAC_8BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "sc_rspeaker", 0.5);
|
||||
|
||||
pia6821_device &pia(PIA6821(config, "sc_pia", 0));
|
||||
pia.writepa_handler().set("sc_ldac", FUNC(dac_byte_interface::data_w));
|
||||
pia.writepb_handler().set("sc_rdac", FUNC(dac_byte_interface::data_w));
|
||||
}
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE DECLARATION
|
||||
//**************************************************************************
|
||||
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(COCO_STEREO_COMPOSER, device_cococart_interface, coco_stereo_composer_device, "coco_stereo_composer", "Speech Systems Stereo Composer")
|
13
src/devices/bus/coco/coco_stecomp.h
Normal file
13
src/devices/bus/coco/coco_stecomp.h
Normal file
@ -0,0 +1,13 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:tim lindner
|
||||
#ifndef MAME_BUS_COCO_COCO_STECOMP_H
|
||||
#define MAME_BUS_COCO_COCO_STECOMP_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cococart.h"
|
||||
|
||||
// device type definition
|
||||
DECLARE_DEVICE_TYPE(COCO_STEREO_COMPOSER, device_cococart_interface)
|
||||
|
||||
#endif // MAME_BUS_COCO_COCO_STECOMP_H
|
@ -34,9 +34,10 @@
|
||||
#include "bus/coco/coco_orch90.h"
|
||||
#include "bus/coco/coco_pak.h"
|
||||
#include "bus/coco/coco_psg.h"
|
||||
#include "bus/coco/coco_ram.h"
|
||||
#include "bus/coco/coco_rs232.h"
|
||||
#include "bus/coco/coco_ssc.h"
|
||||
#include "bus/coco/coco_ram.h"
|
||||
#include "bus/coco/coco_stecomp.h"
|
||||
#include "bus/coco/coco_t4426.h"
|
||||
|
||||
#include "cpu/m6809/m6809.h"
|
||||
@ -405,22 +406,23 @@ INPUT_PORTS_END
|
||||
|
||||
void coco_cart(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("fdc", COCO_FDC);
|
||||
device.option_add("fdcv11", COCO_FDC_V11);
|
||||
device.option_add("banked_16k", COCO_PAK_BANKED);
|
||||
device.option_add("cc2hdb1", COCO2_HDB1);
|
||||
device.option_add("cc3hdb1", COCO3_HDB1);
|
||||
device.option_add("cp450_fdc", CP450_FDC);
|
||||
device.option_add("cd6809_fdc", CD6809_FDC);
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("dcmodem", COCO_DCMODEM);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("games_master", COCO_PAK_GMC);
|
||||
device.option_add("banked_16k", COCO_PAK_BANKED);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("multi", COCO_MULTIPAK);
|
||||
device.option_add("ccpsg", COCO_PSG);
|
||||
device.option_add("cd6809_fdc", CD6809_FDC);
|
||||
device.option_add("cp450_fdc", CP450_FDC);
|
||||
device.option_add("dcmodem", COCO_DCMODEM);
|
||||
device.option_add("fdc", COCO_FDC);
|
||||
device.option_add("fdcv11", COCO_FDC_V11);
|
||||
device.option_add("games_master", COCO_PAK_GMC);
|
||||
device.option_add("multi", COCO_MULTIPAK);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("rs232", COCO_RS232);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("stecomp", COCO_STEREO_COMPOSER);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -23,17 +23,18 @@
|
||||
#include "imagedev/floppy.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
|
||||
#include "bus/coco/coco_gmc.h"
|
||||
#include "bus/coco/coco_orch90.h"
|
||||
#include "bus/coco/coco_pak.h"
|
||||
#include "bus/coco/coco_psg.h"
|
||||
#include "bus/coco/coco_ram.h"
|
||||
#include "bus/coco/coco_ssc.h"
|
||||
#include "bus/coco/coco_stecomp.h"
|
||||
#include "bus/coco/dragon_amtor.h"
|
||||
#include "bus/coco/dragon_fdc.h"
|
||||
#include "bus/coco/dragon_jcbsnd.h"
|
||||
#include "bus/coco/dragon_jcbspch.h"
|
||||
#include "bus/coco/dragon_sprites.h"
|
||||
#include "bus/coco/coco_pak.h"
|
||||
#include "bus/coco/coco_ssc.h"
|
||||
#include "bus/coco/coco_ram.h"
|
||||
#include "bus/coco/coco_orch90.h"
|
||||
#include "bus/coco/coco_gmc.h"
|
||||
#include "bus/coco/coco_psg.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -205,19 +206,20 @@ INPUT_PORTS_END
|
||||
|
||||
void dragon_cart(device_slot_interface &device)
|
||||
{
|
||||
device.option_add_internal("amtor", DRAGON_AMTOR);
|
||||
device.option_add("ccpsg", COCO_PSG);
|
||||
device.option_add("dragon_fdc", DRAGON_FDC);
|
||||
device.option_add("premier_fdc", PREMIER_FDC);
|
||||
device.option_add("sdtandy_fdc", SDTANDY_FDC);
|
||||
device.option_add("gmc", COCO_PAK_GMC);
|
||||
device.option_add("jcbsnd", DRAGON_JCBSND);
|
||||
device.option_add("jcbspch", DRAGON_JCBSPCH);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("premier_fdc", PREMIER_FDC);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("sdtandy_fdc", SDTANDY_FDC);
|
||||
device.option_add("sprites", DRAGON_SPRITES);
|
||||
device.option_add("ssc", COCO_SSC);
|
||||
device.option_add("ram", COCO_PAK_RAM);
|
||||
device.option_add("orch90", COCO_ORCH90);
|
||||
device.option_add("gmc", COCO_PAK_GMC);
|
||||
device.option_add("pak", COCO_PAK);
|
||||
device.option_add("ccpsg", COCO_PSG);
|
||||
device.option_add_internal("amtor", DRAGON_AMTOR);
|
||||
device.option_add("stecomp", COCO_STEREO_COMPOSER);
|
||||
}
|
||||
|
||||
FLOPPY_FORMATS_MEMBER( dragon_alpha_state::dragon_formats )
|
||||
|
Loading…
Reference in New Issue
Block a user