Here's an example that doesn't quite work. It seems fine for a short while, but then fails miserably.
SETSCREEN 640,480,0
// Create character sprite
CREATESCREEN 1,50,32,32
USESCREEN 1
DRAWRECT 0,0,32,32,RGB(255,255,255)
// Create virtual screen
CREATESCREEN 2,100,640,480
LOCAL x%=320, y%=400, dir%=0
WHILE TRUE
USESCREEN 2
DRAWRECT 0,0,640,480,RGB(0,0,128)
DRAWSPRITE 50,x,y
// Move char
IF dir=0 THEN INC x,2
IF dir=1 THEN DEC x,2
// Limit char
IF x>608 AND dir=0 THEN dir=1
IF x<0 AND dir=1 THEN dir=0
USESCREEN -1
STARTPOLY 100
POLYVECTOR 540,0, 640,0
POLYVECTOR 100,0, 0,0
POLYVECTOR 0,480, 0,480
POLYVECTOR 640,480, 640,480
ENDPOLY
SHOWSCREEN
WEND