I realize I tended to wrongly think that HIGH was in EMS or XMS regions (over 1 Mb). But now I kind of realize that HIGH is really above 640 kb, while still lower than 1 MB (default addressable part).
So High is a 1024 kb - 640 kb (Low) = 384 kb area. And the basic idea is conventional area is for the main running application, while High is mostly resident programs. And XMS_Swap, is a feature that, when DOS is loaded in conventional memory (Low), when calling a program, it can remove almost all of itself from memory (except for about 3k), and after the program returns, the 3k part copy DOS back to conventional memory (Low) by using a copy of DOS in XMS memory (over 1M area). So when loaded High, DOS "waste" about 100k? (even more I think) from the 384 kb area.... while loaded Low it "waste" only 3kb (if XMS_SWAP works). Not all High is available... there is a few regions for video memory, and others things (frankly I cannot really say what)... is used for other things than residents DOS programs and drivers. Also I begin to see more why loading logger (High) was more likely to result in the Out of memory when loading DOS high. The basic idea, is that we choose in fdconfig.sys if we load DOS high or low, before knowing how much of HIGH we need, because it is mostly decided in FDAUTO.BAT. But from what I said, the 3K cost of reduction to loading DOS programs in Low, seems a small price to me, compare to the about 100k (or more?) of DOS loaded High. I prefer giving more space to residents programs. So my proposition is to load DOS low, if XMS_SWAP is available. _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel