trunk/src/mess/drivers/pc88va.c
| r19282 | r19283 | |
| 152 | 152 | void fdc_irq(bool state); |
| 153 | 153 | void fdc_drq(bool state); |
| 154 | 154 | DECLARE_FLOPPY_FORMATS( floppy_formats ); |
| 155 | void pc88va_fdc_update_ready(floppy_image_device *, int); |
| 155 | 156 | }; |
| 156 | 157 | |
| 157 | 158 | |
| r19282 | r19283 | |
| 1023 | 1024 | m_fdc_motor_status[1] = 1; |
| 1024 | 1025 | } |
| 1025 | 1026 | |
| 1027 | /* TODO: double check schematics */ |
| 1028 | void pc88va_state::pc88va_fdc_update_ready(floppy_image_device *, int) |
| 1029 | { |
| 1030 | bool ready_0 = m_fdc_ctrl_2 & 0x20; |
| 1031 | bool ready_1 = m_fdc_ctrl_2 & 0x40; |
| 1032 | |
| 1033 | floppy_image_device *floppy; |
| 1034 | floppy = machine().device<floppy_connector>("upd765:0")->get_device(); |
| 1035 | if(floppy && ready_0) |
| 1036 | ready_0 = floppy->ready_r(); |
| 1037 | floppy = machine().device<floppy_connector>("upd765:1")->get_device(); |
| 1038 | if(floppy && ready_1) |
| 1039 | ready_1 = floppy->ready_r(); |
| 1040 | |
| 1041 | m_fdc->ready_w(ready_0 || ready_1); |
| 1042 | } |
| 1043 | |
| 1026 | 1044 | WRITE8_MEMBER(pc88va_state::pc88va_fdc_w) |
| 1027 | 1045 | { |
| 1028 | 1046 | printf("%08x %02x\n",offset<<1,data); |
| r19282 | r19283 | |
| 1093 | 1111 | |
| 1094 | 1112 | m_fdc_ctrl_2 = data; |
| 1095 | 1113 | |
| 1114 | pc88va_fdc_update_ready(NULL, 0); |
| 1115 | |
| 1096 | 1116 | break; // FDC control port 2 |
| 1097 | 1117 | } |
| 1098 | 1118 | } |
| r19282 | r19283 | |
| 1638 | 1658 | m_t3_mouse_timer->adjust(attotime::never); |
| 1639 | 1659 | m_fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(pc88va_state::fdc_drq), this)); |
| 1640 | 1660 | m_fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc88va_state::fdc_irq), this)); |
| 1661 | floppy_image_device *floppy; |
| 1662 | floppy = machine().device<floppy_connector>("upd765:0")->get_device(); |
| 1663 | if(floppy) |
| 1664 | floppy->setup_ready_cb(floppy_image_device::ready_cb(FUNC(pc88va_state::pc88va_fdc_update_ready), this)); |
| 1641 | 1665 | |
| 1666 | floppy = machine().device<floppy_connector>("upd765:1")->get_device(); |
| 1667 | if(floppy) |
| 1668 | floppy->setup_ready_cb(floppy_image_device::ready_cb(FUNC(pc88va_state::pc88va_fdc_update_ready), this)); |
| 1669 | |
| 1642 | 1670 | machine().device<floppy_connector>("upd765:0")->get_device()->set_rpm(300); |
| 1643 | 1671 | machine().device<floppy_connector>("upd765:1")->get_device()->set_rpm(300); |
| 1644 | 1672 | machine().device<upd765a_device>("upd765")->set_rate(250000); |