tiki100: Added DART speed select jumper. [Curt Coder]

This commit is contained in:
Curt Coder 2015-10-14 22:12:52 +03:00
parent 0624097b4c
commit dada051a35
2 changed files with 39 additions and 20 deletions

View File

@ -15,7 +15,6 @@
TODO:
- palette RAM should be written during HBLANK
- DART clocks
- winchester hard disk
- analog/digital I/O
- light pen
@ -448,6 +447,11 @@ static INPUT_PORTS_START( tiki100 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("ST")
PORT_CONFNAME( 0x01, 0x01, "DART TxCA")
PORT_CONFSETTING( 0x00, "BAR0" )
PORT_CONFSETTING( 0x01, "BAR2" )
INPUT_PORTS_END
/* Video */
@ -605,16 +609,19 @@ TIMER_DEVICE_CALLBACK_MEMBER(tiki100_state::ctc_tick)
m_ctc->trg1(0);
}
WRITE_LINE_MEMBER( tiki100_state::ctc_z0_w )
WRITE_LINE_MEMBER( tiki100_state::bar0_w )
{
m_ctc->trg2(state);
m_dart->rxca_w(state);
m_dart->txca_w(state);
if (!m_st) m_dart->txca_w(state);
}
WRITE_LINE_MEMBER( tiki100_state::ctc_z2_w )
WRITE_LINE_MEMBER( tiki100_state::bar2_w )
{
if (m_st) m_dart->txca_w(state);
m_ctc->trg3(state);
}
@ -668,6 +675,10 @@ void tiki100_state::machine_start()
save_item(NAME(m_mode));
save_item(NAME(m_palette_val));
save_item(NAME(m_keylatch));
save_item(NAME(m_centronics_ack));
save_item(NAME(m_centronics_busy));
save_item(NAME(m_centronics_perror));
save_item(NAME(m_st));
}
void tiki100_state::machine_reset()
@ -675,6 +686,8 @@ void tiki100_state::machine_reset()
address_space &space = m_maincpu->space(AS_PROGRAM);
system_w(space, 0, 0);
m_st = m_st_io->read();
}
/* Machine Driver */
@ -718,9 +731,9 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state )
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_8MHz/4)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(tiki100_state, ctc_z0_w))
MCFG_Z80CTC_ZC0_CB(WRITELINE(tiki100_state, bar0_w))
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(tiki100_state, ctc_z2_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(tiki100_state, bar2_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", tiki100_state, ctc_tick, attotime::from_hz(XTAL_8MHz/4))

View File

@ -71,6 +71,7 @@ public:
m_y10(*this, "Y10"),
m_y11(*this, "Y11"),
m_y12(*this, "Y12"),
m_st_io(*this, "ST"),
m_palette(*this, "palette"),
m_rome(1),
m_vire(1)
@ -103,6 +104,7 @@ public:
required_ioport m_y10;
required_ioport m_y11;
required_ioport m_y12;
required_ioport m_st_io;
required_device<palette_device> m_palette;
virtual void machine_start();
@ -120,8 +122,8 @@ public:
DECLARE_WRITE8_MEMBER( video_mode_w );
DECLARE_WRITE8_MEMBER( palette_w );
DECLARE_WRITE8_MEMBER( system_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z0_w );
DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
DECLARE_WRITE_LINE_MEMBER( bar0_w );
DECLARE_WRITE_LINE_MEMBER( bar2_w );
DECLARE_WRITE8_MEMBER( video_scroll_w );
DECLARE_READ8_MEMBER( pio_pb_r );
@ -129,6 +131,13 @@ public:
DECLARE_FLOPPY_FORMATS( floppy_formats );
TIMER_DEVICE_CALLBACK_MEMBER( ctc_tick );
TIMER_DEVICE_CALLBACK_MEMBER( tape_tick );
DECLARE_WRITE_LINE_MEMBER(write_centronics_ack);
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
enum
{
ROM0 = 0x01,
@ -137,28 +146,25 @@ public:
RAM = 0x08
};
/* memory state */
int m_rome;
int m_vire;
// memory state
bool m_rome;
bool m_vire;
/* video state */
// video state
UINT8 m_scroll;
UINT8 m_mode;
UINT8 m_palette_val;
/* keyboard state */
// keyboard state
int m_keylatch;
TIMER_DEVICE_CALLBACK_MEMBER( ctc_tick );
TIMER_DEVICE_CALLBACK_MEMBER( tape_tick );
DECLARE_WRITE_LINE_MEMBER(write_centronics_ack);
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
// printer state
int m_centronics_ack;
int m_centronics_busy;
int m_centronics_perror;
// serial state
bool m_st;
};
#endif