Jan 082018
Helps determine where conflicts may exist between TSR programs.
File CNFLICT.ZIP from The Programmer’s Corner in
Category System Diagnostics
Helps determine where conflicts may exist between TSR programs.
File Name File Size Zip Size Zip Type
CNFLICT.DOC 26386 8221 deflated
CNFLICT.EXE 7249 2160 deflated

Download File CNFLICT.ZIP Here

Contents of the CNFLICT.DOC file


version 0.0 (c) copy right 1989 All Rights Reserved

Does running one terminate but stay resident (TSR) utility
first, rather than another TSR over your favorite software
cause your system to lock up? The lock up is caused by
conflicting interrupt usages.

You can always report the names and the versions of both the
TSR and your favorite software to either of the software
makers, but even the biggest software companies can't afford
to buy/borrow every software which can cause the lock up.

This pop up lets you report on the interrupt values changed
by the present program so that you can report to the software
companies which interrupts are being messed around. This can
also detect the presence of softwares which are not supposed
to become memory resident but does, due to it being a virus.

This version is public domain, sometimes called "freeware".

The set up of this document is as follows:

Explanations of various in-line command parameters.
Prompts and messages generated by CNFLICT.
Disclaimer, contribution $/address, info for sysops and
shareware distributors.


If you simply type


then you get the help page built into this program for quick
reference. The help page does not waste memory when this
program becomes memory resident.

Experience showed that people don't want too many features
in a first version of a program (unless it's done
automatically for them) because it complicates using it, so

the features and options in this version are fairly


To run this, simply type


and end it with an or or or anything
else you want to call the carriage return. All documents in
my programs use the format.

You can type just the "R" in "RUN" to run CNFLICT.EXE and may
be in capital "R" or small letter "r". Any other line
command after the "RUN" parameter is ignored, so if you want
to mix other line commands, they must be placed before this.

Typing the altM key combination will pop up the list of
interrupts which were changed. You can do a screen dump to
send to the software makers.

If you pop up right after running CNFLICT, the only value
which should appear is "22" or "23", the terminate address
and control-Break interrupt.

The pop up is instantaneous with snow-cancellation for real
CGA adapters. The pop up will only work on 80 column or
more in text mode. There is no check for Hercules graphic

CNFLICT.EXE itself and all programs hence forth lost the
self-wipe feature, the ability to wipe any and all other
memory resident programs loaded after this program.
(unless I start hearing otherwise)


Normally, altM will pop up the list of interrupts changed.
But if you like, you can use


which makes the pop up appear if you press down on the alt
key, and while keeping it pressed down, you type "55" on the
numeric keypad. Only the keys on the numeric keypad will
work. The range is M1 - M255. The value can only be set
when first running CNFLICT.


Normally, CNFLICT uses the disk interrupt to constantly
check to see if the hot key is in working order or not. If
you suspect that this may be the cause of yet another bug,
try running CNFLICT without the disk interrupt using


There is no need to use the RUN option, and in fact,


behaves as if the "-D" did not exist.

This option only works when first running CNFLICT.


After you run CNFLICT, you would normally run a TSR
software. After you ran it, then CNFLICT's pop up will tell
you what interrupts the TSR used, which you can screen dump.
But now, to find which interrupts your non-TSR utility
uses, you must set CNFLICT's internal table so that the
interrupts used by the TSR will be ignored.


This set the internal table so that now, the TSR's
modification of the interrupts will not count. Now run your
regular software. Now the pop up will display the
interrupts which your software modified.

Of course, you could have ran your TSR utility before
running CNFLICT with the regular RUN option, then run the
software. This will cause CNFLICT to record the interrupt
values after the TSR is in memory and will tell you the ones
changed by your software. (but not those changed by the TSR)

You can use the Set option to first run CNFLICT. But if you
do, there is no error message if you run this twice from
within a batch file, as is the case if you use the RUN



To run CNFLICT.EXE, type from the DOS prompt


The first thing CNFLICT.EXE does is to check to see if
another copy of CNFLICT.EXE is already in memory or not. The
program will abort if it is already in memory.

The present values of the system interrupts are recorded.

Then the environment area is deallocated before becoming
memory resident, using about 5kb of your system memory.



Press down on the alt key and while keeping this key pressed
down, press down on the letter "M". This is the default to
pop up this program. If you chose one of the alternate
choices, such as M22 on the command line, press down on the
alt key and while keeping this key pressed down, type "22"
on the numeric keypad to your right and then let go of the
alt key. Typing "22" on the key above "W" will not work,
nor typing control-V, which is chr$(22) also.

The pop up is instantaneous with snow-cancellation for real
CGA adapters. The pop up will only work on 80 column or
more in text mode. There is no check for Hercules graphic

The values displayed are in hexadecimal. If no interrupts
were modified since CNFLICT became memory resident, only the
value "22" or "23" should display.

The pop up will display up to 220 changed interrupts, but if
more than a few dozens appear, then suspect a tiny virus
hiding in this part of the memory. Most TSRs do not need to
use that many interrupts.

If you run multiple TSRs before running your regular
software (word processor, data base etc), then before
running the first of your TSRs, run CNFLICT RUN. Then
after each TSR which you run, pop up the interrupt list and
screen dump it, run CNFLICT S to set the interrupts
table to the present values, then the next TSR. Continue
this cycle with your software and screen dump from within
your software to print the interrupts used by your software.
This gives you a list of interrupts used by each of your TSR
and the software. It's not of much use to you, but send it
to the people who made the TSRs in question and it will
allow them/us to find out exactly what is causing the

In other words, do this

TSR number 1
pop up and screen dump to find interrupts used by # 1
TSR number 2
pop up and screen dump to find interrupts used by # 2
TSR number 3
pop up and screen dump to find interrupts used by # 3
pop up and screen dump to find interrupts used by software

Some softwares allow for a DOS window mode or option which
lets you go to DOS and then exit back with "EXIT". If
you set CNFLICT using CNFLICT S while in this
situation, when you get back to your software and then pop
up the list, it may display "22 23 24". This is normal.

You can also use this program before running any new
software which you got from a dubious source. After you
used and quit the software, try popping up CNFLICT's list
again. If anything other than "22", "23" or "24" appears,
but CHKDSK.COM reports that no system memory is used, or
worst, that some system memory was still used, then reboot
before doing anything else. Even if this was not a virus,
your computer may lock up or act strangely.



All values discussed here are in hexadecimal, such that
"16" means 16H, which is 16 hexadecimal, or 22 decimal.
The discussion is in hexadecimal since BIOS manuals, as
well as programmers normally work in hexadecimal, and the
use of decimal values will only confuse anyone who can
understand it and does not help anyone who does not.

08/1c These are the system timer and user timer tick
interrupts. The new SideKick uses this to take
over interrupts taken over by other utilities, as
well as by the software which you are running.
This ensures that SK works, but anything else
trying else which wants to work with SK may not.

Any software which modifies 08 may cause any
other software loaded after this, and which uses
1c not to work, unless the first software issues
its own 1c interrupt calls. However, excessive
use of 1c or 08 will cause anything using this as
a clock to slow down so much that the time
displayed or used to turn ON the alarm to be

If you use a hardware assisted clock like the
one INTEL provided in their above board's clock,
you may not see any trouble, but everyone else
may report that the same software causes their
machines to lock up.

09/16 All macro softwares and softwares with macro
capabilities use these interrupts. If your word
processor has macro capabilities and you try to
run a pop up macro software on top, the pop up
will behave sporadically with only a few keys, if
any reaching your word processor. If your word
processor has a key speed mode called "normal",
as in WordPerfect or "regular" or some other
setting, this conflict can be cured. If you own
older versions of Xywrite, there is no solution.
Framework's word processor or Microsoft Word work
in graphic mode so that many pop ups refuse to
work or only show as streaks. If your software
uses Hercules' Ramfont, the pop up on top may
have strike out line or not display at all. If
your pop up can change character attribute
(sometimes called "color"), it's the simplest
solution, though you'll have to experiment a bit
with the setting.

Depending on how your pop up software is set up,
it may not allow another pop up on top of it, or
lock up if you try to pop up the same pop up.
The latter is simple incompetency/ignorance on
the part of the person(s) who wrote the pop up.
The former can be purely by choice, to enhance
reliability or to avoid re-entrancy problems.

10 Video interfaces are sometimes performed through
this interrupt. Due to BIOS bugs in older IBM
PCs, some softwares may lock up when trying to
clear the screen or may write nonsense to the

Some softwares which work perfectly on CGA or
monochrome may not work as expected on EGA/VGA
clones, because some manufacturers of EGA/VGA
by-pass some functions in software. The
converse also applies, so that if someone wrote
a software using EGA/VGA adaptor in its CGA
emulation mode, it may not work on the real CGA

17 The printer interrupt. If you have the new DOS
4.X, some softwares which used to work under
older DOS' may not work.

Your software may have difficulty finding out if
your printer is on-line or turned off. This is
caused by your software following the IBM
standard on printer status, or the Centronic
standard. Many softwares simply ask you to turn
the printer on and don't bother checking either.

Since this isn't a book on how to write TSRs or how to debug
them, lets leave all these mumbo jumbo alone for now. (may
be we should write a book on the subject?)

If your TSR utility appears to use a lot of memory for what
it can do (use CHKDSK.COM before and after its loaded to
memory to see how much free memory exists), then chances are
that the software is written in Basic, C or Pascal. In this
case, it's possible that reporting all the symptoms may not
allow the person(s) who wrote the TSR utility to correct
bugs. Any high level language introduces its own bugs
which is under the mercy of the programmers who in turn
wrote the high level languages. This isn't an attempt to
find scape goats, but merely to explain the difficulties
which crop up whenever any useful software is written.

If you ran a TSR, but your CHKDSK.COM indicates that no
extra memory was used, but CNFLICT reports a large number of
interrupts being used, your TSR has made itself resident in
the interrupt section of the system memory. Unless the
document which came with the TSR states that it is doing
this on purpose, watch out! It may be a virus designed to
evade anti-virus softwares. If you ran a software which is
not supposed to reside in memory, but CNFLICT reports any
change in interrupts used, then chances are that it may be a
virus: Don't think that all viruses invade COMMAND.COM.
There is a dozen escape holes for each hole plugged by an
anti-virus software. And anyone mischievous can design a
virus which remains dormant until the presence of a certain
anti-virus software is detected, giving you the impression
that the anti-virus software was really a virus in disguise.

If CNFLICT reports that your software is not taking over any
interrupt and it locked up without any help from a TSR, then
another program called LASTRESO may let you exit back to
DOS. Choose the e"X"it option.

Just in mentioning, CNFLICT cannot check if a TSR borrows
interrupts for a very brief period and then returns them to
the software it's running under, before the user can pop up
this program. Some of our programs change or temporarily
modify the interrupts dynamically, as do many other
softwares, but if you provide enough detail on exactly what
happened, any good programmer can figure out what the cause
of the problem was from the symptoms. (unless the "bug" is
caused by a relatively benign virus designed only to live.)



Whenever you report a conflict of interest between using two
softwares, report the followings, leaving out only those
things which you feel are too private (we know the feeling,
dozens of computers and softwares are stolen every day):

The DOS version which you're using. And if you used a patch
software to patch up the bugs in your DOS, which patch and
its version number.

The names and the version numbers of softwares causing the
conflict. And if other peripherals such as printers are
involved, the make and brand.

If you don't feel that it's too private, the name/model/BIOS
version of your computer, as well as the video card used.
Don't be embarrassed if you're using a no-name brand, the
person reading your letter may know someone with the same
machine. (Of course, the conflict may in fact be caused by
the fact that your computer was not really IBM compatible.
Several nationally known brands suffer this ailment.)

The names of TSRs which have no conflict with your setup of
hardwares and softwares.

Exactly what happened: Do you see a cursor? If strange
garbage appears, can you describe them? Is the screen
scrolling? If you type more than 16 keys, do you hear the
buffer overflow warning? If your keyboard has lights to
indicate the status of Caps Lock, Num Lock etc, do they
work? Were you using a "turbo" mode? Did the lock up
occur after you accessed the diskette drive? Did you change
the hard-disk interleave factor? Replaced the 8088 CPU with
a V-20?



Are there any other program which would be handy but which
you can't seem to find elsewhere? Tell us, in as much
detail as possible. If you just say "how about a pop up
calculator with memory and able to enter something like
M30 = SIN(0.45)*(34*(43.2E5)-M2)+COS(0.342)/(34-M20)"
where M30, M2 etc are memory variables, MSCALC has it. A
big letter side ways printer? try LUM. Otherwise, chances
are that we already have it, but you simply didn't know it.

Like us to combine features of two programs into one? We're
not going to ask for more money (but, the program will
become bigger and uses more memory).

Is it true that for every one person who contributes
something to the author(s) of a shareware, a hundred or
more use it but keep silent? I wish the ratio is more like
10,000 or more. Any software used is better than one

gathering dust, or worst...deleted.

Writers for computer magazines and articles no longer seem
to be writing about any new and interesting softwares or
hardwares, even though they are both coming out in numbers.
Mind you, you may need the assistance of a professional
translator, but they're there. Does anyone need a writer?

Did you know that we do computer consulting? If you have a
computer project, read the file called "comment" stuck with
the BIGLTR.EXE program.



Unknown parameter on the command line

Something not recognized was found on the line when you ran
the program. If you ran this program from a batch command
file, error messages are followed by errorlevel = 1 so that
you can have your batch file take appropriate actions.

CNFLICT is already in memory.

You tried to run CNFLICT.EXE when a copy was already in
memory using the CNFLICT RUN option.

Bad pop up key. I need
M1 - M255 to pop up with alt and numeric keypad
value 1 - 255.

You ran CNFLICT with the M option, rather than the RUN
option, but did not follow it with a number to indicate what
the hot key combination should be.

Interrupt values in CNFLICT are set to present values

You ran CNFLICT using CNFLICT S. CNFLICT is telling
you that the present settings of the system interrupts are
now stored in CNFLICT which is already in memory so that
CNFLICT's pop up will display any changes in interrupts from
now on.


All products and names mentioned are Trademarks or
Registered Trademarks of their respective corporations or
companies. That includes my group or any other group's
programs, of course.

All enclosed programs, documents and other files are
provided AS IS, without any warranty, expressed or implied,
including but not limited to fitness for a particular

If you find that this does not work in your machine, we
would like to know exactly what happened. If another of my
series in programs works but not this, tell us which ones
worked and which do not. Different programs use different
methods to achieve the same things; and just because you
admit to having used another of my or related groups' program
a few times does not oblige you to pay for using them.

No contribution is sought. This version is strictly public
domain, but comments are welcome.
Your NEGATIVE criticisms are as welcome as your positive ones.


A pop up which displays the interrupt values your software
is using to help report cause of conflict with your TSR
under it.

my old forwarding address was

Dr. Masaaki Sawada
University of Waterloo, Faculty of Science
Waterloo, Ontario Canada N2L 3G1

the new forwarding address, on August 1989 was

Dr. Masaaki Sawada
Lady Davis Institute for Medical Research,
Sir M. B. Davis Jewish General Hospital,
3755 Chemin Cote Ste-Catherine,
Montreal, Quebec,
Canada H3T 1E2

The institute name is given instead of home address(es) to
lower the chances that any mail is delivered to a wrong
address (a common occurrence). However, no institute time
nor equipment was used to write this program or document.

American English is used wherever noticed, but if the
document accidentally said "equipement" or "programme",
think of it as a charming French or British influence,
though you can change/translate this document if you like.

+-+-+-+-+-+-+-+ SWEATING OVER THE ADDRESSES? +-+-+-+-+-+-+

For a shorter, more permanent address, try:

c/o Dr. Masaaki Sawada
P.O. Box 956
Outremont, Quebec
Canada H2V 4R8


 January 8, 2018  Add comments

Leave a Reply