Three programs of use to radio amateurs.
- HASH TABLE: A program to keep track of calls during a contest
- TB: A program to compute distance based on LAT / LONG of endpoints
- CHIM: A program to compute cable impedance
Source Code
10 REM "CHIM" 15 CLS 20 PRINT "CHAR. IMPEDANCE" 25 PRINT 27 PRINT "ENTER TYPE (1-5)?"; 30 INPUT A 35 PRINT A 37 IF A<>INT A OR A<1 OR A>5 THEN GOTO 60 40 PRINT "ENTER REL. DIAL. CONSTANT?"; 45 INPUT E 50 PRINT E 55 IF E>0 THEN GOTO 100*A 60 LET L=25 65 GOTO 720 100 PRINT "SINGLE COAX. LINE" 110 GOSUB 650 120 IF R>0 AND D>R THEN GOTO 150 130 LET L=110 140 GOTO 720 150 LET Z=138/SQR E*LN (D/R)/LN 10 160 GOTO 580 200 PRINT "BAL. SHIELDED LINE" 210 GOSUB 600 220 IF R>0 AND H>R AND D>H+R THEN GOTO 250 230 LET L=210 240 GOTO 720 250 LET V=H/R 260 LET S=H/D 270 LET Z=276/SQR E*LN (2*V*(1-S*S)/(1+S*S))/LN 10 280 GOTO 580 300 PRINT "2 WIRE LINE" 310 GOSUB 600 320 IF R>0 AND H>R THEN GOTO 350 330 LET L=310 340 GOTO 720 350 LET S=H/R 360 LET Z=276*LN (S+SQR (S*S-1))/LN 10/SQR E 370 GOTO 580 400 PRINT "PARALLEL STRIP LINE" 410 PRINT "CONDUCTOR WIDTH W?"; 420 INPUT W 430 PRINT W 440 GOSUB 600 450 IF H>0 AND W>0 THEN GOTO 480 460 LET L=410 470 GOTO 720 480 LET Z=377*H/W/SQR E 490 GOTO 580 500 PRINT "2 PAR. LINES, SHEATH RET." 510 GOSUB 600 520 IF R>0 AND H>R AND D>H+R THEN GOTO 550 530 LET L=510 540 GOTO 720 550 LET V=H/R 560 LET S=H/D 570 LET Z=69/SQR E*LN (V/2/S/S*(1-S**4))/LN 10 580 PRINT "ZO=";Z;" OHM" 590 GOTO 25 600 PRINT "SPACING H?"; 610 INPUT H 620 PRINT H 630 IF A=3 THEN GOTO 680 640 IF A=4 THEN RETURN 650 PRINT "OUTER DIAM. D?"; 660 INPUT D 670 PRINT D 680 PRINT "COND. DIAM. R?"; 690 INPUT R 700 PRINT R 710 RETURN 720 PRINT "ERROR, REENTER" 730 GOTO L 1 REM "HASH TABLE" 2 PRINT AT 8,1;"THIS IS A PROGRAM TO KEEP TRACK" 3 PRINT " OF CALLS DURING A CONTEST." 4 PRINT 5 PRINT " TO STOP INPUT -1." 6 FAST 10 LET MAX=1000 15 DIM A$(MAX,6) 20 FOR I=1 TO MAX 25 LET A$(I)="******" 30 NEXT I 31 SLOW 35 PRINT AT 21,5;"INPUT CALL" 40 INPUT I$ 41 CLS 45 IF I$="-1" THEN GOTO 120 47 IF LEN (I$)=6 THEN GOTO 50 48 LET I$=I$+" " 49 GOTO 47 50 LET H=0 55 FOR J=1 TO LEN (I$) 60 LET H=H+CODE I$(J) 65 NEXT J 70 LET H=H-INT (H/MAX)*MAX 75 IF A$(H)=I$ THEN GOTO 100 80 IF A$(H)="******" THEN GOTO 110 85 LET H=H+1 90 LET H=H-INT (H/MAX)*MAX 95 GOTO 75 100 PRINT AT 10,5;I$;" IS A DUPE CALL" 105 GOTO 35 110 LET A$(H)=I$ 115 GOTO 35 120 FOR L=1 TO MAX 125 PRINT TAB (10);A$(L) 130 PRINT 135 NEXT L 10 REM "TB" 12 SLOW 14 PRINT "N LATITUDES + / S LATITUDES -" 16 PRINT "W LONGITUDES + / E LONGITUDES -" 18 PRINT 20 PRINT "YOUR LATITUDE?" 30 INPUT A 40 LET A=A*PI/180 50 PRINT "YOUR LONGITUDE?" 60 INPUT L1 65 LET L1=L1*PI/180 70 PRINT "OTHER LATITUDE?" 80 INPUT B 90 LET B=B*PI/180 100 PRINT "OTHER LONGITUDE?" 110 INPUT L2 112 FAST 115 LET L2=L2*PI/180 120 LET L=L1-L2 130 IF L>PI THEN LET L=L-2*PI 140 IF L<-PI THEN LET L=L+2*PI 150 LET PHI=ATN (COS L/TAN B) 160 LET CC=((1/TAN L)*COS (A+PHI))/SIN PHI 170 LET C=ATN (1/CC) 180 IF L>0 AND C>0 THEN GOTO 230 190 IF L<0 AND C<0 THEN GOTO 220 200 LET TB=C+PI 210 GOTO 230 220 LET TB=C+2*PI 230 LET TB=TB*180/PI 240 PRINT "TRUE BEARING= ";TB;" DEGREES" 250 LET D=ACS (SIN A*SIN B+COS A*COS B*COS L) 255 LET D=D*180/PI 260 LET DIS=D*60 270 LET DIS1=DIS*1.1508 280 LET DIS2=DIS*1.852 285 PRINT 287 PRINT "DISTANCE=" 290 PRINT DIS;" NAUTICAL MILES" 300 PRINT DIS1;" STATUTE MILES" 310 PRINT DIS2;" KILOMETERS"