home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / tel / rfpath.ba < prev    next >
Text File  |  2006-10-19  |  6KB  |  79 lines

  1. 0 'RFPATH.100      v3.6       10-9-87
  2. 1 'CLUB 100 Library - 415/939-1246 BBS,    937-5039 NEWSLETTER, 932-8856 VOICE
  3. 2 'Radio Frequency Path calculations
  4. 3 '   by: Steve Petit [73300,2217]
  5. 4 ' mods: Bill Templeton [75655,1056]
  6. 5 '  c87: All rights reserved
  7. 10 MAXFILES=1:POKE63038,191:A$="####.##":E$=CHR$(27):R$=E$+"p":N$=E$+"q":ONERRORGOTO80
  8. 11 CLS:PRINT@14,R$" RFPATH.100 ":PRINT@80,R$" Select from the following: "N$:PRINT"[1] Free Space Loss in Miles
  9. 12 PRINT"[2] Free Space Loss in Feet":PRINT"[3] Free Space Loss <Emperical> in Miles";:PRINT"[4] Exit ";
  10. 13 PRINT@298,;:INPUTX:IFX<1ORX>4THEN13ELSEIFX=4THENMENU
  11. 14 CLS:PRINT@80,R$" Select output mode: "N$:PRINT@125,"1) RAM file":PRINT@165,"2) Disk file":PRINT@205,"3) LCD screen
  12. 15 PRINT@245,"4) Printer":PRINT@298,;:INPUTDF
  13. 16 IFDF<1ORDF>4THEN15ELSEIFDF=1THEN17ELSEIFDF=2THEN18ELSEIFDF=4THEN20ELSE19
  14. 17 CLS:PRINT@40,"Name of RAM file: ";:INPUTF$:CLOSE:OPENF$FORAPPENDAS1:IFQQ=1THEN36ELSE21
  15. 18 CLS:PRINT@40,"Name of Disk file: ";:INPUTF$:CLOSE:OPEN"0:"+F$+".do"FORAPPENDAS1:GOTO21
  16. 19 CLOSE:OPEN"lcd:"FOROUTPUTAS1:GOTO21
  17. 20 CLOSE:OPEN"lpt:"FOROUTPUTAS1:IFQ=1THEN36ELSE21
  18. 21 CLS:PRINT@40,R$" Transmitter location: ""["Y$"] "N$;:PRINT@125,"(9 characters max.) ";:INPUTY$
  19. 22 CLS:PRINT@40,R$" Transmitter power: ""["TX"] DBM "N$
  20. 23 PRINT@120," (Enter 0 for WATTS/DBM subroutine)":PRINT@200,SPACE$(20);:INPUTTX:IFTX=0THEN61
  21. 24 CLS:PRINT@40,R$" Transmitter antenna gain ""["A1"] DB "N$;:INPUTA1
  22. 25 CLS:PRINT@40,R$" Transmitter antenna losses ""["AS"] DB "N$:GOSUB78:INPUTAS
  23. 26 CLS:PRINT@40,R$" Receiver location: ""["Z$"] "N$;:PRINT@125,"(9 characters max.) ";:INPUTZ$
  24. 27 CLS:PRINT@40,R$" Receiver sensitivity: ""["RX"] DBM "N$
  25. 28 PRINT@121,"Enter 0 for uv/DBM subroutine...":GOSUB79:INPUTRX:IFRX=0THEN63
  26. 29 CLS:PRINT@40,R$" Receiver antenna gain: ""["A2"] DB "N$;:INPUTA2
  27. 30 CLS:PRINT@40,R$" Receiver antenna losses: ""["AT"] DB "N$:GOSUB78:INPUTAT
  28. 31 CLS:PRINT@40,R$" Frequency: ""["F"] Mhz "N$;:INPUTF:IFX=1THEN32ELSEIFX=2THEN33ELSE34
  29. 32 CLS:PRINT@40,R$" Distance: ""["D"] Mi "N$;:INPUTD:GOTO36
  30. 33 CLS:PRINT@40,R$" Distance: ""["D1"] Feet "N$;:INPUTD1:GOTO37
  31. 34 CLS:PRINT@40,R$" Distance: ""["D"] Mi "N$;:INPUTD:CLS:PRINT@40,R$" Height, TX Antenna: ""["H1"] Feet "N$;:INPUTH1
  32. 35 CLS:PRINT@40,R$" Height, RX Antenna: ""["H2"] Feet "N$;:INPUTH2:GOTO38
  33. 36 CLS:PRINT#1,"Free Space (Mi) ":GOTO39
  34. 37 CLS:PRINT#1,"Free Space (Ft) ":GOTO39
  35. 38 CLS:PRINT#1,"Free Space (Emp)
  36. 39 PRINT#1,SPACE$(21)"Xmtr       Rcvr
  37. 40 PRINT#1,"Locations:         ";:PRINT#1,USING"\       \";Y$;:PRINT#1,"  ";:PRINT#1,USING"\       \";Z$
  38. 41 PRINT#1,"Power/Sens:       ";:PRINT#1,USING"####";TX;:PRINT#1," DBM   ";:PRINT#1,USING"####";RX;:PRINT#1," DBM
  39. 42 PRINT#1,"Antenna Gain:     ";:PRINT#1,USING"####";A1;:PRINT#1," DB    ";:PRINT#1,USING"####";A2;:PRINT#1," DB
  40. 43 PRINT#1,"Antenna Loss:     ";:PRINT#1,USING"####";AS;:PRINT#1," DB    ";:PRINT#1,USING"####";AT;:PRINT#1," DB
  41. 44 PRINT#1,"Frequency:        ";:PRINT#1,USING"####";F;:PRINT#1," Mhz":GOSUB75:IFDF=3THENCLS
  42. 45 IFX=1ORX=3THEN46ELSE47
  43. 46 PRINT#1,"Distance:         ";:PRINT#1,USING"####";D;:PRINT#1," Miles":GOTO48
  44. 47 PRINT#1,"Distance:         ";:PRINT#1,USING"####";D1;:PRINT#1," Feet
  45. 48 IFX=3THEN49ELSE50
  46. 49 PRINT#1,"Height:           ";:PRINT#1,USING"####";H1;:PRINT#1," Ft    ";:PRINT#1,USING"####";H2;:PRINT#1," Ft
  47. 50 IFX=1THEN51ELSEIFX=2THEN53ELSE55
  48. 51 L=20*LOG(F)/LOG(10)+20*LOG(D)/LOG(10)+33:L=L-2*L
  49. 52 PRINT#1,"Path Loss:       ";:PRINT#1,USINGA$;L;:PRINT#1," DB":GOSUB65:GOTO74
  50. 53 L=20*LOG(F)/LOG(10)+20*LOG(D1)/LOG(10)-41.5:L=L-2*L
  51. 54 PRINT#1,"Path Loss:       ";:PRINT#1,USINGA$;L;:PRINT#1," DB":GOSUB65:GOTO74
  52. 55 L=20*LOG(F)/LOG(10)+20*LOG(D)/LOG(10)+33:L=L-2*L
  53. 56 L1=117+20*LOG(F)/LOG(10)+40*LOG(D)/LOG(10):L1=L1-20*LOG(H1*H2)/LOG(10):L1=L1-2*L1:IFL<L1THENL1=L
  54. 57 PRINT#1,"Path Loss:       ";:PRINT#1,USINGA$;L1;:IFL1<LTHENPRINT#1," DB <EMPERICAL>"ELSEPRINT#1," DB <FREE SPACE>
  55. 58 IFL1<LTHENL$="<EMPERICAL>"ELSEL$="<FREE SPACE>
  56. 59 IFL1<LTHENL=L1
  57. 60 GOSUB65:GOTO74
  58. 61 CLS:PRINT@40,R$" Watts output: "N$;:INPUTW:IFW=<0THEN61
  59. 62 TX=10*LOG(W)/LOG(10):TX=INT(TX*10+.5)/10:TX=TX+30:PRINT@170,W" Watts ="TX" DBM":PRINT@280,:FORS=1TO500:NEXT:GOTO22
  60. 63 CLS:PRINT@40,R$" Receiver sensitivity in uv "N$;:INPUTET:IFET=<0THEN63
  61. 64 RX=20*LOG(ET)/LOG(10)-107:RX=INT(RX*10+.5)/10:PRINT@170,ET" uv = "RX" DBM":PRINT@280,:FORS=1TO500:NEXT:GOTO27
  62. 65 SN=TX-RX+A1+AS+A2+AT+L:SD=TX+A1+AS+A2+AT+L 'Power calculations
  63. 66 PRINT#1,"Signal Level:    ";:PRINT#1,USINGA$;SN;:PRINT#1," DB above RX
  64. 67 SG=RX+SN:E=(SG+167)/20:E=EXP(E/.4342945):IFE=>1THENE=INT(10*E+.5)/10 'Conversion from dbm to uv
  65. 68 E=INT(100*E+.5)/100
  66. 69 PRINT#1,"Signal Level:    ";:PRINT#1,USINGA$;E/1000;:PRINT#1," uv";:PRINT#1,USINGA$;SD;:PRINT#1,"  DBM":RETURN
  67. 70 IFX=3THENCLS
  68. 71 PRINT"NOTE: Emperical calculation will compare      to Free Space calculation and           choose largest figure.";
  69. 72 PRINT"  You will        receive a note of <emperical>           or <free space> depending on            results.
  70. 73 GOSUB75:RETURN
  71. 74 PRINT#1,STRING$(39,45):PRINT#1,:GOSUB75:GOTO76
  72. 75 PRINT@280,R$SPACE$(7)"PRESS <ENTER> TO CONTINUE"SPACE$(7)N$;:S$=INPUT$(1):RETURN
  73. 76 PRINT@280,R$SPACE$(12)"Hard copy (Y/N?)"SPACE$(12)N$;:Q$=INPUT$(1):IFINSTR("yY",Q$)THENDF=4:Q=1:GOTO20ELSEDF=3:Q=0
  74. 77 PRINT@280,R$SPACE$(7)"Append to RAM file (Y/N?)"SPACE$(7)N$;:Q$=INPUT$(1):IFINSTR("yY",Q$)THENDF=2:QQ=1:GOTO17ELSEDF=3:QQ=0:GOTO11
  75. 78 PRINT" Must be a negative number... ";:RETURN
  76. 79 PRINT" or a negative number... ";:RETURN
  77. 80 IFERR=55THENPRINT@280,R$SPACE$(14)"Bad Filename"SPACE$(14)N$:FORQ=1TO500:NEXT:RESUME11
  78. 81 IFERRTHENPRINT@280,R$SPACE$(10)"Error"ERR"in line"ERLSPACE$(10)N$:STOP
  79.