====== Attempts at Use of Emm386 ====== DEVICE=C:\DOS\EMM386.exe on 2304 frame=d000 /ram /x=c000-cfff /i=b000-b700 /D=64 /NOEMS x=de00-dfff rem - did not boot - DEVICE=C:\DOS\EMM386.exe on 2304 frame=d000 /ram /x=c000-cfff /i=e000-efff /NOEMS x=de00-dfff rem Original - DEVICE=C:\DOS\EMM386.exe on 2304 frame=d000 /ram /x=c000-cfff /i=e000-efff /i=b000-b700 /D=64 /NOEMS x=de00-dfff ====== emm386 ====== | DEVICE=C:\DOS\EMM386.exe | emm386 creates **expanded memory** without having an **expansion card**. emm386 emmulates the **expansion card** by using **extended memory** on Intel 80386 CPUs. **Extended memory** should not be confused with **expanded memory** (an earlier method for expanding the IBM PC's memory capacity beyond 640 kb using an **expansion card** with bank switched memory modules). **Extended memory** is a way for DOS to access memory on the motherboard through an **application programming interface** called the **eXtended Memory Specification (XMS)**. HIMEM.SYS takes care of memory management and copying memory between conventional and **extended memory**. emm386 uses the API to simulate an **expansion card**. Because of the available support for expanded memory in popular applications, device drivers, such as emm386, were developed that emulated **expanded memory** using **extended memory** API. \\ From: http://en.wikipedia.org/wiki/EMM386 ; http://en.wikipedia.org/wiki/Expanded_memory ; http://en.wikipedia.org/wiki/Extended_memory | | | on | Activates EMM386.EXE device driver \\ From: http://www.computerhope.com/emm386hl.htm | [on off auto] | | 2304 | EMM386 provides this amount of **extended memory** (in kilobytes) \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | [memory] | | frame=d000 | Specifies the page-frame segment base directly. To specify a specific segment-base address for the page frame, use the frame switch and specify the address you want. Valid values for address are in the ranges 8000h through 9000h and C000h through E000h, in increments of 400h. \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | frame = address | | /ram | 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.** \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | ram = mmmm - nnnn | | /x=c000-cfff | 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. \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | x = mmmm - nnnn | | /i=e000-efff | If your computer is not an IBM PS/2 and does not have a monochrome monitor, add the i=E000-EFFF and the i=B000-B7FF switches before the RAM or NOEMS switch, as follows: \\ device=c:\dos\emm386.exe i=E000-EFFF i=B000-B7FF ram \\ From: http://support.microsoft.com/kb/77083 | | | /i=b000-b700 | If your computer is not an IBM PS/2 and does not have a monochrome monitor, add the i=E000-EFFF and the i=B000-B7FF switches before the RAM or NOEMS switch, as follows: \\ device=c:\dos\emm386.exe i=E000-EFFF i=B000-B7FF ram \\ From: http://support.microsoft.com/kb/77083 | | | /D=64 | Specifies how many kilobytes of memory should be reserved for buffered direct memory access (DMA). Discounting floppy-disk DMA, this value should reflect the largest DMA transfer that will occur while EMM386 is active. Valid values for nnn are in the range 16 through 256. The default value is 16. \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | d= nnn | | /NOEMS | STARTING EMM386 WITH THE NOEMS SWITCH INSTEAD OF THE RAM SWITCH \\ If you do not use programs that require expanded memory (EMS), start EMM386 with the NOEMS switch. Doing so can give you an additional 64K of UMBs, because the NOEMS switch instructs EMM386 not to create an EMS page frame in the upper memory area. If you start EMM386 with the NOEMS switch, programs will be unable to use expanded memory, even when they are running with Windows. \\ From: http://support.microsoft.com/kb/77083 | | | x=de00-dfff | 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. \\ From: http://technet.microsoft.com/en-us/library/cc722864.aspx | x = mmmm - nnnn| | DEVICEHIGH=C:\VIPCD.SYS /D:MSCce00 /N:1 | Finding the Best Load Order \\ When loading programs high, MS-DOS loads each program into the largest remaining UMB, even if it would fit into a smaller UMB. Therefore, the order in which you load programs into UMBs is important. In general, when loading programs into the upper memory area, load larger programs before smaller ones. However, this simple load-the-biggest-first method might not always be the most efficient. Sometimes, you might have to juggle the load order to get the most out of the upper memory area. \\ From: http://support.microsoft.com/kb/77083 \\ (You can find out the sizes of individual UMBs by issuing the MEM /P command. \\ vipcd.sys = 23KB \\ ansi.sys = 9 KB | REM ******************************************************** REM * Warning! Do NOT modify this file. Changes may cause * REM * your tester to be inoperative, requiring a Service * REM * call at customer expense. * REM ******************************************************** DEVICE=C:\DOS\HIMEM.SYS DOS=HIGH,UMB DEVICE=C:\DOS\EMM386.exe on 2304 frame=d000 /ram /x=c000-cfff /i=e000-efff /i=b000-b700 /D=64 /NOEMS x=de00-dfff FILES=80 buffers=20 devicehigh=c:\DOS\ansi.sys LASTDRIVE=Z DEVICEHIGH=C:\VIPCD.SYS /D:MSCce00 /N:1 rem DEVICEHIGH=C:\oakcdrom.SYS /D:MSCce00 /N:1