home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / IFRSIM.DSK / VFR.bas < prev    next >
BASIC Source File  |  2014-09-09  |  4KB  |  139 lines

  1. 5  REM        COPYRIGHT 1982
  2. 6  REM      BY VERNON BROWN AND
  3. 7  REM    PROGRAMAMERS SOFTWARE
  4. 9  REM      VERSION 821121
  5. 10  REM  ***********************
  6. 11  REM  *  VISUAL PRACTICE    *
  7. 12  REM  *   FLIGHT PROGRAM    *
  8. 13  REM  *                     *
  9. 14  REM  *   BUILT FROM SEED   *
  10. 15  REM  * IFR SITUATIONS FOR  *
  11. 16  REM  * PROGRAMMERS FLIGHT  *
  12. 17  REM  *     SIMULATOR       *
  13. 18  REM  ***********************
  14. 19  REM 
  15. 20 S = 100:S1 = 0:UP = 24579
  16. 70 ST = 24576:O1 = ST +56:O2 = ST +58:I1 = ST +60:I2 = ST +61:MA = ST +12:X1 = ST +26:Y1 = ST +28:AL = ST +87
  17. 120 SH = ST +09:PL = ST +06:LI = ST +15:XY = ST +18:DF = ST +39:CH = ST +93:WS = ST +42:WW = ST +43:WN = ST +44:WE = ST +45
  18. 170  REM 
  19. 220  REM  PX=PICTURE OFFSET
  20. 221  REM  XL=POINTER LOW BYTE
  21. 222  REM  XH=POINTER HIGH BYTE
  22. 223  REM  XX=DOIT FLAG
  23. 270  REM 
  24. 320 PX = 27388:XL = 27389:XH = 27390:XX = 27391: POKE PX,00: POKE XL,00: POKE XH,72: POKE XX,00
  25. 370  REM 
  26. 380  PRINT  CHR$(4);"BLOAD VIS.O"
  27. 420  REM 
  28. 430  POKE XX,01
  29. 470 XC = 100:YC = 100:XF = 100:YF = 100:TX = 100:TY = 100
  30. 520  TEXT : GOSUB 5570
  31. 570 MT = 15:GAS = 0:MI = 0:SE = 0:S1 = 0
  32. 620  REM 
  33. 670  REM   SET UP WIND DRIFT
  34. 720  REM 
  35. 770  POKE WN,0: POKE WE,0: POKE WS,0: POKE WW,0
  36. 820 A% =  RND(1) *4:B% =  RND(1) *50
  37. 870  ON A% GOTO 920,970,1020,1070
  38. 920  POKE WN,B%: GOTO 1120
  39. 970  POKE WE,B%: GOTO 1120
  40. 1020  POKE WS,B%: GOTO 1120
  41. 1070  POKE WW,B%: GOTO 1120
  42. 1120  CALL ST
  43. 1170  POKE O1,32: POKE O2,32: POKE I1,48: POKE I2,48
  44. 1220  REM 
  45. 1270  REM 
  46. 1320  REM  OMNI MESSAGE AND
  47. 1370  REM  STARTING X Y CORD
  48. 1420  REM 
  49. 1470  VTAB 22: REM   OMNI MESSAGE
  50. 1520  POKE X1,90: POKE Y1,90
  51. 1570  REM 
  52. 1620  REM  STARTING ALTITUDE
  53. 1670  REM 
  54. 1720  POKE AL,16: POKE AL -3,32:MA% = 7
  55. 1770  REM 
  56. 1820  REM 
  57. 1870  CALL UP
  58. 1920 S1 = S1 +1: IF S1 >S  THEN 2170
  59. 1970  GOTO 1870
  60. 2020  REM  
  61. 2070  REM    UPDATE THE CLOCK
  62. 2120  REM  
  63. 2170 S1 = 0:SE = SE +1: IF SE <60  THEN 2320
  64. 2220 SE = 0:MI = MI +1:GA = GA +1: IF GA = MT  THEN 4870
  65. 2270  CALL UP
  66. 2320  HTAB 1: VTAB 24: PRINT HO;":";MI;":";SE;"     ";: CALL UP
  67. 2370  REM 
  68. 2420  REM    MOVE THE PICTURE
  69. 2470  REM 
  70. 2520  REM 
  71. 2570  REM   DO THE ADF AND OMNI
  72. 2620  REM 
  73. 2670 X =  PEEK(X1):Y =  PEEK(Y1)
  74. 2720 IX = XF -X:IY = YF -Y:DY = X -Y:DX = XC -X
  75. 2770 MV% = (TX -X) *4: IF MV% < -20  OR MV% >20  THEN MV% = 40
  76. 2820  IF MV% <0  THEN MV% = 80 +MV%
  77. 2870  IF TY -Y < -20  OR TY -Y >20  THEN MV% = 40
  78. 2920  REM 
  79. 2970  REM  DO THE ADF
  80. 3020  REM 
  81. 3070  CALL UP
  82. 3120  IF IX = 0  THEN 3220
  83. 3170 IT = IY/IX
  84. 3220 T1 =  ATN(IT)
  85. 3270 T1% = 16 -10 *T1
  86. 3320  IF X >XF  THEN PF% = (176 -T1%) - PEEK(CH)
  87. 3370  IF X <XF  THEN PF% = (208 -T1%) - PEEK(CH)
  88. 3420  IF PF% >64  THEN PF% = PF% -64: GOTO 3420
  89. 3470  POKE DF,PF%
  90. 3520  REM 
  91. 3570  REM   DO THE OMNI
  92. 3620  REM 
  93. 3670  CALL UP
  94. 3720  IF DY < -5  THEN DY =  -6
  95. 3770  IF DY >5  THEN DY = 6
  96. 3820  IF DX < -5  THEN DX =  -6
  97. 3870  IF DX >5  THEN DX = 6
  98. 3920  IF DI >5  THEN DI = 6
  99. 3970  IF DI < -5  THEN DI =  -6
  100. 4020  POKE O1,32 -DX: POKE I1,48
  101. 4070  POKE O2,32 -DX: POKE I2,48
  102. 4120  REM 
  103. 4170  REM   DO THE GLIDE SLOPE
  104. 4220  REM 
  105. 4270  CALL UP
  106. 4320  IF  PEEK(ALT) <MA%  THEN 4870
  107. 4370 SL = X -66:DI =  PEEK(ALT) *70 -SL
  108. 4420  IF DI >5  THEN DI = 6
  109. 4470  IF DI < -5  THEN DI =  -6
  110. 4520  IF SL >40  THEN 4670
  111. 4570  IF SL < -10  THEN 4670
  112. 4620  POKE I2,48
  113. 4670  IF  PEEK(AL) >MA%  THEN 1870
  114. 4720  REM 
  115. 4770  REM   DO THE AIRPORT
  116. 4820  REM 
  117. 4870  POKE PX,MV%: POKE XX,00: CALL UP: CALL UP: POKE XX,01: FOR I = 1 TO 391: CALL UP: NEXT : PRINT : PRINT "PUSH ANY KEY TO CONTINUE"
  118. 4880  POKE XX,00
  119. 4920  GET A$
  120. 4970  REM    FIRST THE FLIGHT PATH
  121. 5020  HGR : HCOLOR= 3: CALL 24588
  122. 5030  HPLOT 90,100: HPLOT  TO 100,100
  123. 5040  HPLOT 95,100: HPLOT  TO 95,105
  124. 5070  REM     
  125. 5120  REM    THEN THE NAV TRACK
  126. 5170  REM 
  127. 5220  FOR X = 105 TO 250  STEP 4
  128. 5230 Y = 50 +X/2: HPLOT X,Y
  129. 5240  NEXT 
  130. 5270  HOME : VTAB 23: PRINT "PUSH RETURN TO FLY THIS AGAIN": PRINT "ANY OTHER KEY WILL GO BACK TO MENU": GET A$
  131. 5320  IF  ASC(A$) = 13  THEN 520
  132. 5370  PRINT  CHR$(4)
  133. 5380  PRINT  CHR$(4);"BLOAD IFR.O"
  134. 5420  PRINT  CHR$(4);"RUN MENU"
  135. 5470  END 
  136. 5520  REM 
  137. 5570  TEXT : HOME : PRINT "YOU ARE CLEARED"
  138. 5580  PRINT : PRINT "FOR THE CONWAY NDB APPROACH": PRINT : PRINT "VOR IS SET TO LIT 328 DEGREES FROM"
  139. 5620  PRINT : PRINT "HIT ANY KEY WHEN READY TO FLY": GET A$: HOME : RETURN