
				      UMBMEM.EXE



	UMBMEM.EXE  - C & T NEAT Upper memory Manager

	Copyright (c) 1991, Jay B. Harlow, All Rights Reserved.


	     This package contains 2 device drivers to implement the UMB calls
	for the HIMEM.SYS XMS driver.  One driver is for 386/486 only
	machines, the other is for 286 or above. Neither driver WILL work on
	an 8086 machine due to 286 & above specific instructions, not only
	that AT (tm) by definition is 286 or higher!  This driver will only
	work on 286 or 386 machines that have C & T NEAT chipsets.  I was
	meaning to write this for awhile, and with the release of DOS 5.
	I figured now is a good enough time.


	     UMBMEM is being released as SHAREWARE.  You may use, copy,
	give, or distribute this COMPLETE package any way you choose, I
	just ask that if you find that it is very useful for your machine
	that you send me $15.00 for each copy that you use in US dollars.
	I also would prefer that you not sell this for profit, but you
	may include this package as part of your package... ie Resellers
	may install it on the machines they sell so long as they don't
	include a charge for it...

				    Jay B. Harlow
				   dba T.S. Bradley
				   2501 8th St N #3
				Bismarck ND 58501-1111
				      701-223-5502
				harlow@plains.nodak.edu


	PACKING.LST:
	UMB286.EXE     - 286 version of driver.
	UMB386.EXE     - 386 version of driver.
	README.TXT     - this readme
	TESTUMB.EXE    - Allocates & Frees UMB blocks to see if umbmem works.
	TESTUMB.C      - C source to test program (QC 2.51)
	UMBHELP.ASM    - MASM source to test program (QC 2.51)
	TESTUMB.MAK    - make file		     (WC 2.51)
	UMBHELP.H      - include file

	I install UMBMEM on my machine by copying umb386.exe to
		  \device\umbmem.exe then adding the above line to my
		  config.sys


	Installation:

	CONFIG.SYS
	    DEVICE=HIMEM.SYS		<-- important needs to be first!
	    DEVICE=UMBMEM.EXE options
	    DOS=UMB

	Dos command line (AUTOEXEC.BAT)
	    UMBMEM options


	OPTIONS:
	M=pppp
	    number of paragraphs for minimum free block, this is
	    the block size that a free block can be.

	I=mmmm-nnnn
	    defines a useable range of upper memory to use for
	    UMB's. If this option is specified an autoscan of
	    shadow memory will not be performed.

	X=mmmm-nnnn
	    defines a range of upper memory that should not be used
	    for UMB's ie video memory, hard disk memory, LIM page frame.

	W
	    make the available upper memory look like bios extentions.
	    may help fool windows into enhanced mode...

	DEFINITIONS:
	pppp	    a hexidecimal number 0 to 4 digits.
	mmmm	    1-4 hex digits specifying start of shadow memory
	nnnn	    1-4 hex digits specifying end of shadow memory


	SAMPLE:
	DEVICE=\DEVICE\UMBMEM.EXE M=6 I=A000-AFFF I=C000-C7FF I=CC00-EFFF

	     This lines loads UMBMEM with a minimum of 6 paragraphs on free
	memory.  Valid UMB memory will be 64K at A000 (I have a Hercules MDA
	card), 32K at C000, and 144K at CC00.  I have a Seagate SCSI
	controller at C800.  For a total of 240K of Upper Memory.  UMBMEM
	automatically loads itself into the first free UMB.

	An alternate to the above line is:
	DEVICE=\DEVICE\UMBMEM.EXE M:6 I:A000-C7ff I:CC00-EFFF X:B000-BFFF

	Which says the same thing...

	If you prefer:
	DEVICE=\DEVICE\UMBMEM.EXE
	    this will cause UMBMEM to auto scan memory from C000-FFFF
