Using KSSF in the new FreeCOM

I saw this discussion on the FreeDOS mailing list about how to use the KSSF in the new FreeCOM release:
Where are instructions to use them? I just tried to run KSSF to get the help screen and it locked my Windows :( How do these program work? (What do they do?) Can any of these be used to load NDN.COM in memory? NDN has a very nice shell system that uses only 1k resident and it loads COMMAND.COM anytime it is needed.

Is it possible (just speculating) to have a mini version (compile option) of FreeCOM that has only minimum functionality to run a simple autoexec.bat and load NDN.COM? This would permit using the shell without too much memory overhead. It would also permit begger programs to run.

If I remember well, this toppic has already occurred in this list some time ago, and there was little interest. Maybe now that more people are interested in running big 16 bit programs this gets more interest.


KSSF is documented in K-SWAP.TXT (well, the filename is not too intentional, perhaps, but you'll understand if you read it); VSpawn is documented in VSPAWN.TXT.

If you have a pre-compiled package, both files should be there; in the source code tree, the documents are located in the DOCS subdirectory.

VSpawn is a new tool available since FreeCOM v0.83 Beta 4.

How do these program work? (What do they do?)

What: They help FreeCOM to unload itself during to execute an external command.

How: K-SWAP.TXT contains two mainly interesting sections: Supported Swappings and How to use KSSF?. VSPAWN.TXT is too short to to not read it fully :)

NDN has a very nice shell system that uses only 1k resident and it loads COMMAND.COM anytime it is needed.

If I understand you correctly, you can use this:


Possible problems: a Critical Error while loading FreeCOM. Otherwise; if you use FreeCOM to load NDN, there would be always a locked permanent instance laying around in memory.

VSpawn installs 5 blocks of memory: approx. 1KB code, 1KB interrupt handlers, 1x environment used on start, 1x environment used during swap "/E:", 1x internal data (aliases, data of external command). So the size of the last three block varies and depends on the useage and the installation.

Also, if FreeCOM is used within the VSpawn environment, it defaults to to swap (== you need not use CALL /S to swap); you can disable this feature by passing the command line option /SWAP on start, because (as documented) redirections won't work during swap.

Note: To swap is an experimental feature and I did not got many reports back.

-Steffen Kaiser