Micro-SCI / Franklin Floppy Disk Controller clone

21 posts / 0 new
Last post
Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
Micro-SCI / Franklin Floppy Disk Controller clone

I finally got around to completely reverse-engineering a spare Micro-SCI floppy disk controller, and have managed to duplicate it.  It has been running in my ACE1000 all morning, and appears to be working correctly.

 

I've placed the KiCAD project at https://codeberg.org/cryu/micro-sci-a2-controller if anyone is interested in building one.

 

Project notes:

  • there is a difference between the original Micro-SCI board and the Franklin re-badged board; this works around the non-compliant-with-the-][+ timing issues in the ACE1000.  I couldn't get a vanilla Micro-SCI board to work with Steve's FloppyEmu, although a real floppy drive will probably work.  To convert the board to a Franklin-and-FloppyEmu-compatible unit, redirect U2/11 from U1/14 to U1/12, and redirect U5/2 from U1/11 to U5/1 (yes, the two gate inputs are common).
  • the "main" branch contains an exact replica of the Micro-SCI board.  That means that it needs a 2708 EPROM (or an EPROM on an adapter that makes it look like a 2708).
  • the "2716" branch contains a modified board that incorporates two jumpers to select between Micro-SCI and Franklin timing, and replaces the 2708 with a 2716/2732.  This branch has not yet been tested (the PCBs are inbound), but the changes are straightforward and thus it should work out of the box.
  • the "rework" branch is a "let's use ground pours and modern footprints" work-in-progress, and should therefore not be used yet.
  • while troubleshooting the board, I stumbled across Franklin-sourced schematics for the board.  They, along with the R1/R2 calibration procedure, are in docs/service_and_schematics.pdf
  • the contents of the 2708 EPROM were disassembled, lightly commented, and placed in firmware/.  The diagnostic comments are from S.Elliot (thanks!), the 16- and 13-sector comments from https://6502disassembly.com/a2-rom/C600ROM.html, and the "the jumpers go like this" splash screen by me.

 

Enjoy.  Cheers.

 

 

 

macnoyd's picture
Online
Last seen: 15 min 20 sec ago
Joined: Oct 15 2012 - 08:59
Posts: 849
Excellent doc...

Excellent document. Thank you for archiving & sharing!

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
So that source is archived

So that source is archived here in case that link goes stale...

 

 

Plain text icondisk_ii_prom.txt

S.Elliott's picture
Offline
Last seen: 12 hours 24 min ago
Joined: Jun 23 2022 - 16:26
Posts: 212
Technician mode source comments

Here's a text copy of the MicroSci's technician mode disassembly with a snapshot of my comments.

Plain text iconMicroSci A2 technician mode.txt

 

Technician Mode uses a command-line interface like the Apple Monitor.  (To conserve ROM space, hijacks Monitor ROM routines to do the work.)  So each command is entered as a hexadecimal number followed by a single-letter command.  You can put multiple commands on the same line, but be sure not to put any spaces between commands.

Most commands leave the drive running.

Here's an incomplete list of the technician-mode commands:

µSci A2 Technician Mode commands
R

"Recalibrate"

Pushes the head to track 0 from any track, with familiar clattering noise.

S

"Seek"

Positions the head over the specified track. 

Example: "11S" seeks to track $11, the DOS directory track.

W

"Write"

Continually writes the specified byte until the user presses ESC.

Example: "88W" overwrites the current track with a string of hexadecimal nibbles: 88 88 88 88...

Z

"Zeek"

Enters a loop that positions the head over the specified track, then positions the head over the last track passed to the S (seek) command, and repeats until the user presses ESC.

Example: "11S22Z" seeks track $11, then enters a loop that repeatedly seeks track $22 then track $11.

Q

"Quit"

Drops into the Monitor.

MCurrently unknown
XCurrently unknown

I haven't tested the M or X commands, but it looks like it will probably cycle the motor on and off while writing to the disk.

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
This is really awesome work! 

This is really awesome work!  This card is much more reproduceable than the Apple card due to not using BiPolar PROMs.

 

I wonder if anyone has done (or is thinking about) something similar for the Rana Systems 4 drive controller?  I suspect it is at least somewhat similar to this one.

 

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
@S.Elliott -- thanks for that

@S.Elliott -- thanks for that, I'll roll your analysis into the .s file tomorrow morning.

 

@softwarejanitor -- thanks for the kind words.  If you're talking about the controller featured in this thread, then it appears to be based on the Apple controller rather than the Micro-SCI.  There's a PROM on there that seems to be the state machine (as opposed to the TTL logic in the Micro-SCI), and that supposition is supported by section 7.2.5 ("State Machine") of the Rana Elite user guide.

 

That having been said, the Micro-SCI isn't *that* different, operationally, from the Apple controller.  Someone with a card (or a dump of the ROM) and proper motivation would probably be able to turn my prototype into a Rana; I have neither a Rana card nor the motivation, so there it is :)

 

Progress on my card: I cut a git release of 0.1 and pulled 0.2 to the main branch.  Barring a dumb layout mistake that wasn't caught by the various safeguards KiCAD has in place, the board should be very near to what I envisioned as the final state.  I'd been considering making boards/kits available for interested parties to build their own, but shipping from Japan would easily be double the cost of the kit itself.  I've reached out to Henry at ReactiveMicro to see if he's interested in doing so, much like he does for the Phasor.

 

Cheers :)

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
That's the card I was talking

That's the card I was talking about.  The obvious similarity to the MicroSci card is ig using an EPROM instead of BiPolar PROMs like Apple card.  The interesting thing is support of 4 drives, although that of course requires patching to DOS 3.3 or ProDOS.  It's also less of an issue these days with modern flash storage like FloppyEmu being common.

 

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
softwarejanitor wrote:The
softwarejanitor wrote:

The obvious similarity to the MicroSci card is ig using an EPROM instead of BiPolar PROMs like Apple card.

Um, okay.  I am not trying to be contentious here, but I did spend a lot of time over the last week learning to understand how the Micro-SCI differs from the Apple, and how to troubleshoot it.

 

It really doesn't matter, in this context, whether a floppy card uses a bipolar PROM or an EPROM for the firmware.  That doesn't alter the fundamental way that the card works.  Bradley Bell has an Apple-remix card in github that is electrically identical to the Apple card, except it replaces the bipolar PROMs with 27xx-series EPROMs.

 

What does matter is whether the floppy card uses a ROM-based state machine for the data stream, or uses a discrete logic array to achieve that goal.

 

The Apple card uses the former.  It has two ROMs, one supplying the code that shows up at $C600, the other comprising the state machine.

 

The Micro-SCI uses the latter.  One ROM (supplying the code that shows up at $C600).  Ten TTL(ish) chips doing the data stream.

 

The Rana uses a ROM-based state machine, per their documentation.  Everything else being more or less equal between the Apple and the Micro-SCI, modulo probably the logic that maps parts of the Rana's firmware into $C800, the Rana is *much* closer related to the Apple card from an operational standpoint by virtue of lacking the primary design bits that distinguish the Micro-SCI from the Apple.

 

Again, not trying to harsh you.

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
I wasn't arguing any of those

I wasn't arguing any of those details.  The reason the ROM matters these days is mostly due to manufacturability these days because of parts availability.  But thanks for the explanation on how the different cards work.  The issues with compatibility with things like FloppyEmu with the MicroSci (apparently fixed by Franklin) make more sense now.

 

As far as the Rana card maybe the 4 drive feature could be adapted to other designs if someone was interested in that.  Maybe nobody is though.

 

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
The explanation about using

The explanation about using ttl to implement the state machine is interesting because it brings to mind something Uncle Bernie talked about with his project to build an Apple-1 floppy controller.  That is implementing the logic in a GAL.  The MicroSci/Franklin card might be a good place for someone trying to code a programmable device to start from.

Macintosh_nik's picture
Offline
Last seen: 2 hours 11 min ago
Joined: Jan 8 2021 - 05:18
Posts: 446
Hi cryu!

Good job! I had an original map like that, but I sold it rashly.... Well, thanks to your project, now I can build a replica, thanks for that!

 

 

"Bradley Bell has an Apple-remix card in github that is electrically identical to the Apple card, except it replaces the bipolar PROMs with 27xx-series EPROMs."

 

You mean this project?

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
Macintosh_nik wrote:Good job!
Macintosh_nik wrote:

Good job! I had an original map like that, but I sold it rashly.... Well, thanks to your project, now I can build a replica, thanks for that!

 

If you're "Macintosh_nik" on eBay, then you sold your Micro-SCI card to *me* at the end of 2021.  It was your card that I reverse-engineered ... so, in a way, your sacrifice made this project possible :)

 

Yes, that's the project I was referring to.  btb is a good engineer; his Videx clone works quite well.

 

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
@Macintosh_nik: PM me your

@Macintosh_nik: PM me your address, and I'll send you a v0.1 board (the 1:1 reproduction) with a 2708 as a thank-you.

Macintosh_nik's picture
Offline
Last seen: 2 hours 11 min ago
Joined: Jan 8 2021 - 05:18
Posts: 446
Hi cryu!

I remember you, I had a little doubt how to write your address correctly and you explained everything to me very kindly. I really appreciate you offering me this, but now I'm afraid it's a pointless waste of money. The parcel will be 100% returned from Japanese customs, export of any, even obsolete electronics to Russia is now impossible. I can still send any parcels anywhere, but to receive no longer. These are the conditions now...

I would be very grateful to you if you could help me a little with one project, just a consultation and if I get stuck at some stage. I wrote you the details in a private message.

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
I've verified that the v0.2

I've verified that the v0.2 re-design works correctly, and cut a git release.  If anyone is interested in building this card, use v0.2.

 

Notable changes from the original design:

 

  • the 2708 EPROM has been replaced with a more-common 2716/2732 EPROM
  • decoupling capacitors have been added
  • footprints for all capacitors and resistors have been modernized
  • firmware EPROM bank selection jumpers replaced with a DIP switch
  • obsolete MPS-U51 transistor replaced with modern equivalent
  • clearly-marked calibration test points have been added
  • ground pours used to increase operational stability
  • support for using Floppy Emu in dual-drive emulation mode with one cable
  • as noted in the original post, the data clocking is slightly different between the Micro-SCI and Franklin boards.  v0.2 works in my Franklin with both timings, but I've added a pair of jumpers to switch between timing just in case.

 

I consider the design stable at this point; a future revision might incorporate a 74LS245 and a no-slot clock chip, but the card is fully-functional.  Henry at ReactiveMicro has shown interest in the project, so kits may be available from him in the future.

 

Cheers :)

Offline
Last seen: 2 months 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
I like the idea of adding a

I like the idea of adding a 74LS245.  There were some 3rd party controllers that used one back in the day.  One thing I've also wondered about if someone is designing a new controller is usng a 2732 and adding the logic to incorporate the LIRONGP code.  That might require some changes to that code but it would be super cool to have one card that could do smartport in one slot.  Yes, I know there is Yellowstone, but I like more different options.  And something like that which would be build-it-yourself and not require an FPGA and programming thereof like the Yellowstone would be more future proof in some ways.

 

 

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
For what it's worth, I have

For what it's worth, I have four blank v0.1 boards (which needs a 2708, of which I have one pre-programmed available) and three blank v0.2 boards that are available for USD$10 each plus shipping costs via EMS (which is going to be cheap since the yen imploded).

 

Macintosh_nik, I'm setting aside an assembled and pre-calibrated v0.1 board (minus a few TTL chips, but with the 2708 and MPS-U01) for you.  The world *will* regain sanity at some point in the near future; when that happens, you'll have your Micro-SCI board back with my profuse thanks.

 

Edit: the v0.2 boards are the prototypes, and don't have the built-in one-cable-for-two-emulated-FloppyEmu-drives jumper.  That's easy to fix; un-ground pin 5 on the first floppy drive header by cutting the trace, and connect a 470-ish-ohm resistor between the second floppy drive's header and pin 5 on the first header.  I can perform that modification before shipping if requested.

Macintosh_nik's picture
Offline
Last seen: 2 hours 11 min ago
Joined: Jan 8 2021 - 05:18
Posts: 446
Hi cryu!

Thank you, I really appreciate it!

If you need anything from me don't hesitate to ask. I just checked, there are no restrictions on sending a package from Russia to Japan or anywhere else.

Thank you again! And I wish you good luck in all your endeavors!

Offline
Last seen: 1 day 14 hours ago
Joined: Nov 29 2020 - 19:48
Posts: 131
Keyed IDC Connectors

This looks great.  The only thing I might add is that most (but not some of the earliest) Franklin Disk ][ controllers had blue keyed IDC-20 connectors.  That would certainly extend the life of some 74LS125's.

Offline
Last seen: 3 weeks 3 days ago
Joined: Dec 3 2015 - 20:45
Posts: 63
microsci technician mode ?

I owned a microsci controller and drives decades ago and purchased a set once again in recent years. I've never heard of technician mode. Was that a particular rom ?

The card I have has a 2708 onboard with the 13/16 jumpers. Center position shows the splash with choices.

 

Larry G

Offline
Last seen: 16 hours 7 min ago
Joined: Feb 6 2021 - 03:34
Posts: 56
Install jumpers in both the

Install jumpers in both the 13 and 16 sector positions.  The card will not auto-start, but will give you a BASIC prompt.  Then CALL 50688.

Log in or register to post comments