trunk/src/mess/drivers/gimix.c
| r31460 | r31461 | |
| 113 | 113 | DECLARE_READ8_MEMBER(pia_pb_r); |
| 114 | 114 | DECLARE_WRITE8_MEMBER(pia_pb_w); |
| 115 | 115 | TIMER_DEVICE_CALLBACK_MEMBER(test_timer_w); |
| 116 | DECLARE_INPUT_CHANGED_MEMBER(drive_size_cb); |
| 116 | 117 | |
| 117 | 118 | DECLARE_FLOPPY_FORMATS(floppy_formats); |
| 118 | 119 | |
| r31460 | r31461 | |
| 218 | 219 | |
| 219 | 220 | static INPUT_PORTS_START( gimix ) |
| 220 | 221 | 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) |
| 222 | 223 | PORT_DIPSETTING(0x00000000,"5.25\"") |
| 223 | 224 | PORT_DIPSETTING(0x00000100,"8\"") |
| 224 | 225 | |
| r31460 | r31461 | |
| 462 | 463 | m_dma_status &= ~0x80; |
| 463 | 464 | } |
| 464 | 465 | |
| 466 | INPUT_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 | |
| 465 | 475 | void gimix_state::machine_reset() |
| 466 | 476 | { |
| 467 | 477 | m_term_data = 0; |
| r31460 | r31461 | |
| 477 | 487 | membank("lower_ram")->set_base(m_ram->pointer()); |
| 478 | 488 | membank("upper_ram")->set_base(m_ram->pointer()+0x10000); |
| 479 | 489 | |
| 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) |
| 481 | 491 | if(m_dma_dip->read() & 0x00000100) |
| 482 | 492 | m_fdc->set_unscaled_clock(XTAL_8MHz / 4); // 8 inch (2MHz) |
| 483 | 493 | else |