ftp.nice.ch/pub/next/tools/scsi/SCSI2_ToolBox.941207.NI.bs.gnutar.gz#/SCSI2_ToolBox/SCSI2_Kit/Documentation

CHANGES
 
COPYING
 
GeneralRef/
 
README
 
SCSI2_Spec/
 
Summaries/
 
TODO
 

README

SCSI2_Kit - A set of classes, functions and headers for
            developing NeXTSTEP 3.2 SCSI applications users and 
                developers on Motorola and Intel hardware.

Software, Documentation and Source Code
Copyright 1994, Christopher A. Wolf


INTRODUCTION
------------

SCSI2_Kit is a set of NeXTSTEP 3.2 classes, functions and headers which allows the developer to easily access and issue commands to SCSI-2 and SCSI-1 devices.  The kit hide the many architecture dependent implementation details of low-level SCSI access so that the developer can easily write SCSI tools which will build and execute, without modification, on both Intel and Motorola architectures.  The SCSI2 parent class provides a framework which can be extended via sub-classing to provide additional device specific capabilities.  DriveSCSI and TapeSCSI sub-classes are provided as an example of how to extend the parent-class to provide control of disk and tape drive devices.  A CD Audio SCSI sub-class is under active development but is not yet ina usable form and no documentation for it is provided.  Full documentation and complete commented source code for the other classes is included. 
		 
The current version of SCSI2_Kit is a beta test version which is still under development and portions of it have not been exhaustively tested.  Programs using these tools to perform low level SCSI access functions have the potential to destroy data if bugs exist in the program or the SCSI2_Class.  Please exercise caution when using these tools and, as always, be sure to keep current back-ups of all your important data.


LEGAL
-----
	
The software, documentation and source code for SCSI_Inspector.app are provided as a part of SCSI2_Kit and are Copyright 1994, Christopher A. Wolf.  Portions of the source code and documentation of this application are directly derived from source code and documentation included with an earlier work, SCSI_Inquirer.app, Copyright 1990, 1991, 1992 by Jiro Karen Nakamura and Focal Point Computer.  

In personal e-mail dated July 1, 1994, Jiro Karen Nakamura <jn19@cornell.edu> stated that she is no longer actively developing or supporting SCSI_Inquirer and granted me permission to assume responsibility for its continued development and maintenance.  In personal e-mail dated July 2, 1994, Jiro Nakamura provided the following statement releasing previous distribution restrictions on her work:

> Focal Point Computer, Inc. has transferred all rights to SCSI Inquirer 
> to Jiro Nakamura.  Jiro Nakamura allows both the source code and object
> code of SCSI Inquirer to be used as learning tools on the NeXTSTEP 
> computer.  They may be freely distributed and modified so long as no 
> attempt at profit is made.  If you want to go through the minor steps
> to make SCSI Inquirer a Free Software Foundation GNU program, I give 
> you my blessing...

In accordance with these terms the components of SCSI2_Kit are distributed under the GNU Public Licenses.  SCSI_Inspector.app is distributed under the GNU General Public License, whose complete text can be found in this archive in the file SCSI_Inspector/Documentation/COPYING.  SCSI2_Kit is distributed under the Library GNU Public License, whose complete text can be found in this archive in the file SCSI2_Kit/Documentation/COPYING.

This software and documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.


USING SCSI2_KIT
---------------

The elements of SCSI2_Kit are distributed in the directory SCSI2_ToolBox/SCSI2_Kit/Source of the SCSI2_ToolBox.tgz archive organized as follows:

	scsi2reg.h			Essential structures for programs doing SCSI access.
	VersionNumber.h		Version information for the SCSI Kit.
	
	SCSI.h				Interface for the SCSI super-class.
	SCSI.m				Implementation of the SCSI super-class.
	
	DriveSCSI.h			Interface for the DriveSCSI sub-class.
	DriveSCSI.m			Implementation of the DriveSCSI sub-class.
	
	errio.h				Error formatting/output headers.
	errio.c				Error formatting/output functions.
	
Documentation is provided in the SCSI2_ToolBox/SCSI2_Kit/Documentation of the SCSI2_ToolBox.tgz archive organized as follows:

	GeneralRef/IntroSCSI2Kit.rtf				Contains an overview of the 
												elements of the SCSI 2 Kit.
												
	GeneralRef/Classes/SCSI.rtf					Provides descriptions of the 
												SCSI super-class methods.
												
	GeneralRef/Classes/DriveSCSI.rtf			Provides descriptions of the  
												DriveSCSI sub-class methods.
												 
	GeneralRef/Functions/SCSI2KitFunctions.rtf	Provides description of the
												SCSI Kit functions.
												
	Summaries/SCSI2KitClassSummary.rtf			Provides listing of all the
												SCSI Kit methods.
											
	Summaries/SCSI2KitFunctionSummary.rtf		Provides listing of all the
												SCSI Kit functions.	
											
	SCSI2_Spec/									Directory containing ASCII 
												version of the last draft
												revision of the SCSI 2
												specification.												
												
At this time the reference documentation for the SCSI2 Kit is in pretty good shape but any tutorial style documenation about how to best use the provided classes and write your own sub-classes is lacking.  The best way to learn how to do these things is to read the provided reference style documentation (starting with IntroSCSI2Kit.rtf) and then study the SCSI_Inspector.app source code which is provided as an example.  If all else fails, the source code for the actual kit classes is also provided.  The DriveSCSI source code should be used as a model of how to implement a sub-class.

To use the SCSI2_Kit in your programs you must #import the "scsi2reg.h" header plus the .h file for the SCSI super-class and the .h file for any of its sub-classes which you intend to use.  The .m files for the classes you are using must be compiled and the resulting object files linked into your program.  The easiest way to do this is to copy the source files to your project directory.  Alternatively you can set up a sub-project directory in your project directory which is actually a link to the SCSI2_ToolKit source directory as is done in the SCSI_Inspector.app project distributed as part of the SCSI2_ToolBox.tgz archive.


DISTRIBUTION AND FEEDBACK CHANNELS
----------------------------------

SCSI2 Kit is available as part of the SCSI2_ToolBox which can be retrieved via ftp from the NEXTSTEP archive on cs.orst.edu.  New versions of SCSI2_ToolBox will be uploaded to the /pub/next/submissions directory but will probably be quickly moved to a more permanent home by the archive maintainer.  New versions of SCSI2_Kit will be announced on the Usenet newsgroup comp.sys.next.announce when they are available.

Bug-reports, comments, suggestions, and feature requests can be sent via e-mail to chris@alchemy.geo.cornell.edu.  (NeXTmail accepted and preferred.)  This is my first publicly released complete NEXTSTEP application so any and all feedback will be appreciated.   Please be sure to read all provided documentation and check the TODO files before complaining about broken or missing features though.  Also, when providing feedback please specify exactly which revision of SCSI_Inspector you were using.  Revision information can be found in the info panel of the app.  Thanks!

Sincerely,
Christopher Wolf

($Id: README,v 0.4 94/11/05 18:09:24 chris Exp Locker: chris $)

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.