www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/08/21/23:53:30

Message-ID: <321BF45D.570A@gbrmpa.gov.au>
Date: Thu, 22 Aug 1996 13:47:09 +0800
From: Leath Muller <leathm AT gbrmpa DOT gov DOT au>
MIME-Version: 1.0
To: "Tony O'Bryan" <root AT ursa DOT smsu DOT edu>
CC: djgpp AT delorie DOT com
Subject: Re: buffer -> screen transfers
References: <320647A3 DOT 5827 AT cadvision DOT com> <3209b332 DOT 21898266 AT news DOT wolfe DOT net> <32141C89 DOT 5DB5 AT gbrmpa DOT gov DOT au> <4vd0s1$m76 AT ursa DOT smsu DOT edu>

Tony O'Bryan wrote:
> 
> Leath Muller (leathm AT gbrmpa DOT gov DOT au) wrote:
> 
> : If your not in the final development stages of your program, it ends up
> : OK to use the farnspoke etc routines because your not too worried about
> : speed. What I did, was wait until I knew my routines were debugged fully
> : (fully? yeah right... ;) and then used the __crt0_nearptr_enable (or
> : similar) flag at the start of my program to disable all memory
> : protection.
> : This has the advantage of not having to call the enable/disable calls
> : all the time, and increases the speed of video intensive subroutines a
> : LOT!
> 
> Will __crt0_nearptr_enable allow a pointer to linear address 0xa0000 to
> directly access the video screen?

It will, but you have to add the __djgpp_base_address to your pointer
(I can't remember the actual variable name, but it's something like that
-
check the FAQ) to make sure your pointer accesses the correct memory
location.
ie:		char *video_buffer = (0xa000 + __djgpp_base_address);
Then you can access this with:		video_buffer[1000] = 200; etc...

Leathal.

- Raw text -


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