You have a few problems with your code. I will elaborate after I am finished chewing you out for using 'goto'. Don't use goto, never ever ever. It is horrible practice and while it is as much fun as running with scisors, it is strangely dangerous.

Use subs or functions instead.
In your code I made a few changes, but your main problem is that 'steady#' is a float and when you do addition and subtraction on integers with floats, you will get strange results. In order to make them function properly, they must both be floats. Additionally your camera would not be placed exactly where you wanted, had camypos# not been a float.
Here is the functioning code example:
+ Code Snippetsync on
sync rate 60
steady#=0.25
Init:
Newgame=1
Make object plain 1,30000,30000
xrotate object 1,90
color object 1, rgb (20,255,10)
set object specular 1,50
camypos#=130
camzpos=-200
point camera 0,0,0
make object cube 2,100
do
` camera control
`Basic
if upkey()=1 and shiftkey()=0 then camzpos=camzpos+1
if downkey()=1 and shiftkey()=0 then camzpos=camzpos-1
if rightkey()=1 and shiftkey()=0 then camxpos=camxpos+1
if leftkey()=1 and shiftkey()=0 then camxpos=camxpos-1
`Zoom
if upkey()=1 and shiftkey()=1 then camypos#=camypos#-steady#
if downkey()=1 and shiftkey()=1 then camypos#=camypos#+steady#
`Rotate
if rightkey()=1 and shiftkey()=1 then yrotate camera camera angle y()+steady#
if leftkey()=1 and shiftkey()=1 then yrotate camera camera angle y()-steady#
position camera camxpos,camypos#,camzpos
sync
loop