home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 2
/
FFMCD02.bin
/
new
/
hard
/
drivr
/
zeusscsi
/
readme
< prev
next >
Wrap
Text File
|
1993-12-21
|
7KB
|
139 lines
Zeus SCSI driver patch program
------------------------------
This archive contains some programs that attempt to apply a patch to the
Progressive Peripherals Incorporated Zeus SCSI driver. This patch includes
a patch to use the Wait/Signal mechanism to wait for the completion of SCSI
I/O instead of the "busy-wait" poll method used by the driver. (These
programs will only patch the 2.98 version of the Zeus ROM.)
I have occasionally had AmigaDOS not recognize a file as an executable
file when I am running with all these patches installed. I haven't been
able to isolate the problem to determine which program is causing the
problem (i.e. the Zeus patches or the Zeus memory configuration). If the
command is run again, it usually works fine.
ZeusSCSIfix
-----------
This program is a replacement for the SCSIpatch_Zeus program that was
supplied by PPI on their software disk. This program is called ZeusSCSIfix
to distinguish it from the PPI-supplied patch program. (The version of
SCSIpatch_Zeus I have is 2.985.) The ZeusSCSIfix program contains all
the fixes of SCSIpatch_Zeus and adds the following changes:
Use of Wait/Signal to wait for SCSI I/O completion.
Does not allow an invalid io_Command value of 32 (which the SCSIpatch_Zeus
program appears to do).
Returns the actual data transfer length in the scsi_Actual and
scsi_SenseActual fields for SCSI-direct commands. (It doesn't
set the io_Actual field for reads & writes yet, but that will
probably be added in the near future.)
ZeusSCSIfix is also linked with the SAS/C cback.o startup file, so it can
just be executed from the CLI command line and will detach itself from the
CLI.
PatchZeus
---------
This program is an alternative to ZeusSCSIfix. It currently does not
contain all the fixes applied in SCSIpatch_Zeus (specifically the additional
command ??). It does include the Wait/Signal fix and the SCSI-direct
scsi_Actual/scsi_SenseActual fix. One advantage of this program is that it
will install itself as a resident module in the KickMemPtr list. In this
manner, it will survive a reboot and apply the patches when all the resident
modules are initialized, so the patches will be made to the driver early in
the boot process.
If you encounter a problem with this program installed and your machine
fails to reboot, you can inhibit the program from initializing during the
boot by holding down the left mouse button. You can remove the resident
program with the KickLoad program included in this archive.
This patches several things in the PPSscsi2.device driver:
o Uses Wait()/Signal() instead of a busy poll to wait for I/O completion.
o Sets the scsi_Actual and scsi_SenseActual fields for scsidirect I/O
to the actual length of data transferred.
o Correctly compares the partition name against any current existing
devices (i.e. allows you to name partitions on separate disks with the
same name and should correctly adjust the names of duplicate partitions).
o Attempts to handle devices that don't respond to a select with ATN
(i.e. older SCSI devices ignore the ATN and go directly to command
phase after being selected).
o OpenDevice will return HFERR_NoBoard if the unit number is >= 100.
o Scsidirect returns HFERR_BadStatus when the CheckCondition bit was
set in the Status byte.
o Synchronous transfer rate of 100usecs is requested instead of 120usecs.
(I don't know if this will work correctly or not - it appears to
be working fine on my MXT540SL drive).
One "bug" that I haven't addressed yet is that if the driver ever needs
to reset the SCSI bus (which it will do under some error conditions), the
synchronous transfer is never re-negotiated.
PatchZeus2
----------
This program is similar to PatchZeus, except that it initializes later
in that bootup sequence. It replaces the interrupt handler and BeginIO()
routines like the PPI patch program, except it does it before AmigaDOS starts.
Like PatchZeus, it will not install the patch if the left mouse button
is down during the startup process. This patch can be installed with the
PatchZeus program - PatchZeus will apply its patches before the driver
initializes (fixing a couple of problems in the initialization code) and
PatchZeus2 will replace the interrupt handler and BeginIO() code after the
driver has initialized.
ConfigMem
---------
This is another Zeus utility I wrote that will configure the 32 bit memory
(similar to Init040), but is also a resident module program and will add the
32 bit memory very early in the boot process. This provides the advantage
of having 32 bit memory available for loading device drivers and library
vectors. This program is not generalized yet, so it will not work as-is
if you are autoconfiguring any Zeus memory. It assumes that all the Zeus
memory is going to be added as 32 bit memory. It also won't work with the
FASTROM option of Init040. The source is included, so it could be modified
to fit whatever configuration you would like.
It will attempt to configure memory when it is first run, but since it
doesn't turn off the copyback cache, it won't add the memory correctly if
the copyback cache is enabled. (It will do it correctly when it runs during
a reboot.)
Again, if you encounter a problem with this program installed and your
machine fails to reboot, you can inhibit the program from initializing
during the boot by holding down the left mouse button. You can remove the
resident program with the KickLoad program included in this archive.
I have noticed that when this program is installed, I will occasionally
get a crash that results in a red screen (which crashes again, and again).
Normally I can just reset the Amiga and recover from it. If the execbase
is still intact at that point, any resident programs will still remain, but
if the execbase is corrupt, all resident programs are lost.
KickLoad
--------
This program was originally written to install resident modules into the
KickMemPtr list and to remove the entire KickMemPtr list. I'm including it
here so the ConfigMem and PatchZeus modules can be removed without requiring
a power-off of the Amiga. To remove all resident modules, just enter the
command:
kickload -clear
It should respond with a list of the resident modules it finds and indicate
that they have been removed.
----
Sources to KickLoad, ConfigMem, and PatchZeus are included, but the other
programs are based on the PPI patch program and I am reluctant to provide
them at this time.
Michael
--
Michael L. Hitch INTERNET: osymh@montana.edu
Computer Consultant BITNET: OSYMH@MTSUNIX1.BITNET
Office of Systems and Computing Services
Montana State University Bozeman, MT USA