DOS Games Message Board
DOS Games Discussion
A message board to talk about DOS games, get help, and find old games.
Do NOT post warez or abandonware requests please
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


EMS and usbmass.exe problem

 
Post new topic   Reply to topic    DOS Games Discussion Forum Index -> Get Games to Work
Author Message
maferv
Newbie
Newbie


Offline
Joined: 02 Dec 2016
Posts: 3

PostPosted: Fri Dec 02, 2016 8:56 pm     Post subject: EMS and usbmass.exe problem Reply with quote

I need to load EMS (EMM386.exe) and USBMASS (proprietary usb 2.0 driver) on this harddrive-less Pentium 1 computer.

With ems, while usbmass.exe loads, when I check my usb stick dir, instead of the list of files, all I see is "IO.SYS" and nothing else.

So I guess this has to do with emm386 and how it is using some part of the memory that usbmass.exe needs, because without ems, usbmass.exe works fine.


The usbmass.exe allows one to define the start address of i/o pool and the start address of memory pool, the help page says:

/IO:n start address of I/O pool (default 0x00002000)
/M:n start address of memory pool (default 0x000D0000)

What parameters should I pass to either emm386.exe or usbmass.exe to get them both working at the same time?
Back to top
Rwolf
Way too much free time
Way too much free time


Offline
Joined: 11 Jan 2013
Posts: 622
Location: Sweden

PostPosted: Sat Dec 03, 2016 11:11 am     Post subject: Reply with quote

Exclude the memory range used by usbmass.exe from what emm386.exe allocates for EMS. (I think emm386 will grab all >1MB memory by default.)

You can change the included address range for emm386 using the I=low-high range, to skip past the 0xd0000-range (however much the usbmass uses).

Some emm386 parameters for dos6.2 can be found here:
http://www.vfrazee.com/ms-dos/6.22/help/emm386.exe.htm

Some other special cases here:
http://www.invisiblesoft.com/invlan/support_yesems.html
Back to top
maferv
Newbie
Newbie


Offline
Joined: 02 Dec 2016
Posts: 3

PostPosted: Sat Dec 03, 2016 1:12 pm     Post subject: Reply with quote

Thanks Rwolf, I checked out those websites.

It seems the values emm386.exe accepts are 4characters-4characters (why described as m and n?) but the one we are talking about "0xd0000" isn't 4 characters. I mean, how can I "translate" this into 4 hex numbers/characters?

Should I ignore the d, or a 0, or something else?

I checked the memory that usbmass uses, and this is the output of

mem /m usbmass

Without EMS:

Code:
Segment: 00ECD

Region:

Total: 95,472 (93K)
Type: Program


I found it by trial and error that with emm386.exe ram i=eeff-efff it works... this is the mem /m usbmass then:

Code:
Segment: 004C8
Region:
Total:45,312(44K)
Type: Program

Segment: 0CE83
Region: 1
Total:10,752(11K)
Type: Data

Segment: 0D123
Region: 1
Total:28,320(28K)
Type: Data

Segment: 0D80D
Region: 1
Total:11,120(11K)
Type: Data

Total Size 95,504 (93K)


Why passing that argument it works?

Perhaps with this info you can help me to nail down where exactly this program works and what is the precise i=mmmm-nnnn I should pass to emm386.exe?

Thanks.
Back to top
Rwolf
Way too much free time
Way too much free time


Offline
Joined: 11 Jan 2013
Posts: 622
Location: Sweden

PostPosted: Sun Dec 04, 2016 12:08 pm     Post subject: Reply with quote

The usbmass.exe (from Windows 7 or later I assume?) uses a flat memory adress, while emm386 simulates segmented adressing to accomodate EMS memory access for old programs like your game. Thus the adressing in the parameter to emm386 is a 16 bit segment adress, which is used in real-mode (with an offset) by the old game program.

This difference is because the usbmass.exe is used by your more modern operating system, which can adress the full 32bit range, while the old program needing EMS to get more than 1MB memory (swapping pages as needed) uses the older real-mode under DOSbox.

There is a lot to read about this old stuff online, *if you really need to*.
just some examples below, please select depending on your level of knowledge:

http://savage.net.au/Ron/html/hex-ram-tutorial.html#EMS
http://stackoverflow.com/questions/11074099/segmented-memory-vs-flat-memory
http://wiki.osdev.org/Segmentation
https://en.wikipedia.org/wiki/X86_memory_segmentation
Back to top
Display posts from previous:   
Post new topic   Reply to topic    DOS Games Discussion Forum Index -> Get Games to Work All times are GMT - 5 Hours
Page 1 of 1

 
Free Windows games


Powered by phpBB © 2001, 2005 phpBB Group and Ask an Expert
Also powered by Darren and the other admin and mods' hard work! ;)