mirror of
https://github.com/holub/mame
synced 2025-07-02 00:29:37 +03:00
(MESS) v6809 : last bits
This commit is contained in:
parent
415e2cc8e9
commit
8093002724
@ -37,7 +37,7 @@ ToDo:
|
|||||||
|
|
||||||
- Find the missing character generator rom.
|
- Find the missing character generator rom.
|
||||||
|
|
||||||
- Add sound. Pressing BEL character issues commands to the timer chip.
|
- Enable sound, when what seems to be a 6840 bug is fixed.
|
||||||
|
|
||||||
- Schematic is almost useless, riddled with omissions and errors.
|
- Schematic is almost useless, riddled with omissions and errors.
|
||||||
All documents are in French, so no help there. The parts list
|
All documents are in French, so no help there. The parts list
|
||||||
@ -72,8 +72,11 @@ public:
|
|||||||
, m_crtc(*this, "crtc")
|
, m_crtc(*this, "crtc")
|
||||||
, m_fdc(*this, "fdc")
|
, m_fdc(*this, "fdc")
|
||||||
, m_floppy0(*this, "fdc:0")
|
, m_floppy0(*this, "fdc:0")
|
||||||
|
, m_speaker(*this, "speaker")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
DECLARE_WRITE_LINE_MEMBER(speaker_en_w);
|
||||||
|
DECLARE_WRITE_LINE_MEMBER(speaker_w);
|
||||||
DECLARE_READ8_MEMBER(pb_r);
|
DECLARE_READ8_MEMBER(pb_r);
|
||||||
DECLARE_WRITE8_MEMBER(pa_w);
|
DECLARE_WRITE8_MEMBER(pa_w);
|
||||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||||
@ -85,6 +88,7 @@ public:
|
|||||||
const UINT8 *m_p_chargen;
|
const UINT8 *m_p_chargen;
|
||||||
UINT16 m_video_address;
|
UINT16 m_video_address;
|
||||||
private:
|
private:
|
||||||
|
bool m_speaker_en;
|
||||||
UINT8 m_video_index;
|
UINT8 m_video_index;
|
||||||
UINT8 m_term_data;
|
UINT8 m_term_data;
|
||||||
UINT8 m_vidbyte;
|
UINT8 m_vidbyte;
|
||||||
@ -93,6 +97,7 @@ private:
|
|||||||
required_device<mc6845_device> m_crtc;
|
required_device<mc6845_device> m_crtc;
|
||||||
required_device<mb8876_t> m_fdc;
|
required_device<mb8876_t> m_fdc;
|
||||||
required_device<floppy_connector> m_floppy0;
|
required_device<floppy_connector> m_floppy0;
|
||||||
|
required_device<speaker_sound_device> m_speaker;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -163,10 +168,7 @@ MC6845_UPDATE_ROW( v6809_update_row )
|
|||||||
{
|
{
|
||||||
mem = (ma + x) & 0x7ff;
|
mem = (ma + x) & 0x7ff;
|
||||||
chr = state->m_p_videoram[mem];
|
chr = state->m_p_videoram[mem];
|
||||||
if (x == cursor_x)
|
gfx = state->m_p_chargen[(chr<<4) | ra] ^ ((x == cursor_x) ? 0xff : 0);
|
||||||
gfx = 0xff;
|
|
||||||
else
|
|
||||||
gfx = state->m_p_chargen[(chr<<4) | ra];
|
|
||||||
|
|
||||||
/* Display a scanline of a character (8 pixels) */
|
/* Display a scanline of a character (8 pixels) */
|
||||||
*p++ = palette[BIT(gfx, 7)];
|
*p++ = palette[BIT(gfx, 7)];
|
||||||
@ -306,13 +308,26 @@ static const pia6821_interface pia1_intf =
|
|||||||
DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE) /* IRQB output */
|
DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE) /* IRQB output */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// this should output 1 to enable sound, then output 0 after a short time
|
||||||
|
// however it continuously outputs 1
|
||||||
|
WRITE_LINE_MEMBER( v6809_state::speaker_en_w )
|
||||||
|
{
|
||||||
|
m_speaker_en = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( v6809_state::speaker_w )
|
||||||
|
{
|
||||||
|
// if (m_speaker_en)
|
||||||
|
// m_speaker->level_w(state);
|
||||||
|
}
|
||||||
|
|
||||||
static const ptm6840_interface mc6840_intf =
|
static const ptm6840_interface mc6840_intf =
|
||||||
{
|
{
|
||||||
XTAL_16MHz / 4,
|
XTAL_16MHz / 4,
|
||||||
{ 0, 0, 0 },
|
{ 4000000/14, 4000000/14, 4000000/14/8 },
|
||||||
{ DEVCB_NULL,
|
{ DEVCB_NULL,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("speaker", speaker_sound_device, level_w),
|
DEVCB_DRIVER_LINE_MEMBER(v6809_state, speaker_w),
|
||||||
DEVCB_DEVICE_LINE_MEMBER("speaker", speaker_sound_device, level_w) },
|
DEVCB_DRIVER_LINE_MEMBER(v6809_state, speaker_en_w) },
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
|
DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user