delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/09/13/10:39:19

Date: Thu, 13 Sep 2001 16:37:11 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: dima 3141596 <dima AT rts-ukraine DOT com>
cc: djgpp AT delorie DOT com
Subject: Re: addressing question
In-Reply-To: <9nqdp9$22n2$1@pandora.alkar.net>
Message-ID: <Pine.SUN.3.91.1010913163428.3657C-100000@is>
MIME-Version: 1.0
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Thu, 13 Sep 2001, dima 3141596 wrote:

>  Ok, I have GDT with 3 valid entries: code segment, data segment and
> data segment pointed to video RAM (0x0b8000).
>  Than I switch to PM and  load CS <- entry 1,  DS <- entry 2,  ES <-
> entry 3.
> After it I want output any information to the screen:  mov ES:[...], x
> in     assembler :).
> How can I make it in the DJGPP ?

The various ways of accessing the video memory from a DJGPP program are 
described and explained in the DJGPP FAQ, sections 10.2 and 18.4.

> In the Turbo C I can do  it :     char far* scr = MK_FP(segment,
> offset);
>  then any instruction like it:       *scr = '1';  will generate asm code
>            mov ax,segment
>            mov es,ax
>            mov  es:[offset] , '1'   ------> here ES !!!

This won't work in protected mode, even in Turbo C.

- Raw text -


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