Previous 15994 Revisions Next

r8587 Thursday 22nd July, 2010 at 14:55:34 UTC by Miodrag Milanović
Fixed motor status issues with some old drivers, they work fine with old wd17xx implementation, but will need some adjustments.
[src/mess/machine]b2m.c partner.c pk8020.c special.c

src/mess/machine/b2m.c
r8586r8587
1717#include "machine/msm8251.h"
1818#include "includes/b2m.h"
1919#include "devices/messram.h"
20#include "devices/flopdrv.h"
2021
2122static READ8_HANDLER (b2m_keyboard_r )
2223{
r8586r8587
210211   UINT8 drive = ((data >> 1) & 1) ^ 1;
211212   UINT8 side  = (data  & 1) ^ 1;
212213   b2m_state *state = (b2m_state *)device->machine->driver_data;
214   floppy_mon_w(floppy_get_device(device->machine, 0), 1);
215   floppy_mon_w(floppy_get_device(device->machine, 1), 1);
213216
214217   if (state->b2m_drive!=drive) {
215218      wd17xx_set_drive(state->fdc,drive);
219      floppy_mon_w(floppy_get_device(device->machine, 0), 0);         
220      floppy_drive_set_ready_state(floppy_get_device(device->machine, 0), 1, 1);
216221      state->b2m_drive = drive;
217222   }
218223   if (state->b2m_side!=side) {
219224      wd17xx_set_side(state->fdc,side);
225      floppy_mon_w(floppy_get_device(device->machine, 1), 0);
226      floppy_drive_set_ready_state(floppy_get_device(device->machine, 1), 1, 1);
220227      state->b2m_side = side;
221228   }
222229}
src/mess/machine/partner.c
r8586r8587
106106         default   : wd17xx_data_w(fdc,0,data);break;
107107      }
108108   } else {
109      floppy_mon_w(floppy_get_device(space->machine, 0), 1);
110      floppy_mon_w(floppy_get_device(space->machine, 1), 1);
109111      if (((data >> 6) & 1)==1) {
110112         wd17xx_set_drive(fdc,0);
113         floppy_mon_w(floppy_get_device(space->machine, 0), 0);
114         floppy_drive_set_ready_state(floppy_get_device(space->machine, 0), 1, 1);
111115      }
112116      if (((data >> 3) & 1)==1) {
113117         wd17xx_set_drive(fdc,1);
118         floppy_mon_w(floppy_get_device(space->machine, 1), 0);
119         floppy_drive_set_ready_state(floppy_get_device(space->machine, 1), 1, 1);
114120      }
115121      wd17xx_set_side(fdc,data >> 7);
116122   }
src/mess/machine/special.c
r8586r8587
1717#include "machine/wd17xx.h"
1818#include "includes/special.h"
1919#include "devices/messram.h"
20#include "devices/flopdrv.h"
2021
2122static UINT8 specimx_color;
2223UINT8 *specimx_colorram;
r8586r8587
421422   wd17xx_set_side (fdc,data & 1);
422423   wd17xx_set_drive(fdc,(data >> 1) & 1);
423424   wd17xx_dden_w(fdc, BIT(data, 2));
425   floppy_mon_w(floppy_get_device(space->machine, (data >> 1) & 1), 0);
426   floppy_mon_w(floppy_get_device(space->machine, ((data >> 1) & 1) ? 0 : 1), 1);
427   floppy_drive_set_ready_state(floppy_get_device(space->machine, (data >> 1) & 1), 1, 1);
428
424429}
src/mess/machine/pk8020.c
r8586r8587
1212#include "cpu/i8085/i8085.h"
1313#include "machine/wd17xx.h"
1414#include "devices/messram.h"
15#include "devices/flopdrv.h"
1516
1617static UINT8 attr = 0;
1718static UINT8 text_attr = 0;
r8586r8587
870871static WRITE8_DEVICE_HANDLER(pk8020_portb_w)
871872{
872873   running_device *fdc = device->machine->device("wd1793");
874   // Turn all motors off
875   floppy_mon_w(floppy_get_device(device->machine, 0), 1);
876   floppy_mon_w(floppy_get_device(device->machine, 1), 1);
877   floppy_mon_w(floppy_get_device(device->machine, 2), 1);
878   floppy_mon_w(floppy_get_device(device->machine, 3), 1);   
873879   wd17xx_set_side(fdc,BIT(data,4));
874880   if (BIT(data,0)) {
875881      wd17xx_set_drive(fdc,0);
882      floppy_mon_w(floppy_get_device(device->machine, 0), 0);
883      floppy_drive_set_ready_state(floppy_get_device(device->machine, 0), 1, 1);
876884   } else if (BIT(data,1)) {
877885      wd17xx_set_drive(fdc,1);
886      floppy_mon_w(floppy_get_device(device->machine, 1), 0);
887      floppy_drive_set_ready_state(floppy_get_device(device->machine, 1), 1, 1);
878888   } else if (BIT(data,2)) {
879889      wd17xx_set_drive(fdc,2);
890      floppy_mon_w(floppy_get_device(device->machine, 2), 0);
891      floppy_drive_set_ready_state(floppy_get_device(device->machine, 2), 1, 1);
880892   } else if (BIT(data,3)) {
881893      wd17xx_set_drive(fdc,3);
894      floppy_mon_w(floppy_get_device(device->machine, 3), 0);
895      floppy_drive_set_ready_state(floppy_get_device(device->machine, 3), 1, 1);
882896   }
883897}
884898

Previous 15994 Revisions Next


© 1998-2018 The MESS Team