Thanks for the input guys, I'll test out the code soon and see how I go. Weekend and all here.. ;P
I think once I understand how to read the memory (memcpy) and how to store it via a pointer/variable, then copy it back when I need it, it will make things a fair lot easier on me.
As for the partial screen refreshing via a scanline loop for memcpy, it seems simple enough I guess. But knowing me, I will have problems

hehe.
Something like this?...
Dim SCANLINEX as UINTEGER
For SCANLINEX=400 to YRES-100
'some memcpy command in here to re-blit whats stored in memory?
memcpy....? etc etc
NextSo if my screen res is 800x600, then it would only refresh scanlines 400-500 of the screen right?
More learning

*EDIT.
Well I had a quick play with memcpy as you suggested Jim... and again much thanks...
I removed the line...
MEMSET(@BUFFER(800*390),&h808080,800*840)and replaced it with...
MEMCPY(@BUFFER(0),STORE,XRES*YRES*4)I then added before my loop, just after the drawing of the background to this...
BGDRAWIMAGEDATA(0,0)
STORE = MALLOC(XRES*YRES*4)
MEMCPY(STORE,@BUFFER(0),XRES*YRES*4)
And well..... thats exactly what my intentions were. Much thanks guys. It now has the proper background at full 800x600 res and the scroller is nice and smooth.
Windowed screen is now ~120fps, which is a big difference from the ~41fps I was originally getting.
Fullscreen mode is now nice and vsync'ed to 60fps and without vsync is... ~160fps, but its all jerky/split screen updates, so I'll stick to have it fullscreen and vsync'ed.
I'm slowly understanding how to throw things into memory and then retrieve them when needed. Lots more to read + learn.
I wouldn't mind attempting this with a bitmap font also... e.g before the loop starts, cut the font up into the required X by Y chunks for each character, and store each letter as itself into memory as such, then instead of re reading from the loop each time, just pull it from memory.... I'll attempt that later I think.

*EDIT..
a question....
If I were to turn off vsync and use delta timing... is there a command that I can use to read in the current refresh rate of the users screen? so I can use that number against my delta timing, so not just the scroller is smooth, but the entire demo (If I were to add in other effects, etc)
eg.. if my delta timing is at...
DV=(TIMER-OLDTIME)*250What I'd like to do is get the current refresh rate of the screen... lets say its 60hz..... so that'd be 60/250 = .24, so I could then infact set my scroller to that speed with...
DOSCROLLER(.24)I just tested my theory... and it works, but vsync is much much nicer tho... again, just a thought
