www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/11/10/23:09:00

From: "John F. Bell" <jfbell2 AT juno DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: AT&T Assembly
Date: Sun, 10 Nov 1996 20:13:09 -0700
Organization: XMission Internet (801 539 0900)
Lines: 36
Message-ID: <328699C5.2E68@juno.com>
NNTP-Posting-Host: slc60.modem.xmission.com
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Everyone must be sick of these assembly questions, but I can't figure
this one out...

This copies the double buffer to the screen (or at least its supposed
to)

__asm__ __volatile__ ("
  movw $16000, %%cx\n
  cld\n
  rep\n
  movsl"
  :
  :"D" (0xA0000+__djgpp_conventional_base), "S" (double_buffer)
  :"ax", "cx", "si", "di", "memory"
);

This fills the double buffer with one color (it should anyway)

__asm__ __volatile__("
   movb %%al, %%ah\n
   movw %%ax, %%dx\n
   shl  $16, %%ax\n
   movw %%dx, %%ax\n
   movw $16000, %%cx\n
   rep\n
   stosl"
   :
   :"a" (color), "D" (double_buffer)
   :"ax", "cx", "dx", "di", "memory"
);

I could use dosmemput() and memset(), but I would like more speed.
If you aren't too sick of these questions please reply.

John F. Bell
jfbell2 AT juno DOT com

- Raw text -


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