; mov [Z],ax
; Rotate around z-axis
; XT = X * COS(zang) - Y * SIN(zang) / 256
; YT = X * SIN(zang) + Y * COS(zang) / 256
; X = XT
; Y = YT
mov ax,[X]
mov bx,[ZCos]
imul bx ; ax = X * Cos(zang)
mov bp,ax
mov ax,[Y]
mov bx,[ZSin]
imul bx ; ax = Y * Sin(zang)
sub bp,ax ; bp = X * Cos(zang) - Y * Sin(zang)
sar bp,8 ; bp = X * Cos(zang) - Y * Sin(zang) / 256
mov [Xt],bp
mov ax,[X]
mov bx,[ZSin]
imul bx ; ax = X * Sin(zang)
mov bp,ax
mov ax,[Y]
mov bx,[ZCos]
imul bx ; ax = Y * Cos(zang)
add bp,ax ; bp = X * SIN(zang) + Y * COS(zang)
sar bp,8 ; bp = X * SIN(zang) + Y * COS(zang) / 256
mov [Yt],bp
mov ax,[Xt] ; Switch values
mov [X],ax
mov ax,[Yt]
mov [Y],ax
ret
ENDP RotatePoint
PROC ShowPoint
; Calculates screenposition and
; plots the point on the screen
mov ax,[Xoff] ; Xoff*X / Z+Zoff = screen x
mo