www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/06/22/13:12:48

Date: Thu, 22 Jun 95 10:17 MDT
From: mat AT ardi DOT com (Mat Hostetter)
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Scrolling problem
Newsgroups: comp.os.msdos.djgpp
References: <DAJuFq DOT EDx AT freenet DOT carleton DOT ca>
Cc: ao950 AT FreeNet DOT Carleton DOT CA (Paul Derbyshire)

>>>>> "Paul" == Paul Derbyshire <ao950 AT FreeNet DOT Carleton DOT CA> writes:

    Paul> For those who were wondering, I use pointers rather than
    Paul> memcpy() for speed purposes. Function calls generate
    Paul> overhead.

That's why gcc inlines memcpy (__builtin_memcpy) and doesn't make a
function call at all in most cases.  You get a rep ; movsl either way
you write it.

I don't see how you can seriously contend you are interested in speed
when you do *twice* as many memory copies as necessary.  As I already
explained in private email, you scroll by copying the whole screen to
a scratch buffer and then copying it back offset by a certain number
of rows.  The entire screen is copied twice.  A single
screen-to-screen memory copy blows away your supposedly "faster"
approach (at least, as long as the screen fits in a single 64K SVGA
window, which it does in your case).

    Paul> Now I have another problem: graphics code from djgpp works
    Paul> fine in DOS, but in Windows generates general protection
    Paul> faults (from go32, not from
    Paul> windows).

This is explained in the FAQ.  You can't use the 0xD0000000 frame
buffer under any DPMI provider (e.g. Windows).  It will not be
available at all in djgpp V2.0 (which requires DPMI).

-Mat

- Raw text -


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