Xref: news-dnh.mv.net comp.os.msdos.djgpp:927 Path: news-dnh.mv.net!mv!news.sprintlink.net!simtel!lll-winken.llnl.gov!enews.sgi.com!decwrl!waikato!comp.vuw.ac.nz!mu.sans.vuw.ac.nz!empty From: empty AT sans DOT vuw DOT ac DOT nz (Malcolm Taylor) Newsgroups: comp.os.msdos.djgpp Subject: Re: Calling VESA paging function w/o DPMI Date: 17 Jul 1995 05:28:43 GMT Organization: SANS, Student Access Network System Lines: 21 References: <3tvkjs$ov7 AT gaea DOT titan DOT org> <3003c669 DOT sandmann AT clio DOT rice DOT edu> Nntp-Posting-Host: mu.sans.vuw.ac.nz To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp Charles Sandmann (sandmann AT clio DOT rice DOT edu) wrote: : > I'm in the process of writing my own VESA library. I have everything : > working, but right now it is calling the VESA window positioning function : > with _go32_dpmi_simulate_fcall. This works fine, except that my frame : > rate is abysmal. In 320x200, on a 486/33 I can blit something like 170 fps : > (w/o vertical synch on of course), since I don't have to do any paging. : > But in 640x480, my fps drops to about 12. Since I'm only copying 4.8 : > times as much data, the best I could expect would be 35 or so. Obviously, : > there is a very high amount of overhead in calling a dpmi function. Allocate a Real-mode callback. The simulate_fcall has to create a real-mode callback (including allocating dos-memory and copying essential code into it) for the function. If you use the allocate real-mode callback call (I can't remember the exact name, but it is in dpmi.h) the callback will already be allocated. Also try calling the page-switch routine in P-mode. This is fairly simple. Add the segment*16+offset and get the dos memory selector and call it (asm call is easiest). P-mode calling will not work on all computers however. Malcolm