Previous 199869 Revisions Next

r26226 Sunday 17th November, 2013 at 11:15:26 UTC by Curt Coder
wd_fdc: Fixed ready interrupt polarity. Added a soft_reset() function which resets only the FDC and not the floppy image devices, thus preserving the correct ready states. [Curt Coder]
[src/emu/bus/abcbus]lux21046.c
[src/emu/machine]wd_fdc.c wd_fdc.h

trunk/src/emu/machine/wd_fdc.c
r26225r26226
6565
6666void wd_fdc_t::device_reset()
6767{
68   soft_reset();
69}
70
71void wd_fdc_t::soft_reset()
72{
6873   command = 0x00;
6974   main_state = IDLE;
7075   sub_state = IDLE;
r26225r26226
10711076   if(!ready_hooked)
10721077      return;
10731078
1074   if(!intrq && (((intrq_cond & I_RDY) && state) || ((intrq_cond & I_NRDY) && !state))) {
1079   if(!intrq && (((intrq_cond & I_RDY) && !state) || ((intrq_cond & I_NRDY) && state))) {
10751080      intrq = true;
10761081      if(!intrq_cb.isnull())
10771082         intrq_cb(intrq);
trunk/src/emu/machine/wd_fdc.h
r26225r26226
117117
118118   wd_fdc_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
119119
120   void soft_reset();
121
120122   void dden_w(bool dden);
121123   void set_floppy(floppy_image_device *floppy);
122124   void setup_intrq_cb(line_cb cb);
trunk/src/emu/bus/abcbus/lux21046.c
r26225r26226
821821   m_cs = false;
822822   m_out = 0;
823823
824   m_maincpu->reset();
825
824826   address_space &space = m_maincpu->space(AS_PROGRAM);
825827   _4b_w(space, 0, 0);
826828   _9b_w(space, 0, 0);
r26225r26226
940942{
941943   if (m_cs)
942944   {
943      m_maincpu->reset();
945      device_reset();
944946   }
945947}
946948
r26225r26226
10851087   */
10861088
10871089   // FDC master reset
1088   if (!BIT(data, 0)) m_fdc->reset();
1090   if (!BIT(data, 0)) m_fdc->soft_reset();
10891091
10901092   // density select
10911093   m_fdc->dden_w(BIT(data, 1));

Previous 199869 Revisions Next


© 1997-2024 The MAME Team