> IMHO, TSR's have a lot of advantages over device drivers, and can still be > installed in CONFIG.SYS if you actually want/need to do that (with the > INSTALL= option).
You can even write a single executable which can be loaded both as "device driver" (DEVICE= or DEVLOAD) and as normal program (INSTALL= or just usual execution). (Technical details in the next two paragraphs, skip at your leisure.) The easy way to do that is to utilize MZ (.EXE) format files that have another entry point specified in the header than (relative) address 0, because for "device driver" executables address 0 must contain the device header. A more interesting (though usually not necessary) way to do that is to realize that device loaders (including the one that's part of DOS's initialization code) don't actually use the "next header" pointer in the device header until after the initialization call returns. This allows one to initialize a part of that field with a jump instruction in the source code, which will be executed if the flat (.COM) format file is executed as a normal program. The device initialization code of course needs to overwrite the jump instruction with something else before returning to DOS's device loader. Most programs could already be loaded earlier in CONFIG.SYS if they were adjusted in that way, though some of the DOS structures aren't available yet in that case. Regards, Christian ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user