The problem is that you are calling the _vScroller subroutine and returning from it before the DO - LOOP fully executes. Try this:
Rem Level screen
set display mode 1024, 512, 0
sync rate 0
sync on
hide mouse
load bitmap "Futurecity.png",1
create bitmap 2,1024,512
set current bitmap 1
for i=1 to 1024
get image i,i-1,0,i,512
next i
set text opaque
ink rgb(255,255,255),0
dim x(1024)
for a=1 to 1024
x(a)=a
next a
do
set current bitmap 2
for i=1 to 1024
paste image x(i),i,0
oldy=x(i)
inc oldy
if oldy>1024 then oldy=1
x(i)=oldy
next i
text 0,0,str$(screen fps())
copy bitmap 2,0
set current bitmap 0
sync
loop
I must say that I have never seen scrolling done like that before, but it does indeed work. It actually runs at 316 FPS on my rig.
So many games to code.....so little time.