• Please review our updated Terms and Rules here

How to creating Flex-usable physical floppy disks, and writing to them?

intabits

Experienced Member
Joined
Jan 22, 2019
Messages
148
Location
Melbourne, Australia
I plan on soon trying to get my Compacta Uniboard (a 6809 Single Board Computer) operational, and ultimately get it to run Flex.

It has a 34 way interface for 5" floppies, and a 50 way interface for 8 inchers.

Obviously, I'll need to get the Flex disk images onto physical disks, and with just a small amount of research so far, nothing has jumped out at me on how to accomplish this.

Before I start going down rabbit holes that I haven't visited in decades (and may now be too fat to manoeuvre within), maybe someone with more recent experience in this area can point me in the right direction, and/or steer me around any pitfalls or dead-ends involved.

So a bunch of questions have come to mind (some may be too specific to the Uniboard, but I'll ask anyway):-

I assume that 5" floppy drives from PCs should be compatible with FD1793 style controllers as used on the Uniboard. True?
(both using the standard 34 pin connector)

Could 3.5" floppies be used? (that's prefferable)
(also 34 pin)

Can a Windows PC be used to format floppies and write to them, so as to produce a "standard" Flex-usable diskette?

Is there a utility already written for doing that?
Even if there is, I would ultimately want to write such a program anyway (using Delphi), assuming it's possible.
If not, is there any fundamental "gotcha" that prevents a PC being used to do this?

I don't care about high density or double sided drives - just the standard basics.

How have others created Flex compatible diskettes?

Thanks in advance for any help that can be provided...

PS: While writing the title, it dawned on me that a disk for use with Flex might be called a "Flexible" disk (as opposed to "floppy"?) or maybe "Flexable"?
 
Last edited:
OK well I know what you are talking about!

I am not sure if your Compact Uniboard wants FM or MFM disks. If it wants FM a standard PC may not cope...
... but there are options see below....

5" floppies come in many sorts, but most should work just fine. High density, i.e. 1.2Mb drives have a narrow track width so may give problems when mixed with other drives. I also think 720K 3.5" should be OK too but you may need to either hack the cable with a twist or make a minor tweak as most of these come pre-strapped for drive-1 and you probably need drive 0.

I have a full SWTPC-09 system and I intended to put a GoTek in with the FlashFloppy software installed so I can to mount disk images from the net and copy them to a normal drive, but according to folks on the fufu list the images may need minor tweaks for this to work as flex disks number sectors from one not zero...

https://github.com/keirf/FlashFloppy

there is also hxc for the GoTek which costs for the firmware but the utils are free...

http://hxc2001.free.fr/floppy_drive_emulator/

I found this which is old but may also work...

http://www.shlock.co.uk/Utils/OmniFlop/OmniFlop.htm

also kyroflux software and hardware..

https://www.kryoflux.com/

and there are other cheaper tools e.g.

https://github.com/imqqmi/FloppyControl

and

https://github.com/keirf/Greaseweazle
 
Thanks for the links, and the trouble you went to in putting them together.
There's quite a bit of chasing down for me to do there!

Not having dealt with any of it for many years, I'd forgotten about all the variations and tricks that were used to increase capacity. ("Standards" - aren't they wonderful? There should be more of them!)

I wasn't aware of the GoTek devices. Seems to be a clever solution to keeping old gear operating. Though I want to use real floppies, rather than any emulation system.

Ominflop looks interesting, and claims to work for Flex. And the others seem to indicate that a PC can be used to access a floppy at the lowest level.

And it seems that even an Arduino can be used to operate a floppy drive, thus not using a PC disk interface at all.

But having thought about it some more, It seems best to avoid using any of the above, as they all involve issues of compatibility between the Uniboard and whatever created the disks for it. And diagnosing where any problems come from could be difficult.


I've decided that my first approach will be to try using the Uniboard for everything:-

- Get the board operating at the basic level first, so that I can use it's monitor program to alter and examine memory.

- Develop PC software that can drive the Uniboard monitor via it's serial console interface. I can then easily download any programs and data into the board that I wish. (slow that that may be)

- Find/Get a floppy drive that operates properly with the Uniboard 34pin floppy connector.

- Use the low level disk functions provided by the monitor program (Restore, Seek, Read/Write sector and Write track) to test that the interface is working.
The WriteTrack routine is critical here. I should be able to use it to write test data, and then use ReadSector to check that everything is good.

- Use WriteTrack to create Flex disks from data dumped into memory from PC disk images.
 
You have some time to make changes. I forget how long. It is not a good idea to make changes once someone replies to something you said. If you think it needs to be changed, it is better to make another post.
A while back, I fought for a longer time to edit and it is mostly long enough now to fix typos. Don't expect to come backs days later and change the post. It is a bad idea to do that anyway. It messes up the threads and is poor posting to think you can. I think the way it is now is reasonably balanced between edits and breaking threads. Others may have their own opinion.
Dwight
 
Thanks for the links, and the trouble you went to in putting them together.
There's quite a bit of chasing down for me to do there!
But having thought about it some more, It seems best to avoid using any of the above, as they all involve issues of compatibility between the Uniboard and whatever created the disks for it. And diagnosing where any problems come from could be difficult.

I think the compatibility problems were why I wanted to go with the GoTek. You can build a track in whatever format you want and you are not worrying about the physicality of floppy disks. So is the head clean, is the media still usable and not shedding. Are there any bad caps on the drive etc. Once I had that working I figured I could add a real floppy as the second drive and make some actual disks...
 
Obviously, I'll need to get the Flex disk images onto physical disks, and with just a small amount of research so far, nothing has jumped out at me on how to accomplish this.
If, as you imply above, you already have a disk image in some format then the problem reduces to writing a disk image to a piece of 5.25 inch floppy media and that is very much a solved problem - particularly if you are dealing with Western Digital formats.

If you are not averse to help then there are people in Victoria who would be happy to write the image to floppy for you and then you can focus on making sure the interface works. 5.25 inch drives and cables are not impossible to find. Given the era of the controller it probably used a 360K (40 track) or 720K (80 track) drive (not a 1.2MB high density drive) and I would be looking for one of those to reduce as many variables as possible.

You might consider coming along to the next vintage computing get together which is scheduled for March in Bundoora for some fellowship and support.

P.S. If you don't have the Flex "image" but need to create it then then is more work to do but even without that you could get to the point where the onboard monitor tries to read the disk even if it doesn't (yet) have the appropriate data on it.
 
I ported 6809 Flex to Grant Searle's multicomp from first principles (ie, using the original porting guide) Documentation and links to all the resources are here: https://github.com/nealcrook/multicomp6809/wiki -- including details of the boot process (though you can also find tha in the official proting guide) and a system disk image with a few useful enhancements (a tiny VI clone, command-line help command, Y2K date support)
In addition, I wrote a PERL program that can manipulate binary FLEX images -- a kind of "flex virtual file system" that should work anywhere where PERL runs (PC/MAC/Linux) https://github.com/nealcrook/multicomp6809/blob/master/flex/flex_vfs

It sounds as though you (now) plan to "bootstrap" the whole system from the existing hardware and monitor, which sounds as though it will be the most challenging/satisfying approach. It sounds as though your monitor provides all of the building-blocks that you need; if you can control it through a serial port you could probably "script" the whole disk-writing process from a host PC. Have fun!

Neal.
 
Sorry, I haven't checked in for a while...

...the problem reduces to writing a disk image to a piece of 5.25 inch floppy media and that is very much a solved problem...
I thought it must have been, and good to know that is the case.

If you are not averse to help then there are people in Victoria who would be happy to write the image to floppy for you...
Not averse at all, but I like to give things a good shot myself first.

and I would be looking for one of those to reduce as many variables as possible.
That's why I'm very attracted to the idea of creating the disk using the actual system, using it's own drive to format the disk.

You might consider coming along to the next vintage computing get together which is scheduled for March in Bundoora for some fellowship and support.
Great! I didn't know these were happening locally. Maybe I'll bring the beast along...

... which sounds as though it will be the most challenging/satisfying approach. It sounds as though your monitor provides all of the building-blocks that you need; if you can control it through a serial port you could probably "script" the whole disk-writing process from a host PC. Have fun!

Thanks. I think it will be a interesting and fun exercise. I could also use an Arduino to drive the parallel keyboard interface. which would be faster, but I suppose serial would be fast enough (max seems to be 19200 baud), and only needs to be done once per disk. But the board is not working as yet - the screen is filled with gibberish, rather than the monitor prompt. So it could be a while...


I do have a lot of disk images that I downloaded from various sources, including flex system disks, so no problem there. And I had some fun writing a browser to read them.

I also had some fun writing an emulator for the Uniboard, just to see how far I could get with it. It produces the monitor prompt (just a "?"), but then gets into a mess waiting for keyboard/serial interrupts and writing chars to circular input buffers, then reading those into a console circular buffer. I wasn't making much progress, so then I switched to playing with the real hardware...
 
I have a Uniboard running, and i can create a bootable diskette for you: 5.25" or 3.5".
If you still need one, let me know.
 
Back
Top