mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
(MESS) clcd.c fixed irq hookup. [smf]
This commit is contained in:
parent
b5610b50b1
commit
53fcf1e684
@ -43,6 +43,9 @@ public:
|
||||
m_lcd_scrolly(0),
|
||||
m_lcd_mode(0),
|
||||
m_lcd_size(0),
|
||||
m_irq_via0(0),
|
||||
m_irq_via1(0),
|
||||
m_irq_acia(0),
|
||||
m_mmu_mode(MMU_MODE_KERN),
|
||||
m_mmu_saved_mode(MMU_MODE_KERN),
|
||||
m_mmu_offset1(0),
|
||||
@ -72,6 +75,8 @@ public:
|
||||
m_mmu_mode = MMU_MODE_TEST;
|
||||
update_mmu_mode(MMU_MODE_KERN);
|
||||
|
||||
update_irq();
|
||||
|
||||
save_item(NAME(m_lcd_scrollx));
|
||||
save_item(NAME(m_lcd_scrolly));
|
||||
save_item(NAME(m_lcd_mode));
|
||||
@ -197,6 +202,29 @@ public:
|
||||
LCD_SIZE_CHRW = 4
|
||||
};
|
||||
|
||||
void update_irq()
|
||||
{
|
||||
m_maincpu->irq_line(m_irq_via0 | m_irq_via1 | m_irq_acia);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(write_irq_via0)
|
||||
{
|
||||
m_irq_via0 = state;
|
||||
update_irq();
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(write_irq_via1)
|
||||
{
|
||||
m_irq_via1 = state;
|
||||
update_irq();
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(write_irq_acia)
|
||||
{
|
||||
m_irq_acia = state;
|
||||
update_irq();
|
||||
}
|
||||
|
||||
void update_mmu_mode(int new_mode)
|
||||
{
|
||||
if (m_mmu_mode != new_mode)
|
||||
@ -526,7 +554,7 @@ public:
|
||||
void nvram_init(nvram_device &nvram, void *data, size_t size);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<m65c02_device> m_maincpu;
|
||||
required_device<mos6551_device> m_acia;
|
||||
required_device<via6522_device> m_via0;
|
||||
required_device<msm58321_device> m_rtc;
|
||||
@ -542,6 +570,9 @@ private:
|
||||
int m_lcd_scrolly;
|
||||
int m_lcd_mode;
|
||||
int m_lcd_size;
|
||||
int m_irq_via0;
|
||||
int m_irq_via1;
|
||||
int m_irq_acia;
|
||||
int m_mmu_mode;
|
||||
int m_mmu_saved_mode;
|
||||
UINT8 m_mmu_offset1;
|
||||
@ -714,18 +745,18 @@ static MACHINE_CONFIG_START(clcd, clcd_state)
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(clcd_state, via0_pa_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(clcd_state, via0_pb_w))
|
||||
MCFG_VIA6522_CB1_HANDLER(WRITELINE(clcd_state, via0_cb1_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m65c02_device, irq_line))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(clcd_state, write_irq_via0))
|
||||
|
||||
MCFG_DEVICE_ADD("via1", VIA6522, 2000000)
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(clcd_state, via1_pa_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(clcd_state, via1_pb_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE("maincpu", m65c02_device, nmi_line))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(clcd_state, write_irq_via1))
|
||||
MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, write_strobe)) MCFG_DEVCB_XOR(1)
|
||||
MCFG_VIA6522_CB2_HANDLER(DEVWRITELINE("speaker", speaker_sound_device, level_w))
|
||||
|
||||
MCFG_DEVICE_ADD("acia", MOS6551, 2000000)
|
||||
MCFG_MOS6551_XTAL(XTAL_1_8432MHz)
|
||||
MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE("maincpu", m65c02_device, nmi_line))
|
||||
MCFG_MOS6551_IRQ_HANDLER(WRITELINE(clcd_state, write_irq_acia))
|
||||
MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_MOS6551_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_MOS6551_DTR_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
|
Loading…
Reference in New Issue
Block a user