10  REM     HUNTINGTON 1 PROJECT PREVIOUSLY NAMED 'BFIELD'
20  REM     RENAMED AND REVISED BY WILLIAM K. CHAR 6/21/73
30  K=Q=0
40  PRINT "THIS PROGRAM WILL PERMIT YOU TO EXPLORE THE MAGNETIC FIELD"
50  PRINT "ABOUT A CURRENT DIRECTED INTO THE PAGE AS A FUNCTION OF THE"
60  PRINT "CURRENT MAGNITUDE."
70  PRINT 
80  PRINT "WHAT WILL BE YOUR INITIAL CURRENT (SELECT POSITIVE VALUES"
90  PRINT "BETWEEN 1 AND 8 AMPERES)";
110  INPUT I1
120  IF I1 >= 1 AND I1 <= 8 THEN 160
140  PRINT "C'MON NOW, ENTER PROPER VALUES,.  WHAT IS YOUR CURRENT";
150  GOTO 110
160  IF K>0 THEN 220
170  PRINT 
180  PRINT "THE MAGNITUDE OF THE FIELD DECREASES FROM 9 TO 0 "'25". "
190  PRINT "9 IS THE HIGHEST POSSIBLE FIELD STRENGTH, AND 0"
200  PRINT "(WHICH MEANS A ZERO FIELD) THE LOWEST."
210  PRINT 
220  GOSUB 510
230  LET K=K+1
240  PRINT 
250  IF K=2 THEN 280
260  PRINT "SELECT A DIFFERENT CURRENT."
270  GOTO 70
280  PRINT "WOULD YOU LIKE TO TRY TWO DIFFERENT CURRENTS AT THE SAME"
290  PRINT " TIME (YES=1; NO=O)";
300  INPUT Q
310  IF Q=1 THEN 390
320  IF Q <> 0 THEN 280
330  PRINT "WOULD YOU RATHER TRY ANOTHER CURRENT (YES=1; NO=0)";
340  INPUT P
350  IF P=1 THEN 90
360  IF P <> 0 THEN 330
370  PRINT "WELL I GUESS YOU'RE ALL THROUGH. THANKS--SEE Y'A"
380  STOP 
390  PRINT "THE TWO CURRENTS WILL BE SEPARATED BY 1.0 METER. (NOTE: IF"
400  PRINT "THE CURRENTS ARE TO BE OPPOSITELY DIRECTED, STATE ONE OF THEM"
410  PRINT " AS A NEGATIVE VALUE)."
420  PRINT "ENTER THE TWO CURRENTS";
430  INPUT I1,I2
440  PRINT 
450  GOSUB 510
460  PRINT "WANT TO TRY AGAIN (YES=1;NO=0)";
470  INPUT P
480  IF P=1 THEN 390
490  IF P=0 THEN 370
500  GOTO 460
510  PRINT 
520  PRINT " "," ","METERS"
530  PRINT " ","-1.2      -.6        0        .6         1.2"
540  PRINT "     METERS",".+.........+.........+.........+.........+."
550  FOR Y=1.2 TO -1.2 STEP (-.1)
560  PRINT "   ";INT(10*Y+.5)/10;TAB(15);".";
570  FOR Z=-2 TO 2 STEP (.1)
580  X=.6*Z
590  Y2=Y*Y
600  IF Q <> 1 THEN 790
610  IF ABS(Y)>.001 THEN 710
620  IF ABS(Z+.8)>.001 THEN 680
630  IF I1>0 THEN 660
640  PRINT "-";
650  GOTO 1080
660  PRINT "+";
670  GOTO 1080
680  IF ABS(Z-.8)>.001 THEN 710
690  IF I2>0 THEN 660
700  GOTO 640
710  X1=X+.5
720  X2=X-.5
730  R1=X1*X1+Y2
740  R2=X2*X2+Y2
750  LET H1=I1*Y/R1+I2*Y/R2
760  LET H2=I1*X1/R1+I2*X2/R2
770  LET B=SQR(H1*H1+H2*H2)
780  GOTO 820
790  LET R=SQR(X*X+Y2)
800  IF ABS(R)<.001 THEN 630
810  LET B=ABS(I1/R)
820  IF B>.001 THEN 850
830  PRINT "0";
840  GOTO 1080
850  FOR J=1 TO 9
860  IF ABS(B-2.5*J)<.75 THEN 900
870  NEXT J
880  PRINT " ";
890  GOTO 1080
900  GOTO J OF 910,930,950,970,990,1010,1030,1050,1070
910  PRINT "1";
920  GOTO 1080
930  PRINT "2";
940  GOTO 1080
950  PRINT "3";
960  GOTO 1080
970  PRINT "4";
980  GOTO 1080
990  PRINT "5";
1000  GOTO 1080
1010  PRINT "6";
1020  GOTO 1080
1030  PRINT "7";
1040  GOTO 1080
1050  PRINT "8";
1060  GOTO 1080
1070  PRINT "9";
1080  NEXT Z
1090  PRINT "."
1100  NEXT Y
1110  PRINT " ",".+.........+.........+.........+.........+."
1120  PRINT 
1130  RETURN 
1140  END 
