www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/04/01/16:23:33

Xref: news2.mv.net comp.os.msdos.djgpp:2328
From: jpdelprat AT teaser DOT fr (Jeepy)
Newsgroups: comp.os.msdos.djgpp
Subject: Please help me !!!
Date: Mon, 01 Apr 1996 20:41:40 GMT
Organization: Guest of France-Teaser
Lines: 72
Message-ID: <4jpiap$s34@teaser.fr>
NNTP-Posting-Host: clt-e26233c2.teaser.fr
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Here are a function which is supposed to fill a part of text screen.

Only the first line of my zone seems to be filled.

Could you help me, please !!!


void ClearPartOfScreen(int x1,int y1,int x2,int y2,char attribute,char
character)
{
  long height,width,start_offset;

  if ((x1>SCREEN_WIDTH) || (y1>SCREEN_HEIGHT) || (x2<1) || (y2<1))
    return;

  if (x2>SCREEN_WIDTH)
    x2=80;
  if (x2<1)
    x2=1;

  if (y2>SCREEN_HEIGHT)
    y2=SCREEN_HEIGHT;
  if (y2<1)
    y2=1;

  width=x2-x1+1;
  height=y2-y1+1;
  start_offset=(((y1-1)*80)+(x1-1))<<1;

//  HideMouse(); 

 asm ("
       pushw %%es
       movw %0,%%es
       movl $0xB8000,%%edi
       addl %1,%%edi
       movb %3,%%ah
       movb %2,%%al
       movl $80,%%ebx
       subl %4,%%ebx
       shll $1,%%ebx
       movl %5,%%edx
       movl $20,%%edx
 0:
       movl %4,%%ecx
   rep;stosw
       addl %%ebx,%%edi
       decl %%edx
       jnz  0
       popw %%es
     "
     :
     :"g" (_dos_ds),        // 0
      "g" (start_offset),    // 1
      "g" (attribute),        // 2
      "g" (character),      // 3
      "g" (width),            // 4
      "g" (height)            // 5
     :"%ax","%ebx","%ecx","%edx","%edi");



//  ShowMouse();
}







- Raw text -


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