delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/10/15/02:03:20

From: "John F. Bell" <jbell AT xmission DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: __djgpp_conventional_base
Date: Sun, 13 Oct 1996 15:23:46 -0600
Organization: XMission Internet (801 539 0900)
Lines: 27
Message-ID: <32615DE2.4928@xmission.com>
Reply-To: jbell AT xmission DOT com
NNTP-Posting-Host: slc154.modem.xmission.com
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

how often does __djgpp_conventional_base change in a program?
I am using the method of enabling near pointers to access video memory
and I access it by unsigned char *video_buffer=(unsigned char
*)0xA0000+__djgpp_conventional_base;

Is this the fastest way to access video memory?
Do I need to declare video_buffer as
unsigned char *video_buffer=(unsigned char *)0xA0000;
and access it by *video_buffer[__djgpp_conventional_base]?

Also, I tried to write a screen filler function in assembly, but it 
only fills up the first half of the screen or so.  Here it is
__asm__ __volatile__ ("
movl %1, %%edi
movb %0, %%al
movw 64000, %%cx
rep
stosb"
:
:"g" (color), "g" (0xA0000+__djgpp_conventional_base)
:"ax","cx","di","memory"
);
What's wrong with this?
Thanks in advance.

John F. Bell
<no email currently>

- Raw text -


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