Hi Donald,
In your previous question, i demonstrated how to do a wipe using DBC commands. What you are talking about above, isn't much different. You can actually use images to pull this off.
Though the code doesn't actually scroll one of the screens like a window shade (i'll let you figure out that detail) , it does create an image out of bitmap 2 and then rotate it around the main grid of bitmap 0. Bitmap 0 is replaced by bitmap 1 each iteration so the swirling image never seems to overwrite the grid.
rem a simple screen on screen example
rem by latch
rem 1/28/2019
autocam off
set display mode 1024,768,32
sync on
sync rate 0
hide mouse
randomize timer()
rem first make some squares in a grid pattern
sw=screen width()
sh=screen height()
rem if we divide our screen by 3, we can figure out the positions of each
rem square
xacross = (sw/3)-1
ydown = (sh/3)-1
rem for the demo, we're only interested in square 9
rem but we'll store all of the screen coordinates for the whole
rem grid
dim sq(9,4) : rem store x and y coordinates in sq(n,n)
x=0
y=0
for n=1 to 9
sq(n,1)=x * xacross
sq(n,2)=y * ydown
sq(n,3)=sq(n,1) + xacross
sq(n,4)=sq(n,2) + ydown
ink rgb(rnd(255),rnd(255),rnd(255)),0
box sq(n,1),sq(n,2),sq(n,3),sq(n,4)
inc x
if x=3
inc y
x=0
endif
next n
sync
rem Ok, we've made our screen, copy it to another bitmap in the background
create bitmap 1,sw,sh
copy bitmap 0,1
rem we're gonna create another bitmap in the background maybe to use some transitional effects
create bitmap 2,sw,sh
set current bitmap 2
rem draw some bluish spheres on bitmap 2
cls 0
cinc#=255/63
for r=0 to 63
ink rgb(0,255-(r*cinc#),255-(r*cinc#)),0
circle 64,64,r
circle 64,63,r
next r
get image 2,0,0,128,128
sync
for x=0 to sw step 128
for y=0 to sh step 128
paste image 2,x,y,1
next y
next x
sync
rem ask for keypress
set current bitmap 0
ink rgb(255,255,255),0
text 0,0,"press enter to do wipe"
sync
wait key
rem let's rotate the image from bitmap 2 around the main viewing screen using circle math
set current bitmap 2
get image 2,0,0,sw,sh,1
sync
set current bitmap 0
rem we'll get the center of the screen in case we want to use it for an effect or offset
cx=sw/2
cy=sh/2
rem the radius for our circle. I could use two radii in which case we could make a elliptical orbit, but we'll just do a circle
r=cx
repeat
rem update the main screen by copying bitmap 1 to bitmap 0 - we do this so that the rotating image never overwrites the main view
copy bitmap 1,0
rem change the angle for the rotation
inc ang
if ang>=360 then ang=0
x=r*cos(ang)
y=r*sin(ang)
paste image 2,x,y,1
sync
until scancode() <> 0
Enjoy your day.