9000  REM ******MICRO******ENGINEERING PROGRAM
9002  REM MICRO************VERSION #1 (7/31/69)*****MICROWAVE PROGRAMS
9004  REM
9006  REM   THIS PROGRAM IS A CONGLOMERATE OF MANY SHORT HP 9100
9008  REM  CALCULATOR PROGRAMS. THE USER SELECTS THE PROGRAM
9010  REM  HE DESIRES BY FIRST ASKING FOR A LISTING OF THE PRO-
9012  REM  GRAM LIBRARY AND THEN TYPING IN THE APPROPRIATE CODE
9014  REM  NUMBER TO RETRIEVE THAT PROGRAM.
9016  REM   AFTER CALLING FOR THE DESIRED PROGRAM, THAT PROGRAM
9018  REM  WILL THEN ASK FOR THE NECESSARY INPUT(S) TO BE TYPED
9020  REM  IN.
9022  REM   EXAMPLE OF LIBRARY CALL ROUTINE AND PROGRAM NO. 1 RUN:
9024  REM
9026  REM  TYPE 1 IF YOU WANT LIBRARY CATALOG.
9028  REM  TYPE 0 IF YOU DO NOT.
9030  REM  ?0
9032  REM  PROGRAM NUMBER?1
9034  REM  WHAT IS VSWR1?2
9036  REM  WHAT IS VSWR2?1.5
9038  REM  PLUS DB=.5606
9040  REM  MINUS DB=-.5993
9042  REM 
9044  REM  PROGRAM NUMBER?99
9046  REM  
9048  REM  DONE
9050  REM
9052  REM         MICRO
9054  LET V1=V2=V3=V4=V5=V6=V7=0
9056  LET P1=P2=P3=P4=P5=P6=P7=0
9058  PRINT "TYPE 1 IF YOU WANT PROGRAM CATALOG."
9060  PRINT "TYPE 0 IF YOU DO NOT."
9062  INPUT A1
9064  IF A1=1 THEN 9092
9066  PRINT "PROGRAM NUMBER";
9068  INPUT I1
9070  IF I1=1 THEN 9126
9072  IF I1=2 THEN 9152
9074  IF I1=3 THEN 9216
9076  IF I1=4 THEN 9296
9078  IF I1=5 THEN 9326
9080  IF I1=55 THEN 9326
9082  IF I1=6 THEN 9348
9084  IF I1=7 THEN 9434
9086  IF I1=99 THEN 9999
9088  PRINT "INVALID PROGRAM NUMBER."
9090  GOTO 9066
9092  PRINT "1=CALCULATE MISMATCH UNCERTAINTY IN DB BASED ON ";
9094  PRINT "TWO VSWRS."
9096  PRINT "2= CONVERT RHO, VSWR, OR RETURN LOSS TO OTHER TWO ";
9098  PRINT "PARAMETERS."
9100  PRINT "3= DB TO PERCENT ERROR CONVERSION OR VISA VERSA."
9102  PRINT "4=SIGNAL SEPARATION."
9104  PRINT "5=THEORETICAL NOISE LEVEL."
9106  PRINT "6=CONVERT Z AND THETA TO:"
9108  PRINT "   1.RESISTANCE AND REACTANCE"
9110  PRINT "   2.NORMALIZED R AND X"
9112  PRINT "   3.REFLECTION COEFFICIENT AND ANGLE"
9114  PRINT "   4.REFLECTION COEFFICIENT (RHO)"
9116  PRINT "     VOLTAGE STANDING WAVE RATIO"
9118  PRINT "     RETURN LOSS"
9120  PRINT "7=SMITHCHART - CONVERT RHO AND ANGLE TO R AND X."
9122  GOTO 9066
9124  REM         PROGRAM SUBROUTINES
9126  PRINT "VSWR1";
9128  INPUT V1
9130  LET P1=(V1-1)/(V1+1)
9132  PRINT "VSWR2";
9134  INPUT V2
9136  LET P2=(V2-1)/(V2+1)
9138  LET Y1=20*.434294*LOG(1+P1*P2)
9140  GOSUB 9498
9142  PRINT "PLUS DB="Y1
9144  LET Y1=20*.434294*LOG(1-P1*P2)
9146  GOSUB 9498
9148  PRINT "MINUS DB="Y1
9150  GOTO 9204
9152  PRINT "TYPE 1,2, OR 3 IF INPUT IS RHO, VSWR, OR R.L."
9154  INPUT I1
9156  IF I1=1 THEN 9166
9158  IF I1=2 THEN 9176
9160  IF I1=3 THEN 9186
9162  PRINT "INVALID INPUT CODE."
9164  GOTO 9152
9166  PRINT "RHO";
9168  INPUT V1
9170  GOSUB 9208
9172  GOSUB 9212
9174  GOTO 9194
9176  PRINT "VSWR";
9178  INPUT V2
9180  LET V1=(V2-1)/(V2+1)
9182  GOSUB 9212
9184  GOTO 9194
9186  PRINT "R.L.";
9188  INPUT V3
9190  LET V1=2.71828^(-2.30259*V3/20)
9192  GOSUB 9208
9194  LET Y1=V1
9196  LET Y2=V2
9198  LET Y3=V3
9200  GOSUB 9506
9202  PRINT "RHO="Y1;"VSWR="Y2;"R.L.="Y3
9204  PRINT 
9206  GOTO 9066
9208  LET V2=-(V1+1)/(V1-1)
9210  RETURN 
9212  LET V3=-20*.43429*LOG(V1)
9214  RETURN 
9216  PRINT "TYPE 1 OR 2 IF INPUT IS DB OR PERCENT";
9218  INPUT I1
9220  IF I1=1 THEN 9228
9222  IF I1=2 THEN 9262
9224  PRINT " INVALID INPUT CODE."
9226  GOTO 9216
9228  PRINT "DB";
9230  INPUT V1
9232  LET P2=2.71828^(2.30259*V1/10)
9234  LET P1=P2^.5
9236  LET V7=P1
9238  GOSUB 9290
9240  LET Y1=V3
9242  LET Y2=V4
9244  LET V7=P2
9246  GOSUB 9290
9248  LET Y3=V3
9250  LET Y4=V4
9252  GOSUB 9494
9254  PRINT "PERCENT VOLTAGE +";TAB(18);Y1;TAB(28);"PERCENT ";
9256  PRINT "POWER +";TAB(43);Y3
9258  PRINT TAB(18);Y2;TAB(45);Y4
9260  GOTO 9204
9262  PRINT "PERCENT";
9264  INPUT V1
9266  LET V3=20*.43429*LOG(1+V1/100)
9268  LET V4=20*.43429*LOG(1-V1/100)
9270  LET V5=V3/2
9272  LET V6=V4/2
9274  LET Y1=V3
9276  LET Y2=V4
9278  LET Y3=V5
9280  LET Y4=V6
9282  GOSUB 9494
9284  PRINT "DB-VOLTAGE +";TAB(13);Y1;TAB(23);"DB-POWER +";TAB(33);Y3
9286  PRINT TAB(13);Y2;TAB(35);Y4
9288  GOTO 9204
9290  LET V3=100*(V7-1)
9292  LET V4=-100*(V7-1)/V7
9294  RETURN 
9296  PRINT "FIRST VECTOR QTY (DB)";
9298  INPUT V1
9300  PRINT "SECOND VECTOR QTY (DB)";
9302  INPUT V2
9304  LET P1=2.71828^(-2.30259*V1/20)
9306  LET P2=2.71828^(-2.30259*V2/20)
9308  IF P1>P2 THEN 9316
9310  LET Y1=-20*.43429*LOG((P2-P1)/2)
9312  LET Y2=-20*.43429*LOG((P2+P1)/2)
9314  GOTO 9320
9316  LET Y1=-20*.43429*LOG((P1-P2)/2)
9318  LET Y2=-20*.43429*LOG((P1+P2)/2)
9320  GOSUB 9502
9322  PRINT "DB(A)="Y1;"DB(B)="Y2
9324  GOTO 9204
9326  PRINT "BANDWIDTH (HZ) VALUE";
9328  INPUT V1
9330  IF I1=55 THEN 9336
9332  LET V2=26
9334  GOTO 9340
9336  PRINT "TEMP. (DEGREES C)";
9338  INPUT V2
9340  LET V2=V2+273
9342  LET Y1=10*.43429*LOG(1.38*10^(-20)*V2*V1)
9344  PRINT "S(DBM)="Y1
9346  GOTO 9204
9348  PRINT "Z";
9350  INPUT V1
9352  PRINT "ANGLE";
9354  INPUT V2
9356  LET V2=V2*.017453
9358  LET Y1=V1*COS(V2)
9360  LET Y2=V1*SIN(V2)
9362  GOSUB 9502
9364  PRINT "R="Y1;"X="Y2
9366  PRINT "CHARACTERISTIC IMPEDANCE";
9368  INPUT V3
9370  LET P1=Y1/V3
9372  LET P2=Y2/V3
9374  PRINT "R(N)="P1;"X(N)="P2
9376  LET P3=SQR((P1+1)^2+P2^2)
9378  IF (P1+1)>0 THEN 9384
9380  LET P4=ATN(P2/(P1+1))-3.14159
9382  GOTO 9386
9384  LET P4=ATN(P2/(P1+1))
9386  LET P4=P4*57.2958
9388  LET P5=SQR((P1-1)^2+P2^2)
9390  IF (P1-1)>0 THEN 9396
9392  LET P6=ATN(P2/(P1-1))-3.14159
9394  GOTO 9398
9396  LET P6=ATN(P2/(P1-1))
9398  LET P6=P6*57.2958
9400  LET V4=P5/P3
9402  LET V5=P6-P4
9404  IF V5>180 THEN 9414
9406  IF V5<-180 THEN 9410
9408  GOTO 9416
9410  LET V5=360+V5
9412  GOTO 9416
9414  LET V5=V5-360
9416  LET Y1=V4
9418  LET Y2=V5
9420  LET Y3=(V4+1)/(1-V4)
9422  LET Y4=-20*.43429*LOG(V4)
9424  GOSUB 9494
9426  PRINT "REFLECTION COEFF.";TAB(25);"ANGLE";TAB(43);"VSWR";
9428  PRINT TAB(57);"RETURN LOSS"
9430  PRINT TAB(7);Y1;TAB(24);Y2;TAB(42);Y3;TAB(59);Y4
9432  GOTO 9204
9434  PRINT "RHO";
9436  INPUT V1
9438  PRINT "ANGLE";
9440  INPUT V2
9442  LET V2=V2*.017453
9444  LET V3=V1*COS(V2)
9446  LET V4=V1*SIN(V2)
9448  IF (V3+1)>0 THEN 9454
9450  LET P2=(ATN(V4/(V3+1))-3.14159)*57.2958
9452  GOTO 9456
9454  LET P2=ATN(V4/(V3+1))*57.2958
9456  IF (1-V3)>0 THEN 9462
9458  LET P3=(ATN(-V4/(1-V3))-3.14159)*57.2958
9460  GOTO 9464
9462  LET P3=ATN(-V4/(1-V3))*57.2958
9464  LET P1=SQR((1+V3)^2+V4^2)/SQR((1-V3)^2+V4^2)
9466  LET P4=(P2-P3)*.017453
9468  LET P5=P1*COS(P4)
9470  LET P6=P1*SIN(P4)
9472  LET Y1=P5
9474  LET Y2=P6
9476  GOSUB 9502
9478  PRINT "R(N)="Y1;"X(N)="Y2
9480  PRINT "CHARACTERISTIC IMPEDANCE";
9482  INPUT V5
9484  LET Y1=V5*P5
9486  LET Y2=V5*P6
9488  GOSUB 9502
9490  PRINT "R="Y1;"X="Y2
9492  GOTO 9204
9494  LET Y4=INT(10^4*Y4+.5)/10^4
9496  GOTO 9506
9498  LET Y1=INT(10^4*Y1+.5)/10^4
9500  RETURN 
9502  LET Y2=INT(10^4*Y2+.5)/10^4
9504  GOTO 9498
9506  LET Y3=INT(10^4*Y3+.5)/10^4
9508  GOTO 9502
9999  END 
