MemPri		View or alter your system memory priority	 V 1.1	  5/21/91

	MemPri is a handy tool for Amiga owners with a mixture of 32 bit and 16
bit memory.  MemPri will let you adjust the priority of each of your memory
types thereby allowing you some control over where programs load.

	For instance, Amiga owners with 2620 boards and other 16 bit memory will
be able to raise the priority of the 32 bit memory when they wish a program
to reside in 32 bit memory to gain full advantage of the FASTer memory - such
as a ray tracer, then lower the 32 bit memory priority when running mundane
programs

	MemPri can also do the function of FastMemFirst by lowering the
priority of the C00000 ram below that of any other ram in the system.


	MemPri can be used from the CLI or the WorkBench.  When used from the
CLI the usage is:

	MemPri { ? } { PRIORITY } { ADDRESS }

	where:	PRIORITY is a number between -128 and 127
				Higher priority ram gets used first
		 	ADDRESS is the address of the memory hunk to modify
				The address should be the LOWER address given in the MemPri
				display

	Typing MemPri ? displays the usage message.

	Typing MemPri without parameters prints the current memory configuration
	such as:

	Hurricane Ram
	   FAST	Lower: 600000	Upper: 7ffff8	Free: 1494880	Pri: 10
	expansion ram
	   FAST	Lower: 200020	Upper: 400000	Free: 0753696	Pri: 5
	Chip Memory
	   CHIP	Lower: 000420	Upper: 080000	Free: 0425616	Pri: 0
	Fast Memory
	   FAST	Lower: c004e8	Upper: c7e800	Free: 0466056	Pri: -10
	Total bytes free: 3140248

	Typing MemPri with a priority but without an address number defaults to
200000

For Example, typing:

		 MemPri -10 C00000

	will set the priority of the Half FAST memory located at C0000 to -10
(just what FastMemFirst does).


WORKBENCH USERS

Two icons are supplied for WorkBench users.  These are entitled

		32BitHi.info  and 32BitLo.info

These icons call up MemPri which then reads the TOOL TYPE fields in the
icons looking for the strings ADDRESS_x and PRIORITY_x  where `x' is a
number from 1 to 9.  This allows you to alter the priorities of up to 9
memory address banks with one click.

Simply change the existing TOOL TYPE ADDRESS_x entries to the lower address
of your system memory banks, then edit the associated PRIORITY_x to the
priority desired for that address bank.

Using the above memory priority display output I would enter the following
into my 32BitLo TOOL TYPE fields to lower the priority of the Hurricane Ram
(at 600000) below the 16bit expansion ram (at 200000), and above the
C00000 ram.

	ADDRESS_1=600000	PRIORITY_1=0
	ADDRESS_2=200000	PRIORITY_2=5
	ADDRESS_3=C00000	PRIORITY_3=-10
	ADDRESS_4=000000	PRIORITY_4=0

To give my 32 bit memory highest priority I would setup the 32BitHi fields
as follows:

	ADDRESS_1=600000	PRIORITY_1=10
	ADDRESS_2=200000	PRIORITY_2=5
	ADDRESS_3=C00000	PRIORITY_3=-10
	ADDRESS_4=000000	PRIORITY_4=0

It's not necessary to change all memory address priorities at the same
time as shown above.  I only did this as an example.  You only need specify
the ADDRESS and PRIORITY fields of the bank you adjust the most.

Try watching ASDGs SysMon program while adjusting the memory priorities.
SysMon will reshuffle it's memory bargraphs to reflect the current memory
priority arrangement.

-------------
Ver 1.1

   This version works with memory outside of the auto-config memory space.

   Note MemPri sorts the system memory list in ascending order based on
priority.  Users with several memory boards that autoconfigure in mixed order
will find that MergeMem will not merge their memory.  These users can use
MemPri to sort the memory address order possibly allowing MergeMem to merge
the lot.  For instance, on my 2000 I have the following memory banks:

32_Bit_Ram
	FAST Lower: 600020  Upper: 9ffff8  Free: 3896032  Pri: 10
expansion ram
	FAST Lower: 200020  Upper: 600000  Free: 2385928  Pri: 5
Chip Memory
	CHIP Lower: 0008e8  Upper: 0fe800  Free: 0960678  Pri: -10

MergeMem won't merge these areas.  By upping the priority of the memory
at 200020 to 15, the memory list gets adjusted as follows:

expansion ram
	FAST Lower: 200020  Upper: 600000  Free: 2385928  Pri: 15
32_Bit_Ram
	FAST Lower: 600020  Upper: 9ffff8  Free: 3896032  Pri: 10
Chip Memory
	CHIP Lower: 0008e8  Upper: 0fe800  Free: 0960678  Pri: -10

Since the address space is now in ascending order MergeMem can merge the
expansion ram with the 32_Bit_Ram to produce:

expansion ram
	FAST Lower: 200020  Upper: 9ffff8  Free: 6280592  Pri: 15
Chip Memory
	CHIP Lower: 0008e8  Upper: 0fe800  Free: 0960678  Pri: -10

Of course, now there's no way of separating 16 and 32bit memory, but if you
occasionally need the maximum amount of memory in your system, give this a
try.  Do this very early in the startup-sequence before memory gets
fragmented and if you use SetCPU, use the HEAD option to have it allocate
memory at the beginning of the address space.

end.
