I'm not entirely sure if this is what you want, but simple camera functionality should be something like:
do
rotate camera 0, camera angle x(0)+mousemovey(), camera angle y(0)+mousemovex(), 0
loop
to make the camera look directly left, or directly right, use:
yrotate camera 0, camera angle y(0)+90
or -90 to look in the other direction.
I'm really sorry if this isn't what you menat, if it isn't could you explain it better? However, in any case, I believe the problem to your camera "springing back to where it was" is that the rotation commands are global, so if you want to increase the angle of something you must add it to it's current angle.
ex: if an object is currently rotated 50degrees, and I want to rotate it an additional 15 then you would do something like:
yrotate object num, (50+15)
Hope this helps you at all.
The right man in the wrong place can make all the difference in the world. -- GMan