Here is a real iso camera:
sync on
sync rate 0
autocam off
`make dummy scene
obj=10
for x=0 to 10
for z=0 to 10
yy=rnd(4)+1
for y=0 to yy
make object cube obj,1
position object obj,x,y,z
inc obj,1
next y
next z
next x
m = new Matrix4()
camx#=5 : camy#=5 : camz#=5
zoom#=10
yang#=45
do
`setup iso camera
setCameraToOrtho(0, m,-zoom#,zoom#, -zoom#,zoom#, 1,3000)
inc zoom#,mousemovez()/1000.0
inc yang#,rightkey()-leftkey()
position camera camx#,camy#,camz#
rotate camera 30,yang#,0
move camera -100
sync
loop
Function setCameraToOrtho(cam, matrix, left As Float,right As Float, bottom As Float,top As Float, near As Float,far As Float)
d1# = 2.0/(right-left)
d2# = 2.0/(top-bottom)
d3# = 1.0/(far-near)
c1# = - (right+left)/(right-left)
c2# = - (top+bottom)/(top-bottom)
c3# = - (near)/(far-near)
set matrix4 matrix, d1#,0,0,0, 0,d2#,0,0, 0,0,d3#,0, c1#,c2#,c3#,1
APPLY PROJECTION MATRIX4 matrix, cam
EndFunction m