"Divide error" with TC 2.0 program

Brent K. Barrett brent at sactoh0.UUCP
Fri Dec 15 10:45:02 AEST 1989


 I'm working on a TC 2.0 project, and something very frustrating
has come up.  I have a function, send(), that sends formatted
output to the screen via DMA or BIOS calls (internal variable).
Whenever I use a floating point format in my calls to send(), I get
a "Divide error" and a crash to the DOS prompt.
 
 Here's send():
/*
 *  send()
 */
void send(int x, int y, const char *str, ...)
{
    va_list argptr;
    char outstr[255];
 
    va_start(argptr, str);
    vsprintf(outstr, str, argptr);
    va_end(argptr);
    if (bool.bios)
        biossend(x, y, outstr);
    else
        memsend(x, y, outstr);
}
 
 I get no compiler/linker errors or warnings when compiling my
program (which I can not include for both size and security
reasons).  I'm using compact model, but have tried all other models
(that will hold the data) without change.  If I comment out the
first call to send() that uses the %f format, it will crash on the
next, and so forth.  I have linked mathc and emu, so that's not the
problem.
 
 I'm very frustrated and have lost about 4 days work over this
problem, so I really hope someone out there can at least tell me
*why* the "Divide error" happens.  Just that would probably be
enough to kick my brain into gear again and figure this thing out.
 
 Please E-mail your responses and I will post a summary.  Thank you
very much.

-- 
  ////////      Novucivitas: The Future of Citadel       //////// 
 ///    US 916 725 0674 3/12/2400 bps GEMAIL: B.K.BARRETT    /// 
////////          ..ames!pacbell!sactoh0!brent         //////// 



More information about the Comp.lang.c mailing list