Mail Archives: djgpp/1998/08/22/03:30:51
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.
- Raw text -