-----BEGIN PGP SIGNED MESSAGE-----

(Nothing above this line is part of the PGP signed document)

Real Delete                           Version 1.05 (for PC compatibles)
===========                           =================================
Copyright (c) 1994-99 Iolo Davidson   ALL RIGHTS RESERVED


                       YOU MUST READ THIS
                       ==================

This software remains the property of Iolo Davidson.  The software is
not sold, nor are any rights in the software sold.  Iolo Davidson grants
a limited licence to use the software subject to the user accepting all
of the conditions expressed in this documentation.

Unless otherwise stated in writing and signed by Iolo Davidson, this
software and documentation is provided as is, without warranty of any
kind.  Iolo Davidson specifically disclaims all warranties, express or
implied, including, but not limited to, any implied warranty of
merchantability or fitness for a particular purpose.  The entire risk as
to the quality and performance of the software and instructions is with
you.  You agree to wash and wax the author's car, should you be in the
neighbourhood.  Should the program prove defective, or should the proper
functioning of the program cause any problem, you assume the cost of all
necessary servicing, repair, or correction.

In no event unless required by applicable law or agreed to in writing
will Iolo Davidson be liable to you for damages, including any general,
special, incidental, or consequential damages arising out of the use or
inability to use the software (including but not limited to loss of data
or data being rendered inaccurate or losses sustained by you or third
parties or a failure of the software to operate with other programs),
even if Iolo Davidson or other party has been advised of the possibility
of such damages.


Limited licence
===============

This program is shareware.

Anyone may try it out for a short period for free.  Thirty days ought to
be plenty.

Anyone may use it indefinitely on a single computer for their own
private and personal use for free.

Anyone may give copies of it to others, or distribute it on computer
bulletin boards or by Internet ftp, provided that the full package is
always distributed intact and not incorporated into any other program or
product, and that absolutely no charge is made.

This software may not be distributed as part of a commercial product
(such as a collection of shareware on a CDROM) or as part of the
promotion of a commercial product (such as a magazine cover disk)
without express written permission from Iolo Davidson.

If the software is used professionally, or in the course of a business
(including the business of government, civil service, or security
services), or for the purposes of commerce, then a registration fee must
be paid.

To register Real Delete, send Iolo Davidson one pound (UK currency) or
two dollars (USA currency) for each computer on which it is to be
installed.  Cheques or postal money orders only, please.


Iolo Davidson                    Telephone   0870 742 1148
Scrubbetts                             FAX   0870 742 1148
Bagpath
Tetbury                      International   +44 870 742 1148
Gloucestershire                        FAX   +44 870 742 1148
GL8 8YG
Great Britain                        Email   iolo@iname.com

The Real Delete Homepage (also the home of Scorch)  -

      http://www.bonaventura.free-online.co.uk/realdelete


What it is
==========

Real Delete (REALDEAL.COM) is a memory resident program that intercepts
DOS file delete calls and overwrites the files before deleting them.  It
does this automatically, with no attention from the user other than
installing the program in AUTOEXEC.BAT.

                      -------------------
                      |     WARNING     |
                      -------------------

      REAL DELETE MAKES IT IMPOSSIBLE TO RECOVER DELETED FILES
      WITH UNDELETE UTILITIES.  IF YOU USE THIS PROGRAM, DELETED
      FILES WILL BE GONE FOR GOOD.  THIS PROGRAM CAUSES PERMANENT
      DATA LOSS.  THAT IS WHAT IT IS FOR.  YOU HAVE BEEN WARNED.

Several levels of security are offered, from a one pass overwrite with
zeros which is quick and secure enough for the purposes of personal
privacy, to multipass overwrites with several different patterns which
take longer but make the data difficult to recover even with
extraordinary techniques.  A special mode is provided for use with
disk-doubling compression software.

An unusual feature of Real Delete is that it overwrites the slack space
at the end of the last file cluster as well as the file itself.  This is
not actually part of the file, but it often contains data left in a DOS
"dirty buffer" or abandoned data previously written to this space.  All
references in this document to Real Delete overwriting files include
this slack space.

Each file overwrite is followed by a "file commit" call to make sure
that the write happens on the disk, and not just in a disk cache.  At
the end of all overwrites, the file is truncated with an invalid first
cluster number, so there is not even a pointer left to the original
contents, and the file is finally marked as deleted in the directory.
Real Delete sets the date and time stamp on deleted files to midnight,
January 1, 1980.

Version 1.03 and later cooperate with Scorch, the faster, non-resident
secure file deleter from the same author, to allow Scorch to overwrite
files at high speed without Real Delete stepping in to duplicate the
effort at a slower speed.  Scorch will be of special interest to people
who normally use Real Delete, but sometimes have large files, such as
Windows swap files, to overwrite, because it is much faster than Real
Delete on large files.


The different security levels are:

  Personal:
        Overwrites file one time with zeros.

  Commercial:
        Overwrites file once with AA55 hex, once with 55AA hex, then
        once with zeros.

  Military:
        Overwrites file twice with pseudo-random garbage, then once with
        AA55 hex, once with 55AA hex, and once with zeros.  The garbage
        comes from a pseudo-random garbage generator seeded from the
        system timer tick count.

  Kool dewd:
        The most secure setting of all, for those with the most pressing
        security requirements.  Overwrites file five times with
        pseudo-random garbage, then once with AA55 hex, once with 55AA
        hex, and once with zeros.

See the section on disk compression issues for a description of how
these security levels are modified by the additional selection of the
disk-doubling mode.

How to use it
=============

Real Delete may be run from the DOS command line at any time to install
it in memory, but most people will probably find it convenient to run it
in their AUTOEXEC.BAT file.

You must specify a security level as a command line switch when you run
Real Delete, or it will refer you to this document instead of going
memory resident.  This is for your protection.

If you want it to work on network drives, you should run it after the
network drivers.  Never run any TSR within a login script or menu shell
however.

If you use Windows, Real Delete should be run before you run Windows.
If you run it in a Windows DOS session, it may only work for that
session, or may not work at all.  It probably will not have any effect
on the Windows swap file in any case, and especially when Windows 32 bit
disk access is enabled.  See the section on Windows issues below.

Real Delete is not compatible with "delete tracking" software of the
type which stores deleted files for later recovery.  If you wish to use
such software, do not also use Real Delete.  The two are meant to do
opposite things, and it makes no sense to run both.

Real Delete may be loaded high if your system software has the ability
to do this (such as LOADHIGH with DOS 5.0 and later).

If Real Delete is already resident, it will not load again but will
print an error message.  You may unload Real Delete, provided other
software has not taken over the interrupts.


Options
=======

You must select a security level by specifying a command line switch
when the program is run.  Otherwise the program will refer you to this
document instead of installing.  To load the program with the personal
security level set, for instance, you use the invocation:

realdeal /per

Other security level switches are:

      /com or /commercial   - select commercial level security
      /mil or /military     - select military level security
      /dewd                 - select kool dewd level security

An additional parameter may be specified to make all the overwrites use
pseudo-random garbage, whatever the selected security level.  This is
for use with "disk doubling" software, such as Stacker or Doublespace.
See the section on compressed disks below for an explanation of why this
is advisable.  An example invocation:

realdeal /per /garb

If you don't want the directory entry to be truncated with an invalid
first cluster number, you may specify that it keep the original file
pointer, size, and date in the directory entry with the /valid switch.
The file will still be overwritten to the specified security spec, so if
it is undeleted, it will contain only zeros.  You might want to use this
switch for testing, so that you can undelete a deleted file and examine
it to see that it has been overwritten.  Or perhaps you don't want
deleted entries in your directories to show evidence of a "wipe" utility
having been in use.  An example invocation:

realdeal /mil /valid

If you don't want Real Delete to display its banner when it installs,
you can specify the /silent switch.  This is provided so that you are
not tempted to use the DOS redirection to the NUL device to suppress
screen output (>NUL), as this can disrupt the system file tables and
cause trouble with file sharing.  The >NUL switch should never be used
when running any memory resident program.

Real Delete may be unloaded by running the program again with the
/unload switch.  If another TSR has taken over the interrupts that Real
Deal uses, then it will not be possible to unload Real Delete until the
intervening TSR is unloaded.  Running Real Delete with the /unload
switch when it is not already resident will also be ineffective.
Appropriate error messages will warn you of these conditions.


Running as a foreground program
===============================

You can use Real Delete in the foreground, to expunge a single named
file, rather than go memory resident.  This allows those who only have
occasional need for secure deletion to use Real Delete's superior
facilities on sensitive material without having to give up the ability
to undelete everyday files that might be accidentally deleted.
Foreground operation is performed by specifying the filespec of the file
to be expunged on the command line, enclosed in square brackets, thus:

realdeal [c:\dir\filename]

Wildcards are not allowed in the filespec, neither are square bracket
characters or spaces.  The specified file (if it exists) will be
overwritten to Real Delete's military security level by default.  If you
wish to use a different level of security, you can specify it by adding
the usual command line switches.  For instance, to use the personal
level, plus the random garbage feature for use with disk compression,
you would enter:

realdeal [c:\dir\filename] /per /garb

The use of square brackets is to prevent accidental erasure of files by
people who are playing around without having read the documentation.
There is no further backstop to save you from yourself, no "Are you
completely sure?"  message or the like.  If you type this command, it
will just do it.  You have been warned.

If you have more than occasional use for a foreground secure deletion
utility, then you are recommended to try Scorch, from the same author as
Real Delete.  Scorch is much faster, especially on large files, and
offers more functionality, such as filespec wildcards.


Switches
========

The full list of switches:

  /per or /personal     - select personal level security
  /com or /commercial   - select commercial level security
  /mil or /military     - select military level security
  /dewd or /dewd        - select kool dewd level security
  /garb or /garble      - all overwrites to use pseudo-random garbage
  /valid                - keep valid cluster number etc. in directory
  /silent               - suppress initial screen messages
  /unload               - remove Real Delete from memory
  /delonly              - do not clear slack space on close or truncate
  [c:\dir\filename]     - delete single named file without going TSR

More than one switch may be specified.  If more than one security level
switch is specified, only the most secure will take effect.  If no
security level switch is specified, a message will be printed referring
the user to this document and the program will not install.

The switches may be specified in upper or lower case, and must be
separated from each other and from the program name with spaces.
Misspelled or non-existent switch specifications will be ignored without
error messages.


How it works
============

Real Delete intercepts DOS calls to functions 013h and 041h, the two
delete functions, and overwrites the files specified before passing on
the calls to DOS for the normal delete.

Function 013h (FCB) deletes can include wildcards, specifying more than
one file.  Real Delete expands these wildcards and overwrites all the
specified files.  This is the function COMMAND.COM uses when you delete
from the command line using wildcards.

Before overwriting each file, Real Delete checks the cluster size for
the device that the file resides on, so that it can overwrite the slack
space at the end of the last cluster as well as the file contents.

All overwrites are performed using standard DOS calls.  Files with the
read only bit set will not be overwritten (they will not be deleted by
the standard delete function either).  You will just get the DOS error
message ("Access denied" in DOS 5+).

After each overwrite pass, a DOS "file commit" call is performed on the
overwritten file, to make sure that the data is physically written to
the disk, not just to a disk cache in memory.  This should force writes
through software disk caches, but will probably not have any effect on
hardware disk caches, such as caching disk controllers with their own
memory.  It is not possible to to be sure how every caching system will
respond, so it is up to the user to satisfy himself as to the
performance of this software on his own equipment and software.

If the /valid switch has not been specified, the file is finally
truncated by writing zero bytes to the beginning of the file and then
closing the file, prior to performing the standard DOS delete.  This has
the effect of setting the directory entry to point to cluster number
zero, an invalid cluster, as the first file cluster, and the file length
to zero.  This will stop file undeleters from working, and make it very
difficult to find the file's original, now overwritten, clusters.

This does not quite have the same effect on the Novell SALVAGE command,
which will be able to restore a network file's directory entry, but the
file will still be zero bytes in size, and the original contents will
still have been overwritten.

Real Delete clears dirty buffer and slack cluster space on file close
(int 21h function 3eh) as well as on delete.  It also clears the
truncated portion of file on file truncate (int 21h function 40h with
cx=0).  The latter might occur when you shorten a document with a word
processor by deleting an unwanted paragraph, for instance.


Why a TSR?
==========

There are a number of non-TSR utility programs available that will
"wipe", "nuke" or "shred" files.  These have the drawback that you must
tell them which files to obliterate.  Let's consider what happens if you
use a word processor to write a confidential memo, which you print, then
you obliterate the file with one of these utilities.

Does your word processor use temporary files for editing?  Does it use
print spooler files?  Some do, but they don't trouble to tell you about
them, they just delete them when they have finished with them.  Since
the program deletes them, you don't know they were there and don't have
the opportunity to run a file wiper on them.  So they can be undeleted,
or the data found by scanning through the disk sectors.

If you have Real Delete installed, however, such temporary files will be
overwritten to your specification when the program deletes them, without
you even having to know that they existed.

Furthermore, every time a file is deleted, the DOS file buffers will be
flushed with Real Delete's overwrite patterns, so there is a much
reduced possibility of left over sensitive data being written to the
slack space at the end of another file by a dirty DOS buffer.  This
would also happen when you run a foreground file obliterator, but it
would happen much less often, so there would be more chance of a dirty
buffer with something juicy in it.

Real Delete can be used in the foreground to expunge a single named file
without going memory resident if that is all you wish to do.  However,
there is a faster secure deletion utility that works in the foreground
only, called Scorch, available from the same author.


DOS dirty buffers and cluster slack
===================================

What happens when you write a short note in a file and save it?  DOS
copies the data from the word processor program's buffer into its own
buffers, and calls the disk BIOS to write the buffers to the disk. (OK,
it does a lot of other stuff first, reading and writing directory and
FAT sectors, also using the DOS buffers.)  When the data written is
exactly one sector (512 bytes), that is what ends up on the disk.  But
files seldom fit exactly in a multiple of 512 bytes.

DOS, and the disk BIOS code, only know how to read and write whole
sectors of data.  When DOS copies the code from the program buffer into
its own disk buffers, it copies exactly the number of bytes it is told
to copy, but when it writes it to disk it has to round up to full
sectors.  It does not bother to make sure that the sector buffer is
clear of old data from the last read or write before copying in the new
data.  The last sector in the file write may not, in fact probably
won't, be completely overwritten with new data.  The part of the
buffer that hasn't been overwritten will contain whatever was there
before, and it will get written to the disk.

When you look at a file, you don't see this left over data, because DOS
keeps track of how long the actual file contents are, and when you read
the file it does not transfer the unused portion of the last sector to
your file reading program, but it is still in the DOS buffer, and it is
still on the disk.  When that buffer gets used again, there is a chance
that the dirty data will once again not be overwritten with new data,
and the old data will be copied to the disk again in a new place.

There is more.

DOS divides the disk into clusters, each of which may contain several
sectors.  This cuts down on the number of file allocation units that DOS
has to keep track of in the FAT.  There are commonly 4 sectors to a
cluster on a hard disk, but this depends on the size of the disk and
other factors.  There can be many more.

DOS does not clean out the contents of a cluster before writing a file,
so if the file does not exactly fill a multiple of clusters, there can
be some old data at the end of the last cluster, left from files which
have been deleted by DOS delete, which also does not clean out clusters
when freeing them for reuse.  This is another source of old data which
can be found later on by someone with a disk sector editor.

There are utilities which will clear out the slack space at the end of a
file, where the last cluster has not been completely filled, but with
DOS continually writing new files over "deleted" ones without clearing
the old data, you have to run such utilities often to keep clean.

Real Delete helps this situation a lot, by clearing out old data when
the files are deleted, including the slack cluster space.  And it can
help the dirty sector buffer problem too, because the overwrite calls
flush the DOS buffers with overwrite patterns, reducing the chance of
leftover data being present in a dirty buffer when a file is written.

Real Delete clears dirty buffer and slack cluster space on file close
(int 21h function 3eh) as well as on delete.  It also clears the
truncated portion of file on file truncate (int 21h function 40h with
cx=0).  This is to stop data being left lying around in abandoned
sectors when files are edited, since such sectors will not be
overwritten by a subsequent delete.  These facilities trap the handle
functions only, not the equivalent ones using FCBs, which are now
obsolete and seldom used.  The overwrite will be performed to the same
security level selected for delete.  These options can be turned off by
specifying the /delonly switch when Real Delete is run.


Windows issues
==============

Microsoft Windows uses a swap file which saves snapshots of the computer
memory to disk.  This means that any data at all, whether you mean it to
be saved to a file or not, may end up on the disk.  The Windows swap
file is ordinarily not deleted, nor overwritten except when Windows
saves new snapshots of memory.  This is extremely insecure, and there is
nothing that Real Delete can do about it.

If you use Windows, you can reduce the security risk in three ways:

1) Power-off reboot the computer before handling sensitive data, and
   power off again afterwards, without ever running Windows during the
   power on time.  There is a way to do this even with Windows95.

2) Run Windows without a swap file.  This requires a lot of RAM to get
   decent performance, say 16 megabytes for Windows3, and is probably
   unworkable in Windows95.

3) Securely overwrite the Windows swap file after each Windows session.
   It is better not to use Real Delete for this, because it will take a
   long time on a file the size of a swap file.  Use Real Delete's
   faster companion program, Scorch, instead.  The Scorch documentation
   has information about how to reduce the insecurity of Windows and
   Windows95 swap files.

Some Windows utility software such as Norton Desktop offers facilities
to save deleted files in a hidden directory for later retrieval.  If
your definition of data security is "never losing any data by accident"
then such facilities will be useful, but the concept is incompatible
with the security definition behind Real Delete, which is "never saving
any data by accident".  If you wish to use such facilities, do not also
use Real Delete.


Windows 95
==========

Real Delete will not work under Windows 95 or 98, for the same reasons
discussed below in the Windows 3.x 32 bit file access section.  Yes, it
is possible to write a program that will perform the same function under
Windows 95 and 98, and yes, I could write it, given the motivation.
Many people have asked me for such a program, but no one has come up
with any good ideas about motivation.

You can use a foreground secure file deletion utility instead, like
Scorch, but that will not give you the automatic delete overwrites that
Real Delete provides in DOS.  Given the way that Windows scatters data
all over the disk in temp files and swapfiles, it probably wouldn't help
much anyway.


Windows 3.x 32 Bit File Access
==============================

Running Windows 3.11 or Windows for Workgroups 3.11 or later versions,
there is an option in the Enhanced 386/Virtual Memory menu to use 32 Bit
File Access (not 32 Bit Disk Access, which is a different deal).  If you
use this option, memory resident programs which intercept DOS interrupt
21h calls, such as Real Delete, will be cut out of the loop and no
longer function.  This will be the case both when running Windows
applications and when running DOS programs in a DOS box.

This is not a fault in Real Delete.  It is a result of Windows taking
over the DOS functions and performing them in Windows' own code rather
then sending them through the interrupt chain to DOS.  The reason for
doing this is that it speeds up disk access substantially, because
Windows can remain in 32 bit protected mode rather than going through
the lengthy procedure to swap into virtual 86 mode for each DOS function
call.

There are a number of conditions that prevent the use of Windows 32 Bit
File Access.  Using Novell network drivers, SCSI disks, or Doublespace
under MSDOS 6 are three such conditions, and some other disk doubling or
cacheing software probably has the same effect.  32 Bit File Access is
turned off by default, so many people who could use it probably don't
have it turned on anyway.  However, if you do elect to use this Windows
option, please be aware that it may disable any TSR that relies on the
interception of interrupt 21h to operate.

Attention is also drawn once again to the existence of the Windows swap
file.  Use of this file compromises security completely, and makes the
efforts of Real Delete and any other security package moot.  If you have
enough memory, you can run Windows without a swap file, or specify a
temporary swap file on a ramdisk.  It is also possible to do all work
which requires secure conditions in native DOS, and use Windows only for
things which are not sensitive.

If you must use Windows, and must use a swap file, then you might as
well forget about security at this level, and just keep the computer in
a safe.  The additional difficulties raised by Windows 32 Bit File
Access need not concern anyone who has thoroughly compromised his
security by using a Windows swap file, at least as far as data
confidentiality is concerned.  If you use other memory resident
software, such as an anti-virus TSR, then you still have something to
worry about.


Network Issues
==============

Real Delete ought to work with most networks, but it is not possible to
to be sure how every network will respond, so it is up to the user to
satisfy himself as to the performance of this software on his own
equipment and software.

In general, if you load REALDEAL.COM after the network drivers, Real
Delete should work on both local and network drives.  If you load
REALDEAL.COM before loading the network drivers, Real Delete will
probably only work on local drives, if at all.

I use a Novell network, loading REALDEAL.COM after both IPX.COM and
NETX.COM (but before running LOGIN), and Real Delete is effective on
both the network and local drives.  If loaded before IPX.COM and
NETX.COM, it is effective only on local drives.

I have not tested Real Delete with the Windows for Workgroups network.
I don't expect that it will work with remote drives under Windows for
Workgroups.  It may be that if the computer that the remote drive is on
is running Real Delete resident, files you delete on that remote drive
will be Real Deleted, even if you are not running Real Delete on your
local computer.


Notes on "Move"
===============

Attention has been called to the "file move" function offered by Windows
and various DOS disk utilities.

"Move" does NOT normally work by copying the file to another place and
then deleting the original as some people believe, but by moving the
directory entry from one directory to another and leaving the file
contents where they are.

This is a facility of the int 21h "rename file" function 56h.  It's done
by calling the rename function specifying a new path in the new asciiz
name string.

Since the file is not deleted, there is no overwrite required.  Also no
file read and write, so the move function is much quicker than a copy.
So quick, that some people notice the difference and assume that Real
Delete is being bypassed.  Well, it is, and it isn't.  Real Delete is
simply not overwriting the file because the file has not been deleted.

You cannot move a file to a different disk drive with the rename
function, so if Windows or your disk utility allows you to "move" a file
to a different disk it will have to do it the hard way, by copy/delete,
and in this case Real Delete will overwrite the deleted file and
invalidate the directory entry as one would expect.

There is a slight wrinkle to "move".  If the move is performed on the
same disk drive, using the rename file function, the old directory entry
will not be invalidated (ie zeroed first cluster pointer).  The first
cluster pointer of this entry will point to the original file contents,
which have not moved on the disk.

These clusters will now belong to a different directory entry, so any
attempt to undelete the file in the original directory will fail while
the other directory entry exists.  If it does not fail (a badly
programmed undelete utility?) the files will be crosslinked.  In the
event of crosslinked files, deleting either file will cause Real Delete
to overwrite the crosslinked clusters.

If a file is moved, then deleted, only the deleted directory entry will
be invalidated by Real Delete.  The entry in the original directory,
from which the file was moved, will still point to the disk clusters
that contained the file.  Since the clusters are not now owned by
another file, the original directory entry can now be undeleted, but the
clusters will have been overwritten by Real Delete when the other
directory entry was deleted.  So if the moved and then deleted file is
undeleted using the original directory entry rather than the moved
entry, there will still not be any data to recover.  This is similar to
the result of running Real Delete with the /valid switch.

If you did not completely follow the above explanation, the gist of it
is that the "move" function does not really bypass Real Delete, and
deleted files WILL be overwritten.  Thank you for your kind attention.


Compressed disk issues
======================

Drives which have been compressed by "disk-doubling" software like
Stacker or Doublespace present a particular problem.  If you overwrite
a file on such a disk with zeros, or any other repeatable pattern, the
compression software will compress the bytes written to a much smaller
size than the file that is being overwritten, with the result that much
of the file will not actually be overwritten.

The remains of the file may not be intelligible or recoverable because
of the compression, which amounts to a form of encryption, but there is
a remote possibility that it may yield to a determined effort.

One way to combat this would be to avoid using disk-doublers.  Another
is to use very long random patterns to overwrite the disk.  Ideally
these would have no compressible repeated sequences, but in practice it
is enough that there are no repeated sequences within the length of the
compressor's input buffer.

Real Delete's personal security level's overwrite with zeroes is not
effective with disk-doubling, nor is the repetitive commercial pattern.
However, the pseudo-random garbage generator produces a highly
incompressible pattern which does not repeat for 128 kilobytes.  This
should be sufficient to defeat all current disk-doubling compression.
There is no guarantee that it will be effective with all such software,
however.  Those who are concerned by this issue may well reflect that
magnetic storage hardware is now very inexpensive.

You do not need to select military security to get the pseudo-random
garbage overwrites.  If you have a compressed disk, use the /garb
switch, and all overwrites will use the pseudo-random garbage generator,
whatever the security level selected.

If you want to see a sample of the pseudo-random garbage generated by
Real Delete, run Real Delete with this invocation:

realdeal /per /garb /valid

This will cause deleted files to be overwritten once with garbage
(personal level security with the garbage override), and the directory
entry left recoverable.  You can then delete a file, undelete it, and
examine the new file contents with a hex editor.

I am particularly proud of the garbage generator code in Real Delete.
It is an adaptation of the pseudo-random number generator algorithm used
in the Sinclair Spectrum, but coded in an innovatory way that uses just
a handful of machine instructions and runs at astonishing speed.  I hope
someday that one of the many people to whom I explain this code in all
its marvelous complexity reduced to simplicity will understand how
clever I really am.  Or at least will admire the garbage.


=========================================================
Copyright (c) Iolo Davidson - September 1994 - March 1999
=========================================================



-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: ascii

iQCUAwUBNuKE4KCCHWDgRg99AQFpiwPxASiftw4u66Ejc20cZQYHx1dhPQBvGJFw
KPMFwFMmuqnd5rsLY4bffgGf/ElJCHR0LNEU5Ze0arnQBv895CzRXxEU31SKTF2h
nPPdCVQyTP926Y5UUj9ko545OCkh7qI4pMK+MLqC3j3HhSqaqyptTTbY3AlgEzo1
Ee2DCFQfVg==
=LUhn
-----END PGP SIGNATURE-----
