Cromenco 16FDC discussion and notes

This page last updated April 14 2010.

Summary:: In June-July 2004 in the comp.os.cpm Usenet newsgroup, there was a number of discussions of Persci floppy drive adjustments, and of Processor Technology Inc. (an early S-100 company which used the drives), and of the Cromemco 16FDC floppy controller card. The notes below are a summary of the 16FDC discussion, and responses by others. For the rest of the discussion, see this Web page about the Persci drive discussion. In January 2010 I removed this section on the Cromemco 16FDC from that Web page. Also, see thislinked Web page for Processor Tech history and discussion, likewise removed.

I've recieved permission from the correspondents to exerpt their posted correspondence. If I recieve private technical correspondence, I'll publish it here as well. I'll be glad to add links and make corrections to this document when requested. See Google.com or other archives, to access Usenet comp.os.cpm archives.

My thanks to the participants: Amardeep S Chana, Barry Watzman, Randy McLaughlin, Thomas "Todd" Fischer, Axel Berger. Thanks to Lee Felsenstein for his comments on Processor Tech; and additional work on the 16FDC done by Emil Sarlija, and discussion from Mike Stein.

If you don't know what "S-100" means (or means to me), start with my S-100 Web page. My email address is @ another page.- Herb Johnson.]

Persci drives and Cromemco 16fdc

Amardeep S Chana:I finally got around to cleaning the heads and setting the jumpers on a dual 8" drive unit so it could be hooked up to my Z-2. The drives are Qume 842 DSDD units. As it turns out, much to my dismay, the [Cromemco] 16FDC 8" disk connector is wired for Persci disk drives and will not work properly with standard Shugart type drives without some board mods. Here is the list of connector pin functions of the 16FDC (standard Shugart function in parenthesis):

 2 Side Select (Low Current/TG43)
 4 DS3 (NC)
 6 NC
 8 NC
10 Seek Complete (Two Sided)
12 Restore (Disk Change)
14 Eject (Side Select)
16 NC (In Use)
18 DS4 (Head Load)
20 Index
22 Ready
24 Motor On
26 DS1
28 DS2
30 NC (DS3)
32 NC (DS4)
34 Direction
36 Step
38 Write Data
40 Write Gate
42 Track 00
44 Write Prot
46 Read Data
48 Sep Data
50 Sep Clock

I was able to get them to read single sided without mods since the Qume's were set up to use select instead of head load to pull in the solenoid. Double sided didn't work for obvious reasons. I'm pretty sure they won't record reliably on the inner tracks due to the write current not being reduced. Pin 12 is driven from both sides. The drive side is open collector but he 16FDC is using an 8T96 driver so the line really should be cut. There are no outputs for TG43 or Head Load. I think you might be able to use Motor On for Head Load but the 1793's TG43 output will have to be routed through a driver stage. I'm off to do some cuts and jumpers...

Barry Watzman: The 16FDC works just fine with dual Shugart SA-860's "as-is" with no modifications at all. I guess that I should add that I have not been using double-sided disks in the SA-860's, which might be an issue if I tried to use them. The SA-860, although a conventional separate drive, like the Persci supports a buffered, very fast seek and has a "seek complete" line (not sure which pin it's on).

Amardeep: Exactly as expected. If you tried more than two drives or double sided operation you'd be facing the same problems I did. In addition, tracks 44 to 76 are not being recorded at the correct write current due to the 16FDC's lack of a TG43 output. This might not manifest itself as an immediate problem. But at double density it becomes difficult to recover data when the bit shifts are amplified by the higher write current.

Cromenco 16FDC variations and use

In Sept 2009, Barry Watzman asked about this discussion, care of "comp.os.cpm", as he was working on some Cromemco 16FDC boards, and found some apparent conflicts between different versions of the RDOS ROM monitor. Barry wrote:

I have a number of 16FDCs here, of which:

-Some work, at least superficially, with my Shugart SA-860's
-Some work only if I change the RDOS ROM from 2.01 to 2.52
-Some have a working monitor but not a working FDC interface (no matter what ROM is installed). Likely a data separator problem.
-Some are totally non-responsive

The [2.01] firmware, after accessing the disk drive (or attempting to), says "can't boot" (or "unable to boot" or something like that) and then you get a new RDOS prompt (instead of CP/M). Apparently it's not able to read the boot sector, because all it does is read the boot sector and then transfer control to it. Some [boards] have 2.01 firmware, some 2.52 firmware and one has 3.07 firmware. 2.xx firmware is on 4k ROMs (eg 2732 or similar); the version 3 firmware is on an 8k ROM (2764). I could use at least one more 2.52 ROM, but I have no way of burning one. - Barry

Among other people who replied, was Emil Sarlija, who permitted me to put his report here. He adapted a Mitsubishi M2896-63 to his 16FDC. - Herb

The original thread, although it didn't provide the answers, planted a seed in showing me that it could be done. Using the 16FDC schematic, I made a comparison between the 8" interface on it and the Shugart standard and noticed the following differences:

(the following needs a monospaced font)
            SHUGART


        /    1    2    /TG43
        |    3    4   
        |    5    6   
        |    7    8   
        |    9    10    /TWO SIDED
        |    11    12    /DISK CHANGE
        |    13    14    /SIDE SELECT
        |    15    16    /IN USE
        |    17    18    /HEAD LOAD
        |    19    20    /INDEX
        |    21    22    /READY
        |    23    24    
 GROUND
        |    25    26    /DRIVE SELECT 1
        |    27    28    /DRIVE SELECT 2
        |    29    30    /DRIVE SELECT 3
        |    31    32    /DRIVE SELECT 4
        |    33    34    /DIRECTION
        |    35    36    /STEP
        |    37    38    /WRITE DATA
        |    39    40    /WRITE GATE
        |    41    42    /TRACK 00
        |    43    44    /WRITE PROTECT
        |    45    46    /READ DATA
        |    47    48   
        \    49    50   


            CROMEMCO 16FDC


        /    1    2    /SIDE SELECT
        |    3    4    /DRIVE SELECT 4
        |    5    6   
        |    7    8   
        |    9    10    /SEEK COMPLETE
        |    11    12    /RESTORE
        |    13    14    /EJECT
        |    15    16   
        |    17    18    /DRIVE SELECT 3
        |    19    20    /INDEX
        |    21    22    /READY
        |    23    24    /MOTOR ON
    GROUND
        |    25    26    /DRIVE SELECT 1
        |    27    28    /DRIVE SELECT 2
        |    29    30   
        |    31    32   
        |    33    34    /DIRECTION
        |    35    36    /STEP
        |    37    38    /WRITE DATA
        |    39    40    /WRITE GATE
        |    41    42    /TRACK 00
        |    43    44    /WRITE PROTECT
        |    45    46    /READ DATA
        |    47    48   
        \    49    50   

From this, I made the following cuts on the PCB using a Dremel to disconnect the folowing pins on J3 - the 8" drive header:

Pin 2 - trace in between "16FDC" print and down arrow - component side
Pin 4 - trace in between via and "J3" print - component side
Pin 10 - trace between "IC 10" print and "R17" print - component side
Pin 12 - trace to the right of "CROMEMCO TM" print - component side
Pin 14 - trace in between the letters 'T' and 'R' in the "CABLE STRIPE" print above J3 - component side
Pin 18 - trace to the right of J3 - solder side
Pin 24 - trace to the left of "C14" print - component side

I then made the following jumpers to the following J3 pins with wire-wrap wire:

Pin 30 -> J2 Pin 14
Pin 32 -> J2 Pin 6
Pin 14 -> IC 8 Pin 14
Pin 18 -> IC 11 Pin 13

I have provided descriptions to assist in finding where the traces are on the physical PCB. These modifications worked for me using Mitsubishi M2896-63 8" drives. Your mileage may vary and I shall not be held responsible for the release of magic smoke. ;-) Have fun!

- Emil

Mike Stein added his experiences with the 16FDC as below. Thanks also for providing a ROM image of RDOS 3.08 - Herb

I'm almost certain that the 16FDC with RDOS 2.52 supported the Tandon TM848s that Cromemco used in the later System 3s and the Z-2 TopHats, but I also seem to recall that the drives had some jumper wire mods added. I doubt that anything prior to 2.50 would handle any 8" drives other than the Perscis.

Are you sure that 2.52 is a 2732 equivalent? I'll have to check that for myself one of these days. Sounds like you have one; why do you need one burned?

3.xx ROMS were 8K and added support for booting from hard disks (as well as some minor changes to the monitor commands); 3.08 would boot the WDI IMI disks and 3.12 the STDC ST412 types.

I think you'll find that the 2.52 ROMs and earlier are TI 2532 compatible and [use of] a 'normal' 2732 would require some mods; in fact you'll probably notice that the original [16FDC] had [ROM] pins 20 and 21 both tied together for compatibility. Alternatively, if you can burn a PROM.... for both 2.xx or 3.xx; the mods required for a Rev E or F board to use the extra 4K are available on line, look for App note 023-9125. BTW, 023-9124 outlines the changes from 2.52 to 3.08.

Check this "maben" archive by Marcus for RDOS and other Cromemco documents.

A non-responsive console port [on the 16FDC] was often caused by a ground loop current burning out one or more of the chokes in series with the RS-232 lines, which are easily replaced with a 100 (or 0) Ohm resistor. The TMS5501 also occasionally failed.

Cromemco did publish application notes and tech bulletins detailing the various board revisisons and mods, but unfortunately I haven't seen any regarding the 16FDC (although I have some for the 64FDC and Marcus also has them on line AFAIK).

I've never seen or heard of a version 3.07; if that's a correct number I'd love to see a dump. Also just for historical reasons it'd be nice to have a dump of that 2.01 before you get rid of it; I'm not aware of any other copies.

One of the selling points of the 16/64FDCs might be that having both 34 pin 5.25" and 50 pin 8" drive connectors effectively in parallel makes it really convenient to connect a 5.25" or 3.5" HD drive as an 8" replacement; no cable adapters required, just a jumper to connect the /READY signal.

Marcus has a couple of excellent writeups on his blog; see Mar. 30 and Apr. 16 2009 or search 'Cromemco controller':

Since you aroused my curiosity I've had a look at some of this stuff; it looks like the 16FDC uses pin 2 for side select and pin 14 for eject (no write current control AFAICS), while the 64FDC (and the TM848) use pin 2 for RWC and pin 14 for side select.

On the [Tandont 8-inch drive model] TM848s used with the 16FDC that's definitely one of the mods; the original pin 2 trace is cut and pin 2 is rerouted elsewhere. Maybe [the discussion email list] "cclist" or the Cromemco UG forum would get you some better answers?

Have fun! - mike

Barry responds:

The version 3.07 I have is an EPROM with a paper label. Quite a few of my boards have RDOS 2.01, and those are masked ROMs, so I would have to think that they are fairly common.

On one of my boards, I did find that the RS-232 driver was the problem (1488 or 1489).

There is a tech note about using an EPROM instead of the masked ROMs and yes, a few minor mods are required. There is also a tech bulletin on using a 3.08 ROM on the 16FDC boards, with lists of mods required (different for 16FDC rev. E and rev F boards). None of those seem to agree with the mods actually made to the board that has that EPROM. I tested all of the 5501's, they were all good. I don't recall that there were chokes, but I'll look at that.

Getting a dump of 2.01 will be difficult, since if the board has 2.01 ... it won't work !! I need the 2.52 firmware to boot successfully. I don't have an prom burner or any way of reading or burning a 4k prom of any kind. [Note from Herb: I have sources for the V2.01 as a paper document, c/o my Cromemco Web pages.]

- Barry

Mike replies to this and other posts:

Well, it's not surprising. 2.01 is before my time but I wouldn't be surprised if it even had some bugs; it sounds like the first version of RDOS for the 16FDC (after the 4FDC). Of course in those days Cromemco used Perscis exclusively AFAIK, and only in one system, and we know how well the old saw about the nice thing about standards being their variety applied to 8" drives of the day.

BTW, I have to thank you (Barry) and Emil. When I started archiving my boxes of 8" disks and converting some to 5 1/4" HD some years ago I only found 2 working drives out of 6; since I had always found the 8" drives relatively unreliable I just wrote it off as a cleaning and/or alignment issue and put the bad ones aside for that 'rainy day' and used the working ones.

But this discussion reopened the subject, and although I knew there were differences between the 16FDC and the 64FDC, since they both used TM848s in my systems it never occurred to me that they were actually incompatible at the interface level. Sure enough, I put in a 64FDC and the 'dead' drives are working just fine; all I have to do is remember that some of my TM848s are 16FDC compatible and some work with the 64FDC.

Years of working with Cromemcos and it took you guys to show me the light ;-) - mike


2009: Barry and Response from Amardeep

Editor's note: in September 2009, Barry asked me for an update from Amardeep. It took until Dec 2009 for Amardeep to update me, with a post in comp.os.cpm. Here's his notes to me. - Herb

I'm sorry for the slow response. I missed your message when scanning through all the junk mail [my email address] seems to attract.

With respect to the 16FDC mods, they worked generally well until something went horribly wrong with the serial interface between the Xerox 820 I was using as a terminal and the Cromemco. The "event" took out the 820's serial port and the 16FDC... effectively killing that set of experiments. I do have a spare 16FDC and even found a 64FDC but haven't fired the system up since then. [But] shortly thereafter I relocated [my home]. A lot of my vintage equipment ended up in a dumpster but I kept most of the Cromemco and TRS-80 equipment.

My long term goal has been to get Cromix running again on a hard disk. But the big and cumbersome storage equipment from that era is poorly documented and is in deteriorated condition. I would dearly love to adapt a parallel ATA or compact flash interface to the Cromemco and run Cromix off of that. But there seems to be scant information on how to write a storage device driver for Cromix. So sometime soon I might just give up and put the equipment up for sale. [So] thanks for keeping in touch. I'll probably visit the newsgroup a bit more frequently now that I've signed up for a usenet account. I had been offline [of Usenet] for quite a while after my ISP dropped its usenet server. - Regards, Amardeep

Feb 1 2010: Okay, it is done. [My latest work]documents three distinct modifications: 1) Support for /ReducedWriteCurrent and elimination of both sides driving bus pin 12; 2) Support for dual sided drives; 3) Support for 8-inch drives on select 3 and select 4.

I would appreciate it if someone can verify the mods and post results. The text file with pictures can be accessed [from two downloading Web sites] - Thanks, Amardeep.

Since the download sites are clearly temporary, I will host the ZIP file on my site for some period. It consists of a text file description, and some JPEG images of the "mods". - Herb Johnson

format: short index to address gap in track

The following remarks were posted in the Google Group for Cromemcoin April 2010, titled "IMD activity continues". IMD is Dave Dunfield's imagedisk format for capturing diskette images using a Windows/MS-DOS/Linux type computer. The remarks are from Amardeep Chana, whom I've quoted many times on my Web site. A copy of these notes are also on my Web page of technical hints and information about floppy drives. - Herb Johnson

Reading 5.25" floppy diskettes on an NEC 765 based controller that were written with a WD controller tends to be challenging due to the abridged post index gap. I have experience with both Cromix/CDOS disks and TRS-80 Model III disks that exhibited this problem. It turned out that the NEC 765 core [design chip hardware] becomes insensitive to the index address mark for a short period after the index pulse is detected. If the gap is short enough (which it often is in these formats) the controller will not see that index address mark and consequently never enter read-decode mode. This results in never being able to find a sector.

I suspect this is what's happening because you had some success when formatting the disk on the PC then writing to it on the Cromemco. The PC controller (765 core) will create a sufficient post index gap at the cost of other gaps on that track.

There is another means to work around that. Years ago, before the Catweasel was available, I devised a means to fool the controller by installing a switch in wire #8 of the floppy bus -- the wire that carries the index signal. You need at least one pulse to get through to initialize the controller's state machine properly after inserting the diskette. Attempt a read with the switch closed (it will probably fail) then open the switch and you'll find that even the most difficult gaps will now be readable. The remainder of the disk read operation will succeed -- you only need to toggle it once per disk insertion. Of course, you can't write in this state, but that's not needed for imaging.

Hope that helps a bit. - Sincerely, Amardeep

(See this Web page on floppy drives for discussion of the Catweasel product. - Herb)


Herb Johnson
New Jersey, USA
To email @ me, see see my ordering Web page.

This document copyright © 2010 Herb Johnson. Other people may exercise copyright on their authored materials as they see fit.