06/22/94

This is the fourth BETA release of virtual ASPI for OS/2 2.1 that includes
support for the ASPI for Windows specification. It is a minor improvement
of the previous release, mostly to support scanners better.

The following ASPI access methods are now supported:

        1) DOS ASPI in a VDM.
        2) DOS ASPI in a DOS boot image.
        3) ASPI for Windows if a Win-OS/2 session.
        4) DOS ASPI in a Win-OS/2 session.

Fixes since the last (06/14/94) release:

1) VASPI.SYS will now work with more scanners. Many scanners apparently
   report their device type as 3 (processor) instead of 6 (scanner);
   the drivers now take this into consideration.

2) VASPI.SYS now takes the hardware limitations of the SCSI adapter
   into consideration when issuing requests. If the adapter hardware
   cannot handle the transfer based on length of scatter/gather list
   or size of CDB transfer, it will fail without being issued.

3) OS2ASPI.DMD will now interact correctly with filters.

The following files are included as part of this BETA release:

1) VASPI.SYS - The virtual ASPI device driver
2) VDPX.SYS - A replacement virtual DPMI extended driver
3) OS2ASPI.DMD - An OS/2 ASPI manager that support VASPI.SYS
4) ASPISTUB.SYS - A stub driver for accessing VASPI.SYS from a DOS
                  boot image.
5) WINASPI.DLL - This DLL allows Win-OS/2 applications to make requests
                 using the ASPI for Windows convention. It is a replacement
                 for the DLL shipped with EZ-SCSI and is intended for OS/2
                 2.1 only.


Current limitations:

1) VASPI works best with OS/2 2.11 (OS/2 2.1 with Service Pack).

2) DOS ASPI (with posting) in a Win-OS/2 session does NOT work with 
   OS/2 2.99 (Performance Beta). This problem appears to be very similar
   to the limitation that was present in the previous beta. If you are
   running Deskscan, you will have to use OS/2 2.11.

3) Seamless Windows applications may crash on OS/2 2.1. If this occurs,
   try updating to OS/2 2.11. Certain applications (i.e. Central Point
   Backup for Windows) work best with the ASPI for Windows interface.
   If you select ASPI for DOS, they may crash, regardless of the version
   of OS/2 you are running.

Introduction to ASPI

ASPI is an application interface that allows easier access to SCSI
devices. When running DOS, users typically load an ASPI manager that
routes all requests directly to the hardware. ASPI drivers (such as ASPIDISK
and ASPICD) send requests to the ASPI manager which then sends the command
on to the appropriate device.

The device driver model used by OS/2 is layered (similar to ASPI) so that
an adapter device driver (ADD) is responsible for knowing about the hardware
dependencies of a particular SCSI adapter. Applications that wish to send 
ASPI requests do so by routing them to a device manager (OS2ASPI.DMD) which
converts them into requests recognizable to any ADD.

The ASPI support currently embedded within OS/2 2.1 allows any OS/2 
application to send commands to a SCSI device. However there are 
a large number of DOS and Windows applications that are could be
supported if there commands were routed to OS2ASPI.DMD.

VASPI.SYS is a virtual device driver that will allow DOS applications
to issue SCSI commands that will be handled by OS2ASPI.DMD. If you
have an existing DOS ASPI application it should now be able to run
in a virtual DOS session under OS/2 2.1. 

*** IMPORTANT ***
Since VASPI.SYS acts just like an ASPI manager, there is no reason to load
a standard MS-DOS ASPI manager, such as ASPI4DOS.SYS. In fact, loading
such a driver is NOT possible and will conflict with the ADD that has
already initialized the adapter.

Installation Instructions for VASPI Support

1) Install OS/2 2.1 on your system
2) Make a backup copy of the file OS2ASPI.DMD. This should be found
   in the \OS2 directory on your boot drive.
3) Copy the new VDD aware version of OS2ASPI.DMD into the \OS2 directory.
4) Copy the file VASPI.SYS into the directory \OS2\MDOS on your boot drive.
5) Make a backup copy of the file VDPX.SYS. This should be found in
   the \OS2\MDOS directory on your boot drive.
6) Copy the new BETA version of VDPX.SYS into the \OS2\MDOS directory.
7) Copy the file WINASPI.DLL into the \OS2\MDOS\WINOS2 directory. 
5) Update CONFIG.SYS as follows:
        a) Make sure the line BASEDEV=OS2ASPI.DMD is present somewhere
           in the file.

        b) Add the line DEVICE=C:\OS2\MDOS\VASPI.SYS to the bottom of
           the file. If your boot drive is NOT C:, use the appropriate 
           letter instead.

6) Shutdown your system and reboot.
7) Open a DOS window or DOS fullscreen and run your ASPI application.

Installation Instructions for DOS Boot Image Support

1) Follow all the instructions for VDM Support.
2) Read the instructions for creating an image diskette in the OS/2
   Master Help Index.
3) Create the boot disk with all the files that you will require for 
   other applications.
4) Add the file ASPISTUB.SYS to this boot disk and add the line 
   DEVICE=\ASPISTUB.SYS to CONFIG.SYS on the boot disk.
5) Complete the boot image creation.
6) Open the image.


Device Allocation

OS/2 2.1 requires a device to be allocated by a device manager, such as
OS2ASPI.DMD or OS2DASD.DMD before it can be accessed. Device managers can
handle this in one of two ways: wait for a device driver to issue an 
allocation request (OS2SCSI.DMD does this) or permanently allocate the
device during system boot (OS2DASD.DMD and OS2CDROM.DMD do this).

The ASPI specification has no concept of device allocation and this really
leaves it up to the implementation to decide what to do. Typically OS2ASPI
will NOT allocate a device until the first execute I/O command is issued.
This allows it to scan for devices and not interfere with them until an
application decides to issue a command. However, once this allocation takes
place OS2ASPI will not release the device because it can never be sure
when the application is finished with it.

Most people can use OS2ASPI.DMD without any command line switches, but
there are typically two situations that can arise which OS2ASPI has to 
deal with :

1) A user wishes to use two applications via different interfaces
(i.e. OS2ASPI and OS2SCSI) and both need to access the device. 
If the application using OS2SCSI is well behaved, it will release the device
when it is finished and OS2ASPI will be able to allocate it. Unfortunately
if OS2ASPI does not release the device, the OS2SCSI application will not
be able to access the device until the system is rebooted and the device
allocation information is reset.

2) A user wishes to access a device that has been permanently allocated
by another device manager. A good example of this would be a diagnostic
that wants to report information about the system configuration. If the
devices are allocated to another manager though, the application will
never be able to see them.


These two problems can be overcome by the use of optional command line
switches.

        /ALL - This switch will instruct OS2ASPI.DMD to allow commands to
               be issued to ANY device on the SCSI bus, even those allocated
               by other managers.

*** WARNING *** Commands should be issued to devices under the control
of other managers with extreme caution. If you are using the /ALL 
switch and plan to issue commands to devices that are shared with another
manager, try and limit them to non destructive commands like Inquiry and
Test Unit Ready.

        /SHARE - This switch will instruct OS2ASPI.DMD to release any target
                 after each command, allowing multiple managers to access
                 a target (at different times). Since this requires more
                 commands to be issued to the driver, there will be a slight
                 performance penalty when this switch is used.


*** WARNING *** When sharing devices and sending multiple concurrent requests
it is possible that the allocation/deallocation of the device will cause a 
command to be rejected. This switch is best suited for use when you have
applications that require different managers but will not be used 
simultaneously.

Examples:
BASEDEV=OS2ASPI.DMD /SHARE
BASEDEV=OS2ASPI.DMD /ALL
BASEDEV=OS2ASPI.DMD /ALL /SHARE

When you find a problem with VASPI.SYS, please send a description of
it to Adaptec so that we can attempt to reproduce it. Please describe 
the exact steps  required to reproduce your problem and include any 
screen dumps from the system where the problem occurred.

There are several methods available for reporting problems:

1) The Adaptec BBS. The BBS can be reached at (408) 945-7727 and supports
   upto 14.4K baud with 8 data bits, no parity and 1 stop bit. Please send
   a PRIVATE message to the user VASPI_BETA.

2) Internet. You can send problem reports to the user vaspi@adaptex.cirr.com.
