Hi!

26-Мар-2004 11:21 [EMAIL PROTECTED] (tom ehlert) wrote to Aitor Santamarэa
Merino <[EMAIL PROTECTED]>:

>>>emm386  RAM=m-n range for UMBs + EMS
>>>emm386  ROM=m-n range of RAM to be used to shadow ROM
>>>  as soon as someone finds out what that's supposed to do _exactly_
ASM>> My guesses:
te> e.g. Eric implemented it as 'RAM' = 'I=', and 'ROM=' = 'X=', and
te> wondered why I didn't accept it (because it's wrong)
te> As I said: as soon as someone finds out what that's supposed to do
te> _EXACTLY_, ...

Excerpt fom "HELP EMM386.EXE" from MS-DOS 6.22:

______________O\_/_________________________________\_/O______________
Syntax

    DEVICE=[drive:][path]EMM386.EXE [ON|OFF|AUTO] [memory] [MIN=size]
    [W=ON|W=OFF] [Mx|FRAME=address|/Pmmmm] [Pn=address] [X=mmmm-nnnn]
    [I=mmmm-nnnn] [B=address] [L=minXMS] [A=altregs] [H=handles] [D=nnn]
    [RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn]
    [NOHI] [ROM=mmmm-nnnn] [NOMOVEXBDA] [ALTBOOT]

Parameters

memory
    Specifies the maximum amount of extended memory (in kilobytes) that you
    want EMM386 to provide as expanded/Virtual Control Program Interface
    (EMS/VCPI) memory. This amount is in addition to the memory used for
    UMBs and EMM386 itself. Values for memory are in the range 64 through
    the lesser of either 32768 or the amount of extended memory available
    when EMM386 is loaded. The default value is the amount of free extended
    memory. If you specify the NOEMS switch, the default value is 0. EMM386
    rounds the value down to the nearest multiple of 16.

Switches

X=mmmm-nnnn
    Prevents EMM386 from using a particular range of segment addresses for
    an EMS page or for UMBs. Valid values for mmmm and nnnn are in the range
    A000h through FFFFh and are rounded down to the nearest 4-kilobyte
    boundary. The X switch takes precedence over the I switch if the two
    ranges overlap.

I=mmmm-nnnn
    Specifies a range of segment addresses to be used (included) for an EMS
    page or for UMBs. Valid values for mmmm and nnnn are in the range A000h
    through FFFFh and are rounded down to the nearest 4-kilobyte boundary.
    The X switch takes precedence over the I switch if the two ranges
    overlap.

RAM=mmmm-nnnn
    Specifies a range of segment addresses to be used for UMBs and also
    enables EMS support. If you do not specify a range, EMM386 uses all
    available adapter space to create UMBs and a page frame for EMS.

NOEMS
    Provides access to the upper memory area but prevents access to expanded
    memory.

NOVCPI
    Disables support for VCPI applications. This switch must be used with
    the NOEMS switch. If you specify the NOVCPI switch without specifying
    the NOEMS switch, EMM386 does not disable VCPI support. If you specify
    both switches, EMM386 disregards the MEMORY parameter and the MIN
    switch. Disabling support for VCPI applications reduces the amount of
    extended memory allocated.

[ROM=mmmm-nnnn]
    Specifies a range of segment addresses that EMM386 uses for shadow
    RAM──random-access memory used for read-only memory (ROM). Valid values
    for mmmm and nnnn are in the range A000h through FFFFh and are rounded
    down to the nearest 4-kilobyte boundary. Specifying this switch may
    speed up your system if it does not already have shadow RAM.
_____________________________________________________________________
              O/~\                                 /~\O

So, difference between RAM= and I= not very clear, but, probably, as sayed
by Aitor, I= does unconditional memory inclusion. Also, RAM= enables support
for EMS. X=, contrary to I=, excludes memory range from handling. ROM= makes
shadow copy of specified memory region (this should speedup access to given
region, if there resides some slow ROM).

______________O\_/_________________________________\_/O______________
Sharing XMS and EMS memory

EMM386 provides EMS/VCPI memory for programs that require it by converting
XMS memory to EMS/VCPI memory. When it is loaded, EMM386 reserves the amount
of memory specified by the MIN switch for use as EMS/VCPI memory (the
default value is 256K). Once this amount of XMS memory is reserved, it is
always available as EMS/VCPI memory and no longer available as XMS memory.
EMM386 may be able to convert additional amounts of XMS memory to EMS/VCPI
memory, up to the amount specified by the MEMORY parameter. EMM386 returns
the additional amount back to XMS memory when it is no longer needed as
EMS/VCPI memory.

If you specify MIN=0, EMM386 does not reserve any XMS memory for use as
EMS/VCPI memory. Instead, it converts XMS memory to EMS/VCPI memory only
when a program requests it. This frees XMS memory when EMS/VCPI memory is
not needed. However, EMM386 will not be able to supply the requested amount
of EMS/VCPI memory if programs have allocated all the XMS memory at the time
of the request.

[...]
Using EMM386 to provide access to the upper memory area

[...]
device drivers. You must use either the RAM or NOEMS switch to provide
access to the upper memory area.

To give MS-DOS access to the upper memory area but not to expanded memory,
use the NOEMS switch. To give MS-DOS access to both the upper memory area
and expanded memory, use the RAM switch. The RAM switch provides access to
less of the upper memory area for running device drivers and programs than
does the NOEMS switch. In either case, you must include the DOS=UMB command
in your CONFIG.SYS file. The device command for EMM386.EXE must precede any
DEVICEHIGH commands.

Using EMM386 with Windows 3.1

When EMM386 is used with Windows 3.1, the I, X, NOEMS, Mx, Pnnnn, and FRAME
switches have precedence over the EMMINCLUDE, EMMEXCLUDE, and EMMPAGEFRAME
settings in the Windows SYSTEM.INI file. Changes to these settings in the
SYSTEM.INI file have no effect when EMM386 is loaded.

SMARTDRV double buffering may be required to use EMM386

If you have a small computer system interface (SCSI) or enhanced system
device interface (ESDI) hard disk or other device, you may have to add the
following line to your CONFIG.SYS file:

    device=smartdrv.exe /double_buffer

Add the line before any DEVICEHIGH statements and before any statements that
load installable device drivers that use expanded memory. The statement
enables an SCSI or EDSI controller to transfer information to programs that
use the upper memory area or expanded memory.
_____________________________________________________________________
              O/~\                                 /~\O
______________O\_/_________________________________\_/O______________
                            EMM386.EXE──Examples

To emulate expanded memory, specify the segment-base address D000h for the
EMS page frame, and allocate 512K of memory to EMM386, use one of the
following commands:

    device=emm386.exe 512 frame=d000

    device=emm386.exe 512 p0=d000 p1=d400 p2=d800 p3=dc00

Suppose that, in addition to specifying the conditions set in the preceding
commands, you want to prevent EMM386 from using the segment addresses E000h
through EC00h. To do this and to specify that EMM386 can use 127 handles,
add the following line to your CONFIG.SYS file:

    device=emm386.exe 512 frame=d000 x=e000-ec00 h=127

To provide access to the upper memory area but not provide EMS/VCPI memory,
add the following line to your CONFIG.SYS file:

    device=emm386.exe noems novcpi

To provide access to the upper memory area and provide EMS/VCPI memory, add
the following line to your CONFIG.SYS file:

    device=emm386.exe ram
_____________________________________________________________________
              O/~\                                 /~\O




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to