VOGONS

Common searches


UMB support?

Topic actions

First post, by user222

User metadata
Rank Member
Rank
Member

Does DOSBox support "DOS=HIGH, UMB"?

Reply 1 of 27, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The whole dos portion (except for a tiny amount of crucial dos-tables)
is already out-of-low-mem, so DOS=HIGH is always set (in a way...).
Dos-UMBs are not supported as there's little need for it.

Besides that, DOS=... has no effect with dosbox (neither in a dummy
config.sys, nor in dosbox.conf).

wd

Reply 2 of 27, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

In other words, since the DOS part of DOSBox is fake, it doesn't actually need to take up any real memory anywhere inside of the virtual DOSBox memory space. As a result, tricks like that are not only unnecessary but don't make sense.

You do have the option of installing and booting real versions of MS-DOS (or clones) inside of DOSBox if you want to do that kind of stuff though.

Reply 3 of 27, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

You do have the option of installing and booting real versions of MS-DOS (or clones) inside of DOSBox if you want to do that kind of stuff though.

Do any games work using MS-DOS that don't using Dosbox's DOS? I can't think of any.

Reply 6 of 27, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

There are some games that don't have enough memory free after loading ULTRAMID, which cannot be loaded high without UMBs.

My site: Ramblings on mostly tech stuff.

Reply 7 of 27, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Would it be technically possible to implement some kind of fake UMB support for DOSBox, which would allow TSRs to be loaded outside of the emulated conventional memory space?

Reply 8 of 27, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

Sure. Right now, the "LH" command simply passes its arguments on to the regular command line parser. This could be altered ever so slightly, insuring that the TSR is loaded somewhere in the appropriate area of memory.
The tricky part is keeping track of which UMBs are present and available. No trickier than the regular DOS memory allocation, though. Given DOSBox' simple memory layout, there should be a lot of upper memory available. (the interrupt callbacks take a few bytes, there will be some memory for the EMS pageframe, video memory etc, but there should be something like 160K free, more if you get rid of mono text video memory).

My site: Ramblings on mostly tech stuff.

Reply 13 of 27, by robertmo

User metadata
Rank l33t++
Rank
l33t++
Great Hierophant wrote:

Do any games work using MS-DOS that don't using Dosbox's DOS? I can't think of any.

imgmount

Although that thread is a year old and i guess most of those games were already fixed.

Real dos just don't have the limits of the emulated one (not properly emulated).

Reply 15 of 27, by robertmo

User metadata
Rank l33t++
Rank
l33t++

DEVICE=C:\DOS\EMM386.EXE RAM
^allows umb and ems

DEVICE=C:\DOS\EMM386.EXE NOEMS
^allows umb but no ems

^This two ways we have umb available now, and we can use it two ways:

dos=umb
^allows umb for dos (TSRs)

dos=noumb
^allows umb for programs (games)

So maybe wd talks about DEVICE=C:\DOS\EMM386.EXE NOEMS ? (UMB and XMS)

Reply 16 of 27, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Actually i was not thinking about the programs that provide the
support, just the interface that is used. Now EMM386 uses the
XMS-interface to supply UMBs.

Any more games/progs that can utilize UMBs besides Der Clou???

thx

Reply 17 of 27, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

When calling the XMS driver:

In:
AX = 10h
DX = size of requested area in paragraphs
Out:
AX = 1 (success)
BX = segment address
DX = actual size of umb
AX = 0 (failure)
BL = error code, most likely B0 (no umb of requested size available) or B1 (no umb available at all)
DX = size of largest available umb

My site: Ramblings on mostly tech stuff.

Reply 19 of 27, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The attached file isn't tested excessively, but seems
to do a good job loading TSRs into upper memory. Tried
cptask which can load itself into UMBs, even unloading
from memory worked fine.

If you need more UMBs, disable ems (Der Clou needs this).

Please note any odd things if possible, or suggestions etc.

thx

Attachments

  • Filename
    dosbox_UMBs_win32exec.rar
    File size
    315.76 KiB
    Downloads
    182 downloads
    File license
    Fair use/fair dealing exception