home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / FLIGHTSI / VLIEGTUI / PL_P1040 / FLTDIR2.TXT < prev    next >
Text File  |  1993-01-12  |  4KB  |  233 lines

  1. ; Fltdr2.txt by Art Rutty, 72550,2533
  2. ; A Keyboard program to control the FS4 Auto-pilot.
  3. ; Incorporating Charlie Gulick's T&AMOD and
  4. ; inspired by his Flypal program.
  5.  
  6. setvar(v,0)
  7. keywatch:
  8. if key("0")then
  9.         gosub altlock
  10.         endif
  11. if key("\")then
  12.         gosub climb100
  13.         endif
  14. if key("/")then
  15.         gosub dive100
  16.         endif
  17. if key("a")then
  18.         gosub aglread
  19.         endif
  20. if key("e")then
  21.         gosub headhold
  22.         endif
  23. if key("w")then
  24.         gosub turnleft
  25.         endif
  26. if key("r")then
  27.         gosub turnright
  28.         endif
  29. if key("`")then
  30.         gosub adftog
  31.         endif
  32. if key("8")then
  33.         gosub magvar
  34.         endif
  35. if key("7")then
  36.         gosub status
  37.         endif
  38. goto keywatch
  39.  
  40. altlock:
  41. movevar(altit_lock_var,altmsl)
  42. setvar(a,1)
  43. z := z ^ a
  44. movevar(altit_lock,z)
  45. if varmask(altit_lock,1)
  46. gosub lockon
  47. goto end
  48. endif
  49.  
  50. print "Altitude hold off!"
  51. wait(1)
  52. print ""
  53. setvar(altit_lock,0)
  54. end:
  55. return
  56.  
  57. lockon:
  58. if altitude(0,0)
  59. endif
  60. printvar(result,"Altitude hold at: ")
  61. wait(2)
  62. print""
  63. return
  64.  
  65. headhold:
  66. setvar(nav1_lock,0)
  67. setvar(d,1)
  68. x := x ^ d
  69. movevar(heading_lock,x)
  70.  
  71. if heading(0,0)
  72. endif
  73. y := result
  74. y := y + v
  75. setvar(e,182)
  76. y:= y * e
  77. movevar(head_lock_var,y)
  78.  
  79. if varmask(heading_lock,1)then
  80. if altagl(0,25)
  81. print "Heading Hold ON. . . Don't FORGET to tune in Magnetic Variation!"
  82. wait(1)
  83. print ""
  84. return
  85. endif
  86. print "Heading Lock ON. . ."
  87. return
  88. endif
  89.  
  90. setvar(f,0)
  91. movevar(heading_lock,f)
  92. print "Heading Lock OFF. . ."
  93. wait(1)
  94. print ""
  95. return
  96.  
  97. climb100:
  98. setvar(b,0)
  99. climb1002:
  100. addvar(b,100)
  101. addvar(altit_lock_var,30)
  102. printvar(b,"Climbing ")
  103. wait(2)
  104. if key("'")then
  105.         print "Locking on new altitude"
  106.         return
  107.         endif
  108. goto climb1002
  109.  
  110. dive100:
  111. setvar(c,0)
  112. dive1002:
  113. addvar(c,100)
  114. addvar(altit_lock_var,-30)
  115. printvar(c,"Decending ")
  116. wait(2)
  117. if key("'")then
  118.         print "Locking on new altitude"
  119.         return
  120.         endif
  121. goto dive1002
  122.  
  123. turnleft:
  124. setvar(j,0)
  125. turnleft2:
  126. addvar(j,-1)
  127. printvar(j,"Turning left ")
  128. wait(1)
  129. addvar(head_lock_var,-182)
  130. if key("x")then
  131.         print "Locking on new course"
  132.         return
  133.         endif
  134. goto turnleft2
  135.  
  136. turnright:
  137. setvar(k,0)
  138. turnright2:
  139. addvar(k,1)
  140. printvar(k,"Turning right: ")
  141. wait(1)
  142. addvar(head_lock_var,182)
  143. if key("x")then
  144.         print "Locking on new course"
  145.         return
  146.         endif
  147. goto turnright2
  148.  
  149. status:
  150. print "Checking Flight Director status. . . "
  151. if varmask(altit_lock,1)
  152.         gosub altstat
  153. endif
  154. if varmask(heading_lock,1)
  155.         gosub headstat
  156. endif
  157. printvar(v,"Magnetic Variation: ")
  158. wait(1)
  159. print "Status check done. . ."
  160. wait(1)
  161. print ""
  162. return
  163.  
  164. altstat:
  165. setvar(g,100)
  166. setvar(m,328)
  167. w := altit_lock_var * m / g
  168. printvar(w,"Altitude locked at: ")
  169. wait(1)
  170. return
  171.  
  172. headstat:
  173. print "Course Lock set ON"
  174. wait(1)
  175. return
  176.  
  177. adftog:
  178. setvar(h,1)
  179. adf_flag := adf_flag ^ h
  180. print "Now press <esc> . . ."
  181. wait(1)
  182. print ""
  183. return
  184.  
  185. aglread:
  186. if altagl(0,0)
  187. endif
  188. printvar(result,"AGL: ")
  189. if key("a")then
  190.         print ""
  191.         return
  192.         endif
  193. goto aglread
  194.  
  195. magvar:
  196. setvar(p,1)
  197. setvar(n,-1)
  198. magvar2:
  199. print "Press: 9 for positive var. . . 7 for negative var. . . 8 to stop or end"
  200. wait(1)
  201. if key("9")then
  202.         gosub pos
  203.         endif
  204. if key("7")then
  205.         gosub neg
  206.         endif
  207. if key("8")then
  208.         print ""
  209.         return
  210.         endif
  211. printvar(v,"Magnetic Variation: ")
  212. wait(1)
  213. goto magvar2
  214.  
  215. pos:
  216.         v := v + p
  217.         printvar(v,"Magnetic Variation: ")
  218.         wait(1)
  219. if key("8")then
  220.         return
  221.         endif
  222. goto pos
  223.  
  224. neg:
  225.         v := v + n
  226.         printvar(v,"Magnetic Variation: ")
  227.         wait(1)
  228. if key("8")then
  229.         return
  230.         endif
  231. goto neg
  232.  
  233.