Hi Tom / Jason / Johnson, > > I got a message from Jack Ellis (UDMA2 author) warning me a potential > > problem in SHSUCDX 3.02.
> like: only 3.02 or other versions as well ? > > And UPX a device driver may cause more problem. > it's not a driver, and drivers can't be UPX'ed anyway. The 3.00 version was EXE, the new version is a COM. An exe can tell how much RAM it needs minimum, a com cannot. If you UPX a com and try to load it into e.g. a too small UMB, then the UPX decompressor inside your compressed program will abort and the com will just return to the prompt without any error message... However, SHSUCDX has dynamic allocation of memory, so the com / exe difference is not overly important. The SHSUCDX program itself will calculate how much RAM it needs to load, and can abort if not enough RAM is free. Even a COM can know how much RAM is free, by two means: 1. Size of the current memory block and 2. value of the stack pointer (can be 0 to indicate 64k free, N to tell that N bytes minus the amount of stack that you want are free...). For the EXE case, you can define a min / max heap size, and the EXE can check 1. Size of the current memory block and 2. amount of unallocated RAM left (i.e. RAM which is left after DOS allocated the max-wanted- heap size for the EXE)... Anyway. You CAN UPX-compress drivers. The problem is that you can only UPX-compress ONE entry point. So if you have a driver (can be loaded as device=...) which can ALSO be started from the prompt, like himem exe (if you run it from the prompt, you get a help message and can start a memory test), then the compressed version will only work as device driver, no longer from the prompt. At least if you first renamed it to himem sys... NORMAL (cannot be run from prompt, but you can devload it as most drivers, but the normal load method would be device=...) drivers can definitely be compressed with UPX. That said, HIMEM and EMM386 are compressed anyway. But not with UPX. Instead, Tom's selfmade compressor is used :-). Eric PS: SHSUCDX is indeed not a driver. It is a program which you run from prompt or autoexec, and which then stays in RAM as a resident thing. A normal user could call it a driver, but it is not file-format-wise a device driver... ------------------------------------------------------- This SF.Net email is sponsored by Oracle Space Sweepstakes Want to be the first software developer in space? Enter now for the Oracle Space Sweepstakes! http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click _______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
