• Please review our updated Terms and Rules here

Trying to get a 3.5" floppy to work with FDC+

alank2

Veteran Member
Joined
Aug 3, 2016
Messages
2,256
Location
USA
I've mentioned this to Mike and he says to give it a try. I've got a few Sony MPF-920 drives I bought from a guy, but I don't know if they work or not. First thing is to test them and see if they work on a PC.

I found a number of pages talking about modifying the drive to work with Amiga or other systems, but this one sticks out:

https://translate.google.com/transl.../index.php/floppy-sony-mpf-920-pour-un-trs-80

I think they are suggesting that the SH1 strap enables controlling the RPM from the cable, but in my case, I just need to make it spin a 360 rpm so that it can look like an 8" drive. Mike is already doing this with the Teac 55 GFR for 5.25" where it replaces an 8" drive and still stores the roughly 330K on it.

Mike also mentioned that it needs to provide an index signal while seeking, but I'm not sure why a drive would ever not provide an index signal while seeking. Wouldn't it take more logic to not do that?

Any other tips or things I should look at before opening one of these drives up? I recall someone mentioning that the FDC interface is an open collector interface.

Mike's FDC manual talks about the jumpers that need to be set and why on the Teac drive, so that is the first place I'm going to start to try to understand what the 3.5" drive "needs to be" though I don't know if all the options needed will be easy to find.
 
The FDC+ is one of Mike's boards that goes into an Altair 8800, in this case his reproduction C version.
 
Hello Alank2, I don't have one of Mike's floppy disk controller cards but I have successfully modified a Teac 5-1/4"
drive and a Samsung 3-1/2" drive to work as 8" drive replacements for other S-100 soft sectored floppy controller
boards...Jade, Versa Floppy, and the S100.com floppy controller board. For 3-1/2" drives I believe it is essential
to have a drive capable of "dual speed". The Samsung SFD-321B (revision T2) 3-1/2" drive has worked well for this
and is readily available on Ebay as Compaq used them in their computers. From work done by Marcus Bennett, I was
able to write a PDF document as to how this is done. It's too big to post here but I can E-Mail it to you if you
think it might help.

>> Charles
 
Thanks Dawsoca, I *think* I know how to change the speed of the drive I have. The part that I wonder about is that it is supposed to keep giving the index signal even if seeking. I saw another drive's technical manual and it talked about disabling the index signal up to 500ms after seeking. I have no idea why a drive manufacturer would make it do that. I think that might be the challenge, can I get the drive to keep outputting that index signal even if it wasn't designed to. If you can send me a PM with that PDF attached that would be great!
 
The various descendants of the venerable WD1771 soft sector disk controller IC were the standard controller IC in virtually all micro computers. These ICs time out reads, writes, and other operations by counting disk revolutions (i.e., index pulses). However, if no index pulses are coming in, then the controller IC never times out.

Interestingly, this “shortcoming” ended up being a very easy way to allow software drivers to handle all the various timing requirements different drives might have. For example, the software driver could select a drive, do a seek, and then issue a read or write without worrying about a drive’s particular requirements for motor start time, head settle time, trim erase time, write/read amplifier switch time, etc. How? These second generation drives could suppress index pulses (and read output data) until the drive knew all its timing requirements had been met for the pending I/O operation. Since the controller IC is not receiving index pulses, the operation does not timeout. Since the controller IC is not receiving any read data, it never sees a sector mark. This effectively stalls the controller IC until the drive knows it is ready to proceed and starts sending read data and index pulses again.

Mike
 
Drives with buffered seek and integrated MCUs arrived on the scene. You got faster long seeks, but you had to tell the host that a drive was still seeking. You could inhibit the READY signal (if there was one) during seeks or inhibit the INDEX pulse, which had the same effect for many controllers.

I used a Tarbell controller with WD1771 on my S100 system with Calcomp drives. It worked just fine. Later on, when I wrote commercial code for the WD1781, things were more complicated. The 1781 was never popular and was a bit of a diamond in the rough. It would occasionally simply quit responding. There was no READY status change, no interrupt, no DMA. How could one tell/? Fortunately I was also tasked with writing the code for the 8253 PIT, so one of the things that the floppy driver code did was to set a deadman timeout. If that expired, the chip was reset and the operation was repeated. The IBM PC also has timeouts on the NEC 765 BIOS code because there is no polling for DRIVE READY conditions. So there's a timer on that too. If a drive isn't ready, a timer expires and the chip is reset and a "NOT READY' status is passed to the caller.

It's really a shame that IBM essentially bypassed all the best features of the 765. The chip can keep track of up to 4 drives, and issue overlapped seeks (more than one drive seeking at the same time). Of course, the chip pays attention to READY status as well. All of that is discarded in the PC implementation.

I can't comment on DeRamp's implementation, as I don't know what's inside the MCU. Can the board handle standard IBM 3740 and System/34 floppies?
 
The FDC+ duplicates the operation of the original Altair FDC controller - a hard sector controller. As with most hard sector controllers, the sector and index pulses must continue at all times for the controller to remain in sync with the drive to keep the sector number register correct.

Mike
 
Interested to see the results here -- I'd mentioned to Mike a while ago that I was planning on trying 3.5" HD drives with my FDC+, but I haven't gotten around to it yet.

Is there really an active community exchanging data on Altair-formatted floppies?

Define "active" and "community!" Are there some of us exchanging 8" hard sectored diskettes? Yes. Probably not a ton of us. Reason enough to care about index skew alignment, though!
 
The FDC+ duplicates the operation of the original Altair FDC controller - a hard sector controller. As with most hard sector controllers, the sector and index pulses must continue at all times for the controller to remain in sync with the drive to keep the sector number register correct.

I believe that a fair number of 8" drives had the option of bringing out the sector pulse and index pulse on separate pins. If you're synthesizing sector pulses on a 3.5" drive, then the "index while seeking" hardly matters does it? When you're on-cylinder, just wait for the index pulse and work off that.

I guess I'm having problems comprehending the need for counting sectors while seeking. You have to wait for the drive head to settle after the seek anyway; your average wait time after a seek should be about 83 msec at 360 RPM, or 100 at 300 RPM.
 
I guess I'm having problems comprehending the need for counting sectors while seeking. You have to wait for the drive head to settle after the seek anyway; your average wait time after a seek should be about 83 msec at 360 RPM, or 100 at 300 RPM.

...because the existing hardware and software from the mid to late 70’s must work without modification.

Mike
 
I'm hoping I can find the index signal somewhere before it goes into an IC that AND's it with other conditions - tonight I'm going to try to get one of the Sony MPF 920's case off and see what it has going on.
 
Since you don't know the drive function correctly you might want to test them before modifying them. I use a Supercard Pro and you can test for head movement and read/write operation with it.
 
Mike's manual talks about settings for the Teac drive, but I am presuming that I need to make the 3.5" essentially do the same thing:

LG = Out = HD mode (pin 2 high / not driven)
I = Out = 360 RPM
E2 = In = Index pulses continue while seeking
DS0-DS3 = Install for drive # = 0-2 = Shugart 1-3, DS3 on P6 – jumper to IDC-50 P32
IU = Out = Ignore “In Use” on P4
U0,U1 = In = Light on with drive select and motor spinning
RY, DC = Out = Neither Ready or Disk Change drive P34

One approach I wonder about when trying this is to just connect only the needed lines. Let's begin with the list of lines that are necessary:

8-index
10-ds0
16-motor
18-dir
20-step
22-write data
24-write enable
26-track 0
28-write protect
30-read data
32-head select
 
It is working!

I first hooked the drive to a power supply, and jumpered the DS and motor so it would run. No index signal until I included a pullup on it, but then I saw an index signal an it seemed to stay even when it stepped it. Maybe in 360rpm mode it always has the index signal? In any case I was very happy to see this.

Changes I had to make to the drive were:

1. remove the 0ohm resistor on JC31/SEL1.
2. I tried to add the 0ohm resistor to JC30/SEL0, but it was just easier to create a solder bubble between the two pads.
3. The LEFT side of SH1 needs to be grounded for 360rpm. I made a little jumper wire and connected to the ground side of the capacitor just above it.

I'll attach a picture of the drive PCB, but it isn't my picture.

Not having any more 50pin ribbon, I kludged two 26pin ones together as you can see and used Mike's 5.25” adapter board to adapt to 34 pin.

I used PC2FLOP to send over a bootable floppy and to my surprise, no errors. I then booted the disk and it worked! I then ran crc *.* and it worked! I then used AFORMAT.COM to format another disk, and then ran SYSGEN to make it bootable. It boots. Somewhere along the process however, the original disk I made had its track 0 corrupted. Maybe I swapped disks and didn’t hit ctrl-c, I’m not sure. I tried to use FLOP2PC to pull the disk back to see what happened and at the end it said that the failed sector list included every sector on track 0.

I resent the disk again with PC2FLOP and now set it to read only. No corruption since. I also created disks for burcon 2.2 and lifeboat 2.2.

I only have one drive at this point and I don’t have the cable to connect two of them yet anyway, but I was trying to test the write protect. An interesting thing happens though:

I set all 3 CP/M disks to read only and tried to rename a file on each of them. All of them allow the command and come back to the prompt without an error. The 2.2B then comes up with a delayed write error, but the other two do not. Shouldn’t they? Is this normal behavior? I expected a bdos error saying it couldn’t write. I think the WP signal is connected.
 

Attachments

  • 12_floppy_35.jpg
    12_floppy_35.jpg
    176.8 KB · Views: 1
  • 13_floppypcb.jpg
    13_floppypcb.jpg
    186.3 KB · Views: 1
Nice work! Thanks for taking the time to post about it, I suspected at least some drives could be made to work. This should make the FDC+ even more appealing for Altair/S-100 owners!
 
Back
Top