I've made a better demo to prove what i mean. Press the spacekey to change between what darkbasic says its doing and what it seems like its doing.
sync on : sync rate 0 : cls
make object plain 4,10,10
make object box 1,1,14,1
color object 1,rgb(255,0,0)
make object box 2,14,1,1
color object 2,rgb(0,255,0)
make object box 3,1,1,14
color object 3,rgb(0,0,255)
do
text 0,0,"Red is the Y Axis"
text 0,20,"Green is the X Axis"
text 0,40,"Blue is the Z Axis"
if step=0 or step=5 then center text 320,0,"Rotation on Y Axis"
if step=1 or step=4 then center text 320,0,"Rotating on X Axis"
if Step=2 or step=3 then center text 320,0,"Rotating on Z Axis"
if type=0 then center text 320,20,"What Dark Basic IS doing."
if type=1 then center text 320,20,"What Dark Basic SEEMS like its doing."
if keyed=0
if spacekey()=1
if type=0
type=1
else
type=0
endif
keyed=1
endif
else
if spacekey()=0 then keyed=0
endif
if type=0
if step=0
for o=1 to 4
rotate object o,0,angle,0
next o
if angle=90
step=1
angle=0
endif
endif
if step=1
for o=1 to 4
rotate object o,angle,90,0
next o
if angle=90
step=2
angle=0
endif
endif
if step=2
for o=1 to 4
rotate object o,90,90,angle
next o
if angle=90
step=3
endif
endif
if step=3
for o=1 to 4
rotate object o,90,90,angle
next o
if angle=0
step=4
angle=90
endif
endif
if step=4
for o=1 to 4
rotate object o,angle,90,0
next o
if angle=0
step=5
angle=90
endif
endif
if step=5
for o=1 to 4
rotate object o,0,angle,0
next o
if angle=0
step=0
endif
endif
if step<3
angle=wrapvalue(angle+1)
else
angle=wrapvalue(angle-1)
endif
else
if step=0
rotate object 1,0,angle,0
for o=3 to 4
rotate object o,0,angle,0
next o
if angle=90
step=1
angle=0
endif
endif
if step=1
rotate object 1,angle,90,0
rotate object 2,angle,0,0
for o=3 to 4
rotate object o,angle,90,0
next o
if angle=90
step=2
angle=0
endif
endif
if step=2
rotate object 1,90,90,angle
rotate object 2,90,0,0
for o=3 to 4
rotate object o,90,90,angle
next o
if angle=90
step=3
endif
endif
if step=3
rotate object 1,90,90,angle
rotate object 2,90,0,0
for o=3 to 4
rotate object o,90,90,angle
next o
if angle=0
step=4
angle=90
endif
endif
if step=4
rotate object 1,angle,90,0
rotate object 2,angle,0,0
for o=3 to 4
rotate object o,angle,90,0
next o
if angle=0
step=5
angle=90
endif
endif
if step=5
rotate object 1,0,angle,0
for o=3 to 4
rotate object o,0,angle,0
next o
if angle=0
step=0
endif
endif
if step<3
angle=wrapvalue(angle+1)
else
angle=wrapvalue(angle-1)
endif
endif
if keystate(17)=1 then move camera .1
if keystate(31)=1 then move camera -.1
mmx#=wrapvalue(mmx#+mousemovex())
mmy#=wrapvalue(mmy#+mousemovey())
rotate camera mmy#,mmx#,0
sync
loop