trunk/src/mess/drivers/pc9801.c
| r19251 | r19252 | |
| 490 | 490 | DECLARE_WRITE_LINE_MEMBER(fdc_2dd_irq); |
| 491 | 491 | DECLARE_WRITE_LINE_MEMBER(fdc_2dd_drq); |
| 492 | 492 | // DECLARE_WRITE_LINE_MEMBER(pc9801rs_fdc_irq); |
| 493 | |
| 494 | void pc9801_fdc_2hd_update_ready(floppy_image_device *, int); |
| 493 | 495 | }; |
| 494 | 496 | |
| 495 | 497 | |
| r19251 | r19252 | |
| 1154 | 1156 | return 0xff; |
| 1155 | 1157 | } |
| 1156 | 1158 | |
| 1159 | void pc9801_state::pc9801_fdc_2hd_update_ready(floppy_image_device *, int) |
| 1160 | { |
| 1161 | bool ready = m_fdc_2hd_ctrl & 0x40; |
| 1162 | floppy_image_device *floppy; |
| 1163 | floppy = machine().device<floppy_connector>("upd765_2hd:0")->get_device(); |
| 1164 | if(floppy && ready) |
| 1165 | ready = floppy->ready_r(); |
| 1166 | floppy = machine().device<floppy_connector>("upd765_2hd:1")->get_device(); |
| 1167 | if(floppy && ready) |
| 1168 | ready = floppy->ready_r(); |
| 1169 | |
| 1170 | m_fdc_2hd->ready_w(ready); |
| 1171 | } |
| 1172 | |
| 1157 | 1173 | WRITE8_MEMBER(pc9801_state::pc9801_fdc_2hd_w) |
| 1158 | 1174 | { |
| 1159 | 1175 | |
| r19251 | r19252 | |
| 1168 | 1184 | if(((m_fdc_2hd_ctrl & 0x80) == 0) && (data & 0x80)) |
| 1169 | 1185 | machine().device<upd765a_device>("upd765_2hd")->reset(); |
| 1170 | 1186 | |
| 1171 | | /* force ready */ |
| 1172 | | machine().device<upd765a_device>("upd765_2hd")->ready_w(data & 0x40); |
| 1187 | m_fdc_2hd_ctrl = data; |
| 1188 | pc9801_fdc_2hd_update_ready(NULL, 0); |
| 1173 | 1189 | |
| 1174 | | m_fdc_2hd_ctrl = data; |
| 1175 | 1190 | //machine().device<floppy_connector>("upd765_2hd:0")->get_device()->mon_w(!(data & 0x40)); |
| 1176 | 1191 | //machine().device<floppy_connector>("upd765_2hd:1")->get_device()->mon_w(!(data & 0x40)); |
| 1177 | 1192 | break; |
| r19251 | r19252 | |
| 2744 | 2759 | { |
| 2745 | 2760 | fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2hd_irq), this)); |
| 2746 | 2761 | fdc->setup_drq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2hd_drq), this)); |
| 2762 | |
| 2763 | floppy_image_device *floppy; |
| 2764 | floppy = machine().device<floppy_connector>("upd765_2hd:0")->get_device(); |
| 2765 | if(floppy) |
| 2766 | floppy->setup_ready_cb(floppy_image_device::ready_cb(FUNC(pc9801_state::pc9801_fdc_2hd_update_ready), this)); |
| 2767 | |
| 2768 | floppy = machine().device<floppy_connector>("upd765_2hd:1")->get_device(); |
| 2769 | if(floppy) |
| 2770 | floppy->setup_ready_cb(floppy_image_device::ready_cb(FUNC(pc9801_state::pc9801_fdc_2hd_update_ready), this)); |
| 2747 | 2771 | } |
| 2748 | 2772 | |
| 2749 | 2773 | fdc = machine().device<upd765a_device>(":upd765_2dd"); |