-6840ptm: Changed WRITE8 to WRITE_LINE for single-bit outputs. [Ryan Holtz]

This commit is contained in:
therealmogminer@gmail.com 2016-10-03 16:28:45 +02:00
parent dad928b11f
commit 042f15a578
17 changed files with 103 additions and 99 deletions

View File

@ -391,13 +391,13 @@ void ptm6840_device::reload_count(int idx)
switch (idx)
{
case 0:
m_out0_cb((offs_t)0, m_output[0]);
m_out0_cb(m_output[0]);
break;
case 1:
m_out1_cb((offs_t)0, m_output[1]);
m_out1_cb(m_output[1]);
break;
case 2:
m_out2_cb((offs_t)0, m_output[2]);
m_out2_cb(m_output[2]);
break;
}
}
@ -528,13 +528,13 @@ WRITE8_MEMBER( ptm6840_device::write )
switch (idx)
{
case 0:
m_out0_cb((offs_t)0, 0);
m_out0_cb(0);
break;
case 1:
m_out1_cb((offs_t)0, 0);
m_out1_cb(0);
break;
case 2:
m_out2_cb((offs_t)0, 0);
m_out2_cb(0);
break;
}
}
@ -629,13 +629,13 @@ void ptm6840_device::timeout(int idx)
switch (idx)
{
case 0:
m_out0_cb((offs_t)0, m_output[0]);
m_out0_cb(m_output[0]);
break;
case 1:
m_out1_cb((offs_t)0, m_output[1]);
m_out1_cb(m_output[1]);
break;
case 2:
m_out2_cb((offs_t)0, m_output[2]);
m_out2_cb(m_output[2]);
break;
}
}
@ -649,13 +649,13 @@ void ptm6840_device::timeout(int idx)
switch (idx)
{
case 0:
m_out0_cb((offs_t)0, m_output[0]);
m_out0_cb(m_output[0]);
break;
case 1:
m_out1_cb((offs_t)0, m_output[1]);
m_out1_cb(m_output[1]);
break;
case 2:
m_out2_cb((offs_t)0, m_output[2]);
m_out2_cb(m_output[2]);
break;
}

View File

@ -130,9 +130,9 @@ private:
double m_internal_clock;
double m_external_clock[3];
devcb_write8 m_out0_cb;
devcb_write8 m_out1_cb;
devcb_write8 m_out2_cb;
devcb_write_line m_out0_cb;
devcb_write_line m_out1_cb;
devcb_write_line m_out2_cb;
devcb_write_line m_irq_cb; // function called if IRQ line changes
UINT8 m_control_reg[3];

View File

@ -105,7 +105,7 @@ public:
DECLARE_WRITE8_MEMBER( pia_u17_pb_w );
DECLARE_WRITE_LINE_MEMBER( pia_u17_pcb_w );
DECLARE_WRITE8_MEMBER(ptm_o1_callback);
DECLARE_WRITE_LINE_MEMBER(ptm_o1_callback);
UINT8 read_keyboard(int pa);
};
@ -248,9 +248,9 @@ INPUT_PORTS_END
ptm6840_interface ptm_intf
-------------------------------------------------*/
WRITE8_MEMBER(arachnid_state::ptm_o1_callback)
WRITE_LINE_MEMBER(arachnid_state::ptm_o1_callback)
{
m_speaker->level_w(data);
m_speaker->level_w(state);
}
UINT8 arachnid_state::read_keyboard(int pa)
@ -453,7 +453,7 @@ static MACHINE_CONFIG_START( arachnid, arachnid_state )
MCFG_DEVICE_ADD(PTM6840_TAG, PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(XTAL_8MHz / 4)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(arachnid_state, ptm_o1_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(arachnid_state, ptm_o1_callback))
MACHINE_CONFIG_END
/***************************************************************************

View File

@ -216,7 +216,7 @@ public:
static void set_channel_number(device_t &device, int channel) { dynamic_cast<cmi01a_device&>(device).m_channel = channel; }
DECLARE_WRITE8_MEMBER( ptm_out0 );
DECLARE_WRITE_LINE_MEMBER( ptm_out0 );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( read );
@ -326,7 +326,7 @@ MACHINE_CONFIG_FRAGMENT( cmi01a_device )
MCFG_DEVICE_ADD("cmi01a_ptm", PTM6840, 0) // ptm_cmi01a_config
MCFG_PTM6840_INTERNAL_CLOCK(2000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(250000, 500000, 500000)
MCFG_PTM6840_OUT0_CB(WRITE8(cmi01a_device, ptm_out0))
MCFG_PTM6840_OUT0_CB(WRITELINE(cmi01a_device, ptm_out0))
MCFG_PTM6840_IRQ_CB(WRITELINE(cmi01a_device, ptm_irq))
MACHINE_CONFIG_END
@ -1929,9 +1929,9 @@ void cmi01a_device::update_wave_addr(int inc)
/* Zero crossing interrupt is a pulse */
}
WRITE8_MEMBER( cmi01a_device::ptm_out0 )
WRITE_LINE_MEMBER( cmi01a_device::ptm_out0 )
{
m_ptm_out0 = data;
m_ptm_out0 = state;
}
READ_LINE_MEMBER( cmi01a_device::eosi_r )
@ -1947,6 +1947,7 @@ READ_LINE_MEMBER( cmi01a_device::zx_r )
WRITE8_MEMBER( cmi01a_device::write )
{
//printf("C%d W: %02x = %02x\n", m_channel, offset, data);
switch (offset)
{
case 0x0:

View File

@ -233,9 +233,9 @@ void ginganin_state::machine_reset()
m_flipscreen = 0;
}
WRITE8_MEMBER(ginganin_state::ptm_irq)
WRITE_LINE_MEMBER(ginganin_state::ptm_irq)
{
m_audiocpu->set_input_line(0, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state )
MCFG_DEVICE_ADD("6840ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(SOUND_CLOCK/2)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(ginganin_state, ptm_irq))
MCFG_PTM6840_OUT0_CB(WRITELINE(ginganin_state, ptm_irq))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)

View File

@ -531,11 +531,11 @@ WRITE_LINE_MEMBER(jpmsys5_state::ptm_irq)
m_maincpu->set_input_line(INT_6840PTM, state ? ASSERT_LINE : CLEAR_LINE);
}
WRITE8_MEMBER(jpmsys5_state::u26_o1_callback)
WRITE_LINE_MEMBER(jpmsys5_state::u26_o1_callback)
{
if (m_mpxclk !=data)
if (m_mpxclk != state)
{
if (!data) //falling edge
if (!state) //falling edge
{
m_lamp_strobe++;
if (m_lamp_strobe >15)
@ -545,7 +545,7 @@ WRITE8_MEMBER(jpmsys5_state::u26_o1_callback)
}
sys5_draw_lamps();
}
m_mpxclk = data;
m_mpxclk = state;
}
@ -672,7 +672,7 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state )
MCFG_DEVICE_ADD("6840ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(1000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(jpmsys5_state, ptm_irq))
MACHINE_CONFIG_END
@ -877,7 +877,7 @@ MACHINE_CONFIG_START( jpmsys5_ym, jpmsys5_state )
MCFG_DEVICE_ADD("6840ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(1000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(jpmsys5_state, ptm_irq))
MCFG_DEFAULT_LAYOUT(layout_jpmsys5)
@ -930,7 +930,7 @@ MACHINE_CONFIG_START( jpmsys5, jpmsys5_state )
MCFG_DEVICE_ADD("6840ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(1000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(jpmsys5_state, u26_o1_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(jpmsys5_state, ptm_irq))
MCFG_DEFAULT_LAYOUT(layout_jpmsys5)

View File

@ -228,9 +228,9 @@ public:
DECLARE_WRITE8_MEMBER(mpu3ptm_w);
DECLARE_READ8_MEMBER(mpu3ptm_r);
DECLARE_WRITE_LINE_MEMBER(cpu0_irq);
DECLARE_WRITE8_MEMBER(ic2_o1_callback);
DECLARE_WRITE8_MEMBER(ic2_o2_callback);
DECLARE_WRITE8_MEMBER(ic2_o3_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o1_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o2_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o3_callback);
DECLARE_READ8_MEMBER(pia_ic3_porta_r);
DECLARE_WRITE8_MEMBER(pia_ic3_portb_w);
DECLARE_WRITE_LINE_MEMBER(pia_ic3_ca2_w);
@ -323,17 +323,17 @@ WRITE_LINE_MEMBER(mpu3_state::cpu0_irq)
/* IC2 6840 PTM handler probably clocked from elsewhere*/
WRITE8_MEMBER(mpu3_state::ic2_o1_callback)
WRITE_LINE_MEMBER(mpu3_state::ic2_o1_callback)
{
}
//FIXME FROM HERE
WRITE8_MEMBER(mpu3_state::ic2_o2_callback)
WRITE_LINE_MEMBER(mpu3_state::ic2_o2_callback)
{
}
WRITE8_MEMBER(mpu3_state::ic2_o3_callback)
WRITE_LINE_MEMBER(mpu3_state::ic2_o3_callback)
{
}
@ -860,9 +860,9 @@ static MACHINE_CONFIG_START( mpu3base, mpu3_state )
MCFG_DEVICE_ADD("ptm_ic2", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(MPU3_MASTER_CLOCK)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(mpu3_state, ic2_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITE8(mpu3_state, ic2_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(mpu3_state, ic2_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(mpu3_state, ic2_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITELINE(mpu3_state, ic2_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(mpu3_state, ic2_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(mpu3_state, cpu0_irq))
MCFG_DEVICE_ADD("pia_ic3", PIA6821, 0)

View File

@ -534,29 +534,29 @@ WRITE8_MEMBER(mpu4_state::bankset_w)
/* IC2 6840 PTM handler */
WRITE8_MEMBER(mpu4_state::ic2_o1_callback)
WRITE_LINE_MEMBER(mpu4_state::ic2_o1_callback)
{
m_6840ptm->set_c2(data); /* copy output value to IC2 c2
m_6840ptm->set_c2(state); /* copy output value to IC2 c2
this output is the clock for timer2 */
/* 1200Hz System interrupt timer */
}
WRITE8_MEMBER(mpu4_state::ic2_o2_callback)
WRITE_LINE_MEMBER(mpu4_state::ic2_o2_callback)
{
m_pia3->ca1_w(data); /* copy output value to IC3 ca1 */
m_pia3->ca1_w(state); /* copy output value to IC3 ca1 */
/* the output from timer2 is the input clock for timer3 */
/* miscellaneous interrupts generated here */
m_6840ptm->set_c3(data);
m_6840ptm->set_c3(state);
}
WRITE8_MEMBER(mpu4_state::ic2_o3_callback)
WRITE_LINE_MEMBER(mpu4_state::ic2_o3_callback)
{
/* the output from timer3 is used as a square wave for the alarm output
and as an external clock source for timer 1! */
/* also runs lamp fade */
m_6840ptm->set_c1(data);
m_6840ptm->set_c1(state);
}
/* 6821 PIA handlers */
@ -3005,9 +3005,9 @@ MACHINE_CONFIG_FRAGMENT( mpu4_common )
MCFG_DEVICE_ADD("ptm_ic2", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(MPU4_MASTER_CLOCK / 4)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(mpu4_state, ic2_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITE8(mpu4_state, ic2_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(mpu4_state, ic2_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(mpu4_state, ic2_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITELINE(mpu4_state, ic2_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(mpu4_state, ic2_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4_state, cpu0_irq))
MCFG_DEVICE_ADD("pia_ic3", PIA6821, 0)

View File

@ -283,9 +283,9 @@ public:
DECLARE_WRITE_LINE_MEMBER(m6809_acia_irq);
DECLARE_WRITE_LINE_MEMBER(m68k_acia_irq);
DECLARE_WRITE_LINE_MEMBER(cpu1_ptm_irq);
DECLARE_WRITE8_MEMBER(vid_o1_callback);
DECLARE_WRITE8_MEMBER(vid_o2_callback);
DECLARE_WRITE8_MEMBER(vid_o3_callback);
DECLARE_WRITE_LINE_MEMBER(vid_o1_callback);
DECLARE_WRITE_LINE_MEMBER(vid_o2_callback);
DECLARE_WRITE_LINE_MEMBER(vid_o3_callback);
DECLARE_READ8_MEMBER(pia_ic5_porta_track_r);
void mpu4vid_char_cheat( int address);
DECLARE_WRITE_LINE_MEMBER(update_mpu68_interrupts);
@ -352,26 +352,26 @@ WRITE_LINE_MEMBER(mpu4vid_state::cpu1_ptm_irq)
}
WRITE8_MEMBER(mpu4vid_state::vid_o1_callback)
WRITE_LINE_MEMBER(mpu4vid_state::vid_o1_callback)
{
m_ptm->set_c2(data); /* this output is the clock for timer2 */
m_ptm->set_c2(state); /* this output is the clock for timer2 */
m_acia_0->write_txc(data);
m_acia_0->write_rxc(data);
m_acia_1->write_txc(data);
m_acia_1->write_rxc(data);
m_acia_0->write_txc(state);
m_acia_0->write_rxc(state);
m_acia_1->write_txc(state);
m_acia_1->write_rxc(state);
}
WRITE8_MEMBER(mpu4vid_state::vid_o2_callback)
WRITE_LINE_MEMBER(mpu4vid_state::vid_o2_callback)
{
m_ptm->set_c3(data); /* this output is the clock for timer3 */
m_ptm->set_c3(state); /* this output is the clock for timer3 */
}
WRITE8_MEMBER(mpu4vid_state::vid_o3_callback)
WRITE_LINE_MEMBER(mpu4vid_state::vid_o3_callback)
{
m_ptm->set_c1(data); /* this output is the clock for timer1 */
m_ptm->set_c1(state); /* this output is the clock for timer1 */
}
@ -1383,9 +1383,9 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state )
MCFG_DEVICE_ADD("6840ptm_68k", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(VIDEO_MASTER_CLOCK / 10) /* 68k E clock */
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT0_CB(WRITE8(mpu4vid_state, vid_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITE8(mpu4vid_state, vid_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(mpu4vid_state, vid_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(mpu4vid_state, vid_o1_callback))
MCFG_PTM6840_OUT1_CB(WRITELINE(mpu4vid_state, vid_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(mpu4vid_state, vid_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(mpu4vid_state, cpu1_ptm_irq))
/* Present on all video cards */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")

View File

@ -62,8 +62,8 @@ public:
DECLARE_READ8_MEMBER(pia1_b_in);
DECLARE_READ8_MEMBER(videoram_r);
DECLARE_WRITE_LINE_MEMBER(write_acia_clock);
DECLARE_WRITE8_MEMBER( ptm_o2_callback );
DECLARE_WRITE8_MEMBER( ptm_o3_callback );
DECLARE_WRITE_LINE_MEMBER( ptm_o2_callback );
DECLARE_WRITE_LINE_MEMBER( ptm_o3_callback );
protected:
virtual void machine_reset() override;
@ -140,14 +140,14 @@ WRITE_LINE_MEMBER( poly_state::write_acia_clock )
m_acia->write_rxc(state);
}
WRITE8_MEMBER( poly_state::ptm_o2_callback )
WRITE_LINE_MEMBER( poly_state::ptm_o2_callback )
{
m_ptm->set_c1(data);
m_ptm->set_c1(state);
}
WRITE8_MEMBER( poly_state::ptm_o3_callback )
WRITE_LINE_MEMBER( poly_state::ptm_o3_callback )
{
m_speaker->level_w(data);
m_speaker->level_w(state);
}
static MACHINE_CONFIG_START( poly, poly_state )
@ -186,8 +186,8 @@ static MACHINE_CONFIG_START( poly, poly_state )
MCFG_DEVICE_ADD("ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(XTAL_12MHz / 3)
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
MCFG_PTM6840_OUT1_CB(WRITE8(poly_state, ptm_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(poly_state, ptm_o3_callback))
MCFG_PTM6840_OUT1_CB(WRITELINE(poly_state, ptm_o2_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(poly_state, ptm_o3_callback))
MCFG_PTM6840_IRQ_CB(INPUTLINE("maincpu", M6809_IRQ_LINE))
MCFG_DEVICE_ADD("acia", ACIA6850, 0)

View File

@ -110,8 +110,8 @@ static MACHINE_CONFIG_START( swtpc09, swtpc09_state )
MCFG_DEVICE_ADD("ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(2000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(50, 0, 50)
MCFG_PTM6840_OUT0_CB(WRITE8(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(swtpc09_state, ptm_irq))
MCFG_DEVICE_ADD("pia", PIA6821, 0)
@ -151,8 +151,8 @@ static MACHINE_CONFIG_START( swtpc09i, swtpc09_state )
MCFG_DEVICE_ADD("ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(2000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(50, 0, 50)
MCFG_PTM6840_OUT0_CB(WRITE8(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(swtpc09_state, ptm_irq))
MCFG_DEVICE_ADD("pia", PIA6821, 0)
@ -200,8 +200,8 @@ static MACHINE_CONFIG_START( swtpc09d3, swtpc09_state )
MCFG_DEVICE_ADD("ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(2000000)
MCFG_PTM6840_EXTERNAL_CLOCKS(50, 0, 50)
MCFG_PTM6840_OUT0_CB(WRITE8(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITE8(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_OUT0_CB(WRITELINE(swtpc09_state, ptm_o1_callback))
MCFG_PTM6840_OUT2_CB(WRITELINE(swtpc09_state, ptm_o3_callback))
MCFG_PTM6840_IRQ_CB(WRITELINE(swtpc09_state, ptm_irq))
MCFG_DEVICE_ADD("pia", PIA6821, 0)

View File

@ -80,8 +80,8 @@ public:
{
}
DECLARE_WRITE8_MEMBER(speaker_en_w);
DECLARE_WRITE8_MEMBER(speaker_w);
DECLARE_WRITE_LINE_MEMBER(speaker_en_w);
DECLARE_WRITE_LINE_MEMBER(speaker_w);
DECLARE_READ8_MEMBER(pb_r);
DECLARE_WRITE8_MEMBER(pa_w);
DECLARE_WRITE8_MEMBER(videoram_w);
@ -276,12 +276,12 @@ WRITE8_MEMBER( v6809_state::pa_w )
// this should output 1 to enable sound, then output 0 after a short time
// however it continuously outputs 1
WRITE8_MEMBER( v6809_state::speaker_en_w )
WRITE_LINE_MEMBER( v6809_state::speaker_en_w )
{
m_speaker_en = data;
m_speaker_en = state;
}
WRITE8_MEMBER( v6809_state::speaker_w )
WRITE_LINE_MEMBER( v6809_state::speaker_w )
{
// if (m_speaker_en)
// m_speaker->level_w(data);
@ -342,8 +342,8 @@ static MACHINE_CONFIG_START( v6809, v6809_state )
MCFG_DEVICE_ADD("ptm", PTM6840, 0)
MCFG_PTM6840_INTERNAL_CLOCK(XTAL_16MHz / 4)
MCFG_PTM6840_EXTERNAL_CLOCKS(4000000/14, 4000000/14, 4000000/14/8)
MCFG_PTM6840_OUT1_CB(WRITE8(v6809_state, speaker_w))
MCFG_PTM6840_OUT2_CB(WRITE8(v6809_state, speaker_en_w))
MCFG_PTM6840_OUT1_CB(WRITELINE(v6809_state, speaker_w))
MCFG_PTM6840_OUT2_CB(WRITELINE(v6809_state, speaker_en_w))
MCFG_PTM6840_IRQ_CB(INPUTLINE("maincpu", M6809_IRQ_LINE))
MCFG_DEVICE_ADD("acia0", ACIA6850, 0)

View File

@ -50,7 +50,7 @@ public:
DECLARE_WRITE16_MEMBER(ginganin_fgram16_w);
DECLARE_WRITE16_MEMBER(ginganin_txtram16_w);
DECLARE_WRITE16_MEMBER(ginganin_vregs16_w);
DECLARE_WRITE8_MEMBER(ptm_irq);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
DECLARE_DRIVER_INIT(ginganin);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);

View File

@ -71,7 +71,7 @@ public:
DECLARE_WRITE16_MEMBER(jpm_upd7759_w);
DECLARE_READ16_MEMBER(jpm_upd7759_r);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
DECLARE_WRITE8_MEMBER(u26_o1_callback);
DECLARE_WRITE_LINE_MEMBER(u26_o1_callback);
DECLARE_WRITE_LINE_MEMBER(pia_irq);
DECLARE_READ8_MEMBER(u29_porta_r);
DECLARE_WRITE8_MEMBER(u29_portb_w);

View File

@ -144,9 +144,9 @@ public:
DECLARE_WRITE8_MEMBER(crystal_sound_w);
DECLARE_WRITE8_MEMBER(ic3ss_w);
DECLARE_WRITE_LINE_MEMBER(cpu0_irq);
DECLARE_WRITE8_MEMBER(ic2_o1_callback);
DECLARE_WRITE8_MEMBER(ic2_o2_callback);
DECLARE_WRITE8_MEMBER(ic2_o3_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o1_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o2_callback);
DECLARE_WRITE_LINE_MEMBER(ic2_o3_callback);
DECLARE_WRITE8_MEMBER(pia_ic3_porta_w);
DECLARE_WRITE8_MEMBER(pia_ic3_portb_w);
DECLARE_WRITE_LINE_MEMBER(pia_ic3_ca2_w);

View File

@ -66,8 +66,8 @@ public:
DECLARE_READ8_MEMBER(pia0_ca1_r);
DECLARE_WRITE_LINE_MEMBER( pia0_irq_a );
DECLARE_WRITE8_MEMBER( ptm_o1_callback );
DECLARE_WRITE8_MEMBER( ptm_o3_callback );
DECLARE_WRITE_LINE_MEMBER( ptm_o1_callback );
DECLARE_WRITE_LINE_MEMBER( ptm_o3_callback );
DECLARE_WRITE_LINE_MEMBER( ptm_irq );
DECLARE_WRITE_LINE_MEMBER( acia_interrupt );

View File

@ -29,8 +29,11 @@
/******* MC6840 PTM on MPID Board *******/
/* 6840 PTM handlers */
WRITE8_MEMBER( swtpc09_state::ptm_o1_callback )
WRITE_LINE_MEMBER( swtpc09_state::ptm_o1_callback )
{
// RH 3 Oct. 2016 FIXME: Does the hardware actually work this way, incrementing a counter any time
// the O1 line on the PTM changes? This seems unlikely, as the current implementation will increment
// m_pia_counter on both 0->1 and 1->0 transitions. Is that really correct?
pia6821_device *pia = machine().device<pia6821_device>("pia");
m_pia_counter++;
@ -38,11 +41,11 @@ WRITE8_MEMBER( swtpc09_state::ptm_o1_callback )
if (m_pia_counter & 0x80) pia->ca1_w(1);
}
WRITE8_MEMBER( swtpc09_state::ptm_o3_callback )
WRITE_LINE_MEMBER( swtpc09_state::ptm_o3_callback )
{
//ptm6840_device *ptm = machine().device<ptm6840_device>("ptm");
/* the output from timer3 is the input clock for timer2 */
//m_ptm->set_c2(data);
//m_ptm->set_c2(state);
}
WRITE_LINE_MEMBER( swtpc09_state::ptm_irq )