Date: Fri, 05 Sep 1997 19:52:02 -0600 From: sanderson AT emails DOT com Subject: Problem with my code Newsgroups: rec.games.programmer,comp.os.msdos.djgpp Message-ID: <873506976.23494@dejanews.com> Organization: Deja News Posting Service Lines: 75 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk I can't seem to figure out what is wrong with the following code. It should clear the screen to read, clear the buffer to white and then blit the buffer onto the screen. Unfortunately it does none of these! void clear (BITMAP *bmp, int color) { long lcolor; unsigned char *address; int seg; seg = bmp->seg; address = bmp->address; lcolor = color | (color << 8); lcolor = lcolor | (lcolor << 16); __asm__ __volatile__ ("\n pushw %%es \n movl %1, %%edi \n movw %0, %%es \n movl $16000, %%ecx \n movl %2, %%eax \n rep \n stosl \n popw %%es" : : "g" (seg), "g" (address), "g" (lcolor) : "edi", "eax", "ecx", "memory"); } void display_buffer() { unsigned char *baddress, *vaddress; int seg; baddress = buffer->address; vaddress = screen->address; seg = buffer->seg; __asm__ __volatile__ ("\n pushw %%ds \n pushw %%es \n movw %0, %%es \n movl %1, %%ds\n movl %2, %%esi \n movl %3, %%edi \n movl $16000, %%ecx \n rep \n movsl \n popw %%es \n popw %%ds" : : "g" (_dos_ds), "g" (seg), "g" (baddress), "g" (vaddress) : "edi", "ecx", "esi", "memory"); } main () { set_graphics_mode(VGA); clear (screen,4); clear (buffer,7); display_buffer(); getch(); set_graphics_mode(TEXT); } Before you tell me, I know all about Allegro (does this code look a little familiar?). This is just for fun :) Anyway I'd appreciate any help with this. Thanks Steve Anderson -------------------==== Posted via Deja News ====----------------------- http://www.dejanews.com/ Search, Read, Post to Usenet