🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.msdos.programmer
2 messages
2 total messages Started by Brent K. Barrett Thu, 14 Dec 1989 23:45
"Divide error" with TC 2.0 program
#1244
Author: Brent K. Barrett
Date: Thu, 14 Dec 1989 23:45
45 lines
1985 bytes
 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         //////// 
Re: "Divide error" with TC 2.0 program
#1245
Author: czmurek
Date: Fri, 15 Dec 1989 13:43
32 lines
1942 bytes
In article <2244@sactoh0.UUCP>, brent@sactoh0.UUCP (Brent K. Barrett) writes:
>  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():
>  
>  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.
>  

Brent:
	I think it would help alot if you were to fully explain 
yourself.  I understand that there are security considerations here, 
but could you at least tell us whether you are casting this float into 
one of the int arguments or whether it is coming in via the variable 
argument list?  Please E-mail to me direct and I will help you with 
this problem.  It will be a simple modification I am sure.

-Chris
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads