Previous 199869 Revisions Next

r30673 Monday 26th May, 2014 at 10:43:08 UTC by Curt Coder
(MESS) ql: Floppy WIP. (nw)
[src/emu/bus/ql]sandy_superqboard.c sandy_superqboard.h
[src/mess/drivers]ql.c

trunk/src/emu/bus/ql/sandy_superqboard.c
r30672r30673
7070WRITE_LINE_MEMBER( sandy_superqboard_t::busy_w )
7171{
7272   m_busy = state;
73   check_interrupt();
7374}
7475
7576
r30672r30673
120121   m_ram(*this, "ram"),
121122   m_busy(1),
122123   m_int2(0),
123   m_int3(0)
124   m_int3(0),
125   m_fd6(0),
126   m_fd7(0)
124127{
125128}
126129
r30672r30673
141144void sandy_superqboard_t::device_reset()
142145{
143146   m_fdc->reset();
147   m_fdc->set_floppy(NULL);
148   m_fdc->dden_w(0);
149
144150   m_latch->write(0);
151   m_centronics->write_strobe(1);
145152   
146153   m_int2 = 0;
147154   m_int3 = 0;
155   m_fd6 = 0;
156   m_fd7 = 0;
148157}
149158
150159
r30672r30673
224233               3       M ON0
225234               4       /DDEN
226235               5       STROBE inverted
227               6       GAL pin 11
228               7       GAL pin 9
236               6       enable printer interrupt (GAL pin 11)
237               7       enable mouse interrupt (GAL pin 9)
229238
230239            */
231240
r30672r30673
251260            m_fdc->dden_w(BIT(data, 4));
252261
253262            m_centronics->write_strobe(!BIT(data, 5));
263
264            m_fd6 = BIT(data, 6);
265            m_fd7 = BIT(data, 7);
266            check_interrupt();
254267            }
255268            break;
256269
r30672r30673
261274         case 4:
262275            m_int2 = 0;
263276            m_int3 = 0;
277            check_interrupt();
264278            break;
265279
266280         case 5:
r30672r30673
270284      }
271285   }
272286}
287
288void sandy_superqboard_t::check_interrupt()
289{
290   int extint = (m_fd6 && m_busy) || (m_fd7 && (m_int2 || m_int3));
291
292   m_slot->extintl_w(extint ? ASSERT_LINE : CLEAR_LINE);
293}
trunk/src/emu/bus/ql/sandy_superqboard.h
r30672r30673
4949    virtual void write(address_space &space, offs_t offset, UINT8 data);
5050
5151private:
52   void check_interrupt();
53
5254   required_device<wd1772_t> m_fdc;
5355   required_device<floppy_connector> m_floppy0;
5456   required_device<floppy_connector> m_floppy1;
r30672r30673
6062   int m_busy;
6163   int m_int2;
6264   int m_int3;
65   int m_fd6;
66   int m_fd7;
6367};
6468
6569
trunk/src/mess/drivers/ql.c
r30672r30673
11171117   //MCFG_QL_EXPANSION_SLOT_IPL0L_CALLBACK()
11181118   //MCFG_QL_EXPANSION_SLOT_IPL1L_CALLBACK()
11191119   //MCFG_QL_EXPANSION_SLOT_BERRL_CALLBACK()
1120   //MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK()
1120   MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(DEVWRITELINE(ZX8302_TAG, zx8302_device, extint_w))
11211121
11221122   // cartridge
11231123   MCFG_CARTSLOT_ADD("cart")

Previous 199869 Revisions Next


© 1997-2024 The MAME Team