First post, by partomatty
Hi,
I'm using V86 for a browser emulation project that involves a game that was originally written to run under Win9x's VMM and uses EMS memory. I'm trying to use a DOS guest to run this game, but I need to get EMS memory working.
I don't need CDROM or networking or any special drvers, so I used a DOS 6.22 boot diskette with CONFIG.SYS only containing
DEVICE=HIMEM.SYS /TESTMEM:OFF
I added some lines to enable EMS memory:
DEVICE=EMM386.EXE RAM
DOS=HIGH,UMB
But I get the following error:
WARNING: Unable to set page frame base address--EMS unavailable.
I ran MEM, which shows no available upper memory:
Memory Type Total = Used + Free
---------------- ------- ------- -------
Conventional 639K 65K 574K
Upper 0K 0K 0K
Reserved 0K 0K 0K
Extended (XMS) 64,512K 64K 64,448K
---------------- ------- ------- -------
Total memory 65,151K 129K 65,022K
I tried running UMBCHK, which showed unused blocks from CC00 to E3FF. I added /I to EMM386, which worked. But when I ran the application it couldn't allocate EMS memory.
I tried using EMSMAGIC.EXE to use conventional memory for EMS, which did work. But the EMS application hangs after a few seconds, so I want to try getting EMS working the normal way.
I tried both HIMEM + JEMM386 and JEMMEX and those didn't work either.
JemmEx v5.84 [02/12/24]
System memory found at c000-ffff, region might be in use
Warning: no suitable page frame found, EMS functions limited.
JemmEx loaded
I was able to reproduce all these issues in QEMU, which makes me think that maybe this has something to do with seabios not making this memory available.
I tried the BOCHS bios but that didn't even boot...
So my question is:
- Has anyone ever gotten MS-DOS + EMS or FreeDOS + EMS working in either QEMU or V86?
- Is there a way to configure seabios to leave some UMB memory available for EMS?
- Is there another legacy PC BIOS that might work under V86/QEMU?
Thanks