Feature Requests

General forum for support issues related to the CFFA3000

Feature Requests

Postby Char27 » Sat Nov 05, 2011 2:58 pm

First off I wanted to say that I have been using the CFFA3000 a bit over the last week and it’s been awesome. The level of quality and design that was put into it was more than I had imagned. It’s really quite an amazing card for us retro computer geeks!

I have a technical question and two feature suggestions;

My question is about the CFFA.CFG file that gets put on the flash drives. The format looks simple from what I can see but would you be willing to publish the format of it? Most times I put a new image on the USB drive I want it mounted when I boot up and I am interested in creating a simple util/script to manage the images including setting which ones are selected/active.

My suggestions are;

1) Allow suppressing prompt for CF/USB when creating an image. I keep a CF card in my CFFA3000 for HD images but I am using the USB a lot as I organize and go thru my floppy media. It would be nice to be able to disable the prompts when creating new image files (blank or copies) on which media to copy it to.
*I know you can use the same settings the 2nd time when batching but I am doing a lot of one off imaging as I work thru various media. I will be batching a lot of stuff soon and the repeat option will be great for that.

2) Add an option to copy one or more images between USB and CF cards. I like using the CF card since it’s nicely hidden inside and so being able to use a USB drive mainly to move images in and out of it would be convenient.
*This can be done now using the import disk image and setting the source as a mounted image but you end up with disk0001.dsk and not the same name. It probably would be faster to copy the files over rather than doing it with normal disk IO routines too.
Char27
 
Posts: 35
Joined: Wed Feb 25, 2009 10:09 pm
Location: Chicago, IL (north of)

Re: Feature Requests

Postby dlyons » Mon Nov 07, 2011 5:35 am

* CFFA.CFG format: Yes, we'll document it. See next message!

* Skipping the USB/CF prompt on Import / New Image: I'm not understanding the benefit here, since there are several other prompts as well (filename, and either disk size or slot+drive), and it would only save one keystroke.

* Copying files between USB and CF: Request noted, and it sounds like an excellent idea. It should probably wait until after we have some subdirectory support, and it will take some work to start creating files with "long names," which the CFFA3000 currently doesn't do. (I don't think you'd want to copy nicely-named files between USB and CF and wind up with just old-school "8.3" names on the copies.)

Cheers,

--Dave
dlyons
 
Posts: 42
Joined: Sun Feb 17, 2002 6:00 pm

Re: Feature Requests

Postby dlyons » Mon Nov 07, 2011 5:48 am

Here is the current format for CFFA.CFG.

Note that the format might change with future firmware versions, in which case the version would be something greater than 3.

Code: Select all
CFFA.CFG file format, version 3   7-Nov-2011 @ 3am
(matches CFFA firmware 3.0)

The file size is 8192 bytes.

+0000: (  4 bytes) "CF3K" signature (0x43 0x46 0x33 0x4B)
+0004: (  1 byte)  file-format version = 0x03
+0005: (  3 bytes) reserved
+0008: (  1 byte)  number of Disk II entries below (0 to 32)
+0009: (  1 byte)  number of SmartPort entries below (0 to 31)
+0010: (118 bytes) reserved
+0128: (128 bytes) first Disk II entry
  ...         There must be no "gaps" in the Disk II entries. When an entry goes
  ...         away, the later Disk II entries move down to close the gap.
+4096: (128 bytes) last (32nd) Disk II entry
+4224: (128 bytes) first SmartPort entry
  ...
+8064: (128 bytes) last (31st) SmartPort entry
+8192 = file size

Each 128-byte entry has the following format:
+000: ( 1 byte)  0x00 for Disk II, or 0x01 for SmartPort
+001: ( 1 byte)  0x00 for Disk II Drive 1, 0x01 for Drive 2 (use 0x00 for a SmartPort entry)
+002: ( 6 bytes) reserved
+008: (32 bytes) Display Name (up to 31 ASCII characters, ends with 0x00)
+040: (88 bytes) Pathname to FAT file in root directory, such as "DISK1234.DSK".
            Must be in 8.3 format, not a "long" filename.
            Future firmware may support relative pathnames, such as                 
            "GAMES/ARCADE/PONG.DSK". There is never a volume name, since
            the entry always applies to the volume where CFFA.CFG resides.
+128 = entry size

Any "free" entry should be 128 bytes of 0x00 (it's incorrect to leave nonzero entries in the file,
past the number of live entries specified at +0008 and +0009).
To check that an entry is free, it is sufficient to check the first byte of the pathname (+040).
dlyons
 
Posts: 42
Joined: Sun Feb 17, 2002 6:00 pm

Re: Feature Requests

Postby Char27 » Tue Nov 08, 2011 8:23 pm

dlyons wrote:Here is the current format for CFFA.CFG.

Note that the format might change with future firmware versions, in which case the version would be something greater than 3.

Code: Select all
CFFA.CFG file format, version 3   7-Nov-2011 @ 3am
(matches CFFA firmware 3.0)

The file size is 8192 bytes.

+0000: (  4 bytes) "CF3K" signature (0x43 0x46 0x33 0x4B)
+0004: (  1 byte)  file-format version = 0x03
+0005: (  3 bytes) reserved
+0008: (  1 byte)  number of Disk II entries below (0 to 32)
+0009: (  1 byte)  number of SmartPort entries below (0 to 31)
+0010: (118 bytes) reserved
+0128: (128 bytes) first Disk II entry
  ...         There must be no "gaps" in the Disk II entries. When an entry goes
  ...         away, the later Disk II entries move down to close the gap.
+4096: (128 bytes) last (32nd) Disk II entry
+4224: (128 bytes) first SmartPort entry
  ...
+8064: (128 bytes) last (31st) SmartPort entry
+8192 = file size

Each 128-byte entry has the following format:
+000: ( 1 byte)  0x00 for Disk II, or 0x01 for SmartPort
+001: ( 1 byte)  0x00 for Disk II Drive 1, 0x01 for Drive 2 (use 0x00 for a SmartPort entry)
+002: ( 6 bytes) reserved
+008: (32 bytes) Display Name (up to 31 ASCII characters, ends with 0x00)
+040: (88 bytes) Pathname to FAT file in root directory, such as "DISK1234.DSK".
            Must be in 8.3 format, not a "long" filename.
            Future firmware may support relative pathnames, such as                 
            "GAMES/ARCADE/PONG.DSK". There is never a volume name, since
            the entry always applies to the volume where CFFA.CFG resides.
+128 = entry size

Any "free" entry should be 128 bytes of 0x00 (it's incorrect to leave nonzero entries in the file,
past the number of live entries specified at +0008 and +0009).
To check that an entry is free, it is sufficient to check the first byte of the pathname (+040).


Thanks a ton for the spec!
I am finished with a read/write parser that allows me to manage what images the CFFA has selected. I only have one button and unit tests so far so a UI is still pending. Once its a bit more polished with a UI and its version aware, I can make it available if anyone is interested. Its using C#.NET so its Windows based but it may build/run using Mono. I did not feel like working with Java or Perl this week :) I may port it away from .NET someday...

In working with it (and my Apple II+ with no cold reset key), I thought of another feature request that I originally assumed was there;

*Store the active image selection so they are persistent when removing the USB or power cycling.

I can set the active image now by moving it first (i tested this) but it would be nice to have this stored on the media with the images.
Thanks again!
Char27
 
Posts: 35
Joined: Wed Feb 25, 2009 10:09 pm
Location: Chicago, IL (north of)


Return to CFFA3000 Support

Who is online

Users browsing this forum: No registered users and 85 guests