trunk/src/mess/drivers/a5105.c
| r19149 | r19150 | |
| 5 | 5 | 12/05/2009 Skeleton driver. |
| 6 | 6 | |
| 7 | 7 | http://www.robotrontechnik.de/index.htm?/html/computer/a5105.htm |
| 8 | http://www.sax.de/~zander/bic/bic_bw.html |
| 8 | 9 | |
| 9 | 10 | - this looks like "somehow" inspired by the MSX1 machine? |
| 10 | 11 | |
| r19149 | r19150 | |
| 37 | 38 | public: |
| 38 | 39 | a5105_state(const machine_config &mconfig, device_type type, const char *tag) |
| 39 | 40 | : driver_device(mconfig, type, tag), |
| 40 | | m_maincpu(*this, "maincpu"), |
| 41 | | m_hgdc(*this, "upd7220"), |
| 42 | | m_cass(*this, CASSETTE_TAG), |
| 43 | | m_beep(*this, BEEPER_TAG), |
| 44 | | m_video_ram(*this, "video_ram"){ } |
| 41 | m_maincpu(*this, "maincpu"), |
| 42 | m_hgdc(*this, "upd7220"), |
| 43 | m_cass(*this, CASSETTE_TAG), |
| 44 | m_beep(*this, BEEPER_TAG), |
| 45 | m_fdc(*this, "upd765a"), |
| 46 | m_floppy0(*this, "upd765a:0"), |
| 47 | m_floppy1(*this, "upd765a:1"), |
| 48 | m_floppy2(*this, "upd765a:2"), |
| 49 | m_floppy3(*this, "upd765a:3"), |
| 50 | m_video_ram(*this, "video_ram") |
| 51 | { } |
| 45 | 52 | |
| 46 | 53 | required_device<cpu_device> m_maincpu; |
| 47 | 54 | required_device<upd7220_device> m_hgdc; |
| 48 | 55 | required_device<cassette_image_device> m_cass; |
| 49 | 56 | required_device<device_t> m_beep; |
| 57 | required_device<upd765a_device> m_fdc; |
| 58 | required_device<floppy_connector> m_floppy0; |
| 59 | required_device<floppy_connector> m_floppy1; |
| 60 | required_device<floppy_connector> m_floppy2; |
| 61 | required_device<floppy_connector> m_floppy3; |
| 62 | |
| 50 | 63 | DECLARE_READ8_MEMBER(a5105_memsel_r); |
| 51 | 64 | DECLARE_READ8_MEMBER(key_r); |
| 52 | 65 | DECLARE_READ8_MEMBER(key_mux_r); |
| r19149 | r19150 | |
| 312 | 325 | |
| 313 | 326 | WRITE8_MEMBER( a5105_state::a5105_upd765_w ) |
| 314 | 327 | { |
| 315 | | machine().device<upd765a_device>("upd765a")->tc_w(BIT(data, 4)); |
| 328 | m_floppy0->get_device()->mon_w(!BIT(data,0)); |
| 329 | m_floppy1->get_device()->mon_w(!BIT(data,1)); |
| 330 | m_floppy2->get_device()->mon_w(!BIT(data,2)); |
| 331 | m_floppy3->get_device()->mon_w(!BIT(data,3)); |
| 332 | |
| 333 | m_fdc->tc_w(BIT(data, 4)); |
| 316 | 334 | } |
| 317 | 335 | |
| 318 | 336 | static ADDRESS_MAP_START(a5105_io, AS_IO, 8, a5105_state) |
| r19149 | r19150 | |
| 526 | 544 | FLOPPY_FORMATS_END |
| 527 | 545 | |
| 528 | 546 | static SLOT_INTERFACE_START( a5105_floppies ) |
| 529 | | SLOT_INTERFACE( "525dd", FLOPPY_525_DD ) |
| 547 | SLOT_INTERFACE( "525qd", FLOPPY_525_QD ) |
| 530 | 548 | SLOT_INTERFACE_END |
| 531 | 549 | |
| 532 | 550 | static Z80CTC_INTERFACE( a5105_ctc_intf ) |
| r19149 | r19150 | |
| 586 | 604 | |
| 587 | 605 | MCFG_CASSETTE_ADD( CASSETTE_TAG, default_cassette_interface ) |
| 588 | 606 | |
| 589 | | MCFG_UPD765A_ADD("upd765a", false, true) |
| 590 | | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) |
| 591 | | MCFG_FLOPPY_DRIVE_ADD("upd765a:1", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) |
| 592 | | MCFG_FLOPPY_DRIVE_ADD("upd765a:2", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) |
| 593 | | MCFG_FLOPPY_DRIVE_ADD("upd765a:3", a5105_floppies, "525dd", 0, a5105_state::floppy_formats) |
| 607 | MCFG_UPD765A_ADD("upd765a", true, true) |
| 608 | MCFG_FLOPPY_DRIVE_ADD("upd765a:0", a5105_floppies, "525qd", 0, a5105_state::floppy_formats) |
| 609 | MCFG_FLOPPY_DRIVE_ADD("upd765a:1", a5105_floppies, "525qd", 0, a5105_state::floppy_formats) |
| 610 | MCFG_FLOPPY_DRIVE_ADD("upd765a:2", a5105_floppies, "525qd", 0, a5105_state::floppy_formats) |
| 611 | MCFG_FLOPPY_DRIVE_ADD("upd765a:3", a5105_floppies, "525qd", 0, a5105_state::floppy_formats) |
| 594 | 612 | |
| 595 | 613 | /* internal ram */ |
| 596 | 614 | MCFG_RAM_ADD(RAM_TAG) |