FDXMS286.SYS documentation.

FDXMS286.SYS is FreeDOS' replacement for HIMEM.SYS for 286 CPUs.
It's released under the GNU GENERAL PUBLIC LICENSE, see the file
LICENSE.TXT for the full text. 

For more information about FreeDOS, go to the web site, 
<http://www.freedos.org>.


FDXMS286.SYS require at least a 286 CPU.

FDXMS286.SYS supports up to 64MB of XMS memory. Note that 286s only 
support 16MB of memory.

FDXMS286.SYS relies on the BIOS for XMS moves.

FDXM286T.SYS is FDXMS286.SYS with TRACE_CODE enabled, which can be 
useful for debugging (mainly FDXMS286).


Supported arguments:

	NUMHANDLES=<number>
		Sets the number of XMS handles. Default is 32. Minimum
		is two (not much use of XMS without any handles!) and
		maximum is currently 1024. Each handle takes 5 bytes.

	PS
		Changes to the particular A20 handling necessary on
		PS/2 machines.

	DELAY=<number>
		Number of calls to the delay routine after changing
		the A20 line. If you receive the error message "Unable
		to switch A20 address line", try setting it to a big
		value (say 4000) and see if it helps. Then fine tune
		it as you want as low a value as possible for
		speed. Default is 1. Maximum is 65535 and 0 maps to
		65536.
	
        INT15=<number>
                Amount of extended memory in kiB to leave to be
                allocated through INT15 AH=88 hooking. Remember to
                include 64 kiB reserved for HMA. Minimum is
                64 (64 kiB). Maximum is the smaller value of 0xfbbf
                kiB (~66 MB) and the size of the extended memory block
                that starts a 0x110000 minus 1.
		

Supported arguments only in FDXM286T.SYS:

	TRACE=<number>
		Sets the trace bitmask. A set bit indicates a trace
		printout should be shown for that function. Default is
		0.

		The bit for each function is:
			get_version (0x0)		= 0x000001
			request_hma (0x1)		= 0x000002
			release_hma (0x2)		= 0x000004
			global_enable_a20 (0x3)		= 0x000008
			global_disable_a20 (0x4)	= 0x000010
			local_enable_a20 (0x5)		= 0x000020
			local_disable_a20 (0x6)		= 0x000040
			query_a20 (0x7)			= 0x000080
			query_free_xms (0x8)		= 0x000100
			alloc_xms (0x9)			= 0x000200
			free_xms (0xa)			= 0x000400
			move_xms (0xb)			= 0x000800
			lock_xms (0xc)			= 0x001000
			unlock_xms (0xd)		= 0x002000
			get_handle_info (0xe)		= 0x004000
			realloc_xms (0xf)		= 0x008000
			request_umb (0x10)		= 0x010000
			release_umb (0x11)		= 0x020000
			realloc_umb (0x12)		= 0x040000

	TRACE
		Equivalent to TRACE=0xffffffff.



<number> is positive decimal number or, if it starts with '0x', a
hexadecimal number.


Comments can be sent to Martin Str”mberg, <ams@ludd.ltu.se>. Please
start the subject line with "FDXMS286".

Bug reports should be filed in bug reporting tool on the FreeDOS site,
<http://www.freedos.org>. Remember to include the version number of 
FDXMS286 in your bug report. Thank you for testing.
