This directory contains various fixes for CBM programs and third-party
products, either recommended of the MuTools or for general system house-
keeping.
_____________________________________________________________________________

spatch


This is a tool program to apply patches to system components. Details about
its use are presented below.

_____________________________________________________________________________

mathieeedoubbas.pch

This is a fix for the mathieeedoubbas.library V38. The patch fixes the 
MathIEEE comparision that is broken in the library, negative numbers are
sometimes ordered in the wrong way. 


How to apply the patch:

Open a shell, then change the current directory to this directory by

CD <MMULib>/Fixes

where <MMULib> is the directory where you unpacked the archive to. Then make 
a copy of the original version of the mathieeedoubbas.library, and keep it
in a safe place. For example:

copy LIBS:mathieeedoubbas.library to SYS:Updates

Then enter the command

spatch -oram:mathieeedoubbas.library -pmathieeedoubbas.pch libs:mathieeedoubbas.library

This will build an updated version of the mathieeedoubbas.library in ram: 
Just copy it back to LIBS: by

copy ram:mathieeedoubbas.library to LIBS:

_____________________________________________________________________________

SetPatch.pch

An experimental patch for SetPatch 43.6. If applied, SetPatch will try to
open the 680x0.library instead of the 68040.library, regardless of the
processor found. It's then the matter of the 680x0.library to detect the
processor in use, and to load the appropriate processor driver library, might
it be the 68040.library, the 68060.library or the 68030.library. To run the
patched version of SetPatch, you *MUST* install the 680x0.library in LIBS:


How to apply the patch:

Open a shell, then change the current directory to this directory by

CD <MMULib>/Fixes

where <MMULib> is the directory where you unpacked the archive to. Then make 
a copy of the original version of SetPatch, and keep it in a safe place. 

For example:

copy C:SetPatch to SYS:Updates

To apply the patch, enter

spatch -oram:SetPatch -pSetPatch.pch C:SetPatch

The updated edition of SetPatch will appear in RAM: Just copy it back to C:.

copy ram:SetPatch to C:

Don't forget to install the 680x0.library by:

copy <MMULib>/680x0.library to LIBS:



This patch comes also in two additional variations:

SetPatch_44.pch

is an update for the SetPatch edition that came with the Os 3.5 package. It
is applied in the same way except that "SetPatch.pch" has to be replaced
by "SetPatch_44.pch" in the instructions above.

SetPatch_44_6.pch

is an upgrade for the 44.6 edition of SetPatch that was made available by
the "BoingBag".


SetPatch_44_16.pch

is a similar update for the 44.16 edition that came with BoingBag 2.

_____________________________________________________________________________

narrator.device.pch

The narrator device stack is setup a bit too small, which might cause
warnings if MuGuardianAngel is used. This patch increases the stack size
of the narrator.device.


How to apply the patch:

Open a shell, then change the current directory to this directory by

CD <MMULib>/Fixes

where <MMULib> is the directory where you unpacked the archive to. Then make 
a copy of the original version of the narrator.device, and keep it in a safe 
place. For example:

copy DEVS:narrator.device to SYS:Updates

To apply the patch, enter

spatch -oram:narrator.device -pnarrator.device.pch DEVS:narrator.device

The updated edition of SetPatch will appear in RAM: Just copy it back to C:.

copy ram:narrator.device to DEVS:

_____________________________________________________________________________

FixCybAccess

This fixes a flaw of the cybscsi.device and the z3scsi.device, which 
access a non-allocated chip-RAM location periodically on SCSI I/O. This 
program should be "run" in front of MuGuardianAngel to prevent warnings 
about this bogus access, i.e. a

run <>NIL: FixCybAccess

will do it.


More details are in the FixCybAccess.readme.
_____________________________________________________________________________

PatchRAM

A fix for two features of the RAM disk. First of all, it is also too low
on stack and will generate warnings if MuGuardianAngel is active, for 
good reason. Second, the RAM disk shows always up as "100% full", which I
regard as pretty annoying. To install this fix, run it *BEFORE* accessing
the RAM disk for the first time. A good place for this program would be
directly after SetPatch.

More details are in the PatchRAM.readme.
_____________________________________________________________________________

ConsoleFix

This repairs a a bug in the console.device supervisor task which appears on
window resizing. Due to a programming fault, the device doesn't go thru all
its windows correctly if one of its client windows is resized. Luckely, this
doesn't seem to be fatal as long as the console.device gets enough stack 
space.

Details about how this fix works are in the ConsoleFix.readme
_____________________________________________________________________________

IPrefs.pch

Increases the stack size of the 40.7 IPrefs to 8K making it more stable when
using datatypes as background pictures. This will effectively fix the 
"Nearly out of stack" messages of IPrefs, too.
_____________________________________________________________________________

mfmdev.pch

Increases the stack size of the Os 3.1 release of the mfm.device used 
by CrossDos, avoiding the "Nearly out of stack" messages MuGuardianAngel
would show. This fix was provided by Gene Heskett, thanks Gene!

-----------------------------------------------------------------------------

RamLibFix

Fixes two bugs in the ramlib process. First of all, ramlib is too low on
stack which might cause certain problems. The mmu.library works around
this problem anyhow by swapping in its own stack, but this might be an
issue for other libraries as well. Second, ramlib uses SIGF_SINGLE as
message bit for its command message port, but the same bit has been used
for semaphore signalling. Hence, some race conditions could result if
semaphores are used in the library setup code. The bug has been reported
by Eddy Carroll (SnoopDos). Thanks, Eddy!

This program *ABSOLUTELY MUST* be copied into C:, and its name *MUST NOT
BE CHANGED*, due to the way it works.

-----------------------------------------------------------------------------

ConFix

And just another console related fix. This one increases the stack size of
the native CON: and RAW: handlers. It is not required if you use a third
party console replacement, e.g. ViNCEd.

-----------------------------------------------------------------------------

FixLongMult

Fixes a bug in UMult64 and SMult64 for the 68000, 68010 and 68060.
Does nothing for 68020, 68030 and 68040. In fact, it "corrects"
the 68000, 010, 060 versions to use the same "wrong" syntax than the
68020,030,040 versions. In fact, this "wrong" syntax is now the 
official syntax.

*Without this fix, the DEV-Handler and other programs will not run
correctly on the 68000, 68010 and possibly the 68060.*

This fix should be replaced by a new SetPatch release as soon as it
appears.

------------------------------------------------------------------------------

BVisionPPC_28.pch

This is a fix for the V28 BVisionPPC CyberGraphics 3.x driver which depends on 
some undocumented internals of the P5 68040 and 68060 libraries. To apply the 
patch, CD into this directory and enter the following commands:

copy DEVS:Monitors/BVisionPPC to ThisIsASafePlace:BVisionPPC
				 ^^^^^^^^^^^^^^^^^
				Changed accordingly to your
				private backup device or directory.

Then appyl the patch:

spatch -oram:BVisionPPC -pBVisionPPC_28.pch DEVS:Monitors/BVisionPPC

The updated edition of the driver will appear in RAM: Just copy it back 
to DEVS:Monitors...

copy ram:BVisionPPC to DEVS:Monitors


This updated driver requires the new (>= 40.3) release of P5Init. Make sure
you install the updated version of P5Init as well.

------------------------------------------------------------------------------

BVisionPPC_42r7.pch

This is a fix for the 42.7 BVisionPPC CyberGraphics 4.x driver which depends on 
some undocumented internals of the P5 68040 and 68060 libraries. To apply the 
patch, CD into this directory and enter the following commands:

copy DEVS:Monitors/BVisionPPC to ThisIsASafePlace:BVisionPPC
				 ^^^^^^^^^^^^^^^^^
				Changed accordingly to your
				private backup device or directory.

Then apply the patch:

spatch -oram:BVisionPPC -pBVisionPPC_42r7.pch DEVS:Monitors/BVisionPPC

The updated edition of the driver will appear in RAM: Just copy it back 
to DEVS:Monitors...

copy ram:BVisionPPC to DEVS:Monitors


This updated driver requires the new (>= 40.3) release of P5Init. Make sure
you install the updated version of P5Init as well.

------------------------------------------------------------------------------

P5Integrate

In case you do not want to patch the BVision driver, or the patch cannot be
applied, you could alternatively copy P5Integrate to C: and run it in the
startup sequence:

copy P5Integrate to C:

Then edit the Startup-sequence with an editor of your choice:

ed S:Startup-Sequence

Locate the SetPatch command in the startup sequence, move the cursor below 
that line and press <RETURN> to open a new line. Within the new line, enter

P5Integrate

Then save the changes. Make sure that you really installed the latest P5Init
or this command won't work.


P5Integrate is IMHO the least pleasent way to make some obscure P5 wierdos
available the the BVision driver. It has also to modify the library version
number such that the revision information is no longer accurate.

------------------------------------------------------------------------------
