Versions 0.4.2-0.4.9:

        Rewrote the documentation somewhat.
        Added more information to the IOCTL Read function.
        Changed references of the algorithm from SHA-2 to SHA-1 to conform
          to FIPS PUB 180-1.
        Changed Sample, TrackDelta, and Accumulate PROCs to LABELs to remove
          any confusion that they are supposed to run into each other (w/out
          RET instructions); also prevents some assemblers from possibly
          adding a stack frame where one shouldn't be.
        Added IOCTL Read function to get information about the driver's
          settings and status; also added IOCTL Write function to set the
          driver's flags or add samples to the entropy pool.
	Fixed end-of-line bug when loaded in OS/2 DOS session.
	The driver displays more information about itself when loaded.
	Removed	the __sample33 define, since programs which rely on it
	  to poll the mouse usually call it continuously, returning very
	  low entropy per call.
	The driver is capable of tracking fractional bits of entropy.
	The method of entropy estimation method	is now based on	when a
	  given	sample probably	last occurred, as opposed to how large
	  the sample is	compared to the	last sample.
	Cleaned	up trailing trailing spaces and	other garbage from source
	  code files.
	If the <Alt> key is pressed when the driver loads, it will give
	  the option not to install itself.
	Interrupt hooks	use pushad/popad (prevents some	future bugs?).
	Fixed bug with Int 13 handler which did	not return flags properly.
	Fixed bug in CPU testing routine (installation was not aborted).
	Keystroke initialization runs until entropy reaches a set value
	  rather than counting keystrokes.  Also adds scan codes to the
	  pool for additional noise.
	Save/restore registers during DOS idle (fixed some nasty bugs).
	Rewrote	much of	the code in the	initialization function.
	The initialization function uses a mini-printf() function for more
	  flexible messages. This doesn't affect the installed driver.
	Sections of the	source-code were made into includes for	easier
	  management/egibility.
	Fixed minor bug	in makefile.
	Flushing /dev/random sets the entropy estimate to 0.
	Moved some defines inside the macros to	make the code legible.
	Disabled drift sampler in Int 28 while in Windows (it caused
	  problems with	WinSock).
	Wrote smarter code to test if Windows is active.  Added	sampling
	  of Windows message broadcasts.
	Removed	__sample14 option (it can be easily re-added by	those
	  who really desire this feature...).
	Added __keepfull define	fill the pool after hashing.
	Added patch for	DRVLOAD	utility.

Version	0.4.1-Beta (17 January 96):

	Better comments	in the polynom.inc file	(was polynom2.inc)
	Redid the documentation	a bit.
	Updated	sample.com utility for new configuration of driver.
	Changed	driver to use /dev/random and /dev/urandom devices.
	  Added	patches	for DEVLOD and Idrv utilities to load driver.
	Added devstatus() procedure to allow limits on data returned.
	Changed	/C option to /W	(for "wait").
	Added sampling of sound	card during DOS	idle (or periodic interrupt).
	Differentiated sampling	during DOS idle	and drift sampling options.
	Removed	__counters code	and extraneous comments.
	Changed	delta-tracking to be used only to track	entropy, and not
	  affect the bits added	to the pool. It	is no longer a define.
	Driver tests to	see if mouse is	installed before enabling mouse-
	  samplers.
	Drift sampling code redone. ror/xor bit-mixing removed.
	Polynomial used	in accumulate()	changed.
	Changed	TestCPU() routine.
	Changed	a few functions	to inline code and macros.
	Several	miscellaneous optimizations and	comment-typos fixed.
	Added the -a option to the sample.com utility (C source	only).
	Many changes and corrections in	the readme file. Updated address
	  for Free Software Foundation in GPL.

Versions 0.3.4-	and 0.3.5-Beta (9 January 96):

	Rewrote	the readme file.
	Fixed the makefile dependencies	(when .inc and .mac files are
	  changed make should rebuild the driver).
	Changed	the polynomial function	used in	accumulating entropy.
	Added /M, /P and /C options to sample mouse interrupt calls and
	  enable monitoring of mouse movement and clock	drift, respectively.
	Added a	latch to the timer interrupt which periodically	samples
	  the mouse movement.
	The initialization messages were changed slightly, and indicate
	  only that interrupts were hooked, not	sampled.
	Changed	the clock-drift	code to	use a tight loop and commented out
	  the shared delta-tracking buffer, since it lowered the entropy.
	Added CPU testing routine for initialization.
	Changed	the method of incorporating the	counter. It is now xor'd
	  with the first dword of the random pool.
	Removed	extra call in GenericSampler macro.
	Removed	non-destructive	read.
	Fixed an important bug where the mode 3	and mode 2 tests were
	  reversed in timer sampling!
	The copybyte loop resets the state[] to	the initial SHA-2 state.
	The delta-tracking now uses one	bit-buffer for all samples, which
	  appears to increase the entropy slightly and saves a few bytes.
	Minor tweaks in	how delta-tracking and drift code is handled.
	Added /L option	to show	license.  When illegal option error occures,
	  a list of valid options is displayed.	 A license message was used
	  from other software with wording that	did not	conform	to the GPL.
	  Hence	the wording was	changed	(sorry for any inconvenience).
	Initial	sampling now asks for 20 keystrokes.
	Changed	in the way Request Header is stored.
	A few more useful comments in the source code.	The source was also
	  broken into include modules so it would be less cluttered.

Versions 0.3.2-	and 0.3.3-Beta (3 January 96):

	The source was commented to make it somewhat more legible,
	  although one can argue that it is a futile exercise for
	  assembly language.
	Added /I option	telling	the driver to initialize the random pool.
	  Fixed	bug with compiler directives and /I option (v0.3.3)
	Added a	compiler define	to track second-order deltas and attempt
	  to maximize the entropy of the added samples (v0.3.3)
	Added a	compiler define	to sample clock	drift during idle time.
	  Drift	sampling code changed to use roll/xor instead of a
	  shift/or for improved	entropy	(v0.3.3)
	The source code	was reorganized	to be MASM friendly, as	well as
	  to make an eventual OS/2 port	easier.	 (The version of MASM
	  that I have is 5.0, which chokes on the source for v0.3.3)
	Included demo C	and Pascal sources for using the driver.
	Added Nondestructive Read and Flush Buffer functions to	driver.
	The sampling method and	SHATransform routines were rewritten
	  and optimized	by Colin Plumb.
	Added compile-time options to disable hashing and buffer-mixing
	  to that raw sampling data can	be studied-- this has actually
	  led to the elimation of some sampling	options	which produced
	  little or no entropy!
	Fixed a	bug where the front of the entropy pool	was not	updated.
	Fixed a	(harmless?) bug, hashsize is 160 bits, not 120 bits.
	Initial	keystroke seeding shows	number of keys remaining.
	Assorted other tweaks...

Version	0.2.1-Beta: Original release (28 December 1995)

