Hi, You've already got some good replies, but I'll try to add my (incomplete) knowledge for completeness (corrections welcome).
On Tue, Dec 27, 2011 at 1:08 PM, Koh Choon Lin <2choon...@gmail.com> wrote: > > 1. Would like to ask how much memory does FreeDOS support, e.g. 4 GiB? FreeDOS can run on any x86 machine with a BIOS. Hence, 8088 can only access 1 MB (typically 640 kb minus DOS system itself) not counting EMS, 286 only goes up to 16 MB, 386 only to 2 / 3 / 4 GB (in theory), not counting PAE (PPro / i686). KERNEL.SYS doesn't handle anything outside 1 MB (I think?), so you have to use HIMEMX (or similar, e.g. XMGR, FDXMS286) and/or JEMM386 to access more (or enable unreal mode on 386+). Your apps themselves must be aware of such things, e.g. XMS, EMS, etc. to access it, so they won't all magically work. DPMI typically piggybacks atop raw, XMS, VCPI, or (another) DPMI host if found. Different ones have different limits. In particular, I've seen different effects in CWSDPMI r5, HDPMI32, CWSDPMI r7. CWSDPMI r5 is older and doesn't use 4 MB [586+] pages, hence it's slower and slightly more outdated (barely), so I'd suggest r7. This machine here has 6 GB, but r5 reports 1.8 GB, HDPMI32 reports 2.6 GB, and r7 reports 4 GB. But with r7, GCC 4.6.2 chokes somewhere when trying to allocate 400+ MB of RAM for -O2 optimizations (silly compiler), so that may be a rare bug (hopefully to be looked into eventually, but CWS is a busy genius, heheh). I have almost never allocated anywhere near 1 GB of RAM by myself. I think paq8o8z -8 will use approx. 1.5 GB (slowly), but beyond that, I don't know. I think CWS told me that you should use sbrk() directly if accessing more than 2 GB of RAM. I'm not sure how to do it as presumably most people never bothered and a lot of things (malloc?) just assumed 2 GB limits. There is an experimental PAE version of DOS/32A 9.1.2 (OpenWatcom extender), but I've never tried it. Again, I have no idea what the libc will do if you try allocating too much, and esp. PAE is beyond me (only access 4 GB at a time out of total 64 GB??). > 2. Does it faces 640 KiB limitation as MS-DOS, e.g. Do I have to "load > high" drivers to save on conventional memory? The only limitations are DOS and your DOS apps, so it depends on what each one wants. Yes, traditionally, it still has to (partially) run in low RAM, so you'll want to save space. Without XMS (286+) loaded, you'll only get approx. 400 kb free (and should use vspawn + FreeCOM), otherwise (using XMS_Swap FreeCOM) you should get about 600 kb. That should be enough for almost anything (not counting extended RAM, as even most DOS apps assume it nowadays). > 3. Does it support usage of a swap file/partition? Not exactly. There is no dedicated swap partition, and there is no central memory manager. However, some DOS extenders support virtual memory. DOS/4GW 1.97 supports like 32 MB, I think??, and Causeway can support similar too. CWSDPMI will swap (in theory) and is probably the best (most common too), but it doesn't always work on every machine (e.g. "4 GB free, 0 kb swap free", which is weird, as even r5 shows some swap space available). So it depends on how much HD you have free on your pre-existing FAT drive (usually C:\ and often hardcoded but sometimes can be configured, e.g. CWSPARAM or "cwsdpmi -sd:\"). ------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user