Mail Archives: djgpp/1996/07/19/06:30:54
OK, I finally got DJGPP installed, and I finally figured out enough
AT&T syntax to get a few inline things working, but I can't get this code
to work! It tries to generate a bunch of random pixels on the VGA mode
0x13 screen. I can get it into mode 0x13, I can generate the numbers, but
I can't get it to display. The code compiles flawlessly and I don't get
any exceptions (like I did before I remembered to set the limit of my new
descriptor), but nothing outputs to the screen! I'd really appreciate it
if somebody could help me with this. Here's the code:
#include<stdio.h>
#include<conio.h>
#include<random.h>
int x, y, sel, temp;
unsigned char color;
char main(void)
{
asm("xorl %eax, %eax\n\t" //eax = 0 (function call 0)
"movl %eax, %ecx\n\t"
"incl %ecx\n\t" //ecx = 1 (1 descriptor)
"int $49\n\t" //allocate descriptor
"jc ERROR\n\t"
"movw %ax, _sel\n\t"
"movw %ax, %bx\n\t"
"movl $7, %eax\n\t"
"xorl %ecx, %ecx\n\t"
"movl $0xA000, %edx\n\t" //VGA seg
"int $49\n\t" //set descriptor base
"jc ERROR\n\t"
"movl $8, %eax\n\t"
"movw _sel, %ebx\n\t"
"movw $65535, %cx\n\t"
"movw $65535, %dx\n\t" //cx:dx = limit ( = 4gig for now)
"int $49\n\t" //set limit
"jc ERROR\n\t"
"movw _sel, %fs\n\t" //save selector in fs for later use (the
"jmp NO_ERROR\n\t"); //compiler claims to not mess with fs or
gs
asm("ERROR:\n\t");
printf("Error in allocating/setting descriptor\n");
return(0);
asm("NO_ERROR:\n\t"
"movl $19, %eax\n\t"
"int $16\n\t"); //yes, I realize that's the incorrect way
to do an interrupt
//with a DPMI, but it works under my
server, and this
//isn't the part that I'm worried
about
x = y = 0;
do{
do{
color = rand() % 256;
temp = y * 320 + x;
asm("pushl %eax\n\t"
"pushl %ecx\n\t"
"movb _color, %cl\n\t"
"movb %cl, %fs:(%eax)\n\t" //this just doesn't do
a thing!
"popl %ecx\n\t"
"popl %eax\n\t");
x++;
}while(x < 320);
y++;
}while(y < 200);
printf("Done\n");
getch();
}
I can't find anything wrong with it (except that I called INT 0x10 the
wrong way, but I'm concerned about the pixel plotting code). Thanks in
advance to anybody who decides to help.
-rettaMitnA AT aol DOT com(Joel Hardy)
- Raw text -