amstrad: add CRTC Cursor signal to expansion bus, connected to PlayCity which now has working NMIs.

This commit is contained in:
mahlemiut 2014-11-03 14:41:49 +13:00
parent 4a44c0230a
commit 0fc29aeb83
4 changed files with 6 additions and 2 deletions

View File

@ -78,6 +78,7 @@ public:
// reset
virtual void cpc_reset_w() { };
virtual WRITE_LINE_MEMBER( cursor_w ) { };
void set_rom_bank(UINT8 sel) { m_rom_sel = sel; } // tell device the currently selected ROM
UINT8 get_rom_bank() { return m_rom_sel; }
@ -108,6 +109,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( romdis_w );
void set_rom_bank(UINT8 sel) { if(m_card) m_card->set_rom_bank(sel); } // tell device the currently selected ROM
DECLARE_WRITE_LINE_MEMBER( cursor_w ) { if(m_card) m_card->cursor_w(state); } // pass on CRTC Cursor signal
protected:
// device-level overrides

View File

@ -6,7 +6,6 @@
TODO:
IRQs aren't working currently, the Z80CTC core requires the daisy chain setup to acknowledge IRQs properly, and that can't be used in a slot device currently.
Add CRTC Cursor signal support to the expansion bus, this should get NMIs working consistently.
*/
#include "playcity.h"

View File

@ -39,9 +39,11 @@ public:
DECLARE_WRITE8_MEMBER(ymz2_data_w);
DECLARE_READ8_MEMBER(ymz1_data_r);
DECLARE_READ8_MEMBER(ymz2_data_r);
DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } printf("NMI %i",state); }
DECLARE_WRITE_LINE_MEMBER(ctc_zc1_cb) { if(state) { m_slot->nmi_w(1); m_slot->nmi_w(0); } }
DECLARE_WRITE_LINE_MEMBER(ctc_intr_cb) { m_slot->irq_w(state); }
virtual WRITE_LINE_MEMBER(cursor_w) { m_ctc->trg1(state); }
protected:
// device-level overrides
virtual void device_start();

View File

@ -864,6 +864,7 @@ static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state )
MCFG_MC6845_OUT_DE_CB(WRITELINE(amstrad_state, amstrad_de_changed))
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(amstrad_state, amstrad_hsync_changed))
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(amstrad_state, amstrad_vsync_changed))
MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("exp", cpc_expansion_slot_device, cursor_w))
MCFG_VIDEO_START_OVERRIDE(amstrad_state,amstrad)