From: sochaxx AT flash DOT net (art socha) Newsgroups: comp.os.msdos.djgpp Subject: more NASM/DJGPP HELP please... Date: Thu, 12 Mar 1998 20:58:59 -0800 Organization: Flashnet Communications, http://www.flash.net Lines: 39 Message-ID: NNTP-Posting-Host: iasc1-58.flash.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk okay. so i got video mode 320x200,256 going with nasm/djgpp. next problem... should be simple but... i'm probably just blind... calling a procedure from djgpp like so... for(y=0;y<199;y++) for(x=0;x<319;x++) plot(x,y,15); neat. here is the assembly procedure. global _plot ;called from c plot(int x; inty; char col); _plot: push ebp mov ebp,esp ;point to stack xor eax,eax ;eax=0 xor ebx,ebx ;ebx=0 mov word eax,[ebp+10] ;eax = y mov word ebx,[ebp+8] ;ebx = x xchg ah,al ;y * 256 add bx,ax ;bx = (y*256)+x shr ax,2 ;ax = (y*64) add bx,ax ;bx = (y*320)+x add dword ebx,[_vid] ;add our offset to the video pointer mov byte al,[ebp+12] ;al = color mov byte [ebx],al ;draw it! pop ebp ret the _vid address is defined and calculated in the c program. this is the flat address of the video segment and works perfectly. the problem is that apparently i'm not getting my x,y, nor color from the stack. according to logic, since we are using 32-bit addressing now, [ebp+8] should point to the first parameter. I confirmed this in the NASM.DOC file as well. Anyway, I'm stumped for now... I need to find a good Protected Mode Debugger so I can see what's going on (if you know of one lemme know where to get it eh?) and in the meantime if you have any ideas for the above...