home *** CD-ROM | disk | FTP | other *** search
/ World of Ham Radio 1997 / WOHR97_AmSoft_(1997-02-01).iso / basic / parabola.bas < prev    next >
BASIC Source File  |  1997-02-01  |  6KB  |  200 lines

  1. 10 ' PARABOLIC ANTENNA DESIGN PROGRAM
  2. 20 ' INCLUDES CALCULATION OF ANTENNA GAIN AND BEAMWIDTH
  3. 30 ' THE PICTORIAL DEFINITION OF TERMINOLOGY REQUIRES GRAPHICS CARD.
  4. 40 '
  5. 50 'AUTHOR:  ALAN CHRISTIAN     WA6YOB        SACRAMENTO,CA
  6. 60 'VERSION: 1.0
  7. 70 'DATE:    AUGUST 11,1984
  8. 80 '
  9. 90 ' THIS PROGRAM IS DISTRIBUTED FREE OF CHARGE VIA RBBS TO ANYONE
  10. 100 ' WHO WANTS TO USE IT.  IT MAY BE FREELY COPIED BUT MAY NOT BE
  11. 110 ' SOLD.  THE AUTHOR ASSUMES NO LIABILITY FOR THE FITNESS OF THIS
  12. 120 ' PROGRAM FOR ANY PURPOSE AND IS NOT LIABLE FOR DAMAGES OF ANY
  13. 130 ' SORT RESULTING FROM THE USE OF THIS PROGRAM.
  14. 140 '
  15. 150 ' THIS PROGRAM SHOULD BE DISTRIBUTED IN ITS ORIGINAL FORM.  ANY
  16. 160 ' REVISIONS SHOULD BE APPENDED OR CONTAINED IN A SEPARATE FILE.
  17. 170 '
  18. 180 ' ***** INTRODUCTION AND INSTRUCTIONS *****
  19. 190 CLS
  20. 200 SCREEN 0,0,0,0
  21. 210 COLOR 7,0,0
  22. 220 GOSUB 1120
  23. 230 LOCATE 4,5:PRINT "PARABOLIC ANTENNA DESIGN PROGRAM              VERSION 1.0"
  24. 240 LOCATE 6,5:PRINT "FOR USE IN DESIGNING PARABOLIC ANTENNA REFLECTORS.  MAY"
  25. 250 LOCATE 7,5:PRINT "BE USED FOR AMATEUR RADIO APPLICATIONS (TX/RX) OR FOR"
  26. 260 LOCATE 8,5:PRINT "GEO-STATIONARY SATELLITE RECEPTION APPLICATIONS."
  27. 270 '
  28. 280 LOCATE 12,5:PRINT "THIS PROGRAM DESIGNS THE REFLECTOR ONLY.  THE DESIGN OF"
  29. 290 LOCATE 13,5:PRINT "THE ANTENNA FEED (ILLUMINATION) SYSTEM IS NOT DISCUSSED."
  30. 300 LOCATE 15,5:PRINT "THE REFLECTOR MAY BE ILLUMINATED BY A HORN, DIPOLE, ETC."
  31. 310 LOCATE 17,5:PRINT "DO YOU WANT TO SEE A PICTORIAL DEFINITION OF THE TERMS "
  32. 320 LOCATE 18,5:PRINT "USED IN THE DESIGN?    (NOTE: GRAPHICS CARD AND MONITOR"
  33. 330 LOCATE 19,5:PRINT "ARE REQUIRED.                                     (Y/N)"
  34. 340 QQ$=INKEY$:IF QQ$="" THEN 340
  35. 350 IF QQ$="Y" OR QQ$="y" THEN GOSUB 1490:REM HI-RES GRAPHICS SUBROUTINE
  36. 360 ' ***** CALCULATION OF "DEPTH" OF REFLECTOR AT 1-INCH INTERVALS *****
  37. 370 CLS
  38. 380 PRINT:PRINT
  39. 390 INPUT "DIAMETER OF REFLECTOR IN FEET  ";DF
  40. 400 INPUT "FOCAL LENGTH OF ANTENNA IN FEET";FF
  41. 410 DI=DF*12
  42. 420 FI=FF*12
  43. 430 YF=DF/2
  44. 440 YI=DI/2
  45. 450 DIM ZZ(DI,2)
  46. 460 FOR Y=1 TO YI
  47. 470 ZZ(Y,0)=Y
  48. 480 ZZ(Y,1)=(INT(Y^2/(4*FI)*100))/100
  49. 490 NEXT Y
  50. 500 ' ***** SELECT OUTPUT DEVICE *****
  51. 510 PRINT "DO YOU WANT RESULTS ON THE PRINTER (P) OR SCREEN (S)"
  52. 520 QQ$ = INKEY$:IF QQ$="" THEN 520
  53. 530 IF QQ$="P" OR QQ$="p" THEN 770
  54. 540 ' ***** OUTPUT TO VIDEO SCREEN *****
  55. 550 PC=0
  56. 560 CLS
  57. 570 PRINT "RADIAL DISTANCE (Y)";SPC(20);"DEPTH (Z)"
  58. 580 PRINT "INCHES FROM CENTER ";SPC(20);"IN INCHES"
  59. 590 PRINT "-------------------------------------------------"
  60. 600 LOCATE 4,1
  61. 610 PG=0:IF PC=1 THEN 630
  62. 620 FOR Q=0 TO YI
  63. 630 PRINT USING "#########";ZZ(Q,0);
  64. 640 PRINT SPC(25)
  65. 650 PRINT USING "######.##";ZZ(Q,1)
  66. 660 PG = PG+1:IF PG < 17 THEN 710
  67. 670 PRINT:PRINT "HIT ANY KEY TO CONTINUE"
  68. 680 QQ$=INKEY$:IF QQ$="" THEN 680
  69. 690 PC=1
  70. 700 GOTO 560
  71. 710 NEXT Q
  72. 720 PRINT "DO YOU WANT TO CALCULATE GAIN (Y/N)"
  73. 730 QQ$=INKEY$:IF QQ$="" THEN 730
  74. 740 IF QQ$="Y" OR QQ$="y" THEN 980
  75. 750 GOTO 1990
  76. 760 ' ***** OUTPUT TO PRINTER *****
  77. 770 PC=0
  78. 780 LPRINT CHR$(12)
  79. 790 LPRINT "RADIAL DISTANCE (Y)";SPC(20);"DEPTH (Z)"
  80. 800 LPRINT "INCHES FROM CENTER ";SPC(20);"IN INCHES"
  81. 810 LPRINT "-------------------------------------------------"
  82. 820 LPRINT
  83. 830 PG=0:IF PC=1 THEN 850
  84. 840 FOR Q=0 TO YI
  85. 850 LPRINT USING "#########";ZZ(Q,0);
  86. 860 LPRINT SPC(25)
  87. 870 LPRINT USING "######.##";ZZ(Q,1)
  88. 880 PG = PG+1:IF PG < 55 THEN 910
  89. 890 PC=1
  90. 900 GOTO 780
  91. 910 NEXT Q
  92. 920 LPRINT CHR$(12)
  93. 930 PRINT "DO YOU WANT TO CALCULATE GAIN (Y/N)"
  94. 940 QQ$=INKEY$:IF QQ$="" THEN 940
  95. 950 IF QQ$="Y" OR QQ$="y" THEN 980
  96. 960 GOTO 1990
  97. 970 ' ***** GAIN AND BEAMWIDTH CALCULATION *****
  98. 980 SCREEN 0,0,0,0:CLS:KEY OFF:WIDTH 80
  99. 990 PRINT "PARABOLIC ANTENNA GAIN AND BEAMWIDTH CALCULATION"
  100. 1000 PRINT
  101. 1010 K=.4342928
  102. 1020 INPUT "FREQUENCY IN MEGAHERTZ     ";F
  103. 1030 D=DF
  104. 1040 G=(INT(20*(LOG(F)*K)+20*(LOG(D)*K)-52.6)*10)/10
  105. 1050 TH=(INT(70000000#/(F*D)))/1000
  106. 1060 PRINT
  107. 1070 PRINT "ANTENNA GAIN =";G;"DB OVER A POINT SOURCE (ISOTROPIC)"
  108. 1080 PRINT "BEAM ANGLE =";TH;"DEGREES"
  109. 1090 PRINT:PRINT
  110. 1100 GOTO 1990
  111. 1110 ' ***** PRINT THE FRAMES FOR THE INSTRUCTIONS *****
  112. 1120 LOCATE 2,1
  113. 1130 GOSUB 1280
  114. 1140 FOR PX=3 TO 9
  115. 1150 LOCATE PX,1:PRINT CHR$(186)
  116. 1160 LOCATE PX,74:PRINT CHR$(186)
  117. 1170 NEXT PX
  118. 1180 LOCATE 10,1
  119. 1190 GOSUB 1350
  120. 1200 FOR PX=11 TO 20
  121. 1210 LOCATE PX,1:PRINT CHR$(186)
  122. 1220 LOCATE PX,74:PRINT CHR$(186)
  123. 1230 NEXT PX
  124. 1240 LOCATE 21,1
  125. 1250 GOSUB 1420
  126. 1260 RETURN
  127. 1270 ' PRINT HORIZONTAL LINE WITH DOWNTURNED CORNERS
  128. 1280 PRINT CHR$(201);
  129. 1290 FOR PP=1 TO 72
  130. 1300 PRINT CHR$(205);
  131. 1310 NEXT PP
  132. 1320 PRINT CHR$(187)
  133. 1330 RETURN
  134. 1340 ' PRINT HORIZONTAL LINE WITH "T" CORNERS
  135. 1350 PRINT CHR$(204);
  136. 1360 FOR PP=1 TO 72
  137. 1370 PRINT CHR$(205);
  138. 1380 NEXT PP
  139. 1390 PRINT CHR$(185)
  140. 1400 RETURN
  141. 1410 ' PRINT HORIZONTAL LINE WITH UPTURNED CORNERS
  142. 1420 PRINT CHR$(200);
  143. 1430 FOR PP=1 TO 72
  144. 1440 PRINT CHR$(205);
  145. 1450 NEXT PP
  146. 1460 PRINT CHR$(188)
  147. 1470 RETURN
  148. 1480 ' ***** HI-RES GRAPHICS ROUTINE TO DISPLAY DESIGN TERMINOLOGY *****
  149. 1490 CLS
  150. 1500 KEY OFF
  151. 1510 SCREEN 2
  152. 1520 PSET (15,50)
  153. 1530 DRAW "L5;R10;L5;D100;L5;R10;"
  154. 1540 PSET (50,100)
  155. 1550 DRAW "U50;D100;U50;L10;R20;L10;U50;L5;R10;L5;D100;L5;R10;L5;U50;"
  156. 1560 FOR Y=-50 TO 50 STEP .1
  157. 1570 Z=Y*Y/30
  158. 1580 PSET (Z+50,Y+100)
  159. 1590 NEXT Y
  160. 1600 LOCATE 2,35
  161. 1610 PRINT "DESIGN OF A PARABOLIC REFLECTOR"
  162. 1620 LOCATE 3,35
  163. 1630 PRINT "PICTORIAL DEFINITION OF TERMS"
  164. 1640 LOCATE 5,40
  165. 1650 PRINT "Y= 0.5 Diameter of reflector"
  166. 1660 LOCATE 6,40
  167. 1670 PRINT "Z= Reflector 'depth' at point Y'"
  168. 1680 LOCATE 7,40
  169. 1690 PRINT "F= Design focal length"
  170. 1700 LOCATE 8,45
  171. 1710 PRINT "NOTE: F,Y are in feet"
  172. 1720 LOCATE 9,45
  173. 1730 PRINT "      Z  is in inches"
  174. 1740 LOCATE 8,8
  175. 1750 PRINT "--Z--"
  176. 1760 LOCATE 13,25
  177. 1770 PRINT "FOCAL POINT"
  178. 1780 PSET (170,100)
  179. 1790 CIRCLE (170,100),3
  180. 1800 FOR Q = 160 TO 70 STEP -1
  181. 1810 IF Q/4=INT(Q/4) THEN PSET (Q,100):GOTO 1830
  182. 1820 PRESET (Q,100)
  183. 1830 NEXT Q
  184. 1840 LOCATE 13,15
  185. 1850 PRINT " F "
  186. 1860 LOCATE 12,2
  187. 1870 PRINT "  "
  188. 1880 LOCATE 14,2
  189. 1890 PRINT "  "
  190. 1900 LOCATE 13,2
  191. 1910 PRINT "2Y"
  192. 1920 LOCATE 22,1
  193. 1930 PRINT "Scale exaggerated for clarity"
  194. 1940 LOCATE 23,1
  195. 1950 PRINT "Hit any key to continue"
  196. 1960 KK$=INKEY$:IF KK$="" THEN 1960
  197. 1970 SCREEN 0:CLS
  198. 1980 RETURN
  199. 1990 CLEAR:END
  200.