<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Wed, 25 Feb 1981100:20:00-MST
From   : JSWAIN@BBND
Subject: Serious F80 bug in Rev. 3.4

       This message is to report a very serious bug in the FORTRAN 80
Compiler  Rev. 3.4 written by Microsoft that causes the buffer allocation
routines to eat up it's own data storage and code areas as it
allocates buffers for any disc output that it does.  If you open files
for data manipulation, you will allocate the buffer areas down on top
of data and variable storage areas.

       This is because of improper handling of the variable $MEMRY
in the module that handles buffer and FCB allocation during program
operation.

       The bug, though quite serious, is easy to remedy as the module
that has the bug in it is given to you on the disc as one of the .MAC
files.  

       The program to be repaired is "DSKDRV.MAC".

       The bug is in the section on page 1-9 of the
assembly listing in the "ALCBUF:" routine.  If you assemble the code
with the /C switch to give you a cross-referenced listing, the error is
on line # 418.  The code is   LXI      D,FCBLEN.  It should be
changed to  LXI        H,FCBLEN.  This will cause the allocation
routine to use the correct value for top of memory calculations.

       After you assemble the change into a .REL file, it will
be necessary to update the file FORLIB.REL to put the module into
use.

       Use the following command line to fix it up.

LIBcr
TESTLIB=FORLIB<..ARGTRN>,DSKDRV,FORLIB<LPTDRV..>
/E
Compile a program, and then link it using as the last step.
TESTLIB/S/E to use the test library instead of FORLIB.

If it works, the rename FORLIB.REL to FORLIB.BAK and TESTLIB.REL
to FORLIB.REL

       Good luck
       John W. Swain   BBND
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>