mirror of
https://github.com/holub/mame
synced 2025-05-06 22:35:43 +03:00
(MESS) d6800: Better implementation of the speaker, keyclick works now. Changed quickload extension of chip8 files to c8, same as Cosmac VIP.
This commit is contained in:
parent
cad69fe987
commit
9d51f048cc
@ -43,7 +43,6 @@
|
|||||||
#include "imagedev/cassette.h"
|
#include "imagedev/cassette.h"
|
||||||
#include "imagedev/snapquik.h"
|
#include "imagedev/snapquik.h"
|
||||||
#include "sound/wave.h"
|
#include "sound/wave.h"
|
||||||
#include "sound/dac.h"
|
|
||||||
#include "machine/6821pia.h"
|
#include "machine/6821pia.h"
|
||||||
|
|
||||||
|
|
||||||
@ -55,7 +54,7 @@ public:
|
|||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_cass(*this, "cassette"),
|
m_cass(*this, "cassette"),
|
||||||
m_pia(*this, "pia"),
|
m_pia(*this, "pia"),
|
||||||
m_dac(*this, "dac"),
|
m_beeper(*this, "beeper"),
|
||||||
m_videoram(*this, "videoram"),
|
m_videoram(*this, "videoram"),
|
||||||
m_io_x0(*this, "X0"),
|
m_io_x0(*this, "X0"),
|
||||||
m_io_x1(*this, "X1"),
|
m_io_x1(*this, "X1"),
|
||||||
@ -82,7 +81,7 @@ protected:
|
|||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<cassette_image_device> m_cass;
|
required_device<cassette_image_device> m_cass;
|
||||||
required_device<pia6821_device> m_pia;
|
required_device<pia6821_device> m_pia;
|
||||||
required_device<dac_device> m_dac;
|
required_device<beep_device> m_beeper;
|
||||||
required_shared_ptr<UINT8> m_videoram;
|
required_shared_ptr<UINT8> m_videoram;
|
||||||
required_ioport m_io_x0;
|
required_ioport m_io_x0;
|
||||||
required_ioport m_io_x1;
|
required_ioport m_io_x1;
|
||||||
@ -249,14 +248,15 @@ READ8_MEMBER( d6800_state::d6800_cassette_r )
|
|||||||
WRITE8_MEMBER( d6800_state::d6800_cassette_w )
|
WRITE8_MEMBER( d6800_state::d6800_cassette_w )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Cassette circuit consists of a 566 and a transistor. The 556 runs at 2400
|
A NE556 runs at either 1200 or 2400 Hz, depending on the state of bit 0.
|
||||||
or 1200 Hz depending on the state of the transistor. This is controlled by
|
This output drives the speaker and the output signal to the cassette player.
|
||||||
bit 0 of the PIA. Bit 6 drives the speaker.
|
Bit 6 enables the speaker.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
m_cass->output(BIT(data, 0) ? -1.0 : +1.0);
|
m_cass->output(BIT(data, 0) ? -1.0 : +1.0);
|
||||||
|
m_beeper->set_frequency(BIT(data, 0) ? 2400 : 1200);
|
||||||
|
m_beeper->set_state(BIT(data, 6));
|
||||||
|
|
||||||
m_dac->write_unsigned8(data);
|
|
||||||
m_portb = data;
|
m_portb = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,6 +321,7 @@ void d6800_state::machine_start()
|
|||||||
|
|
||||||
void d6800_state::machine_reset()
|
void d6800_state::machine_reset()
|
||||||
{
|
{
|
||||||
|
m_beeper->set_state(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Machine Drivers */
|
/* Machine Drivers */
|
||||||
@ -401,7 +402,7 @@ static MACHINE_CONFIG_START( d6800, d6800_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
|
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
MCFG_SOUND_ADD("dac", DAC, 0)
|
MCFG_SOUND_ADD("beeper", BEEP, 0)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||||
|
|
||||||
/* devices */
|
/* devices */
|
||||||
@ -410,7 +411,7 @@ static MACHINE_CONFIG_START( d6800, d6800_state )
|
|||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("d6800_p", d6800_state, d6800_p, attotime::from_hz(40000))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("d6800_p", d6800_state, d6800_p, attotime::from_hz(40000))
|
||||||
|
|
||||||
/* quickload */
|
/* quickload */
|
||||||
MCFG_QUICKLOAD_ADD("quickload", d6800_state, d6800, "ch8", 1)
|
MCFG_QUICKLOAD_ADD("quickload", d6800_state, d6800, "c8", 1)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
/* ROMs */
|
/* ROMs */
|
||||||
@ -418,6 +419,7 @@ MACHINE_CONFIG_END
|
|||||||
ROM_START( d6800 )
|
ROM_START( d6800 )
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "d6800.bin", 0xc000, 0x0400, CRC(3f97ca2e) SHA1(60f26e57a058262b30befceceab4363a5d65d877) )
|
ROM_LOAD( "d6800.bin", 0xc000, 0x0400, CRC(3f97ca2e) SHA1(60f26e57a058262b30befceceab4363a5d65d877) )
|
||||||
|
//ROM_FILL(0xc2eb,2,1)
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
||||||
|
Loading…
Reference in New Issue
Block a user