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
Content
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"