From: "John Fremlin" Newsgroups: comp.os.msdos.djgpp Subject: Re: new asm question... Date: Tue, 15 Apr 97 17:56:21 CST Organization: University of Wisconsin, Madison Lines: 61 Message-ID: <75464.fremlin@oncology.wisc.edu> NNTP-Posting-Host: f209-034.net.wisc.edu To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk On 15 Apr 1997 01:08:25 GMT, Jeff Weeks wrote: >I've been tring to make a simple inline asm block to copy my virtual >screen (virt[64000]) to 0xa000 (using near pointers... I've called ^^^^^^ In DJGPP video memory is stored at 0xA0000. >__djgpp_nearptr_enable()). So I looked up movsl and tried a little ^^^^^^^^^^^^^^^^^^^^^^^^^ If you're using asm then a simpler way to do this is to put the value returned from _go32_conventional_mem_selector() into es (see code snippet). >block but I can'tt get it to work. It would have been more helpful if you'd posted source code. > >Could someone please send a little code snippet to do this. -- asm( " pushw %es pushl %esi pushl %edi pushl %ecx movw _dos_selector, %es movl $0xA0000, %edi movl _virtscreen, %esi movl $16000, %ecx cld rep ; movsl popl %ecx popl %edi popl %esi popw %es "); -- 'virtscreen' must be a global variable. 'dos_selector' must be a global short int containing the value returned from _go32_conventional_mem_selector(), e.g.: static const short unsigned dos_selector = _go32_conventional_mem_selector(); > >Sorry, I'm pressed for time, gotta go, >Jeff Weeks > > email: mailto:pweeks AT execulink DOT com > (fremlin AT oncology DOT wisc DOT edu or fremdh AT essex DOT ac DOT uk) Punching people doesn't win arguments, it just shuts them up.