floobydust wrote:
I just finished reading most of the FLEX User Manual. It does state that a minimum of two drives are required. In the old diskette world, this can become a bunch of parts and cables. As I prefer to keep with the existing small pocket size board (3.8" x 2.5") I'll likely look at using an IDE interface.
Technically, you can get by with only one drive, but because many of the commands reside on disk and the lack of an included utility to copy a file from one disk to another with only one drive, it may not be pleasant. Especially back in the days of single sided, single density media. I did that at first.
Several people, including me, have written single disk copy utilities. It is not difficult, but you have to be aware of the existence of random files; you have to take one additional step when creating it.
Luckily, FLEX comes standard with hooks to install commands resident in memory. With your big EEPROM, you will probably want to look into that... See the programmer's guide.
floobydust wrote:
For IDE, every IDE device (physical rotating disk, solid-state (IDE or Compact Flash) defaults to a 512-byte sector size. As the drive electronics are built in, it's unlikely you'll find any native support for 256-byte sector formats. As every IDE drive will already have a low-level 512-byte hardware format, it's easy enough to query the drive for parameters. Once this is known, I would likely look to divide the IDE device into multiple drives and manage them logically via a layer on top of the raw BIOS that accesses it.
A common approach used by people who have interfaced FLEX directly to IDE or SD media is use only the last 256 bytes of each sector. Ignore the first 256 when reading; write 256 0s, then the actual data. Sure, you waste half of your disk space, but you have plenty to work with. Do not do that if you go with the files in a FAT file system approach.
floobydust wrote:
From a FLEX view, it appears that it uses track and sector access only (no head number), so that will limit the maximum addressable size of a logical drive. Most older systems were limited to four actual diskette drives. As the WD Floppy Controllers are all 8-bit registers, tracks numbers can be from 0-255, while sector numbers can be from 1-255. As FLEX doesn't know about multiple heads, that would put the limit at 256 tracks * 255 sectors * 256 bytes/sector = 16,711,680 bytes. Not bad overall... and with support up to four drives, that would be about 64MB total. Smaller compact flash drives could be a nice fit for this.
You are correct in your calculations. For FLEX, 16MB is huge.
There was an add-on for the 6809 to allow creating and using subdirectories; I have never used it since I did not have a hard drive. I had forgotten about that; I need to look into it.
floobydust wrote:
To load onto an existing system, can you create S-record (S19) or binary files? I can download files via the console port using Xmodem-CRC. The SBC Monitor also detects and handles S19 files with or without an offset (and can write it to the EEPROM insitu), so it depends on how you generate your code. I can also add data into the Programmer and burn an EEPROM.
The FLEX assembler can create FLEX format binary files or S19 files with a bit of fiddling. My cross assembler can create either of those plus Intel hex. If you need just a plain flat binary image, it is not difficult to write a simple program to do that.