All pastes #762630 Raw Edit

Mine

public text v1 · immutable
·published 2007-11-05 20:13 UTC
rendered paste body
  fldpi ; Load pi into st(0).
  pushd 180
  fild DWORD PTR [esp] ; Load 180 into st(0).  Pi is now st(1).
  fdiv ; Divide pi by 180, store result in st(0).
  fld oldFovValue ; Load the old FOV into st(0).  Move the divided result into st(1).
  fmul ; Multiply the old FOV value by st(1) and store it in st(0).
  pushd 2
  fild DWORD PTR [esp] ; Load 2 into st(0). Multiplied result is now st(1).
  fdiv ; Divide the multiplied result by 2 and store it in st(0).
  fptan ; Calculate the tangent of st(0).  Store 1 in st(0) and the calculated angle in st(1).
  fstp st ; Pop 1 off of the stack.
  fild aspect1 ; Load the source LCM aspect height.
  fild aspect2 ; Load the destination LCM aspect height.
  fdiv ; Divide aspect 1 by aspect 2.
  fmul ; Multiply by the calculated tangent.
  fld1 ; Load 1 on to the stack.
  fpatan ; Calculate the inverse tangent.
  pushd 2
  fild DWORD PTR [esp] ; Load 2 on to the stack.
  fmul ; Multiply the inverse tangent by 2.
  pushd 180
  fild DWORD PTR [esp] ; Load 180 on to the stack.
  fldpi ; Load pi on to the stack.
  fdiv ; Divide 180 by pi.
  fmul ; Multiply by the inverse tangent(*2).
  fstp newFovValue ; Store st(0).