two months after the last repsonse here, is there any news ?
So, what's new? Been busy the last weeks with a replacement of the CD file system (CDFS). One may wonder why this is actually needed, there are really sufficient replacements out there. The main reason (besides "it was fun to do") was "consistency". 3.1.4 comes with three file systems, and a couple of handlers. For file systems, we have FFS, CrossDos and CDFS. For handlers, we have the port-handler, the queue-handler, the aux-handler, and the speak-handler.
What we also have is a new "Mount" command, and a couple of new mount options that are also supported by HDToolBox. As mount options we have "DirectSCSI" which enables SCSI transport rather than trackdisk-style transport. "NoNSD" which disables NSD-probing since probing for NSD may have bad sideeffects on devices that do not support NSD, and "SuperFloppy" which tells filing sytems "go hunt for the disk geometry yourself".
And we have now - thanks Tony - a fourth file system out there in the wild which already supports these options. That's PFS3.
So, what do we have: A FFS that can be told to "talk SCSI" by a mount option or a RDB flag, to be set by HDToolBox. Clearly, I also updated CrossDos to support that. While at it, CrossDos now also supports long file names, FAT32, FAT24 and FAT16.
Now, it was only logical that CDFS should support the same, so some work was required. The 3.1 CDFS was out of the question (rotten), so I back-ported the Os 4 CDFS to Os 3.1.4, and added the new options, and fixed a couple of things. So, the CDFS will also speak SCSI if you tell it so. It now honours "Mask", "Maxtransfer" and "BufMemType", which it failed to do so. The same goes for CrossDos and FFS , of course.
Last but not least, there is one new feature both in CrossDos and CDFS, and that is "multi-threading". If an application triggers a big read or write from/to the harddisk, FFS is not quite as stupid as one may think: It triggers the read asynchroniously, but then is still ready to take new commands, for example the workbench ACTION_DISK_INFO that comes in about every second. Now, in the past, if you had a read going on from a CD, the workbench was "frozen" after a second or so. This is simply because it does not get its command through when looking for drives. The CDFS was busy, waiting for the data on the CD to arrive for the user process that triggered the read, but could not answer the trivial "are the disks all still there" request from the workbench.
This all changed. Unlike Fat95, "CrossDos" is now multithreaded. And unlike all the other CD file systems I'm aware of, "CDFS" is now also multithreaded. It dispatches the read, then goes back processing other commands, not getting in your way.
CDFS is a backport from 4.0, but after code review, I wasn't happy with all the code I found, so it currently "only" delivers ISO, rockridge, joliet and CDDA support - digital audio tracks appear as files in the file system. I have currently mixed-mode CDs, UDF-support, HFS support and HFS-plus support disabled. Code is under review, and depending on how far we get, might or might not be included in the final distribution.
While at it, the port-handler also became pre-emptive. Thus, it can queue up multiple read/write requests at a time without putting everything on hold.
So, that's what I have been busy the last three weeks: Re-designing CDFS, introducing co-routines, re-viewing code, testing code.
As I'm not the only developer, there are also other news. Since Reaction is gone, the ASL and workbench prefs are gone. We now got replacements for them, based on gadtools. Ok, they don't look "as nice" as the reaction parts, but they fit well to the optics of the remaining 3.1.4 "gadtools" based preferences.
We also got a new "UTF to Compugraphic" font mapping. There are multiple compugraphic fonts out there that seem to miss characters. However, the characters are there, just in places where the bullet library does not look for. All that is hidden in a unicode to intellifont ("dumb-o-font") translation table "if.uc" which takes care of that - just didn't do that right...
We got "Ed" fixed up. This is really a pretty screwy program - probably because it came from BCPL and was "translated automatically to C". Or at least, the code looks like that. Good part: Ed can now run in the same shell window it was called from, and can be run over "AUX:", i.e. a serial connection.
So, all the usual: Bug fixes, and lots of work.
Yes, we're looking for more beta testers as well. More testing is certainly needed.