How does a Twiggy drive clamp/unclamp disks?

Started by AlexTheCat123, July 28, 2026, 06:36:53 PM

Previous topic - Next topic

AlexTheCat123

I'm working on the floppy emulator for LisaFPGA, and I'm confused about how Twiggy drives clamp disks. There doesn't seem to be a motor or solenoid or anything that clamps down on them, and no way to command the drive to clamp or unclamp using a dedicated signal, but it doesn't appear to be some sort of automatic spring-loaded trigger mechanism like the Sony drives either. Is it some sort of system where seeking the heads out of an idle position engages the clamp and then seeking back to that position disengages it and ejects the disk? And if so, where's that position relative to the normal range of the heads?

I think I have all of the other info I need to emulate the Twiggy (they're remarkably similar to 400K/800K drives, just with different disk geometry and a different (and simpler) physical interface, but this is the once piece that I'm missing!

sigma7

Quote from: AlexTheCat123 on July 28, 2026, 06:36:53 PMhow Twiggy drives clamp disks... Is it some sort of system where seeking the heads out of an idle position engages the clamp and then seeking back to that position disengages it and ejects the disk? And if so, where's that position relative to the normal range of the heads?

Yes, exactly. When the carriage is moved to the rear of the drive, the disk is unclamped. When the disk is actually released, the "disk-in-place" sensor is un-triggered, so the FDC knows to stop moving the carriage.

https://flickr.com/photos/114907644@N04/12035889576/in/album-72157639938971635
Warning: Memory errors found. ECC non-functional. Verify comments if accuracy is important to you.

AlexTheCat123


TorZidan

#3
The floppy disk interface does have "clamp" and "unclamp" commands (they are used only on Lisa 1):
https://github.com/arcanebyte/lisaem/blob/master/src/lisa/io_board/floppy.c#L233C1-L234C1 .
LisaEm now supports twiggies. You can add "fprintf" log lines to the code, recompile and run it, use I/O rom "40" in your Preferences, boot LOS 1.0 from a Profile image or boot from a bootable twiggy disk image, and observe what calls are being made from LOS to the floppy disk controller.
I wonder if these commands are sent as is to the twiggy floppy drive, or are they converted by the controller to e.g. "seek track 0".

sigma7

Quote from: TorZidan on Yesterday at 05:10:15 PMThe floppy disk interface does have "clamp" and "unclamp" commands
...
I wonder if these commands are sent as is to the twiggy floppy drive, or are they converted by the controller

Clamp and Unclamp are among the small set of command codes sent by the 68K to the Floppy Disk Controller (the 6504 on the I/O Board).

The FDC performs such commands by manipulating the phase wires of the Twiggy carriage's stepper motor and "head select", watching for responses on the "sense" line.

As described above, Clamp and Unclamp are mechanically performed by literally moving the stepper via sequences on the phase wires. Other commands such as checking for Eject button press, write protection, and disk-in-place are done in the same way, but don't move the carriage.

The Unclamp command is also used as the Eject command for the 3.5" drive, although in the 3.5" case, it does not require moving the carriage.
Warning: Memory errors found. ECC non-functional. Verify comments if accuracy is important to you.