#define PI 3.1415926535897932384626433832795028842 #define INVALID -99999 function clamp( byval n as double, lo as double, hi as double ) as double while n <= lo n += (hi - lo)/2 wend while n >= hi n += (lo - hi)/2 wend return n end function function anglenc( byval angle as double, byval source as string, byval targ as string ) as double source = ucase(source) targ = ucase(targ) select case source case "D": angle = clamp(angle, -360, 360) select case targ case "D": return angle case "G": return angle*10/9 case "M": return angle*160/9 case "R": return angle*PI/180 case "T": return angle/360 case else return INVALID end select case "G": angle = clamp(angle, -400, 400) select case targ case "D": return angle*9/10 case "G": return angle case "M": return angle*16 case "R": return angle*PI/200 case "T": return angle/400 case else return INVALID end select case "M": angle = clamp(angle, -6400, 6400) select case targ case "D": return angle*9/160 case "G": return angle/16 case "M": return angle case "R": return angle*PI/3200 case "T": return angle/6400 case else return INVALID end select case "R": angle = clamp(angle, -2*PI, 2*PI) select case targ case "D": return angle*180/PI case "G": return angle*200/PI case "M": return angle*3200/PI case "R": return angle case "T": return angle/(2*PI) case else return INVALID end select case "T": angle = clamp(angle, -1, 1) select case targ case "D": return angle*360 case "G": return angle*400 case "M": return angle*6400 case "R": return angle*2*PI case "T": return angle case else return INVALID end select case else: return INVALID end select end function function clip( st as string, num as uinteger ) as string if len(st)