Full Description of File
Over 75 sounds for batch files or fun.
Phasers, stunguns, jets, fires, phones,
speech, a colorful shell TSR - sounds,
programmer's library, and ability to
replace the speaker's beep ! Highly rated
in Compuserve Magazine and by Sierra
On-Line. Freeware by David Smith and
Contents of the CDBEEP.DOC file
| CBEEP - DBEEP |
| Replace BEEP With a Flash! |
Copyright (C) 1991
I.Installation and Use
The primary programs in this package are CBEEP.COM and DBEEP.COM.
They will usually be referred to without their .COM extensions
for convenience. DBEEP is first used to produce a new renamed
version of any program which has the beep replaced bya flash.
Then CBEEP is loaded into the computer's memory. CBEEP is the
program which actually makes the flash when called upon to do so
by the debeeped program. Finally the debeeped version of the
program is loaded and run. After some initial preparation, the
use of the debeeped version of a program can be made completely
automatic and transparent to the user.
This will start execution of the debeeping program. DBEEP will
display a menu where may be pressed to display a help
screen, may be pressed to start the debeeping process, and
may be pressed to install CBEEP in the computer.For now,
let's wait a bit before installing CBEEP and go on to create the
debeeped version of the program. Press and you will be
prompted to enter the name of the program to be debeeped. In our
example, the program was NOISY.EXE in subdirectory PROGRAMS on
Drive C:, so enter
You will be prompted for the name of the
new (debeeped) version of the program which you want to create.
It is very important to use the same extension
but the name should be different from the original name. In our
case we might select the name NOTNOISY.EXE as our new program.
After you enter the new program name, DBEEP will begin the
debeeping process. You will see from the display on the screen
that the process has begun and the display will indicate when the
debeeping process has finished; this may take a minute or so.
After DBEEP has finished, you may press to "launch" CBEEP.
This places into the computer's memory the program which produces
the flash when called upon to do so by the debeeped version of
the program. As part of the process of installing orlaunching
CBEEP,the CBEEP menu willbe displayed which will allow
selecting the size and duration of the flash.Press the number
keys as indicated to select your preferred choice. Finally,
after completing the creation of the debeeped program (which you
have given a new name) and installing CBEEP, you areready to
exit from DBEEP which may be done by pressing the key. You
will now be back at the DOS prompt and may run your new debeeped
version of the program by entering its new name. In our example,
merely enter NOTNOISY.That's all there is to it.
In some cases, you may see the message "NO BEEPERS FOUND" even
though you know that the program produces beeps. In most cases,
this will not cause a problem and the beeps will properly be
intercepted and replaced by flashes.A further discussion of
this will be found in the section for Advanced Topics.
A shortcut which can be used if you remember the
numberof the menu item you used to select the flashsize and
duration is to skip the use of DBEEP and just enter CBEEP /n from
the DOS command line, where for "n" you enter the menu item
selection. For example, to get a large, 1/2 sec. flash, enter
CBEEP.COM is a terminate-and-stay-resident (TSR) program which is
called by the debeeped program. DBEEP.COM searches the original
user'sprogram and replaces all code which generates beeps with
code which generates a software interrupt. Normallyinterrupt
60H is used,but CHGINT.COM may beused to select another
interrupt if 60H causes interference with other users of the same
interrupt. CBEEP, DBEEP, and CHGINT should be placed in the same
subdirectory, and CHGINT run. That will display a menu allowing
selection of an alternate interrupt number in the range 60H to
66H. You should be very careful about using interrupt 67H as it
is used for LIM EMS (an Expanded Memory manager) in all versions
of DOS beginning with DOS 2.0 although only officially reserved
by DOS in DOS 4.0 and above.
Beeps can be generated in several ways. The best-behaved method
is to use DOS' BIOS services to send a BEL (character code 7) to
the screen. An alternate method is directly to manipulate the
hardware which controls the speaker. This is done by using the
OUT instruction to change the two low order bits of port 61H to
turn the speaker on and off.DBEEP looks for the code which
generates such instructions and replaces itwith a software
interrupt (using either the default interrupt number of 60H or an
alternate interrupt number selected via CHGINT), padding as
neededwith NOPs. A reasonableness check of surrounding data is
made in order to distinguish code from data prior toreplacing
the beep codes. This technique for handling direct port writes
was suggested by Dave Fallen's SILENCER program code.
In some cases the message "NO BEEPERS FOUND" is produced by DBEEP
even though the code being debeeped is known to produce beeps.
This is generally caused by code which does not write directly to
hardware ports but merely uses DOS or BIOS services to producea
beep by sending the BEL character to the screen. The interrupts
used by these services are trapped by CBEEP and thus the beeps
are properly converted into flashes even though no code is
modified by DBEEP. The message "NO BEEPERS FOUND" thus indicates
that no codereplacement was necessary rather thanthat the
program being debeeped doesn't have any beep-producing code.
There are a few known limitations to this procedure. Compressed
executable code will not generally allow the instructions to be
properly identified. If the compression technique which has been
used is known, it may be possible to uncompress the code, apply
the debeepingprogram to the uncompressed version,and then
recompress the debeeped version. Microsoft Windowscode may
cause problems. Programs which have been compressed can be
identified (along with the compression technique used) by the
utility CHK4COMP.EXE. Manycommercial programs have been
compressed by Microsoft's EXEPACK; these may be unpacked by using
UPACKEXE.EXE.As of this writing, CHK4COMP could be obtained
from CompuServe IBMSYS in CKH4.ZIP; UPACKEXE was alsoavailable
from CompuServe IBMSYS in LZEX91.ZIP.
The software and documentation in this packare are provided "As
Is" without warranty of any kind. >>-Swift-Ware-> does not
warrant, guarantee, or make any representations regarding the
use, or the results of use, of this software. All risk taken in
the use of this software is assumed by you, the user, and not by
>>-Swift-Ware->, nor by any person or organization who may
distribute this product.