mirror of
https://github.com/holub/mame
synced 2025-06-29 15:38:53 +03:00
(MESS) abc80: Added cassette sound. [Curt Coder]
This commit is contained in:
parent
6bd93dc2c9
commit
c8f822f7c5
@ -79,17 +79,6 @@ Notes:
|
|||||||
|
|
||||||
#include "includes/abc80.h"
|
#include "includes/abc80.h"
|
||||||
|
|
||||||
#define KEYBOARD_TAG "keyboard"
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// MACROS / CONSTANTS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
#define MMU_XM 0x01
|
|
||||||
#define MMU_ROM 0x02
|
|
||||||
#define MMU_VRAMS 0x04
|
|
||||||
#define MMU_RAM 0x08
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -395,6 +384,14 @@ WRITE8_MEMBER( abc80_state::kbd_w )
|
|||||||
timer_set(attotime::from_msec(50), TIMER_ID_FAKE_KEYBOARD_CLEAR);
|
timer_set(attotime::from_msec(50), TIMER_ID_FAKE_KEYBOARD_CLEAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DEVICE_INPUT_DEFAULTS_START( abc830_slow )
|
||||||
|
DEVICE_INPUT_DEFAULTS("SW1", 0x0f, 0x03)
|
||||||
|
DEVICE_INPUT_DEFAULTS("S1", 0x01, 0x01)
|
||||||
|
DEVICE_INPUT_DEFAULTS_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// MACHINE INITIALIZATION
|
// MACHINE INITIALIZATION
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -476,11 +473,6 @@ void abc80_state::machine_start()
|
|||||||
// MACHINE DRIVERS
|
// MACHINE DRIVERS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
DEVICE_INPUT_DEFAULTS_START( abc830_slow )
|
|
||||||
DEVICE_INPUT_DEFAULTS("SW1", 0x0f, 0x03)
|
|
||||||
DEVICE_INPUT_DEFAULTS("S1", 0x01, 0x01)
|
|
||||||
DEVICE_INPUT_DEFAULTS_END
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// MACHINE_CONFIG( abc80 )
|
// MACHINE_CONFIG( abc80 )
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
@ -509,6 +501,9 @@ static MACHINE_CONFIG_START( abc80, abc80_state )
|
|||||||
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(330)) // oneshot caps + res: C53 0.1u - R25 330k
|
MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(330)) // oneshot caps + res: C53 0.1u - R25 330k
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||||
|
|
||||||
|
MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG)
|
||||||
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||||
|
|
||||||
// devices
|
// devices
|
||||||
MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_11_9808MHz/2/2)
|
MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_11_9808MHz/2/2)
|
||||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
|
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
|
||||||
@ -516,8 +511,8 @@ static MACHINE_CONFIG_START( abc80, abc80_state )
|
|||||||
MCFG_Z80PIO_IN_PB_CB(READ8(abc80_state, pio_pb_r))
|
MCFG_Z80PIO_IN_PB_CB(READ8(abc80_state, pio_pb_r))
|
||||||
MCFG_Z80PIO_OUT_PB_CB(WRITE8(abc80_state, pio_pb_w))
|
MCFG_Z80PIO_OUT_PB_CB(WRITE8(abc80_state, pio_pb_w))
|
||||||
|
|
||||||
MCFG_CASSETTE_ADD("cassette")
|
MCFG_CASSETTE_ADD(CASSETTE_TAG)
|
||||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
|
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
|
||||||
MCFG_CASSETTE_INTERFACE("abc80_cass")
|
MCFG_CASSETTE_INTERFACE("abc80_cass")
|
||||||
|
|
||||||
MCFG_DEVICE_ADD(ABC80_KEYBOARD_TAG, ABC80_KEYBOARD, 0)
|
MCFG_DEVICE_ADD(ABC80_KEYBOARD_TAG, ABC80_KEYBOARD, 0)
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
#include "machine/z80pio.h"
|
#include "machine/z80pio.h"
|
||||||
#include "sound/sn76477.h"
|
#include "sound/sn76477.h"
|
||||||
|
#include "sound/wave.h"
|
||||||
|
|
||||||
#define ABC80_HTOTAL 384
|
#define ABC80_HTOTAL 384
|
||||||
#define ABC80_HBEND 35
|
#define ABC80_HBEND 35
|
||||||
@ -56,32 +57,34 @@
|
|||||||
#define Z80PIO_TAG "cd67"
|
#define Z80PIO_TAG "cd67"
|
||||||
#define SN76477_TAG "g8"
|
#define SN76477_TAG "g8"
|
||||||
#define RS232_TAG "ser"
|
#define RS232_TAG "ser"
|
||||||
|
#define CASSETTE_TAG "cassette"
|
||||||
|
#define KEYBOARD_TAG "keyboard"
|
||||||
#define TIMER_CASSETTE_TAG "cass"
|
#define TIMER_CASSETTE_TAG "cass"
|
||||||
|
|
||||||
class abc80_state : public driver_device
|
class abc80_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
abc80_state(const machine_config &mconfig, device_type type, const char *tag)
|
abc80_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
: driver_device(mconfig, type, tag),
|
driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, Z80_TAG),
|
m_maincpu(*this, Z80_TAG),
|
||||||
m_pio(*this, Z80PIO_TAG),
|
m_pio(*this, Z80PIO_TAG),
|
||||||
m_psg(*this, SN76477_TAG),
|
m_psg(*this, SN76477_TAG),
|
||||||
m_cassette(*this, "cassette"),
|
m_cassette(*this, "cassette"),
|
||||||
m_bus(*this, ABCBUS_TAG),
|
m_bus(*this, ABCBUS_TAG),
|
||||||
m_kb(*this, ABC80_KEYBOARD_TAG),
|
m_kb(*this, ABC80_KEYBOARD_TAG),
|
||||||
m_ram(*this, RAM_TAG),
|
m_ram(*this, RAM_TAG),
|
||||||
m_rs232(*this, RS232_TAG),
|
m_rs232(*this, RS232_TAG),
|
||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_rom(*this, Z80_TAG),
|
m_rom(*this, Z80_TAG),
|
||||||
m_mmu_rom(*this, "mmu"),
|
m_mmu_rom(*this, "mmu"),
|
||||||
m_char_rom(*this, "chargen"),
|
m_char_rom(*this, "chargen"),
|
||||||
m_hsync_prom(*this, "hsync"),
|
m_hsync_prom(*this, "hsync"),
|
||||||
m_vsync_prom(*this, "vsync"),
|
m_vsync_prom(*this, "vsync"),
|
||||||
m_line_prom(*this, "line"),
|
m_line_prom(*this, "line"),
|
||||||
m_attr_prom(*this, "attr"),
|
m_attr_prom(*this, "attr"),
|
||||||
m_video_ram(*this, "video_ram"),
|
m_video_ram(*this, "video_ram"),
|
||||||
m_tape_in(1),
|
m_tape_in(1),
|
||||||
m_tape_in_latch(1)
|
m_tape_in_latch(1)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
@ -133,6 +136,14 @@ public:
|
|||||||
DECLARE_WRITE_LINE_MEMBER( keydown_w );
|
DECLARE_WRITE_LINE_MEMBER( keydown_w );
|
||||||
DECLARE_WRITE8_MEMBER( kbd_w );
|
DECLARE_WRITE8_MEMBER( kbd_w );
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
MMU_XM = 0x01,
|
||||||
|
MMU_ROM = 0x02,
|
||||||
|
MMU_VRAMS = 0x04,
|
||||||
|
MMU_RAM = 0x08
|
||||||
|
};
|
||||||
|
|
||||||
// keyboard state
|
// keyboard state
|
||||||
int m_key_data;
|
int m_key_data;
|
||||||
int m_key_strobe;
|
int m_key_strobe;
|
||||||
|
Loading…
Reference in New Issue
Block a user