trunk/src/mess/drivers/wicat.c
| r26889 | r26890 | |
| 20 | 20 | #include "video/i8275x.h" |
| 21 | 21 | #include "machine/am9517a.h" |
| 22 | 22 | #include "machine/x2212.h" |
| 23 | | #include "machine/wd17xx.h" |
| 23 | #include "machine/wd_fdc.h" |
| 24 | 24 | #include "wicat.lh" |
| 25 | 25 | |
| 26 | 26 | class wicat_state : public driver_device |
| r26889 | r26890 | |
| 104 | 104 | required_device<im6402_device> m_videouart; |
| 105 | 105 | required_device<x2210_device> m_videosram; |
| 106 | 106 | required_memory_region m_chargen; |
| 107 | | required_device<fd1795_device> m_fdc; |
| 107 | required_device<fd1795_t> m_fdc; |
| 108 | 108 | |
| 109 | 109 | UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return 0; } |
| 110 | 110 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); |
| r26889 | r26890 | |
| 460 | 460 | switch(offset) |
| 461 | 461 | { |
| 462 | 462 | case 0x00: |
| 463 | | ret = wd17xx_status_r(this,space,0); |
| 463 | ret = m_fdc->status_r(space,0); |
| 464 | 464 | break; |
| 465 | 465 | case 0x01: |
| 466 | | ret = wd17xx_track_r(this,space,0); |
| 466 | ret = m_fdc->track_r(space,0); |
| 467 | 467 | break; |
| 468 | 468 | case 0x02: |
| 469 | | ret = wd17xx_sector_r(this,space,0); |
| 469 | ret = m_fdc->sector_r(space,0); |
| 470 | 470 | break; |
| 471 | 471 | case 0x03: |
| 472 | | ret = wd17xx_data_r(this,space,0); |
| 472 | ret = m_fdc->data_r(space,0); |
| 473 | 473 | break; |
| 474 | 474 | case 0x08: |
| 475 | 475 | // Interrupt status (TODO, not part of the FD1795) |
| r26889 | r26890 | |
| 484 | 484 | switch(offset) |
| 485 | 485 | { |
| 486 | 486 | case 0x00: |
| 487 | | wd17xx_command_w(this,space,0,data); |
| 487 | m_fdc->cmd_w(space,0,data); |
| 488 | 488 | break; |
| 489 | 489 | case 0x01: |
| 490 | | wd17xx_track_w(this,space,0,data); |
| 490 | m_fdc->track_w(space,0,data); |
| 491 | 491 | break; |
| 492 | 492 | case 0x02: |
| 493 | | wd17xx_sector_w(this,space,0,data); |
| 493 | m_fdc->sector_w(space,0,data); |
| 494 | 494 | break; |
| 495 | 495 | case 0x03: |
| 496 | | wd17xx_data_w(this,space,0,data); |
| 496 | m_fdc->data_w(space,0,data); |
| 497 | 497 | break; |
| 498 | 498 | case 0x08: |
| 499 | 499 | // Interrupt disable / Drive select (TODO, not part of the FD1795) |
| r26889 | r26890 | |
| 941 | 941 | MCFG_CPU_ADD("floppycpu",N8X300,XTAL_8MHz) |
| 942 | 942 | MCFG_CPU_PROGRAM_MAP(wicat_wd1000_mem) |
| 943 | 943 | MCFG_CPU_IO_MAP(wicat_wd1000_io) |
| 944 | | MCFG_FD1795_ADD("fdc",default_wd17xx_interface_2_drives) |
| 944 | MCFG_FD1795x_ADD("fdc",XTAL_8MHz) |
| 945 | 945 | |
| 946 | 946 | |
| 947 | 947 | MACHINE_CONFIG_END |