bmlogo.gif 2.0 K

Directory Freedom Sources

Directory Freedom is now Open Source under the terms of the General Public License (GPL).

Download Directory Freedom sources.

This archive itself contains three archives:

The sources for Directory Freedom are now available subject to the terms of the Free Software Foundation's General Public License (GPL). I'm not sure how useful this code will be -- for a variety of reasons that I'll discuss briefly later -- but I continue to get periodic requests, so here it is.

In the past, I've hesitated to generally release the sources for DF for a couple of reasons. The first was that, even after my active selling of DF ended, I reasoned that the source code might have some commercial value in a custom application. The other is that DF sources incorporate a limited amount of modified source code from a licensed commercial library.

I'm now inclined to think that those reasons are no longer compelling. I don't really believe that the DF source code any longer has commercial value. I do however retain copyright subject to the terms of the GPL. On the second point, the company (Base Two) that developed the libraries (Spontaneous Assembly) is long out of business. [UPDATE: 6 Nov 2003. There is apparently a chain of ownership of Spontaneous Assembly although no further development or support is being done. See this link. Directory Freedom uses a relatively small number of lines of code from this product (in many cases at least somewhat modified). See the DFSA.ASM module. However, I make no representations of the degree to which this code places any restrictions of DF source code usage. I suggest contacting the current owner of Spontaneous Assembly with any questions.]


I'm not sure how useful this source code will be. DF is written 100% in x86 assembler in a form tied very closely to the old DOS .COM file structure, the PC hardware platform, old DOS conventions like the 8.3 filename structure, DOS interrupts, etc. One of the reasons I got out of developing DF is that the whole program structure was becoming increasingly convoluted and difficult to maintain. If I had any personal interest in bringing a Directory Freedom program forward into the modern world, I would take the *functional* elements from the current DF that I liked and incorporate them into a new program written in a higher-level language.

It will be even more difficult for someone who doesn't already understand the DF code to make changes and significant additions. I'd note that the one or two people I've sent source code to have had their enthusiasm significantly wane on seeing what it looks like. Be that as it may, it's probably easier for me to just release the sources than to continue to explain why it doesn't really make sense for me to do so.

Scope of the Code Posted

I am including two different source code archives. The first is the source code archive for the released DF 4.61B that works reasonably well and reliably but that has minimal enhancements over the 4.60 revision from several years ago. I have also included "work in progress" source code from a DF 5.00 release that contains some enhancements although probably not some that have become more important in the last few years such as long filename support. I would grade the code as something along the lines of "pre-Alpha". Most planned, if not all desireable, features have been added but there are significant stability problems including intermittent hangs when bringing up a new directory.

Neither archive includes source to the associated configuration programs. The DFCONFIG associated with DF 4.61B used CXL source code libraries in conjunction with an older DOS-based version of Borland C++. The CXL libraries are no longer sold in anything like their original form and I am unsure of the current chain of ownership. The "work in progress" version of DFCONFIG for DF 5.00 was rewritten from scatch for Borland C++ and TurboVision libraries. If anyone gets serious about a DF enhancement project, I'll see what I can do about providing some minimal assistance to help you get started on the configuration side of things, but it doesn't seem worth the bother at this point to generally distribute the files given the various specific compiler and library requirements.

Which Brings Us To...

If anyone gets serious about making a go of enhancing this source code, I'll be happy to put some modest effort into providing assistance through email or even a phone call. Please understand, however, that I am no longer in the business of actively enhancing Directory Freedom and I therefore reserve the right to severely limit the amount of technical support that I give. Also be aware that I have not actively worked on the source code for some time and thus probably do not remember many of the details about the code.

Send email to Gordon Haff Go to home page