File tree Expand file tree Collapse file tree 1 file changed +20
-20
lines changed
Expand file tree Collapse file tree 1 file changed +20
-20
lines changed Original file line number Diff line number Diff line change @@ -60,7 +60,7 @@ void tsconf_copper_device::cl_data_w(u16 addr, u8 data)
6060
6161void tsconf_copper_device::dma_ready_w (int status)
6262{
63- if (m_en && (status & 1 ) && (m_cl_data[m_pc] & 0xff0f ) == 0b1111'0100'0000 '0001 )
63+ if (m_en && (status & 1 ) && (m_cl_data[m_pc] & 0xffff ) == 0b1111'1011'1111 '0001 )
6464 {
6565 ++m_pc;
6666 m_timer->adjust (attotime::from_hz (clock ()), 0 );
@@ -85,7 +85,22 @@ TIMER_CALLBACK_MEMBER(tsconf_copper_device::timer_callback)
8585 ++m_pc;
8686 break ;
8787
88- case 0b0100 : // WAIT
88+ case 0b0111 : // WAITX
89+ if (param == 0b1111'0111 )
90+ ++m_pc;
91+ else
92+ {
93+ const u8 x = data & 0xff ;
94+ if (x < 224 )
95+ m_timer->adjust (m_in_until_pos_cb (0x8000 | x), 0b1111'0111 );
96+ else
97+ m_timer->reset ();
98+ return ;
99+ }
100+ break ;
101+
102+ case 0b1011 : // WAITY
103+ if (BIT (data, 4 , 4 ) == 0b1111 ) // WAIT event
89104 {
90105 const u8 event = data & 0x0f ;
91106 if (event == param)
@@ -112,25 +127,10 @@ TIMER_CALLBACK_MEMBER(tsconf_copper_device::timer_callback)
112127
113128 }
114129 }
130+ break ;
115131 }
116- break ;
117-
118- case 0b0111 : // WAITX
119- if (param == 0b1111'0111 )
120- ++m_pc;
121- else
122- {
123- const u8 x = data & 0xff ;
124- if (x < 224 )
125- m_timer->adjust (m_in_until_pos_cb (0x8000 | x), 0b1111'0111 );
126- else
127- m_timer->reset ();
128- return ;
129- }
130- break ;
131-
132- case 0b1010 : // WAITY
133- case 0b1011 :
132+ [[fallthrough]];
133+ case 0b1010 :
134134 if (param == 0b1111'1010 )
135135 ++m_pc;
136136 else
You can’t perform that action at this time.
0 commit comments