Message-ID: <35DE71D3.78AEC80E@geocities.com> From: Merlin MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: VESA: hints, clue but no examples References: <1998081519323200 DOT PAA25189 AT ladder01 DOT news DOT aol DOT com> <35D66C0C DOT 8D8F94C8 AT geocities DOT com> <35D70CC1 DOT BCA4F4EF AT unb DOT ca> <35D93933 DOT 40CF1D5 AT geocities DOT com> <35D98CF1 DOT F906723E AT unb DOT ca> <35DA8319 DOT B27A2AD8 AT geocities DOT com> <35DB1276 DOT 7EEBF3D AT unb DOT ca> <35DBD016 DOT EE071EAD AT geocities DOT com> <35DDBEA7 DOT 7E5FD60F AT unb DOT ca> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 59 Date: Sat, 22 Aug 1998 07:26:54 GMT NNTP-Posting-Host: 210-cy-wpg.ilos.net NNTP-Posting-Date: Sat, 22 Aug 1998 02:26:54 CDT Organization: MBnet Networking Inc. To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Endlisnis wrote: > Merlin wrote: > > > Endlisnis wrote: > > > > > Merlin wrote: > > > > > > > banks switch every 64k right? > > > Again, not nessecarily. Some cards (Cirrus Logic) use 4k granularity of their 64k pages. > > wouldn't that make it extriemly slow compared with other vga cards? since you'd have to change > > banks to often.... > > No, in fact, it ends up being faster in many cases, and never any slower. Bank's are still 64k > in size, they just start every 4k, that means that for any location in video ram (beyond 64k) there > are 16-different ways to address that point. How this would be usefull:If you want to draw (or blit) > a horizontal line to the screen, with 64k granularity, you must ensure that your blit does not span 2 > different banks. If it does, you must do a bank-switch during your write. > If you had 4k granularity, then you could just use the bank that starts closest to the beginning of > your line, then you could be assured (as long as the resolution is less than 65535xY) that it will > only occupy one bank, and only 1 bank switch to get to the start of the line. ooohhhhh..... ok.. i c now.... > > > This is especially important in protected mode because switching banks requires changing to > real-mode. ouch...using __dpmi_int int the middle of drawing something that needed to be fast would be a killer... > > > > > And if you want your programs to work under NT, then don't use '__djgpp_nearptr_enable()', > > > instead make your own seletors. It makes pixel-setting much slower, but blits work just as > > > fast. > > really?? what is it about __djgpp_nearptr_enable() that screws up NT? > > guess i'll have to learn how to make a selector then... oh well.. > > The near pointer functions set the limit of a selector to a very high value. NT sees this as a > possible crashing program and does not allow it. If NT did allow it, then it would be easier to make > it (NT) crash. yes... i read it in the faq (thanks...i should've checked there first)..i wonder how high a value NT's dpmi server does allow?.... and if it was still a reasonably large number...couldn't __djgpp_nearptr_enable() be modified to use that number...and still achieve much the same effect? ... anyway...i've got a question about selectors...well, perhaps a couple... i'd have to use _farpokeb do access the .....selected memory right?...or movedata(..) to copy a buffer? ... what exactly is: _my_ds()? i know it's a selector and i know (to some degree..i don;t quite know how to make one yet...soon though..) what a selector is... but...what is _my_ds()? l8r, Merlin.