		  UZI   UTILITIES
	           by Doug Braun
	Modified by Harold F. Bower for UZI180
	       Beta: 18 August 1998

This package contains several utilities to manage UZI filesystems from a
different host operating system.  They have been compiled and used under
CP/M to build and repair UZI filesystems, and debug device drivers.  This
has been useful because UZI was developed and compiled under CP/M.  They
have also been used under SYS V Unix to debug the UZI filesystem code
(using a Unix file to serve as a virtual UZI device).
NOTE: UZI180 has only been tested with ZSDOS (a CP/M superset) and the
	CP/M Filesystem on a variety of hard and floppy media formats.


There are four programs, each contained in the C file of the same name:

MKFS: This makes a file system.	 It takes three arguments: a device
number, the total number of blocks, and the number of inodes.

FSCK: This checks file system consistency.  It takes a single argument,
the device number to check.
BETA NOTE: I have not been able to get this program to work.  Help in
	this area would be appreciated.  HFB

BD:   This dumps (in hex) a block of a device.  It takes two arguments:
the device number, and the block number to dump.  The original program
was modified to display the data as two screens.  Press <Return> after
the first screen to display the second 256 bytes and exit.

UCP: This is an interactive program that performs a number of operations.
It can be used to make and delete directories and device files, upload
and download files between CP/M and the UZI filesystem, list directories,
and print files.  It takes a single argument, the device number.  It then
prompts for commands.  Look at the code for a complete list of commands.
BETA NOTE: I experienced corruption when copying files from the UZI file
	system to CP/M and have not used this feature since.  Caution is
	urged in this area since some files imported might not be
	eraseable with the CP/M ERA command (lowercase letters and
	punctuation in Name.Typ).

If you are trying to get UZI running on a new system, these programs
will be very helpful in getting your device drivers working, and will
allow UZI to have something on its disks when it finally runs.

Each program is linked with the device drivers for your system, some
files from UZI itself, and some modified versions of other UZI files
(the ones beginning with "x").  To Build executable versions of these
utilities, you will need to have the Hi-Tech Compiler/assembler version
3.09 from the CP/M CD-ROM installed on your system, and SUBMIT.COM or
compatible (e.g. SUPERSUB) program to automate the build process.  Next,
follow these steps:

1. First build the kernel.  I recommend doing this in a directory by
   itself, and the utility programs in a different one.

2. Extract all files from the Utilities ZIP file.  Within this are
   platform-specific versions for the different configurations.  Select
   the one suitable for your version and unzip the contents to form a
   complete set of necessary files.

3. Copy the following files from the kernel directory into the utilities
   directory:
	DEVFLOP.C
	DEVHD.C
	HDCONF.H
	HDASM.OBJ

4. Compile/assemble the support files needed by all utilities by either
   executing the CMPILUTL.SUB script under SUBMIT or compatible (I used
   SUPERSUB from the CP/M CD-ROM archives), or entering each line from
   the script as a standalone command line.  The script is tailored for
   use under ZSDOS and includes the RELOG calls to relog the hard disk
   upon program termination, and may not be necessary in other systems.

5. Execute a Make script for the desired utility.  These take the form
   of a (possibly multi-) line argument for the compiler.  They first
   compile the utility, then link with necessary files to form a CP/M
   executable utility.  Note that in addition to the compiler and files
   from this library, you will need the CRTCPM.OBJ and LIBC.LIB files
   from the Hi-Tech package for this step.  As an exammple, to make the
   UCP.COM utiliity, execute:

		C <MAKEUCP

   An alternative to this fully-automated step, or if you are working
   on the support files, you may first compile the utility once, then
   simply link all the files with a Link Script.  A sample file is for
   linking UCP is provided which can be adapted to the others by simply
   changing the output filename.typ and the input .obj file name.  This
   sequence would be (for UCP):

		C -O -C -V UCP.C
		LINK <LINKUCP

6. Use the tools to make, examine and populate an UZI filesystem.
The files FILFS.ZEX and FILFLOP.ZEX (adapted from Doug Braun's original
filfs.sub and filflop.sub) are ZEX50 scripts tailored for Hard disks
and 1.44 MB Floppys which do most of the work.  They also serve as
examples of how these utilities are used to build and populate UZI
filesystems.


Harold F. Bower			HalBower@worldnet.att.net
7914 Redglobe Ct.
Severn, MD  21144-1048
              USA
