BMOW title
Floppy Emu banner

Yellowstone and Macintosh Floppy Drives

Testing continues for my Yellowstone disk controller card for Apple II computers. One of the design goals for Yellowstone was to support Macintosh floppy drives, and today I got a Mac drive working for the first time! I transplanted a 1.44 MB high density internal floppy drive from a Macintosh LC, and successfully used it to boot an Apple IIe with an 800K ProDOS disk. Hooray!

Some more details: The 1.44 MB Macintosh drive can be used to read 800K Apple II disks. Yellowstone does not support 1.44 MB disks. While I haven’t tried it yet, an 800K Macintosh drive should work too. 400K Macintosh drives will not work, but 400K disks in 800K or 1.44 MB drives should work. Clearly there will need to be substantial testing for all this.

So far, so good. But there was some cheating involved in this test, related to differences in pin assignments between Apple II and Macintosh floppy drives. Now I need to determine how to make everything work for real.

RD and SENSE Pin Usage

The first issue involves how the drive sends information to the computer. The Sony 3.5 inch drive mechanism sends all its disk data and status info on a single pin: RD, pin 16 of the 20-pin rectangular connector. But for reasons I don’t understand the Apple II software is designed to expect 3.5 inch disk data on the RD pin but status info on pin 20. If you look inside the Apple 3.5 Drive enclosure, you’ll find an adapter board that (among other functions) copies the value from RD onto pin 20 also. But when direct-connecting a Sony 3.5 inch drive mechanism without an enclosure, there’s no adapter, and the Apple II gets confused.

For this test, I was able to get things working by modifying the FPGA logic to use pin 16 instead of pin 20 when looking for status info, but this breaks the 5.25 inch and Smartport disk modes. I need to find some auto-magic way of doing this only when necessary.

-12V Supply Connection

The second issue is with the -12V power supply for the drive. Somewhere over the years and the generations of Apple II and Macintosh computers, Apple changed the meaning of pin 9 of the 20-pin rectangular floppy drive connector. On Apple II computers and disk controllers, and on the earliest Macs, this pin is -12V. But on later Macintosh models, pin 9 is not connected at the disk controller side. On the drive side (at least with the 1.44 MB drive I pulled from my Macintosh LC) pin 9 is a redundant 5V power supply connection, and -12V isn’t used. That means using a 20-pin ribbon cable to plug a Macintosh 3.5 inch drive directly into the Yellowstone card will create a short circuit between -12V and +5V. Ouch!

I avoided this short-circuit by physically cutting the wire for pin 9 on my disk cable, but that’s not an acceptable long-term solution. I could add a -12V enable jumper to the Yellowstone card, and that would work, but it would still leave the possibility of accidental -12 to +5V short circuits if somebody made a mistake or didn’t read the instructions. A better solution would somehow detect what kind of drive was connected, and automatically enable or disable -12V accordingly.

How might that work? Why do some drives need -12V anyway? As far as I know, the only drives that actually need the -12V supply input are 5.25 inch drives like the Disk II. From a quick look at the Disk II schematic, -12V appears to be part of a 10K ohm potentiometer circuit, with +12V on the other side of the pot. Maybe this is the pot used to adjust the disk rotation speed? I’m not sure.

Whether pin 9 is a -12V supply input, or is a second +5V pin (with the primary +5V supply on pin 11), the direction of current flow will be from the drive to the disk controller. So I can’t solve this problem with a simple diode. Maybe there’s something clever I can do here with a transistor? If the pin is supposed to be a -12V supply input, but the Yellowstone board hasn’t (yet) provided the necessary -12V, then I’m not sure what voltage will be sensed at the pin. My guess is it will be +12V, as seen through that 10K pot. Based on this, I don’t see any easy and reliable method of auto-detection, so maybe a -12V jumper is the only viable solution.

Read 22 comments and join the conversation 

22 Comments so far

  1. Hales - June 27th, 2021 9:49 pm

    What do the drives use the -12V for and how much current do they draw?

    If less than a few mA: just put a 1K resistor in and call it a day.

    If more than a few mA: perhaps a ”current limited resistor” could work. Here’s one I simmed up that limits things to less than 50mA:

  2. Steve - June 28th, 2021 7:23 am

    Thank you! I’ve been racking my brain for some simple way of automatically handling the -12V supply connection, and it’s driving me crazy, even though it’s not a particularly critical problem. The circuit you designed might work – I’m not certain though.

    The trouble is that I don’t know exactly what the drives use -12V for. Looking at this schematic for the analog board of a Disk II drive, -12V appears at one terminal of a 10K potentiometer at the bottom-right. That’s the only use I see.

    I don’t fully understand the pictured circuit, but it looks like there’s at least 10K ohm between the -12V supply input and any other supply. So under normal conditions, I don’t think there can be more than roughly 2.4 mA flowing to the -12V supply.

    I’m a little bit reluctant to monkey with the -12V “on” state without better understanding how it’s used. It’s ultimately connected back to pin 13 of the MC3470, part of the circuit for the “active differentiator” of the floppy disk read amplifier. A discussion of the active differentiator begins on page 7-119 of the MC3470 datasheet. It’s related to peak detection or peak shifting of the signal from the magnetic read-write head.

    A 1K series resistor with 2.4 mA would have a voltage drop of 2.4V, so the drive would see -9.6V instead of -12V. I think 12V computer supplies are often not very accurate, so I’m not sure whether this difference would cause problems. As I see it, a 1K series resistor would be like turning that pot 10 percent. That might be OK, but I’m just guessing.

    I thought of a few general approaches for detecting what’s inside the drive at the -12V supply connection pin:

    – If the pin is actually a -12V supply connection, you will never be able to source or sink more than a couple of milliamps DC from it, assuming that Disk II analog board schematic is also representative of other drives that need -12V. But if the pin is connected to the +5V supply, then you can easily source or sink hundreds of milliamps. So maybe a circuit that detects the current could be used to enable the -12V supply input through a transistor.

    – If the pin is connected inside the drive to the +5V supply, then there will never be any voltage difference between it and the +5V supply pin, and no current will ever flow between those two pins. So maybe a circuit can use that fact somehow to enable the -12V supply input through a transistor.

    Probably I’m thinking about all of this way, way too hard. I could also just use a -12V enable jumper and a 100 mA PTC fuse to avoid permanently damaging anything if somebody set the jumper incorrectly. But my brain really wants to find a way to auto-configure without needing a manual jumper enable.

  3. Steve - June 28th, 2021 7:56 am

    After a bit more thought, I think Hales’ proposed current limited resistor could work. The only change I would propose is that the top of R2 should be connected to another supply, like +12 or +5, instead of to the mystery pin. I think that should enable the circuit to pull the mystery pin all the way down to -12V instead of only to -11.3V. I’m not sure how the value of R2 is determined… something to do with the transistor gain of T1?

  4. Steve - June 28th, 2021 9:00 am

    The current limited resistor circuit may have a problem with power dissipation. If I understand correctly, when the circuit is limiting the current, T1 will be operating in the linear region. If the other voltage on the drive pin is +5V, then T1 will need to drop 16.3V between its collector and emitter. Times a current of 50 mA, that’s a power dissipation in T1 of 815 mW. I’m not sure how much power can be safely dissipated in a small SMD transistor package, but 815 mW is probably too much.

    Looking at a dual NPN transistor SMD package like the max power is 300 mW.

    If I modify the circuit to limit the current to 10 mA, then the power should be reduced to a safer 163 mW. Based on my fuzzy understanding of that Disk II schematic and how it used the -12V supply, I think 10 mA should still be more than enough. But my confidence here isn’t super high.

  5. John Payson - June 28th, 2021 10:01 am

    I’d be inclined to use a current-limiting circuit with a transistor and three resistors. Such a circuit could be constructed to drop less than half a volt when current draw is less than ~1.3mA and the -12 volt rail is at least 11 volts below ground, but limit current draw to under 2mA even if the output is shorted to 5 volts.

  6. Hales - June 28th, 2021 8:19 pm

    John Payson: schematic please 🙂 Getting rid of the impedance at the lower currents would indeed be better.

    I wonder if PTC resistors could help provide some added protection. Don’t know, have not dealt with them before (outside of lightbulbs :P).

    A general comment about this entire problem that I didn’t make earlier: it’s not an easy one to fix perfectly. You can’t ”passively” detect the voltages on each side and make a good decision because these voltages don’t start at -12V and 5V, instead they gradually rise to these levels after power-on. Even actively detecting them and making decisions (with flipflops, FPGA logic or a microcontroller) requires lots of thought about power supply sequencing and corner cases like what happens if there are bad connections during boot that get wiggle-fixed later.

  7. Hales - June 28th, 2021 8:35 pm

    Doh, ”current limited resistor” ~= ”constant current power supply”. That terminology may help when searching for better designs.

  8. Hales - June 28th, 2021 8:59 pm

    Some ideas that I can’t sim because I don’t have good enough models:

    * ”Constant current diode”, ie a jfet and a resistor. I only have models for small jfets and with those it looks like you still get about 4V drop (ie no better than the circuit I posted earlier).

    * LDO being used as a constant-current regulator. Definitely can handle the power, not sure if it would have less vdrop.

  9. David Brown - June 29th, 2021 7:19 am

    Since the 2nd +5V supply pin implies that more current is needed than 1 pin can supply (or not enough margin), more power will likely need to pass in the +5V path then the -12V (which is likely analog supply/reference).

  10. John Payson - June 29th, 2021 9:00 am

    Here’s a circuit. If you distruct tiny url links, here’s a full url:

    Not sure if the long link will get munged by the blog post software.

    You can use a slider at the right to adjust the nominally -12 volt rail, and use the meters to see the circuit’s voltage drop and output current (the upper meter reads 1mV/mA). I would not rely upon the resistor values to be correct for use with any particular transistor, but there should be a fairly broad range of values that would keep the voltage drop small when connected to a 10K load, but limit current to a safe level when shorted to +5. Even at 10mA, power dissipation in the transistor would be limited to under 1/4 watt, and it should be practical to size resistors to make the worst-case constant be a lot less than that while still keeping the voltage drop small. Adding more parts would make it possible to reduce the voltage drop further while improving accuracy (thus reducing the necessary margin for worst-case current) but I doubt that would be necessary here.

  11. Steve - June 29th, 2021 10:44 am

    Automatically handling the -12V supply connection is more difficult than it first seems. I’d thought there must be a simple way to detect the drive type, and enable or disable the connection of the -12V supply to pin 9 of the drive. But that seems elusive, so I agree the best approach is probably to implement a current limiter instead. In my searches, I’ve found several different circuits that can do this, with some tradeoffs on how accurate they are and how close to -12V they can pull pin 9.

    My only worry is that pin 9 seems to use the -12V for some kind of analog reference or adjustment, I’m not entirely certain how much current it might need, or what will happen if the supply voltage is -11.3 instead of -12V. I’ll test it with my hardware, but if I’ve inadvertently pushed the design closer to where bit errors might occur, I may not even know. So from that standpoint, having a hardware jumper to physically connect or disconnect -12V would be the most conservative design, with the least likelihood of causing hidden reliability problems. But it’s not very user friendly, and creates a risk of short circuit if the jumper is installed when the wrong types of disk drives are connected.

    I’ve redrawn and modified John’s circuit here.

    There’s a switch at the top which represents the two types of drives that might be connected: one with (I think) a 10K resistance to +12V and the other with a direct short to +5V. In the normal case, the drive sees a supply voltage of -11.85V and it gets all the supply current it wants, which is 2.38 mA. In the bad/short case, the current is limited to 10.2 mA and the transistor dissipates 170 mW.

    For the normal case, the sim says the voltage drop across the collector-emitter in saturation is only 0.054V. I’m not sure if that’s realistic, I thought it was typically higher, like 0.2V.

    The circuit seems very sensitive to small changes in the component values. I guess that’s OK, since the current limit doesn’t need to be super-accurate, but it’s a little bit unsettling.

    I’ve seen some variations on this circuit that use an LED to establish the voltage reference at the transistor base, instead of a resistor voltage divider. Or other variants like Hales’ that use two transistors. I’ll play with it a little more.

  12. Tux2000 - June 29th, 2021 12:01 pm

    The circuit around R28 is a DC offset to compensate for different emitter currents in the differntial stage in the MC3470. It’s rather unfortunate that Apple did not use the adjustment circuit from the datasheet (figure 27 on page 7-120). Maybe the old MC3470s needed some more drastic adjustments than what was possible with the datasheet circuit?

    Regarding currents: The main current on the -12V line should be the current through R28 to the +12V line, i.e. 24 V / 10 kΩ = 2,4 mA. More DC current is only possible if R28 is turned all the way down to -12V, while Pin 13 of the MC3470 is at +12V at the same time. This gives another 110 kΩ across 24 V = 0.22 mA. So the worst case DC current through the -12V line is about 2.5 mA.

    There is some extra current during startup. At startup, C5, C20 and C14 are empty and are essentially a short circuit. Current through C5 and C20 is mainly limited by their ESR, contact resistance, and the impedance of the power source for the -12V line. Current through C14 is limited by R27 and R28. Worst case is R27 directly at -12v, with C14 empty, the other end of R27 is essentially grounded, so no more than 12 V / 10 kΩ = 1,2 mA peak. Once C5 and C20 are charged, nearly no current flows through them.

    After startup, AC current is limited by R26, R27, R28, that’s again no more than 110 kΩ across 24 V = 0.22 mA (unless L5, C13 and MC3470 do some REALLY wierd stuff).

    So, what did I omit? The output sink current of the MC3470, see Figure 6 on page 7-114. It is specified as min. 1.0 mA, typ. 1.4 mA. That’s drawn from +12V, not -12V. R28 and friends just add a little bit of current to compensate for differences in the two emitter currents. I would guess 10% to 20% worst case, so maybe 0.1 mA. It can’t be much more, because R26 (and R25) limit the current.

    As shown above, the extra current through R26 can’t be more than 0.22 mA with R28 adjusted to -12V. At +12V, with Pin 13 at ground level, the extra current is limited to 0.11 mA (the MC3470 has no negative supply).

    Ideally, the two emitter currents are identical, and R25 and R26 are identical, too. No compensation needed, R26 should be at 0 V, so R28 would be centered. For every volt that the -12V line differs from -12V, the voltage at C14 moves 500 mV in the same direction.

    How much change is acceptable? I would look at the spec of the power supply, maybe also at its schematic. Are +12V and -12V regulated independently? If so, how much difference is possible? If -12V tracks changes of +12V (i.e. tries to keep the middle beween the two lines at 0 V), that is probably done on purpose, and you should try to keep the -12V line as close to -12V as possible).

  13. Steve - June 29th, 2021 12:56 pm

    Thanks for the thorough analysis! So in the worst case summing all those currents, the total should still be just a few milliamps. Call it 5 or 10 mA to give some extra margin.

    If it’s important to keep the -12V supply input as close to -12V as possible, then it’s important to minimize the collector-emitter voltage of the transistor when it’s in saturation. As I mentioned, the simulation shows that value as being 0.054V, but for example the 2N2222 datasheet says it’s 0.4V. What am I missing here?

    I suppose that value must depend on the current. To minimize it, maybe the circuit should be redesigned to use a MOSFET instead of a BJT transistor?

  14. Keith - July 1st, 2021 5:36 am

    How about a comparator. If less then say minus 9 volts connect a MOSFET? If switching 5 volts
    Drive a isolation led? Just a thought

  15. John Payson - July 1st, 2021 8:06 am

    A MOSFET-based current mirror could be as simple as a pair of MOSFETS and a resistor, as shown here:

    Such a design would be much more sensitive to component choice than a BJT-based one, however, and I don’t have any advice for how to pick the best transistors for the purpose. Since no particular level of precision is needed here, a thermally-coupled pair shouldn’t be needed. If the right side MOSFET gets warm, the current flowing through it would probably drop, but in this application that wouldn’t be a problem.

  16. Tux2000 - July 1st, 2021 9:46 am

    The saturation voltage of BJT depends on base current, collector current, on the transistor itself, and on the temperature. Have a look at a datasheet by a different manufacturer:

    Figure 4 on page 4 shows the saturation region for different collector currents at 25 °C. The saturation voltage decreases with increasing base current. When the collector current is very low (1.0 mA in figure 4), you can get the saturation voltage close to 0 V.

    Simulations are just that. Simulations based on simplified physical models of real hardware.

    At work, our hardware expert killed about 10 transistors after implementing a circuit that worked perfectly in the simulation. It turned out that the simulated transistors had no problem with a reverse voltage of 24 V across the B-E junction, whereas the real hardware started releasing magic smoke at about 8 V, as documented in the datasheet.

    A MOSFET does a much better job at switching, behaving more like a resistor when switched on. But at regulating, MOSFETs behave very different from BJTs. You can’t simply replace a BJT with a MOSFET, you need to redesign the circuit.

    I have considered a different way of handling pin 9, that very much depends on the implementation shown in :

    Connect a resistor of about 1 kΩ between -12V and pin 9. Monitor the voltage at pin 9. Without drives, pin 9 is immediately -12V. With a “modern” Mac floppy, pin 9 is shorted to +5V, and so the voltage is immediately +5V. With a drive that has the disk II analog board, C5 and C20 charge within a few milliseconds to about -10 V (due to the voltage divider composed of the 1 kΩ resistor and R28).

    Now add a bypass switch (relais or MOSFET) across the 1 kΩ resistor and short out that resistor as soon as the voltage at pin 9 is sufficiently negative (say, -1 V). That will lock the circuit in “disk II mode” with a solid -12V supply at pin 9 until power is switched off.

    I’ve not yet thought about the control circuit required for switching the MOSFET. Maybe a simple comperator can do the trick. Powered by -12V, with positive GND, a large resistor for measuring the voltage at pin 9, two diodes or a plain old red LED on GND, with a resistor to -12V to provide the slightly negative reference voltage. The comparator should switch on the bypass MOSFET as soon as the measured voltage is more negative (i.e. lower) than the reference voltage.

    Another approach: Just connect pin 9 to -12V. Add a fuse, preferably a fast-blow one in a socket, just to be sure. Create a new product, a simple 1:1 adapter to connect “new” Mac floppies to an Apple II that just isolates pin 9. That’s it.

    Rationale: “New” Mac floppies would always short -12V to +5V, on any Apple II floppy adapter. The adapter prevents that and allows to mix Mac and Apple II floppies on a cable. If someone accidentally omits the adapter, the fuse will blow, nothing evil should happen. Maybe an Apple II floppy on the same cable will have a hard time reading disks because Pin 9 is now +5V instead of -12V and thus the DC offset at C14 is completely wrong.

  17. Steve - July 1st, 2021 1:33 pm

    Thanks for all the ideas! Two details that I’ve failed to mention:

    1) Yellowstone has two independent drive connectors, so it might be necessary to have two independent current limiters (or whatever the final solution is). Having a single shared current limiter would still work to prevent a short-circuit, but if a Disk II and a Mac 3.5 drive were both connected, then the current limiter would be active and the Disk II wouldn’t work correctly. The Disk II would see +5V at pin 9 instead of -12V. As long as this didn’t damage anything, that might be OK, and I could note in the instructions that this particular drive combination isn’t supported.

    2) The potential problem with the short circuit only happens when directly connecting a bare 3.5 inch drive mechanism with a 20-pin ribbon cable. This configuration doesn’t support additional drives sharing the same cable, because bare drives don’t have a daisy chain port. If you connect a 3.5 inch drive in an external enclosure, it will have a 19-pin DSUB connector with a different pinout. Regardless of whether it’s a 3.5 inch drive designed for Apple II or Mac, the -12V supply pin isn’t connected and there’s no risk (I still need to confirm this with some Macintosh drives like M0131). So this whole worry is about a situation that will be fairly rare.

    Given this, it may be acceptable to simply say that bare 3.5 inch drive connections are not supported. Or they’re not supported, and there’s a fuse on the board in case somebody does it anyway. Or there’s a fuse and a jumper block that you can remove to physically break the connection between -12V and pin 9 when necessary. Or there’s an external adapter to break the -12V connection, like Tux2000 suggests.

    Any of those approaches would work, they’re just not very convenient for users, and I would like to do better if I can. I still think the current limiter approach should work reliably and isn’t difficult to implement. John’s circuit with a pair of MOSTFETs is intriguing, but I think I prefer the BJT solution just because it’s what comes up 90 percent of the time when I search the web for current limiter circuits. Judging by that OnSemi datasheet, I should be able to get the saturation voltage down to almost zero at the low current levels needed by the Disk II drive, so it will see a supply voltage very close to -12V. I will test all this on a breadboard before committing anything to the next PCB version.

  18. Steve - July 1st, 2021 3:26 pm

    This conversation has prompted me to think more about transistor behavior and analog electronics than I have in decades! After more review, I like John’s dual MOSFET current mirror solution for its overall simplicity and easy extensibility. Two independent current limiters could be built using just three MOSFETs and a single resistor. Assuming the MOSFETs are in a shared pacakge, that’s only two components.

    This conversation has got me thinking about the pros and cons of various current-limiting circuits. The “classic” or most popular current source circuit in my searches is a single BJT with a sense resistor and two more resistors to create a voltage divider at the transistor base. It’s the first circuit that John posted. But the version with two BJTs that Hales posted is also popular. What would motivate somebody to choose one over the other? And why not use the current mirror circuit instead, which requires fewer components than either of the two classic designs? I need to read more.

    Meanwhile, here’s my extension of John’s circuit to support two independent current limiters with a limit of roughly 10 mA each:

  19. David Brown - July 1st, 2021 10:05 pm

    Am I thinking about it wrong, but should the controller card be supplying current on pin 9 from the +5V supply for the new drives? This shows it sinking current from the drive.
    If the drive doesn’t need the extra current from the 2nd supply pin, maybe it was a design decision on Apple’s part to prevent using new drives with old hardware?

  20. Steve - July 2nd, 2021 6:40 am

    You’re right, in a perfect world Yellowstone on pin 9 would provide -12V for one type of drive and +5V for the other type. If there were a simple and reliable way of doing that, I would do it. Both types of drives are already provided +5V on pin 11, and I don’t think the second +5V pin that’s present on newer 3.5 inch drives means they need more current. In fact I’d bet the newer drives actually need less +5V supply current than the old-school 1970s drives, because they use CMOS logic instead of TTL stuff. I’m not sure why Sony (not Apple) added the second +5V pin; they were copying the pinout from the older Shugart 5.25 inch drive mechanism, but they didn’t need -12V. They could have just made that pin be No Connection, but having multiple redundant supply pins is good design practice for minimizing impedance and supply voltage bouncing. There are already four ground pins, so my guess is they chose to turn pin 9 into an extra +5V pin rather than letting it go to waste. My test 3.5 inch drive mechanism is working fine with only pin 11 supplying +5V and pin 9 disconnected from Yellowstone.

  21. John Payson - July 2nd, 2021 8:35 am

    The biggest downside of current-mirror circuits is that unless one can use different sizes of transistors with known relative characteristics (something that’s possible on a single chip, but not so much when using discrete components) one will have to waste a reference current equal to the amount of current one is trying to set. A downside is that it relies upon both/all transistors differing from ideal behavior by the same amount.

    The three-resistor BJT circuit can be adapted to meet a wide variety of requirements regarding accuracy, compliance voltage, and quiescent current. Unless one makes the emitter resistor very small, it will be relatively insensitive to component variations in the transistor. It wastes less quiescent current than the current-mirror approach, but will be sensitive to variations in supply voltage. From a design standpoint, it has the advantage that it’s easy to compute “ideal device” behavior for the upper and lower bounds of the transistor’s Vbe and beta, and know that actual behavior will be somewhere within the range implied thereby.

    The “current-limited resistor” approach is completely insensitive to supply-voltage changes, and has zero quiescent current. The biggest downside is that the compliance voltage is relatively high since it needs to be powered entirely by current that flows through it.

  22. Steve - July 2nd, 2021 11:02 am

    @John Thanks, that’s a good breakdown of pros and cons.

Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.