UMBPCI.SYS is a FREEware MS-DOS 5.00/6.xx, DR-DOS, Novell DOS, Caldera Open DOS and MS Windows 9x/3.xx Upper Memory Area (UMA) access driver (Microsoft HIMEM.SYS extender) for Intel, FIC VIA (Apollo), ALi (Alladin) and SiS PCI/AGP chipsets, supporting Intel Pentium, Pentium Pro, Pentium II/III, AMD and Cyrix CPUs.
It is based on the German c't Magazine's free source code. The original UMBPCI (German version) was written by c't Magazine's editor Andreas Stiller in 1995, based on UMBADD developed by Peter Siering (c't) in 1991. UMBPCI had several problems, supported only Intel chipsets up to the 430FX, and there were no free updates. Andreas further developed CTUMB, which is only available to c't subscribers, on c't Magazine's Utilities CD-ROM.
NOTE: UMBPCI.SYS
is an unofficial release, unsupported by c't Magazine!
If you have problems read this manual FIRST. If that doesn't
help, please e-mail Uwe Sieber.
Uwe Sieber's UMBPCI.SYS guidelines + info web pages:
Download UMBPCI.SYS directly from Uwe Sieber's web site:
To make UMBPCI available for download on your homepage, please use the links above, due to frequent updates.
This program and the accompanying documentation are offered "as is".
The
user bears the entire risk of this software not performing as expected.
New supported chipsets and version updates:
UMBPCI.SYS extends Microsoft's HIMEM.SYS by enabling the "Request XMS-UMB" function. Microsoft's EMM386.EXE does the same, when loaded with the "NOEMS", "HIGHSCAN" or "RAM" parameters in CONFIG.SYS.
UMBPCI.SYS creates UMBs (Upper Memory Blocks) using the existing system memory intended to be used as Shadow RAM, but disabled by default, ONLY in the C800-EFFF range, NOT at B000-B7FF. The B000-B7FF area is normally used for monochrome video (used by older graphics adapters), NOT for BIOS (ROM) extensions, therefore X86 chipsets cannot enable shadow RAM within this region. UMBPCI.SYS enables this memory and disables its write protection.
UMBPCI.SYS takes ONLY 240 Bytes of conventional RAM (224 Bytes code + 16 Bytes environment),
while providing up to 629 KiloBytes (KB) of FREE conventional (low) memory, IF loading ALL
devices/drivers/TSRs "high"!
Microsoft EMM386.EXE also creates UMBs from the computer's physical XMS (eXtended Memory
Specifications), but needs an additional 150 KB of XMS, 4 KB of low memory and 7 KB of UMA (Upper Memory Area) when loaded,
and it also switches the CPU into "protected mode" (slower).
UMBPCI.SYS leaves the CPU in "real mode", for better
compatibility and faster performance.
Take a look at these diagrams for memory requirements and performance
comparison:
Begining with v3.00 you can simply try loading UMBPCI without any checking.
Because
UMBPCI.SYS is an extension to HIMEM.SYS under MS-DOS/MS Windows, it MUST be loaded after HIMEM.SYS. CONFIG.SYS example
assuming Windows 9x resides in C:\WINDOWS and UMBPCI.SYS in C:\UMBPCI:
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q
DEVICE=C:\UMBPCI\UMBPCI.SYS
DEVICEHIGH=...
INSTALLHIGH=...
SET=...
etc...
If UMBPCI is properly loaded, you'll see a message like this:
"UMBPCI c't
11/95 - Siering/Schaepers/Stiller
V3.16 - support for new Intel/VIA/ALi/SIS chipsets + P2 - Uwe Sieber 5/00
Using
C800-EFFF
Intel 440BX/ZX found
Programm installed"
If your chipset is NOT supported, you'll get this message:
"No supported chipset found.
Problem programming the chipset."
If your chipset is supported but UNTESTED, you'll get this message:
"This chipset is untested! Mail me the name of
the chipset and if it works
so I can remove this break: uwe.sieber@gmx.de
press any key..."
Uwe Sieber will remove this pause screen as soon as he'll find out if your (untested) chipset works.
If you get other messages, please e-mail Uwe Sieber.
You can determine your chipset's brand/type by using CTBIOS for DOS [28 KB, freeware by c't].
New FREEware DOS tools included with UMBPCI.SYS:
UMBCHK is needed ONLY if you want to use UMBPCI's /I=xxxx-yyyy parameter.
Reboot your computer WITHOUT processing the startup files (AUTOEXEC.BAT and CONFIG.SYS): press F8 during the bootup POST (Power On Self Test) routine (MS-DOS 6.xx or Windows 9x). This is similar
with the "Command prompt only" option from the Windows 9x Startup
Menu. Then run UMBCHK to view all upper memory ranges available to UMBPCI, and to display the suggested command line for
use with UMBPCI.
UMBCHK recommends the same ranges UMBPCI uses when loaded without parameter.
If you take a quick look
at UMBPCI's message, you won't need UMBCHK.
If UMBCHK suggests /I=C800-EFFF, add this line to your CONFIG.SYS file, AFTER the HIMEM.SYS line (example):
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
/Q
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=C800-EFFF
NOTE: UMBCHK and UMBPCI's /I=xxxx-yyyy parameter are NOT needed by UMBPCI v3.00 and newer, which autodetect and map the available UMBs.
Uwe Sieber added DMACHK thanks to Heiko Nocon who made it possible.
Use DMACHK to check
and display the UMB ranges in which ISA DMA works, eventually redirecting its output to a text file. Example:
drive:\path\DMACHK > drive:\path\UMBRANGE.TXT
To use it UMBPCI MUST be loaded.
DMACHK may crash
some machines - no idea why.
Windows 9x takes over all remaining UMBs (not
mapped by UMBPCI) and uses them as normal memory. But the memory created by UMBPCI is sometimes not seen as "normal" by
MS-DOS/MS Windows. It may not be cacheable and/or ISA DMA may not work.
With the exception of the very first Intel PCI
chipsets, the only "normal" UMBs UMBPCI creates, are at E000-EFFF on Intel chipsets up to the 440xX.
To prevent Windows 9x
from using this remaining critical memory in such cases, use UMBFILL to allocate ALL remaining UMBs before Windows 9x GUI
loads.
Add a UMBFILL line, AFTER ALL your devices/drivers/TSRs lines, and BEFORE the line that starts Windows in your
AUTOEXEC.BAT, IF you load Windows from AUTOEXEC.BAT.
Another way to prevent Windows 9x from taking over all remaining UMBs is to add/modify the line:
LocalLoadHigh=0
under your SYSTEM.INI's [386enh] section.
Then Windows 9x occupies only a small part of the UMBs
which seem to be uncritical.
The LOADHIGH (abbreviated as LH) MS-DOS command does NOT work with UMBFILL!
UMBFILL
occupies only 800 Bytes of conventional memory.
If someone can write a UMBFILL program that can be loaded high or that doesn't need low memory, please e-mail Uwe Sieber, to include it with future UMBPCI releases. Many thanks!
ISA (Industry
Standard Architecture) DMA (Direct Memory Access) is critical in the created UMBs.
ISA involves ANY 8-bit ISA expansion cards you might have on your computer (modem, sound card, network card etc), and the
Floppy Drive Controller (FDC). A typical PC/AT IBM compatible clone has one (primary, 3.5", 1.44 MB, drive letter A, default
bootable drive), or two (secondary, 5.25", 1.2 MB, drive letter B, optional) floppy drives.
Such devices MUST use the DMA
controller (built into the motherboard chipset), thus relieving the CPU of time consuming routine tasks (requiring extra CPU
cycles), so your processor can proceed with other operations at the same time (multitasking).
KNOWN PROBLEMS + SOLUTIONS [depending on your motherboard chipset type]:
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=CC00-EFFF
LOADHIGH=C:\WINDOWS\SMARTDRV 2048 16 /L
INSTALLHIGH=C:\WINDOWS\SMARTDRV.EXE 2048 16 /L
Smartdrv's low memory requirement can be reduced by using the /E:xxxxx and /B:xxxxx parameters. The default values are /B:16384 and /E:8192 which causes SMARTDRV to take 16384 Bytes of low memory in the example above.
For absolute minimum memory usage but a little disk performance loss in real DOS mode, you can combine the /B and /E parameters:
LOADHIGH=C:\WINDOWS\SMARTDRV 2048 16 /B:1024 /E:1024 /L
This takes only 1 KB of low and about 16 KB of upper memory.
The B(uffer) value must be a multiple of the E(lement) value.
1024 is a bit extreme and prevents SMARTDRV from caching CD-ROMs because a sector on a CD-ROM disk has 2048 Bytes. /B:4096 and /E:4096 should be a good compromise.
You can also disable the SMARTDRV floppy cache by
adding the A- and B- parameters (depending on how many floppy drives you have), or by loading
SMARTDRV into the upper memory E segment [E000-EFFF], if you have an Intel 430xX or 440xX
chipset (tricky).
Example of SMARTDRV line in AUTOEXEC.BAT:
LOADHIGH=C:\WINDOWS\SMARTDRV.EXE 2048 16 A- B- C+ D /N
to disable read and write caching on both floppy drives (A and B), enable read and write caching on the hard drive (C), and enable read-only caching on the CD-ROM/DVD drive (D).
Another way to force SMARTDRV to load into the E segment (ONLY IF you have an Intel 430xX or 440xX chipset), at least at E000-E3FF, is to load MSCDEX (MicroSoft Compact Disk EXtensions) with LOADHIGH, BEFORE the SMARTDRV line in AUTOEXEC.BAT.
NOTE: You also need to load your DOS mode cd-rom/dvd (supplied) driver in CONFIG.SYS, if you want to have your cd-rom/dvd available in native MS-DOS, AND to have it cached by SMARTDRV the same time (example):
DEVICEHIGH=C:\CDROM\VIDE-CDD.SYS /D:MYCDROM
In case SMARTDRV loads partially at E000 or below E000, the floppy disk becomes UNREADABLE, IF the read/write floppy cache is enabled by SMARTDRV's A+ and/or B+ switches!
NOTE: VIDE-CDD.SYS is the "universal" CD-ROM/DVD DOS driver, free from Acer [140 KB], and works with most popular IDE/ATAPI internal cd-rom/dvd drives. More details at this page.
Example of MSCDEX v2.25 and SMARTDRV v5.02 "combo" in AUTOEXEC.BAT, using MS Windows 9x:
LOADHIGH=C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MYCDROM
/M:16
LOADHIGH=C:\WINDOWS\SMARTDRV.EXE 2048 16 A+ B+ C+ D /N
to force SMARTDRV to load at E000, and occupy the UMA at and above E3FF.
Another method is to create two UMB regions, by adding this line in CONFIG.SYS:
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=C800-DFFF /I=E000-EFFF
Then you can choose to load a program in one of the 2 created regions: #1 (C800-DFFF) or #2 (E000-EFFF), by using the /L:x parameter (example):
LOADHIGH /L:2 C:\WINDOWS\SMARTDRV 2048 16 A+ B+ C+ D /N
This places SMARTDRV into the second region which starts at E000.
BTW: INSTALLHIGH doesn't support the /L:x parameter. Ask Microsoft why...
These are the ONLY ways to make floppy cache possible, other than restricting UMBPCI's available UMA to E000-EFFF (example):
DEVICE=C:\UMBPCI\UMBPCI.SYS /I=E000-EFFF
which defeats the purpose of using UMBPCI.SYS for providing as much UMA as possible.
TIP: MSCDEX provides support for accessing CD-ROM/DVD drives in native DOS mode. Run MSCDEX /? from the true MS-DOS prompt to display its command line switches.
Observe also the different DOS (2048) and Windows (16) SMARTDRV cache sizes (in KiloBytes). You want to allocate a large SMARTDRV cache in real MS-DOS mode (but not more than 1/6 of your installed memory, especially if you only have 16 MB or less), and the smallest SMARTDRV cache size in Windows, because Windows 9x and WfWG 3.1x provide their own 32-bit protected mode virtual cache algorhythms, and do NOT need SMARTDRV to cache ANY drives.
Observe also the /N switch, which allows the return to the DOS prompt
BEFORE SMARTDRV's temporary memory cache buffer is flushed and data permanently written to disk. Use /N with CAUTION, because you may experience DATA LOSS in case of a sudden power
outage!
SMARTDRV's buffer loads into the UMA in the example above, using the MS-DOS built-in LOADHIGH command.
But if
an upper memory manager (like EMM386, QEMM, NetRoom, 386MAX etc) enables access to the UMA, SMARTDRV doesn't need LOADHIGH
(or a similar 3rd party "loader"), being capable of placing itself in the upper memory if it can fit into a free contiguous
UMB.
TIPS:
HIRAM.EXE v1.9 is an older freeware
Upper Memory Extender for 80x86 CPUs: 286, 386 and 486, intended for users who really want to free the last byte of low
memory, and it is similar to UMBPCI.SYS.
Download HIRAM.EXE [74 KB,
German release, 1993].
The functions of UMBPCI are splitted here into two programs: one enables the memory and the other
makes it visible to DOS. The latter is called HIRAM.EXE, and doesn't use ANY memory.
HIRAM.EXE works fine with MS-DOS 5.00
- 7.xx [MS Windows 95/98] and the memorry enabled by UMBPCI, at least on Intel 430xX (Pentium/Pentium Pro) and 440xX (Pentium
II/III) chipsets.
It may also work with other chipsets (but I haven't tested it), because it is CPU/chipset
independent.
To make this work, you need these CONFIG.SYS commands in this EXACT order (example):
[all lines
preceeded by a semicolon (;) are comments]
; To load DOS high and to enable the Upper Memory Blocks:
DOS=HIGH,UMB
; To enable the Upper Memory Area:
DEVICE=C:\UMBPCI\UMBPCI.SYS
; To make the UMA visible to DOS through a small XMS 2.0
handler:
DEVICE=C:\UMBPCI\HIRAM.EXE
; Yes, now you can load HIMEM.SYS high:
DEVICEHIGH=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q
TIP: Take a look at my "MS-DOS 7.xx MEMory Specs" page for an example using HIRAM.EXE with an Intel 440BX Pentium II/III chipset.
The trick is that HIRAM implements the function "Request XMS-UMB" without HIMEM.SYS,
while UMBPCI does it in the "official" way, by extending HIMEM.SYS with this function.
When "DEVICEHIGH=C:\WINDOWS\HIMEM.SYS" comes, DOS takes all XMS UMBs from HIRAM.EXE, and HIRAM deactivates
its XMS function to allow HIMEM.SYS to load.
Without "DOS=HIGH,UMB" HIMEM.SYS would stop with
an error message like:
"Another XMS driver is already installed"
because HIRAM has no reason to deactivate its small XMS handler.
Therefore by using HIRAM.EXE you can save 1 KB of low memory in comparison to loading
UMBPCI.SYS by itself.
Wow! ;-)
If you want to use UMBPCI's /I=xxxx-yyyy parameter, make sure to check the free UMA before loading UMBPCI.SYS, by running UMBCHK (see the "NEW TOOLS" section above).
To visualize the DOS memory allocation the Microsoft MEM.EXE command is certainly not of prime quality. :( I suggest using MI.COM [9 KB, freeware, English]. MI stands probably for Memory Information.
If you use EMM386.EXE, you can "borrow" its /I=xxxx-yyyy parameter(s) for use
with UMBPCI.SYS v2.24 and older ONLY (UMBPCI v3.00 and newer do NOT need the /I=xxxx-yyyy parameter), but this MUST be
limited to the range C800-EFFF, which is valid for ALL UMBPCI releases.
After adding a line for UMPCI.SYS to your
CONFIG.SYS, disable the EMM386.EXE line by placing REM or a semicolon (;) in front of it.
Examples:
REM DEVICE=C:\DOS\EMM386.EXE I=B000-B7FF RAM D=256 AUTO
or:
; DEVICE=C:\WINDOWS\EMM386.EXE I=B000-B7FF RAM D=256 AUTO
If you don't want to use UMBPCI's /I=xxxx-yyyy parameter (needed ONLY if you want to enable EMS) you can skip to the following section: "ADDITIONAL OS COMPATIBILITY".
UMBPCI.SYS accepts and recognizes only
the I=xxxx-yyyy command line switch preceeded by a forward slash
(/), which MUST be used with UMBPCI v2.24 and older. UMBPCI supports multiple /I=xxxx-yyyy
parameters.
UMBPCI uses ONLY contiguous 16 KB Upper Memory Blocks. You may have to increase the start address or
decrease the end address to the nearest 16 KB border for UMBPCI.SYS to operate properly!
In MSD's Memory chart (displayed by pressing M at the MSD main screen), look at your upper memory range. Every caret (square) stands for 1 KB of memory, therefore each entire line stands for 16 KB. Because UMBPCI.SYS can use ONLY whole (contiguous) free 16 KB blocks, you have to look for lines that are COMPLETELY available (unused).
MSD.EXE is the MS-DOS based MicroSoft Diagnostics utility (included with MS-DOS 6.xx and Windows 3.1x/9x), that you might need one day (hope not) to see how your System, Memory, Devices, TSRs, Video, Mouse, Disks, Ports etc... are configured, and to detect eventual hardware conflicts: IRQ (Interrupt ReQuest line), BA (hex Base Address), I/O (Input/Output) Port, COMx Port etc.
Users of MS-DOS 5.00 -
6.22 can download the updated MSD.EXE v3.01 [160 KB,
free].
MSD.EXE is NOT installed by Windows 95/98 Setup! Copy MSD.EXE manually from your Win9x Setup CD-ROM to a folder in
your path (I recommend \WINDOWS\COMMAND), or run it directly from the CD-ROM:
MSD
at any DOS prompt.
HINT: Try first to run MSD from outside the Windows GUI, in native/true MS-DOS mode, by choosing to boot with the "Command prompt only" option from the Windows 9x Startup Menu:
When deciding which lines to use with UMBPCI's /I=xxxx-yyyy parameter, take the starting upper memory address from the left side of the lowest line and the end address from the right side of the highest line, as shown on your MSD free upper memory screen.
Your Windows 9x (typically installed in C:\WINDOWS) CONFIG.SYS file should look something like this, assuming the entire UMB area is contiguous and free:
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q
DEVICE=C:\UMBPCI\UMBPCI.SYS
/I=C800-EFFF
DEVICEHIGH=...
INSTALLHIGH=...
SET=...
etc...
You MUST place HIMEM.SYS in CONFIG.SYS (using the DEVICE command), because UMBPCI.SYS is an extension to HIMEM.SYS. Windows 9x loads HIMEM.SYS automatically, but later in the sequence. Therefore HIMEM.SYS MUST be loaded BEFORE the UMBPCI.SYS line!
EMM386.EXE is no longer
needed, unless you need Expanded Memory (EMS) for running DOS applications/games.
If you DO
need EMS, you MUST reserve 64 KB of contiguous upper memory for the EMS Page Frame, and
place the EMM386.EXE DEVICE line AFTER UMBPCI.SYS in your CONFIG.SYS.
Also, you MUST exclude the contiguous
Upper Memory Region (UMR) used by EMM386.EXE's Page Frame from UMBPCI's /I=xxxx-yyyy range. This 64
KB area is located by default between addresses C800-D7FF. EMM386.EXE tries to place its
Page Frame in this region upon loading. You can also force EMM386.EXE to "fit" its Page Frame into the C800-D7FF region by adding the Mx switch on the EMM386.EXE line (M3 in this case), ONLY IF this area is NOT used by ROM/BIOS. Example of such CONFIG.SYS lines,
combining UMBPCI.SYS and EMM386.EXE to provide EMS, and to load ALL devices/TSRs "high" the same time:
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q
DEVICE=C:\UMBPCI\UMBPCI.SYS
/I=D800-EFFF
DEVICE=C:\WINDOWS\EMM386.EXE X=D800-EFFF X=B800-C7FF I=C800-D7FF I=B000-B7FF RAM M3 D=256
AUTO
DEVICEHIGH=...
INSTALLHIGH=...
SET=...
etc...
IMPORTANT: To become familiar with HIMEM.SYS and EMM386.EXE command line parameters:
Alternatively you can load EMM386.EXE without a Page Frame by adding the "FRAME=NONE" parameter to your EMM386.EXE CONFIG.SYS line, while still providing EMS. Example:
DEVICE=C:\WINDOWS\EMM386.EXE FRAME=NONE X=D800-EFFF X=B800-C7FF I=C800-D7FF I=B000-B7FF RAM D=256 AUTO
But BEWARE of program errors, because older EMS DOS programs were not designed to work properly WITHOUT a Page Frame.
Another method is to reserve the 64 KB Page Frame area and let Windows 9x GUI provide EMS in its DOS boxes/sessions. This SYSTEM.INI [386enh] section line:
[386enh]
EMMPageFrame=C800
does the trick, provided that the 64 KB upper memory region at
C800-D7FF is CONTIGUOUS and FREE (unused) when Windows 9x starts, and that EMM386.EXE does NOT load from CONFIG.SYS.
Note
that EMM386.EXE settings in CONFIG.SYS take precedence over the SYSTEM.INI lines. If EMM386.EXE is set to provide expanded
memory (EMS), with the "RAM" or "HIGHSCAN" switch in CONFIG.SYS, the SYSTEM.INI line above has NO effect.
Use this
workaround ONLY IF you have ANY DOS based programs/games that need EMS to run in a DOS box/session.
Alternatively you can disable the Windows 9x search for free (unused) RAM in the UMA, by adding/changing this line under the [386enh] section of your SYSTEM.INI, to avoid incompatibilities with DOS mode drivers/TSRs or/and 3rd party upper/extended/expanded memory managers loaded from your startup files (CONFIG.SYS and AUTOEXEC.BAT):
[386enh]
EMMExclude=A000-FFFF
TIP: For more SYSTEM.INI settings, dedicated to fine tune your Windows machine for optimal performance, read the "SYSTEM.INI TWEAKS" topic, also in MYTIPS95.TXT and MYTIPS31.TXT, both part of my ©Tricks + Secrets files.
Begining with v3.00
UMBPCI is compatible with DR-DOS, Novell DOS and Caldera Open DOS.
When UMBPCI doesn't find an XMS driver (i.e.
HIMEM.SYS), it only enables (maps) the upper memory and ends. HIDOS.SYS can then create UMBs from this memory.
UMBPCI.SYS is the IDEAL Memory Manager for using FastVid to maximize your PCI/AGP Video performance, ONLY on Pentium Pro, Pentium II, III, Celeron and Xeon class CPUs!
FastVid v1.10 PCI/AGP Video accelerator
[128 KB] is a FREEware DOS tool.
More details at Eric's FastVid page @ Fast Graphics.
FastVid enables the Write Posting (WP), Banked VGA Write Combining (BVGAWC) and Linear Frame Buffer Write Combining (LFBWC)
modes in the BIOS for your PCI/AGP video card, in MS-DOS 5.00 - 6.22 and MS Windows 9x/3.1x. Doesn't use ANY
memory.
Run FastVid for the first time without ANY parameters, from the native/true/real MS-DOS mode. It will configure
itself for your primary PCI/AGP video controller. All you have to do is answer Yes (type Y) or No
(type N) to FASTVID's step-by-step questions. After that, just add the suggested FASTVID line to
your AUTOEXEC.BAT file and reboot.
These are my FastVid v1.10 AUTOEXEC.BAT command lines
(examples), using these 2D+3D video controllers:
C:\3D\FASTVID.EXE XX1 -8 E4000000
C:\3D\FASTVID.EXE XX1 4 D0000000
IMPORTANT:
Take a look at my Pentium III 700 MHz [overclocked @ 784 MHz] system benchmarks using FastVid + UMBPCI.SYS.
CAUTION: FastVid is NOT compatible with Microsoft EMM386.EXE or ANY other 3rd party upper/expanded/extended memory managers: Quarterdeck QEMM386.SYS, Helix NetRoom RM386.EXE, Caldera DR-DOS EMM386.EXE, Qualitas 386MAX.SYS etc. Therefore you MUST use HIMEM.SYS by itself in your CONFIG.SYS [without upper memory support :(], or BETTER, install UMBPCI.SYS, to provide access to the Upper Memory Area (UMA) and load ALL your devices/drivers/TSRs "high"!
For complete details read the documentation provided with FastVid and the related info @ Eric's FastVid page.
TIP: To learn how to properly manage, optimize and MAXimize your DOS memory resources (conventional, upper, extended and expanded), read MEMORY.TXT, REGIONS.TXT and EMM386.TXT, all part of my ©Tricks + Secrets files.