VOGONS


EMS Help

Topic actions

First post, by Masher

User metadata
Rank Newbie
Rank
Newbie

I'm trying to get an old BBS app, named TBBS, running in DOSBox. But cannot get past the error TBBS reports:

LIM 4.0 does not "bank" enough 640k memory for TBBS to run.
If using EMM386, add B=1000 opotion to DEVICE=EMM386 line in CONFIG.SYS

MSDN says:

b= address 

Specifies the lowest segment address available for EMS "banking" (swapping of 16-kilobyte pages). Valid values are in the range 1000h through 4000h. The default value is 4000h.

I downloaded DOSBox's source, and tried modifying ems.cpp and re-building to no avail. Any suggestions for getting this to work?

Reply 1 of 8, by robertmo

User metadata
Rank l33t++
Rank
l33t++

try loadfix
try booting real dos

Reply 2 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Limits on mapping of handles with INT 67/50, maybe? What have you tried changing in the DOSBox source?

Perhaps JEMM (or something like it that also works in DOSBox) will have more flexibility than the internal EMS driver. Just in case it isn't obvious, you need to disable DOSBox's internal memory management when using such a driver.

Reply 3 of 8, by Masher

User metadata
Rank Newbie
Rank
Newbie

Loadfix didn't help, the app works fine if I boot an image with dos; but would like to see it working in dosbox without having to create virtual disk images.

Since .74 was released, I looked at the source code again. I've gotten around the application complaining about requiring the B=1000 switch by setting the page frame address in ems.cpp to 0x1000. But the application now complains about:

EMS is not a full LIM 4.0 implementation, cannot run!

in ems.cpp there is also a

#define EMM_PAGEFRAME4K ((EMM_PAGEFRAME*16)/4096)

Is EMM_PAGEFRAME4k still valid when the pageframe is set to 0x1000 (original was 0xE000) or does it need tweaking?

Anyother ideas of things to try?

Reply 4 of 8, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It doesn't need tweaking, it's just a shortcut. The pageframe should not be relevant here,
they're trying to map low memory pages instead of ems pages so check the functions
ripsaw mentioned for limitations to special segments.

Reply 5 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Changing some segment limits and providing a full map array is sufficient to get the app running; but I didn't test in depth, so you should make sure that TBBS is working 100% before putting any faith in these experimental changes.

Reply 6 of 8, by Masher

User metadata
Rank Newbie
Rank
Newbie

Wow, thank you very much ripsaw. It's working and seems to be working well so far. 😀

Reply 7 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

After looking at it some more, I think the tphysPage calc should be left alone, otherwise page frame mapping will be broken.

Reply 8 of 8, by Masher

User metadata
Rank Newbie
Rank
Newbie

Thanks again.