mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
(MESS) victor9k: Fixed keyboard. [Curt Coder]
This commit is contained in:
parent
dc3240fb51
commit
01eee78eca
@ -10,7 +10,6 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- keyboard
|
||||
- expansion bus
|
||||
- Z80 card
|
||||
- Winchester DMA card (Xebec S1410 + Tandon TM502/TM603SE)
|
||||
@ -28,6 +27,14 @@
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
#define LOG 0
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// ADDRESS MAPS
|
||||
//**************************************************************************
|
||||
@ -272,6 +279,13 @@ WRITE8_MEMBER( victor9k_state::via2_pa_w )
|
||||
*/
|
||||
}
|
||||
|
||||
void victor9k_state::update_kback()
|
||||
{
|
||||
int kback = !(!(m_kbrdy && !m_via2_irq) && !(m_kbackctl && m_via2_irq));
|
||||
|
||||
m_kb->kback_w(kback);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( victor9k_state::via2_pb_w )
|
||||
{
|
||||
/*
|
||||
@ -290,7 +304,8 @@ WRITE8_MEMBER( victor9k_state::via2_pb_w )
|
||||
*/
|
||||
|
||||
// keyboard acknowledge
|
||||
m_kb->kback_w(BIT(data, 1));
|
||||
m_kbackctl = BIT(data, 1);
|
||||
update_kback();
|
||||
|
||||
// brightness
|
||||
m_brt = (data >> 2) & 0x07;
|
||||
@ -299,6 +314,14 @@ WRITE8_MEMBER( victor9k_state::via2_pb_w )
|
||||
m_cont = data >> 5;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( victor9k_state::via2_irq_w )
|
||||
{
|
||||
m_via2_irq = state;
|
||||
|
||||
m_pic->ir6_w(m_via2_irq);
|
||||
update_kback();
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER( victor9k_state::write_ria )
|
||||
{
|
||||
@ -360,14 +383,17 @@ WRITE_LINE_MEMBER( victor9k_state::via3_irq_w )
|
||||
|
||||
WRITE_LINE_MEMBER( victor9k_state::kbrdy_w )
|
||||
{
|
||||
//logerror("KBRDY %u\n", state);
|
||||
if (LOG) logerror("KBRDY %u\n", state);
|
||||
|
||||
m_via2->write_cb1(state);
|
||||
|
||||
m_kbrdy = state;
|
||||
update_kback();
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( victor9k_state::kbdata_w )
|
||||
{
|
||||
//logerror("KBDATA %u\n", state);
|
||||
if (LOG) logerror("KBDATA %u\n", state);
|
||||
|
||||
m_via2->write_cb2(state);
|
||||
m_via2->write_pa6(state);
|
||||
@ -392,9 +418,12 @@ void victor9k_state::machine_start()
|
||||
save_item(NAME(m_brt));
|
||||
save_item(NAME(m_cont));
|
||||
save_item(NAME(m_via1_irq));
|
||||
save_item(NAME(m_via2_irq));
|
||||
save_item(NAME(m_via3_irq));
|
||||
save_item(NAME(m_fdc_irq));
|
||||
save_item(NAME(m_ssda_irq));
|
||||
save_item(NAME(m_kbrdy));
|
||||
save_item(NAME(m_kbackctl));
|
||||
|
||||
// patch out SCP self test
|
||||
m_rom->base()[0x11ab] = 0xc3;
|
||||
@ -499,7 +528,7 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
|
||||
MCFG_DEVICE_ADD(M6522_2_TAG, VIA6522, XTAL_30MHz/30)
|
||||
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(victor9k_state, via2_pa_w))
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via2_pb_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(DEVWRITELINE(I8259A_TAG, pic8259_device, ir6_w))
|
||||
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(victor9k_state, via2_irq_w))
|
||||
|
||||
MCFG_DEVICE_ADD(M6522_3_TAG, VIA6522, XTAL_30MHz/30)
|
||||
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(victor9k_state, via3_pb_w))
|
||||
|
@ -75,9 +75,12 @@ public:
|
||||
m_brt(0),
|
||||
m_cont(0),
|
||||
m_via1_irq(CLEAR_LINE),
|
||||
m_via2_irq(CLEAR_LINE),
|
||||
m_via3_irq(CLEAR_LINE),
|
||||
m_fdc_irq(CLEAR_LINE),
|
||||
m_ssda_irq(CLEAR_LINE)
|
||||
m_ssda_irq(CLEAR_LINE),
|
||||
m_kbrdy(1),
|
||||
m_kbackctl(0)
|
||||
{ }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -114,6 +117,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( via2_pb_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_ria );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_rib );
|
||||
DECLARE_WRITE_LINE_MEMBER( via2_irq_w );
|
||||
|
||||
DECLARE_WRITE8_MEMBER( via3_pb_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( via3_irq_w );
|
||||
@ -128,18 +132,25 @@ public:
|
||||
|
||||
MC6845_UPDATE_ROW( crtc_update_row );
|
||||
|
||||
/* video state */
|
||||
DECLARE_WRITE_LINE_MEMBER( mux_serial_b_w );
|
||||
DECLARE_WRITE_LINE_MEMBER( mux_serial_a_w );
|
||||
|
||||
// video state
|
||||
int m_brt;
|
||||
int m_cont;
|
||||
|
||||
/* interrupts */
|
||||
// interrupts
|
||||
int m_via1_irq;
|
||||
int m_via2_irq;
|
||||
int m_via3_irq;
|
||||
int m_fdc_irq;
|
||||
int m_ssda_irq;
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(mux_serial_b_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(mux_serial_a_w);
|
||||
// keyboard
|
||||
int m_kbrdy;
|
||||
int m_kbackctl;
|
||||
|
||||
void update_kback();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user