NoiseSaver is a little hack I wrote to make my Amiga be as silent as possible. My old A2000 has to run 24 hours a day, serving as an phone answering machine, a small part-time BBS, a printer-spooler, etc. However most of the time it has to do nothing and only produces noise and heat. I soon discovered that SCSI-HDs usually feature a scsi-command called "start/stop unit". It allows the host computer to switch on off the HDs motor. When its motor is switched off, the HD doesn't produce any noise any more and much less heat. With less heat inside the computer, even a temperature-regulated fan calms down somewhat. The problem is that, when a HDs motor is switched off, it cannot read any data (surprise!). So you'll see many "read errors", unless you start the HD unit again. Unfortunatly many BBS and phone-answering programms don't allow the users to install a command that could switch the HD on before answering a phone call. So this is what NoiseSaver does: it patches the scsi.device's BeginIO() function to monitor all accesses. When no access occurs within a certain period of time, the HD(s) can be stopped. When there is a call to the device while HDs are stopped, the HDs are started and the call is suspended until the HDs are up again. Copyright: This program is (C) by Martin Horneffer. The program and the supplied source are freely distributable, as long they are not changed and distributed together with this readme-file. If you want to modify or extend the program, please inform your user about the source or ideas you took from NoiseSaver. Use a different name, you may not modify or extend the program and distribute with the name "NoiseSaver". WARNING: I tried to make the program reasonably secure, but there are some problems: - removing the patch to BeginIO() might be unpossible, if another program has patched it too. It may caus severe trouble when some other program keeps a pointer to NoiseSavers new function. Noone should do so, but you never know... - NoiseSaver only tries to access the scsi untis 0-6. Multiple LUNs are not supported, does anyone need them? - NoiseSaver can only start and stop ALL connected units. Unfortunatly there is no possibility to tell the used unit from an standard IORequest. - not all scsi devices support the used "start/stop unit" command. I've tested NoiseSaver with several different Quantum HDs, a Toshiba CD-ROM and an old HP DAT streamer. The HDs and the CD-ROM all work well. The DAT reports an error on "start unit" and ejects any inserted medium on the "stop unit" command. So there is no warranty for anything at all. Use at your own risk! But it should work well on many systems. Martin Horneffer , 15-Jan-1994