FUNCTION "RtoI_Dec" : VOID
TITLE =
VERSION : 0.1


VAR_INPUT
  RealIn : REAL ;	
  Dec : INT ;	
END_VAR
VAR_OUTPUT
  IntOut : INT ;	
END_VAR
VAR_TEMP
  i : INT ;	
  MulVal : REAL ;	
  TempReal : REAL ;	
END_VAR
BEGIN
NETWORK
TITLE =

      SET   ; 
      SAVE  ; 

      L     #RealIn; //Read Input
      T     #TempReal; // Save In Storage Area
      L     #Dec; // # Decimal Places To Move  
      ITD   ; // Make Into A Double For Comparison
      L     0; // Add Zero
      +D    ; // To Setup Compare For Jumps
      JP    Rt; // Set Multiplier For Move Right 
      JM    Lft; // Set Multiplier For Move Left
      JZ    Cvt; // Skip Move, Jump To Convert

Lft:  L     -1; // Multiply Places By -1
      *D    ; // To Make Positive Value
      T     #i; // Store Places To Move
      L     1.000000e-001; // Multiply By 0.1 (Move Left)
      T     #MulVal; // Save Multiplier  
      L     #i; // Return Places Needed To Move (Counter)
      JU    L1; // Start Move

Rt:   L     1.000000e+001; // Default Multiply By 10 (Move Right)
      T     #MulVal; // Save Multiplier
      L     #Dec; 

L1:   T     #i; // Save As Loop Count   
      L     #TempReal; // Real Value To Make INT    
      L     #MulVal; // Multiply To Move Decimal 1 Place
      *R    ; 
      T     #TempReal; // Save New Value
      L     #i; // Load Loop Count
      LOOP  L1; // Loop                       

Cvt:  L     #TempReal; // Load Final Answer
      RND   ; // Convert to INT
      T     #IntOut; // Thank you bye

      SAVE  ; 
      BEC   ; 
END_FUNCTION

