mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +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"
|
||||
|
||||
#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);
|
||||
}
|
||||
|
||||
|
||||
DEVICE_INPUT_DEFAULTS_START( abc830_slow )
|
||||
DEVICE_INPUT_DEFAULTS("SW1", 0x0f, 0x03)
|
||||
DEVICE_INPUT_DEFAULTS("S1", 0x01, 0x01)
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACHINE INITIALIZATION
|
||||
//**************************************************************************
|
||||
@ -476,11 +473,6 @@ void abc80_state::machine_start()
|
||||
// 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 )
|
||||
//-------------------------------------------------
|
||||
@ -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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
MCFG_SOUND_WAVE_ADD(WAVE_TAG, CASSETTE_TAG)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
|
||||
// devices
|
||||
MCFG_DEVICE_ADD(Z80PIO_TAG, Z80PIO, XTAL_11_9808MHz/2/2)
|
||||
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_OUT_PB_CB(WRITE8(abc80_state, pio_pb_w))
|
||||
|
||||
MCFG_CASSETTE_ADD("cassette")
|
||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)
|
||||
MCFG_CASSETTE_ADD(CASSETTE_TAG)
|
||||
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED)
|
||||
MCFG_CASSETTE_INTERFACE("abc80_cass")
|
||||
|
||||
MCFG_DEVICE_ADD(ABC80_KEYBOARD_TAG, ABC80_KEYBOARD, 0)
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "machine/ram.h"
|
||||
#include "machine/z80pio.h"
|
||||
#include "sound/sn76477.h"
|
||||
#include "sound/wave.h"
|
||||
|
||||
#define ABC80_HTOTAL 384
|
||||
#define ABC80_HBEND 35
|
||||
@ -56,32 +57,34 @@
|
||||
#define Z80PIO_TAG "cd67"
|
||||
#define SN76477_TAG "g8"
|
||||
#define RS232_TAG "ser"
|
||||
#define CASSETTE_TAG "cassette"
|
||||
#define KEYBOARD_TAG "keyboard"
|
||||
#define TIMER_CASSETTE_TAG "cass"
|
||||
|
||||
class abc80_state : public driver_device
|
||||
{
|
||||
public:
|
||||
abc80_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, Z80_TAG),
|
||||
m_pio(*this, Z80PIO_TAG),
|
||||
m_psg(*this, SN76477_TAG),
|
||||
m_cassette(*this, "cassette"),
|
||||
m_bus(*this, ABCBUS_TAG),
|
||||
m_kb(*this, ABC80_KEYBOARD_TAG),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_rs232(*this, RS232_TAG),
|
||||
m_palette(*this, "palette"),
|
||||
m_rom(*this, Z80_TAG),
|
||||
m_mmu_rom(*this, "mmu"),
|
||||
m_char_rom(*this, "chargen"),
|
||||
m_hsync_prom(*this, "hsync"),
|
||||
m_vsync_prom(*this, "vsync"),
|
||||
m_line_prom(*this, "line"),
|
||||
m_attr_prom(*this, "attr"),
|
||||
m_video_ram(*this, "video_ram"),
|
||||
m_tape_in(1),
|
||||
m_tape_in_latch(1)
|
||||
abc80_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, Z80_TAG),
|
||||
m_pio(*this, Z80PIO_TAG),
|
||||
m_psg(*this, SN76477_TAG),
|
||||
m_cassette(*this, "cassette"),
|
||||
m_bus(*this, ABCBUS_TAG),
|
||||
m_kb(*this, ABC80_KEYBOARD_TAG),
|
||||
m_ram(*this, RAM_TAG),
|
||||
m_rs232(*this, RS232_TAG),
|
||||
m_palette(*this, "palette"),
|
||||
m_rom(*this, Z80_TAG),
|
||||
m_mmu_rom(*this, "mmu"),
|
||||
m_char_rom(*this, "chargen"),
|
||||
m_hsync_prom(*this, "hsync"),
|
||||
m_vsync_prom(*this, "vsync"),
|
||||
m_line_prom(*this, "line"),
|
||||
m_attr_prom(*this, "attr"),
|
||||
m_video_ram(*this, "video_ram"),
|
||||
m_tape_in(1),
|
||||
m_tape_in_latch(1)
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -133,6 +136,14 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( keydown_w );
|
||||
DECLARE_WRITE8_MEMBER( kbd_w );
|
||||
|
||||
enum
|
||||
{
|
||||
MMU_XM = 0x01,
|
||||
MMU_ROM = 0x02,
|
||||
MMU_VRAMS = 0x04,
|
||||
MMU_RAM = 0x08
|
||||
};
|
||||
|
||||
// keyboard state
|
||||
int m_key_data;
|
||||
int m_key_strobe;
|
||||
|
Loading…
Reference in New Issue
Block a user