             ͻ  
                                      
                                           
                                     
             ͼ  

         By Dave Fallen / 524 Ranger Dr. S.E. / Olympia, WA  98503
              Placed in the public domain -- February 14, 1988
                         Updated September 4, 1989

                                Version 2.1

          This program blanks the code responsible for noise in
          many programs.  The program code OUT 61,AL (hex E6 61)
          is changed to NOP NOP (hex 90 90).  The program attempts
          to avoid changing DATA, or the use of port 61H to issue
          a keyboard clear signal.  Once the sound code is blanked,
          your program will run silently.  This program will NOT
          modify your original program, but will create a clone
          with the 'noise code' blanked.  Output will use the drive
          and file name of your choice or, if you prefer, to a
          computer-generated default file name on the default drive.


            SYNTAX:  SILENCER [d:] filename [[d:]filename]

            This program is not infallible, but it will quieten most
            programs.  There are several ways to code sound in a 
            program, but SILENCER checks for the most logical and
            common methods of accessing the programmable interface chip.

            The default filename for the new file is either (1) the
            letter Q is added to the file name, or (2) if the
            original filename is 8 letters long, the 8th letter is
            changed to a Q.  If a file already exists by this name,
            SILENCER will permit you to quit without overwriting
            that file.  You may specify a different filename for
            output when SILENCER is invoked.  Make sure there is
            sufficient space on the specified drive to write the new
            file.  The new file will be exactly the length of the
            old file.  If you do a COMP/B OLDFILE.EXE OLDFILEQ.EXE,
            for example, you will see that the two files are
            identical except for some occurrences of E6 61 replaced by
            90 90.

            ===========================================================

                                BASIC PROGRAMS

            Note for compiled BASIC users:  If the program you wish
            to silence is a compiled BASIC program which requires
            the runtime module (BRUN20.EXE, BRUN30.EXE, BRUN40.EXE)
            then it is the runtime module itself which needs to be
            silenced, not the compiled BASIC program!  However, your
            BASIC program is not going to recognize BRUN40Q.EXE so
            you will have to rename it to BRUN40.EXE before the
            program will run.  Because you can't have two files with
            the same name, the original BRUN40.EXE will have to be
            kept on a separate disk or directory. 

            If your BASIC program is compiled as a stand alone 
            program (with the /O option) and does not require a
            runtime module, then running SILENCER on the .EXE
            program will effectively silence it.

            SILENCER will have NO effect on source code, e.g.,
            program with the extension of .BAS .  If you want to
            silence BASIC programs run under an interpreter (e.g.,
            BASICA or GWBASIC) the offending statements themselves
            need to be removed (or better yet, turned into a
            non-executed comment).  These are statements such as
            SOUND, and PLAY.  If compiled, however, SILENCER will
            effectively quieten these statement in the .EXE file.

            ===========================================================

                            COMMERCIAL PROGRAMS

            As regards to the use of SILENCER on commercial programs, I
            have successfully used it on a number of them.  The problem
            with commercial programs is that they often come in several
            parts (different files).  The sound routines are typically
            located in overlay files.  Thus, "silencing" the main
            executable program does nothing to eliminate the sound routines.
            In order to silence such a program you must (1) figure out which
            overlay file contains the sound routines, (2) silence that
            overlay, (3) give the silenced overlay the original overlay name
            (or else the main program won't be able to find it).  This
            means you will have to erase or back up the original overlay
            file.  For example, Leisure Suit Larry II comes with several
            "driver" files with the extension ".DRV".  You would have to
            find out which ".DRV" file your particular machine uses, silence
            it, erase (or back up) the original ".DRV" file and rename the
            new driver to it's original name.  Then, Leisure Suit Larry II
            would be silenced.

            Even more problematic are commercial program which have
            numerous sound routines in various overlay files.  For example,
            one commercial casino gambling program has a sound routine in
            every game overlay (slots, poker, roulette, etc.).  In this
            case, each module would have to be silenced and renamed before
            the program was completely silenced.

            Well written commercial program allow the user to turn off the
            sound.  SILENCER was written because of the multitude of
            shareware program that don't allow the user this option.
            Personally, I don't use SILENCER any more.  For a couple of
            bucks and a few minutes of time I installed a volume control
            on my computer's speaker.  Now I can physically turn off the
            speaker or turn the volume down with 100% control over my sound.
            Beats me why this isn't a standard feature on more systems
            (my wife's Apple clone came with a volume control).

            I could automate the process of silencing commercial programs,
            but the probability someone would alter their original disk
            (instead of using backups) is high.  Maybe I'll do it anyway
            some day.  With enough caveats and assurance checking, it might
            have some utility.  With that much programming effort, I might
            have to make it a shareware program (the current version of
            SILENCER is public domain).

            ===========================================================

            MAY 25, 1989 UPDATE:

            (1) added logic to avoid blanking a hex E6 61 sequence
                if it occured in data (not code).

            (2) added logic to detect when port 61H was being used
                to clear the keyboard.  Avoids blanking the hex E6 61
                sequence in this case (otherwise, a keyboard lockup
                will occur when the modified program is run).

            (3) if no noisemakers are found in the source program, 
                the "modified" program (actually a duplicate of the
                original) is erased -- as always, the original program
                is untouched.


                               * * * * * * * 
                               *  NOTICE   * 
                               * * * * * * * 

            Although I have placed this program in the public domain, I
            intend to continue supporting it.  If you find any program
            that SILENCER has trouble with, let me know.  Of course, if
            it is a commercial program I don't have, I may not run out 
            and buy it (after all, SILENCER is not generating any income!)
            But if you can legally send me a copy of the troublesome
            program, I'll be glad to work on it and get back to you.
         ----------------end-of-author's-documentation---------------

                        Software Library Information:

                   This disk copy provided as a service of

                        The Public (Software) Library

         We are not the authors of this program, nor are we associated
         with the author in any way other than as a distributor of the
         program in accordance with the author's terms of distribution.

         Please direct shareware payments and specific questions about
         this program to the author of the program, whose name appears
         elsewhere in  this documentation. If you have trouble getting
         in touch with the author,  we will do whatever we can to help
         you with your questions. All programs have been tested and do
         run.  To report problems,  please use the form that is in the
         file PROBLEM.DOC on many of our disks or in other written for-
         mat with screen printouts, if possible.  The P(s)L cannot de-
         bug programs over the telephone.

         Disks in the P(s)L are updated monthly, so if you did not get
         this disk  directly from the P(s)L,  you should be aware that
         the files in this set may no  longer be the current versions.

         For a copy of the latest monthly software library newsletter
         and a list of the 1,900+ disks in the library, call or write

                        The Public (Software) Library
                              P.O.Box 35705 - F
                           Houston, TX 77235-5705
                               (713) 665-7017

