
This file lists the previously undocumented features available in the program.
These features may change or be discontinued at any time.  Their use is
totally unsupported.

In prime.ini you can have mprime suspend execution when the system
load gets above a threshold.  This can improve system responsiveness
by freeing up memory that mprime is currently using.  Mprime bases
its decisions using the first value in /proc/loadavg.  In prime.ini, set
	MaxLoad=a
	MinLoad=b
	PauseTime=c
For example, if MaxLoad is set to 4.5, mprime will suspend whenever the
load average gets above 4.5.  If MinLoad is set to 3.1, then mprime will
resume operation when the load average goes below this value.  Set PauseTime
to how often you want the program to check the load average.  This value
is in seconds.

In prime.ini you can force the program to use different filenames for 6 files.
This is in response to a user that is running security software that prevents
writing to any file with a .ini extension.  There may well be other uses.
You can also change the working directory (identical to the -W command line
argument).
	prime.ini=your_filename
	local.ini=your_filename
	worktodo.ini=your_filename
	prime.log=your_filename
	prime.spl=your_filename
	results.txt=your_filename
	WorkingDir=your_directory_name

You can change the program's behavior at various times of the day.  See
the Time= option described in the readme.txt file.

You can limit how far the program tries to factor a number.  This feature
should not be used with the Primenet server.  To prevent the factoring code
from factoring higher than 2^n, enter this in prime.ini:
	FactorOverride=n

You can force the Options/CPU dialog to display times using AM/PM or
a 24-hour clock format.  Otherwise, the program will make its best guess
as to the proper format.  Add this line to prime.ini:
	AMPM=n
where n is 1 for AM/PM formatting and n is 2 for 24-hour formatting.

You can adjust how many decimal digits of precision are displayed
in lines output to the screen.  In prime.ini enter a value between 0 and 6:
	PercentPrecision=n

You can choose whether the program uses the system clock or the read timestamp
counter instruction (RDTSC) to time events.  In prime.ini, enter 0 for
using the system clock, 1 for using RDTSC but not outputting clock counts,
and 2 for using RDTSC and outputting clock counts.
	RdtscTiming=n

You can alter the way the program outputs timings.  In prime.ini set:
	TimingOutput=n
Where n=1 for seconds with 3 digits of precision, n=2 for milliseconds
with 1 digit of precision, n=3 for milliseconds with 2 digits of precision,
n=4 for milliseconds with 3 digit of precision.

You can turn off the outputting of date and time to the screen.  In prime.ini:
	TimeStamp=0

You can have the timings that are output to the screen be cumulative
(from program restart or start of a new exponent) rather than resetting
after each screen output.  Add this line to prime.ini:
	CumulativeTiming=1

The program supports 4 different code paths for LL testing depending on
the CPU type.  It also has a few different factoring code paths.  You can
force the program to choose a specific code path by setting the proper
combination of these settings in local.ini:
	CpuSupportsRDTSC=0 or 1
	CpuSupportsCMOV=0 or 1
	CpuSupportsPrefetch=0 or 1
	CpuSupportsSSE=0 or 1
	CpuSupportsSSE2=0 or 1
This shouldn't be necessary though.  Setting the CPU type in Options/CPU
is the preferred method.  There is one IMPORTANT EXCEPTION.  If you have
a Celeron the program distinguishes between a Celeron 1 and a Celeron 2
by the clock speed you enter.  Anything above 533 is assumed to be a
Celeron 2.  If you have a Celeron 1 chip running above 533 MHz, then
set CpuSupportsPrefetch=0.  If you have a Celeron 2 and it is running
at 533 MHz or less, then set CpuSupportsPrefetch=1.

The program used to do factoring and P-1 testing on exponents even if
they were not the first entry in worktodo.ini.  The rationale was that
if the number had a factor, the server could be contacted and another
exponent reserved.  This avoids the possible scenario where the LL test
for the first worktodo.ini line completes, a factor is quickly found for
the second line in worktodo.ini and the computer now sits idle until
the server can be contacted.  This behavior was confusing, especially
to newcomers.  To restore this old behavior add this line to prime.ini:
	SequentialWorkToDo=0
One added benefit is time estimates in Test/Status will be more accurate
because we'll know no factors will be found and the LL test must be run.

The program will restrict how many exponents can be added to worktodo.ini.
To override this, change prime.ini:
	MaxExponents=n

By default, ECM will stop when a new factor is found for exponents above 5825.
You can have ECM always stop or always continue searching for factors by
using a value of zero or one in prime.ini:
	ContinueECM=n

You can skip the GCD in stage 1 of P-1 factoring with this prime.ini setting:
	Stage1GCD=0

You can prevent users from accessing the Test/User Information dialog box.
In prime.ini enter:
	LockUserInfo=1

You can have the program generate save files every n iterations.  The files
will have a .XXX extension where XXX equals the current iteration divided
by n.  In prime.ini enter:
	InterimFiles=n

You can have the program output residues every n iterations.  The default
value is the InterimFiles value.  In prime.ini enter:
	InterimResidues=n

You can force prime95 to skip the trial factoring step prior to
running a Lucas-Lehmer test.  In prime.ini add this line:
	SkipTrialFactoring=1

You can do P-1 factoring by adding lines to worktodo.ini:
	Pfactor=exponent,how_far_factored,has_been_LL_tested_once
For example, Pfactor=10000157,64,0

You can reduce the number of times worktodo.ini is read and written by
setting in prime.ini:
	WellBehavedWork=1
This only works for worktodo.ini files that contain only Factor= lines.
Only turn this on if you have BIG worktodo.ini files and each Factor=
operation does not take much time.  You must stop prime95 before manually
editing the worktodo.ini file.

In Advanced/Time, you can enter a value between 9994 and 9999 for the
exponent to run a QA script.  The QA file looks like this:
	64511,0,400,99999999,3389BC878321980A
Where the first value is the exponent, the second value is the FFT size where
zero means use the default FFT size.  The third value is the number of
iterations to run.  The fourth value is the shift count (if the shift count
is greater than the exponent a random shift count is used).  The final value
is the expected 64-bit residue.
The dialog box values between 9994 and 9999 force slightly different
code to run.  9999 and 9998 run straightforward squaring code, 9998 differs
by gathering some standard deviation data.  9997 does squarings also
but exercises the general purpose add/sub/mul routines too.  9996 does
operations typical during ECM - the final residue won't match but the
convolution error data can be useful.  9994 and 9995 probably blow up.

You can factor a range of exponents for certain factors between b1
and b2 bits inclusive.  This feature is likely to be deleted in a future
release.  Add this to your worktodo.ini file:
	AdvancedFactor=start_exponent,end_exponent,b1,b2

AdvancedFactor uses the file p0000000 as the name of the continuation file.
This causes problems if you try to run two prime95s doing Advanced/Factoring
on a dual-CPU machine from the same directory.  Add this line to prime.ini
to use a different Advanced/Factor continuation file name:
	AdvFacFileName=filename

In AdvancedFactor, a start exponent of 8888 forces reading of a file called
factors.  The program then tries to refind each factor using the
factoring code.  This is not an efficient way to verify factors as it
goes through the entire sieving process and trial factoring many
potential factors. 

In local.ini, both the DayMemory and NightMemory values can be negative
numbers meaning use all but this many megabytes.  Thus on a 128MB system
a value of -32 means the program can use 96MB of memory.

Mprime supports 4 different ways of checking if your computer is connected
to the internet.  Set RouteRequired=n in primenet.ini.  The following
values of n are supported.  The last entry is what happens if RouteRequired
is not given.
	0:	Assume computer is always connected
	1:	Assume connected if there is an entry in /proc/net/route
		other than for the loopback device.
	2:	Assume connected if there is an entry in /proc/net/route
		with a netmask of 00000000.
	none:	Same as 2 except that if /proc/net/route is unreadable
		mprime assumes computer is connected.

You can control which FFT sizes are tested by the torture test.  In prime.ini
you can set:
	MinTortureFFT=n
	MaxTortureFFT=m
Where n and m are in "K".  The default for n and m is 8 and 1024 which will
run tests on FFT sizes rom 8K to 1024K.  Set n to 8 and m to 16 and you will
run only small FFT sizes.  These FFTs will fit in the L2 cache and may be
more stressful to the CPU.

You can control how many minutes each FFT size is tested by the torture test.
In prime.ini set:
	TortureTime=n
The default value is 15 minutes.
