@@ -198,7 +198,7 @@ void mpc3000_state::floppies(device_slot_interface &device)
198
198
199
199
void mpc3000_state::mpc3000 (machine_config &config)
200
200
{
201
- V53A (config, m_maincpu, 16_MHz_XTAL );
201
+ V53A (config, m_maincpu, 32_MHz_XTAL );
202
202
m_maincpu->set_addrmap (AS_PROGRAM, &mpc3000_state::mpc3000_map);
203
203
m_maincpu->set_addrmap (AS_IO, &mpc3000_state::mpc3000_io_map);
204
204
m_maincpu->out_hreq_cb ().set (m_maincpu, FUNC (v53a_device::hack_w));
@@ -217,6 +217,9 @@ void mpc3000_state::mpc3000(machine_config &config)
217
217
m_maincpu->tout_handler <1 >().set_inputline (m_maincpu, INPUT_LINE_IRQ1);
218
218
m_maincpu->tout_handler <2 >().set_inputline (m_maincpu, INPUT_LINE_IRQ2);
219
219
220
+ constexpr XTAL V53_CLKOUT = 32_MHz_XTAL / 2 ;
221
+ constexpr XTAL V53_PCLKOUT = 32_MHz_XTAL / 4 ;
222
+
220
223
// HC02 gates
221
224
INPUT_MERGER_ANY_HIGH (config, " intp3" ).output_handler ().set_inputline (m_maincpu, INPUT_LINE_IRQ3);
222
225
INPUT_MERGER_ALL_HIGH (config, " tc" ).output_handler ().set (m_fdc, FUNC (upd72069_device::tc_line_w));
@@ -253,23 +256,23 @@ void mpc3000_state::mpc3000(machine_config &config)
253
256
254
257
PALETTE (config, " palette" , FUNC (mpc3000_state::mpc3000_palette), 2 );
255
258
256
- UPD72069 (config, m_fdc, 16_MHz_XTAL ); // clocked by V53 CLKOUT ( TODO: upd72069 supports motor control)
259
+ UPD72069 (config, m_fdc, V53_CLKOUT ); // TODO: upd72069 supports motor control
257
260
m_fdc->intrq_wr_callback ().set (" intp3" , FUNC (input_merger_device::in_w<0 >));
258
261
m_fdc->drq_wr_callback ().set (m_maincpu, FUNC (v53a_device::dreq_w<1 >));
259
262
260
263
FLOPPY_CONNECTOR (config, m_floppy, mpc3000_state::floppies, " 35hd" , floppy_image_device::default_mfm_floppy_formats);
261
264
262
265
pit8254_device &pit (PIT8254 (config, " synctmr" , 0 )); // MB89254
263
- pit.set_clk <0 >(16_MHz_XTAL / 4 );
264
- pit.set_clk <1 >(16_MHz_XTAL / 4 );
265
- pit.set_clk <2 >(16_MHz_XTAL / 4 );
266
+ pit.set_clk <0 >(V53_PCLKOUT );
267
+ pit.set_clk <1 >(V53_PCLKOUT );
268
+ pit.set_clk <2 >(V53_PCLKOUT );
266
269
267
270
I8255 (config, " adcexp" ); // MB89255B
268
271
I8255 (config, " dioexp" ); // MB89255B
269
272
270
273
HD61830 (config, m_lcdc, 4 .9152_MHz_XTAL / 2 / 2 ); // LC7981
271
274
272
- // TE7774(config, "sio", 16_MHz_XTAL / 4 );
275
+ // TE7774(config, "sio", V53_PCLKOUT );
273
276
274
277
auto &mdin (MIDI_PORT (config, " mdin" ));
275
278
midiin_slot (mdin);
@@ -290,14 +293,14 @@ void mpc3000_state::mpc3000(machine_config &config)
290
293
{
291
294
mb89352_device &spc = downcast<mb89352_device &>(*device);
292
295
293
- spc.set_clock (16_MHz_XTAL / 2 );
296
+ spc.set_clock (32_MHz_XTAL / 4 ); // PCLKOUT
294
297
spc.out_irq_callback ().set (" :intp3" , FUNC (input_merger_device::in_w<1 >));
295
298
spc.out_dreq_callback ().set (m_maincpu, FUNC (v53a_device::dreq_w<0 >));
296
299
});
297
300
298
301
SPEAKER (config, " speaker" , 2 ).front ();
299
302
300
- L7A1045 (config, m_dsp, 16_MHz_XTAL);
303
+ L7A1045 (config, m_dsp, 33 .8688_MHz_XTAL / 2 ); // TODO: verify clock
301
304
m_dsp->add_route (0 , " speaker" , 1.0 , 0 );
302
305
m_dsp->add_route (1 , " speaker" , 1.0 , 1 );
303
306
}
0 commit comments