Previous 199869 Revisions Next

r31461 Monday 28th July, 2014 at 23:38:52 UTC by Barry Rodewald
gimix: made drive size DIP switch use a PORT_CHANGED callback so a reset is no longer required to change the FDC clock speed. (no whatsnew)
[src/mess/drivers]gimix.c

trunk/src/mess/drivers/gimix.c
r31460r31461
113113   DECLARE_READ8_MEMBER(pia_pb_r);
114114   DECLARE_WRITE8_MEMBER(pia_pb_w);
115115   TIMER_DEVICE_CALLBACK_MEMBER(test_timer_w);
116   DECLARE_INPUT_CHANGED_MEMBER(drive_size_cb);
116117
117118   DECLARE_FLOPPY_FORMATS(floppy_formats);
118119
r31460r31461
218219
219220static INPUT_PORTS_START( gimix )
220221   PORT_START("dma_s2")
221   PORT_DIPNAME(0x00000100,0x00000000,"5.25\" / 8\" floppy drive 0") PORT_DIPLOCATION("S2:9")
222   PORT_DIPNAME(0x00000100,0x00000000,"5.25\" / 8\" floppy drive 0") PORT_DIPLOCATION("S2:9") PORT_CHANGED_MEMBER(DEVICE_SELF,gimix_state,drive_size_cb,NULL)
222223   PORT_DIPSETTING(0x00000000,"5.25\"")
223224   PORT_DIPSETTING(0x00000100,"8\"")
224225
r31460r31461
462463      m_dma_status &= ~0x80;
463464}
464465
466INPUT_CHANGED_MEMBER(gimix_state::drive_size_cb)
467{
468   // set FDC clock based on DIP Switch S2-9 (5.25"/8" drive select)
469   if(m_dma_dip->read() & 0x00000100)
470      m_fdc->set_unscaled_clock(XTAL_8MHz / 4); // 8 inch (2MHz)
471   else
472      m_fdc->set_unscaled_clock(XTAL_8MHz / 8); // 5.25 inch (1MHz)
473}
474
465475void gimix_state::machine_reset()
466476{
467477   m_term_data = 0;
r31460r31461
477487   membank("lower_ram")->set_base(m_ram->pointer());
478488   membank("upper_ram")->set_base(m_ram->pointer()+0x10000);
479489
480   // set FDC clock based on DIP Switch S2-9 (5.25"/8" drive select)
490   // initialise FDC clock based on DIP Switch S2-9 (5.25"/8" drive select)
481491   if(m_dma_dip->read() & 0x00000100)
482492      m_fdc->set_unscaled_clock(XTAL_8MHz / 4); // 8 inch (2MHz)
483493   else

Previous 199869 Revisions Next


© 1997-2024 The MAME Team