This is the original README file, included with the pfdisk/bootmenu/
bootauto program written by Gordon W. Ross.  After this, my
changes are included.
		Saul Lubkin

BOOTMENU is a replacement primary boot sector for MS-DOS compatible
machines which allows boot-time selection of the active hard disk
partition using a menu.  For example, users with both UNIX and DOS
on their hard disk can choose which system to use at boot time.

BOOTAUTO is similar to BOOTMENU but allows both unattended reboot
and the ability to override the automatic selection of the active
partition at boot-time.  (I used to call this version boot-hdp).

BOOTMENU cannot do an unattended reboot but is very small and
(as a result) will not be clobbered if you use the SpeedStor
disk formatting/diagnostics program.  (Notes about SpeedStor's
usage of the primary boot sector are in the file SStor.txt).

PFDISK is a replacement for both DOS and UNIX fdisk programs.
This replacement is distinguished for its ability to put
an arbitrary binary image into the primary boot sector without
clobbering an existing partition table.  PFDISK has no boot
program built-in, but allows you to take the boot program
from a file.  At least one of the boot program files, such as
BOOTMENU, must be available to PFDISK if it is expected to
initialize a newly formatted disk.  Unlike MSDOS fdisk,
PFDISK correctly handles partition entries which extend
beyond cyl 1023.  Unlike UNIX fdisk, PFDISK is not confused
about the difference between highest-usable-cylinder-number
and (beginning-cylinder plus number-of-cylinders).

Documentation included:

The file bootmenu.doc explains how to install and use the new
boot programs.  The file pfdisk.man is manual entry in UNIX *roff
format, and pfdisk.doc is a formatted copy for those without nroff.

How to compile:

To build pfdisk, either edit the Makefile to uncomment the
appropriate line (i.e. SYS=i386) and type "make", or
use a make command line like:
	make SYS=i386
This will just build the pfdisk program and boot sector binaries.
It will not try to modify the hard disk boot sector.

The boot program binaries are distributed as simple HEX encoded
text files.  The (included) program hex2bin will convert them
for the benefit of those without the MASM (DOS) assembler.

Related packages (available separately):

The LOSS1024.FIX package contains patches for MSDOS 3.3 to allow use
of the first 1024 cylinders of a hard disk when the disk controller
BIOS has installed disk parameters showing more than 1024 cylinders.
Note that this patch is designed for use on PC/AT compatible disk
controllers that have a BIOS parameter override feature, such as the
RLL and ESDI controllers by Adaptec and Western Digital.

The ESIX-BOOT package contains patches to make ESIX (Everex Systems
SysV/386) boot from an inactive partition.  Normally, ESIX will refuse
to boot unless its partition is marked as active.  These patches allow
one to configure the partition table such that bootmenu will always
present its boot menu (no partition marked active).

Send e-mail if you are interested in either of the above.

Gordon W. Ross  (M/S E095)	internet: gwr@linus.mitre.org
The MITRE Corporation    	uucp: {decvax|philabs}!linus!gwr
Burlington Road          	office phone: 617-271-3205
Bedford, MA 01730 (U.S.A.)

Here are my changes and additions:
Oct. 18, 1991:
I've made some changes to Gordon Ross's bootmeu, bootauto and pfdisk
programs, and added also "bootactv.asm".  And I've added support for
System V/385 version 4, including e.g. SCSI drives; and for the
MSDOS Manx Aztec C compiler, a Unix-like DOS C compiler, as well.
(The Microsoft C compiler is also supported, by "make_msc.bat").  The
assembled version, "bootactv.bin", is included in uuencoded form, as
"bootactv.uu".

The new version of "pfdisk" allows only 5 spaces for each menu listing;
"bootauto.asm" and "bootmenu.asm" have been modified accordingly.
(Therefore, the previous versions of bootauto and bootmenu, while they
will work, will not display the partition menu correctly.  These should
be reassembled from the ".asm" files, using either masm or the public
domain tasm.  Tasm is available from various IBM PC ftp sites.)

The reason for this change, was to make room for a new boot program,
"bootactv.bin".  This requires more space (and therefore, the notes of
Mr. Ross about using Speedstore apply).  "bootactv.bin"  works like
"bootauto.bin" -- but it also modifies the in core copy of the fdisk
table, a bit more.  (Like "bootauto" and "bootmenu", NO writing is
done to the actual boot section of the hard disk.)  Namely, IN THE
COPY OF THE FDISK TABLE IN CORE ONLY, all
fdisk partions other than the one booted are set inactive, and
are given an invalid system id.  The latter, to avoid problems,
e.g., with two Unix OS's each in a different partition.  (There are
similar problems with versions of OS/2).  To prevent possible
future problems, with mounting DOS partitions under Unix, ordinary
DOS partitions (DOS FAT-12 and/or DOS FAT-16 partitions) do not
have their sysids invalidated in RAM (although I found out experimentally
that ISC 2.2.1 will still mount a DOS fdisk partition, even if it has
an invalid sysid in the in-core fdisk table.)  And, of course, secondary
DOS partitions are ignored -- since they are not in the primary
fdisk table.

I've found this works fine, e.g., with two different Unix OS's and
DOS.  HOWEVER, most forms of Unix SysV check the ON-DISK fdisk table
once, to verify that THEIR partition is, indeed, marked active, on
disk.  I've solved this, by simply making BOTH Unix fdisk partitions
marked as "active".  I've modified the enclosed pfdisk program, to allow
making more than one partition active.  E.g., at the "pfdisk>" prompt,
the command "A 2 3" will cause fdisk partitions 2 and 3 be marked as
"active", and 1 and 4 as "inactive".

Note that the standard boot program that came with your hard disk won't
allow multiple active fdisk partitions; it will cycle indefinitely if
there are such.  So, if you do make two or more fdisk partitons active
(as I have done), you must replace your boot program with any of the
three supplied here.  (As noted in the pfdisk man page, you should first
save your old boot program, using pfdisk, then use pfdisk to install
the new one).  If  you should make more than one partition active,
while leaving your old boot program, you can recover easily.  Boot
DOS from a floppy, and use plain old DOS fdisk to make any one fdisk
partition active.  This will render all others inactive.  (Of course,
pfdisk, compiled under DOS, can do this too.)

The man pages for the changes that I've made are in pfdisk.2 and
bootmenu.2.  They are pure text files.

This is a safe boot program (doesn't rewrite the boot part of the
disk, once initially installed, e.g., by pfdisk), that is "clever"
enough to work with most complicated fdisk configurations.

(Note:  I found, experimentally, that just rendering all non-
booted fdisk partitions inactive in the in-core fdisk table,
is actually enough for my complicated fdisk setup.  The
invalidation of other fdisk sysid's is, at least in the case of my
system, overkill.)

Finally, let me note that, in my opinion, the original version 1.3
of Gordon Ross is a great program.  It is the only one that I
found that did NOT routinely rewrite the boot sector on every reboot,
and still managed to work with most combinations.  (Even using
standard Unix fdisk, or DOS fdisk, to change the active fdisk partition
to reboot a different OS, rewrite the entire boot section of the boot
hard disk, and therefore is a somewhat risky thing to be doing
routinely.)  In our modifications, we maintained this safe way of
doing things.  And, Ross' pfdisk program gives you far more control over,
and information about, your fdisk partitons; as well as an easy way to
store and retrieve previous fdisk configurations.  We've maintained all
of these highly desirable features.

My personal thanks to Gordon for writing this excellent program.
		Saul Lubkin
		lubkin@cs.rochester.edu
