ScreenSet

Sets current work and visible pages

Syntax
	KeyPgDeclareDeclare KeyPgSubSub ScreenSet ( KeyPgByvalByVal work_page KeyPgAsAs KeyPgLongLong = -1, KeyPgByvalByVal visible_page 
	KeyPgAsAs KeyPgLongLong = -1 )

Usage
	ScreenSet [ work_page ] [, visible_page ]

Parameters
	work_page
		index to working page
	visible_page
		index to visible page

Description
	ScreenSet allows to set the current working page and the current visible 
	page. Page numbers range from 0 to num_pages - 1, where num_pages is the 
	number of pages specified when setting the graphics mode with KeyPgScreenresScreenRes 
	or KeyPgScreengraphicsScreen (Graphics).  You can use this function to achieve 
	page-flipping or double-buffering.

	If you provide visible_page but omit work_page, only the visible page is 
	changed. If you provide work_page but omit visible_page, only the work 
	page is changed. If you omit both arguments, both work page and visible 
	page are reset to page 0.

	ScreenSet provides one method of writing to the screen without instantly 
	displaying changes to the user.  See also KeyPgScreenlockScreenLock / KeyPgScreenunlockScreenUnlock for 
	an alternative method of doing this.

	Note: The current cursor position is not handled independently for each 
	video page. Therefore, when another working page is selected, the 
	starting cursor position corresponds to the last cursor position on the 
	previous working page (same behavior for the text cursor and the 
	graphics cursor).

Example
	' Open graphics screen (320*200, 8bpp) with 2 pages
	ScreenRes 320, 200, 8, 2

	' Work on page 1 while displaying page 0
	ScreenSet 1, 0

	Dim As Integer x = -40

	Do
	   '' Clear the screen, draw a box, update x
	   Cls
	   Line (x, 80)-Step(39, 39), 4, BF
	   x += 1: If (x > 319) Then x = -40
	   
	   ' Wait for vertical sync: only used to control refresh rate, can be put anywhere in the Do loop
	   ScreenSync
	   
	   ' Copy work page to visible page
	   ScreenCopy
	   
	Loop While Inkey = ""

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Screenset.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgScreengraphicsScreen (Graphics)
	* KeyPgScreenresScreenRes
	* KeyPgScreencopyScreenCopy
	* KeyPgScreenlockScreenLock
	* KeyPgScreenunlockScreenUnlock

