Re: Screen Memory
- Posted by Graeme <graemeburke at CROSSWINDS.NET> Dec 20, 2000
- 648 views
At 05:52 PM 20/12/00 +1030, you wrote: >Hello All > >Where is the screen memory for SVGA graphics modes? >I am writing a program that mem_copy()s a chunk of data to the pixel [snip] >This worked fine in mode 19. It covered the whole screen with random colored >pixels. If I change the graphics mode to 257 it also worked ok, but only >covered the top part of the screen. >If someone could tell >me where the rest of the screen is stored, it would be helpful. The short answer is its all in the same place. svga can only access a limited section of memory so it does a sort of a time share arrangement. The hi res screen is split up into 'banks', each covering a band of the screen. You first select the bank you want then write the data for that section of the screen, then select the next bank and write the data for that part of the screen to the same address you wrote the first lot....etc So when you were in mode 257 you were only accessing bank 0 which would be the top part of the screen. The bank switching and other neat tricks can be achieved by dos interrupt calls. Check out svga.e by Pete Eberlein in the archive for an example of this. I posted a display_image routine on the list a year or so ago that used this method along with Michael Bolin's fast ML mem_copy routines to get some reasonably quick results. Mail me privately if you get stuck and I'll try to help. Graeme. ----------------------------------------------------