Previous 199869 Revisions Next

r19252 Sunday 2nd December, 2012 at 14:26:50 UTC by O. Galibert
pc98: Hookup ready in line with the schematics.  Untested, but it may even work (nw)
[src/mess/drivers]pc9801.c

trunk/src/mess/drivers/pc9801.c
r19251r19252
490490   DECLARE_WRITE_LINE_MEMBER(fdc_2dd_irq);
491491   DECLARE_WRITE_LINE_MEMBER(fdc_2dd_drq);
492492//   DECLARE_WRITE_LINE_MEMBER(pc9801rs_fdc_irq);
493
494   void pc9801_fdc_2hd_update_ready(floppy_image_device *, int);
493495};
494496
495497
r19251r19252
11541156   return 0xff;
11551157}
11561158
1159void 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
11571173WRITE8_MEMBER(pc9801_state::pc9801_fdc_2hd_w)
11581174{
11591175
r19251r19252
11681184            if(((m_fdc_2hd_ctrl & 0x80) == 0) && (data & 0x80))
11691185               machine().device<upd765a_device>("upd765_2hd")->reset();
11701186
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);
11731189
1174            m_fdc_2hd_ctrl = data;
11751190            //machine().device<floppy_connector>("upd765_2hd:0")->get_device()->mon_w(!(data & 0x40));
11761191            //machine().device<floppy_connector>("upd765_2hd:1")->get_device()->mon_w(!(data & 0x40));
11771192            break;
r19251r19252
27442759   {
27452760      fdc->setup_intrq_cb(upd765a_device::line_cb(FUNC(pc9801_state::fdc_2hd_irq), this));
27462761      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));     
27472771   }
27482772
27492773   fdc = machine().device<upd765a_device>(":upd765_2dd");

Previous 199869 Revisions Next


© 1997-2024 The MAME Team