Can't hook BIOS interrupt 15h to limit available XMS memory
zhro opened this issue · 2 comments
I am trying to use FreeDOS with RLoew's LIMITMEM.SYS to limit the available memory, for applications that have problems with it. For example, RAR for DOS throws an "out of memory" exception with an EMM manager loaded if there is too much system memory.
Using LIMITMEM.SYS with MS-DOS 7.1 works as expected. I see the samller amount of memory in MEM and RAR works fine. But with FreeDOS, the memory size doesn't change and RAR tells me that I'm out of memory.
Interrupt 15h is not used by the FreeDOS kernel, so your report should be towards HimemX or Jemm386/JemmEx, or whatever XMM or EMM you're using. (You can try to use the Microsoft Himem and EMM386 with FreeDOS, too.)
This problem exists when there is nothing else other than DEVICE=LIMITMEM.SYS in the CONFIG.SYS. The issue is that when running MEM, the memory size doesn't change. The issue has nothing to do with using the memory (HIMEMX/Jemm386) but rather the information provided by the BIOS interrupt. The method used by LIMITMEM.SYS doesn't seem to work with FreeDOS.
When using FreeDOS, the memory size remains unchanged (1GB in my case), and this is causing problems with some applications. When using MS-DOS, the memory is adjusted correctly to a smaller amount, and my applications run fine. The only difference is that I'm using FreeDOS instead of MS-DOS.
I tried using HIMEMX's /MAX, but this does not hook 15h. I'm also having an unrelated problem when using it to limit the available memory: