This README is the set of instructions for "upgrading" to the minix1.5
hybrid for the pc532. (The hybrid uses most of the 1.3 kernel and 
everything else is 1.5.)

WARNING:  This distribution is NOT self contained.  You should consider
this a beta test release.  IT WILL TAKE SOME WORK TO GET THIS DISTRIBUTION
RUNNING ON YOUR PC532.  We think it is worth your effort.

(Note: Before you update your source tree, it is recommended that you
get a newer C compiler.  The original gcc-1.35 distributed with minix
for the pc532 had a bug in it that caused the "patch -p0" to work
incorrectly.  Current copies of the gcc-1.37 binaries for pc532 minix
are available on willow.cs.wwu.edu for anonymous ftp access in the
directory "pub/minxi532/bin".  There is also a copy of a patch binary
that works with the -p0 option in the same directory.)

A) Create the correct source tree:
 
  1) Make a complete copy of the minix 1.5 source tree.  Call this
     directory "..src".   (The specific directories changed by this
     update are commands fs include kernel lib mm tools test.)  The
     file min1.5.crc is the crc list of the 1.5.10 source tree we
     used as our 1.5 reference.

  2) In ..src, move kernel to kernel-1.5.  (Used in later steps.)

  3) Copy the complete kernel directory from the minix532 release (1.3)
     to the directory ..src/kernel-1.3.

  4) Copy the complete libflt and libm directories from the minix532
     release to ..src/lib.

  5) In ..src/commands do the following:
	a) Make the directory pc532.
	b) From the minix532 distribution copy the following sources
	   from the commands directory to pc532.
	    bpt.c ncat.c postmort.c ps.c
	c) Copy the files ..src/commands/ibm/{ar.c,term.c} to pc532.
        d) Copy the file ..src/commands/size.c to pc532.

  6) In ..src/lib do the following:
	a) Make the directory ns32k.
	b) From the minix532 distribution copy *.s from the libc directory
	   to ns32k.

  7) In ..src/kernel-1.3. do the following:
	a) Copy 32k.h from the minix532 distribution (in the h directory)
	   to kernel-1.3.
	b) Remove rtc.s, rs.c, tty.c, and tty.h.
	c) From ..src/kernel-1.5, copy kernel.h, misc.c, rs232.c, tty.c
	   and tty.h to kernel-1.3.

  8) Compare the crcs.  The file "REF.crc" is the crc list for the
     "reference" source tree.  (This tree does include a subdirectory
     called "include".  This is to keep all files in one directory
     tree.  Once it is updated, the "include" subtree can be copied
     or moved to the proper place.)  After steps 1-7 you should have
     a directory tree with the same crc's as "REF.crc".  My usual way
     to generate a complete crc list for a directory tree is to give
     the following command in the ..src directory:
       $ find [dir_list] -type f -print | sort | crc - > XXX.crc
     where dir_list is the list of directories to be included in the
     crc list.  (e.g. commands fs include kernel-1.3 lib mm test tools)

  9) In ..src do the following:
	a) For each *_cd file in the collection, give the command:
		patch -p0 < file_cd
	b) For each *_tar file in the collection, give the command:
		tar xvf file_tar
	(NOTE:  Both of these are intended to be done from the ..src
	 directory and the full path names below them are in the
	 cdiff files and the tar files.  If you choose to update 
	 your /usr/include files in the directory /usr/include, give
	 the commands in a and b from the directory /usr.)
        WARNING: the tar files do contain files that alread appear
         in the directory structure.  Make sure all files are 
	 read/write so that tar can extract over old files.

 10) Put Makefile.top into ..src as Makefile.

 11) Check the crc for the final source tree.  The file "NEW.crc"
     is the crc's after you have done your updating.

  This should complete your updating of the sources.

B) Compile your new system.  (This is the recommended set of steps.)

  0) Make a complete backup copy of your currently running system.
     You should make sure that you can always boot your system at
     any point through this work.  It is recommended that you build
     a new root directory for the hybrid and move it later to the
     correct place.  This allows you to boot minix 1.3 from the 
     original root device.
  1) Make sure the kernel is configured for your machine.  This should
     be in ..src/kernel-1.3/scsi_hi.c and mpx32k.s (for root device.)
  2) Install the new include directory in /usr/include.  (or make sure
     that all makefiles use the new include directory.)
  3) Compile the libraries.  (Use the original ar, ld and ranlib used
     with minix 1.3.)
  4) Install the new libraries.  (In the rest of the steps, you should
     make sure that all new executables are linked with the new library.
     This is important!)
  5) Compile the system.
  6) Compile the commands.
  7) Place the commands in /bin and /usr/bin.   (Don't include the new ar, 
     ld and ranlib yet.  The old versions should run under the new system.)
  8) Test your system. 

  (Note:  The makefiles have been configured to "automatically"
   compile the entire source tree.  The default is just the
   boot image.  Read the makefiles to how the compiles are set
   up to work.  Notice that the "make all" will not install the
   new libraries that it makes. )

C) Update the binary tools.  You could continue to use the old ar, ld
   and ranlib, but we suggest that you use the new ones.  The "new" ar
   can read standard minix archives.  Do this step only after you have
   your new system up and running.
  1) Compile the new binary tools (ar, as, ld, ranlib, etc) in the pc532
     directory.  (You may have done this in B.5)  (This copy of ld
     and ranlib use the standard minix ar instead of the ar provided 
     for use with the original ld and ranlib.  Also, this copy of 
     ranlib recognizes the symbol table and ignores it.  This means
     that this version can ranlib a file twice without requiring ar
     to remove the symbol table.)
  2) Remake the libraries using the new ar and ranlib and install the new
     as and ld.
  
You are set...

There is a README in ..src/commands/pc532 that describes the commands
contained in that directory.  Several of those commands do not have
man pages.
