Dec 182017
 
Yet another patch for TC.2.
File TCINTFX1.ZIP from The Programmer’s Corner in
Category C Source Code
Yet another patch for TC.2.
File Name File Size Zip Size Zip Type
INTR.8 7124 1674 deflated
INTRC.OBJ 228 228 stored
INTRL.OBJ 233 233 stored
INTRM.OBJ 233 233 stored
INTRS.OBJ 228 228 stored
READ.ME 2695 1012 deflated

Download File TCINTFX1.ZIP Here

Contents of the READ.ME file



FIXING THE intr() FUNCTION BUG IN Turbo C 2.0.



THE PROBLEM

In all memory modules of Turbo C 2.0, the intr() function fails to pass
the proper value for the BP register to the called interrupt.



THE SOLUTION

The object modules in this package permit you to fix the bug by updating
the compiler libraries with a new intr() module that contains corrected
code.

This package contains four object modules, an A86 source file for the
object modules, and this read.me file. You don't need the source file
to install the fix in the Turbo C compiler libraries. I provided
the source code to document and authenticate the bug and the fix, and
to verify the object modules.




WHAT YOU NEED TO FIX THE BUG

To update the Turbo C compiler libraries, you need the following:

1. A copy of TLIB.EXE. This program is generally installed in the
\TC subdirectory on a hard disk system. TLIB.EXE is included in
the Turbo C distribution package on the LIBRARIES diskette.

2. A copy of the library files you are going to update. The
library file used by Turbo C for any given compilation
depends on the memory model selected as follows:

Model Library Name
------------ ------------
Tiny or Small CS.LIB
Medium CM.LIB
Compact CC.LIB
Large and Huge CL.LIB

I recommend that you update all libraries, even if you don't
use all of them frequently.


3. The four INTR?.OBJ files supplied in this package.




HOW TO FIX THE BUG


WARNING

Updating a library module with the wrong object code will
cause improper operation of the intr() function and possible
crashing of the program. When you update a library (when you
use the TLIB program with the '+' option), make sure that the
last character of the library filename matches the last
character of the filname of the update object module.


To update the small model and tiny model library (CS.LIB), do the
following:

TLIB CS -INTR
TLIB CS +INTRS.OBJ /E


To update the large model and huge model library (CL.LIB), do the
following:

TLIB CL -INTR
TLIB CL +INTRL.OBJ /E


To update the medium model library (CM.LIB), do the following:

TLIB CM -INTR
TLIB CM +INTRM.OBJ /E

To update the compact model library (CC.LIB), do the following:

TLIB CC -INTR
TLIB CC +INTRC.OBJ /E




 December 18, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)