www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/02/28/10:47:17

From: Jason Collins <jason AT iimage DOT com DOT au>
Newsgroups: comp.os.msdos.djgpp
Subject: Large .exe size
Date: Fri, 28 Feb 1997 16:54:37 +1100
Organization: Internet Image
Lines: 277
Message-ID: <3316731C.2CEE@iimage.com.au>
Reply-To: jason AT iimage DOT com DOT au
NNTP-Posting-Host: c25mc1-asy7.newcastle.edu.au
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

------------388EFD4D1E0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii

Hi all,

I have only recently installed djgpp (v2) and decided to port an
existing (very simple) graphics program to gcc using allegro 2.2.
Everything went very smoothly, however when I compiled using gcc, the
executable was 269kb compared to 24kb using Turbo C and my own pixel,
line etc functions.  I have included my source code (only short) and
would appreciate help from anyone who could explain why this occured.

Thanks

---------------------------------------------------------------------------------

#include <stdio.h>
#include <dos.h>
#include <allegro.h>

void initialise(void) {
    vline(screen,0,0,199,12);
    hline(screen,0,0,319,12);
    vline(screen,319,0,199,12);
    hline(screen,0,199,319,12);
    hline(screen,160,190,160+29,7);
}

void main(void) {

    int paddle=160;
    char c;
    int dx=1, dy=1;
    int x=160;
    int y=100;

    allegro_init();
    set_gfx_mode(GFX_VGA,320,200,0,0);
    initialise();

    do {
        if (kbhit()) {
            hline(screen,paddle,190,paddle+29,0);
            c = getch();
            switch (c)
                {  case ('a'): {
                                    paddle-=5;
                                    if (paddle<=1)
{paddle=1;}
                                    break;
                                    }
                    case ('s'): {
                                    paddle+=5;
                                    if (paddle>=289)
{paddle=289;}
                                    break;
                                    }
                    }

            hline(screen,paddle,190,paddle+29,7);
            }

            putpixel(screen,x,y,7);
            delay(10);
            putpixel(screen,x,y,0);

            x+=dx;
            if (x==318) dx=-1;
            if (x==1) dx=1;

            y+=dy;
            if (y==189 && x>=paddle && paddle>(x-30)) {dy=-1;}
            if (y==198) dy=-1;
            if (y==1) dy=1;

    } while (c != 27);
 exit(0);

}
-----------------------------------------------------------------------------


Jason Collins                        http://www.iimage.com.au
Internet Image Pty Ltd          email:jason AT iimage DOT com DOT au


------------388EFD4D1E0
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset=us-ascii

<HTML><BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">

<DT>Hi all,</DT>

<DT>&nbsp;</DT>

<DT>I have only recently installed djgpp (v2) and decided to port an existing
(very simple) graphics program to gcc using allegro 2.2.&nbsp; Everything
went very smoothly, however when I compiled using gcc, the executable was
269kb compared to 24kb using Turbo C and my own pixel, line etc functions.&nbsp;
I have included my source code (only short) and would appreciate help from
anyone who could explain why this occured.</DT>

<DT>&nbsp;</DT>

<DT>Thanks</DT>

<DT>&nbsp;</DT>

<DT>---------------------------------------------------------------------------------</DT>

<DT>&nbsp;</DT>

<DT>#include &lt;stdio.h&gt;</DT>

<DT>#include &lt;dos.h&gt;</DT>

<DT>#include &lt;allegro.h&gt;</DT>

<DT>&nbsp;</DT>

<DT>void initialise(void) {</DT>

<DT>&nbsp;&nbsp;&nbsp; vline(screen,0,0,199,12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; hline(screen,0,0,319,12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; vline(screen,319,0,199,12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; hline(screen,0,199,319,12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; hline(screen,160,190,160+29,7);</DT>

<DT>}</DT>

<DT>&nbsp;</DT>

<DT>void main(void) {</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; int paddle=160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; char c;</DT>

<DT>&nbsp;&nbsp;&nbsp; int dx=1, dy=1;</DT>

<DT>&nbsp;&nbsp;&nbsp; int x=160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; int y=100;</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; allegro_init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; set_gfx_mode(GFX_VGA,320,200,0,0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; initialise();</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; do {</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (kbhit()) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
hline(screen,paddle,190,paddle+29,0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
c = getch();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
switch (c)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{&nbsp; case ('a'): {</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
paddle-=5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (paddle&lt;=1) {paddle=1;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
case ('s'): {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
paddle+=5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (paddle&gt;=289) {paddle=289;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
hline(screen,paddle,190,paddle+29,7);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
putpixel(screen,x,y,7);</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
delay(10);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
putpixel(screen,x,y,0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
x+=dx;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (x==318) dx=-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (x==1) dx=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
y+=dy;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (y==189 &amp;&amp; x&gt;=paddle &amp;&amp; paddle&gt;(x-30)) {dy=-1;}</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (y==198) dy=-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (y==1) dy=1;</DT>

<DT>&nbsp;</DT>

<DT>&nbsp;&nbsp;&nbsp; } while (c != 27);</DT>

<DT>&nbsp;exit(0);&nbsp;</DT>

<DT>&nbsp;</DT>

<DT>}&nbsp;<BR>
-----------------------------------------------------------------------------&nbsp;<BR>
<BR></DT>

<DT>&nbsp;</DT>

<DT>Jason Collins&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
http://www.iimage.com.au<BR>
Internet Image Pty Ltd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
email:jason AT iimage DOT com DOT au<BR>
&nbsp;</DT>

</BODY>
</HTML>
------------388EFD4D1E0--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019