100 CLS 105 PRINT 110 TX$="O H M L A W":GOSUB 645 115 TX$="Version 1.0":GOSUB 645 120 TX$="(C) 1990 Gary L. Van Balen":GOSUB 645 125 TX$="All Rights Reserved":GOSUB 645 130 TX$="Distribution by Permission Only":GOSUB 645 135 TXT$="Contact Author on CIS @ [71500,611]":GOSUB 645 140 FOR T=0 TO 2000:NEXT 145 CLS 150 PRINT " Solve for:" 155 PRINT 160 PRINT " E) Volts" 165 PRINT " I) Amps" 170 PRINT " R) Ohms" 175 PRINT " P) Watts" 180 PRINT:PRINT" Selection (Q to quit): "; 185 A$=INKEY$:IF A$="" THEN 185 190 PRINT A$; 195 IF A$="E" OR A$="e" THEN 225 200 IF A$="I" OR A$="i" THEN 280 205 IF A$="R" OR A$="r" THEN 335 210 IF A$="P" OR A$="p" THEN 390 215 IF A$="Q" OR A$="q" THEN 690 220 BEEP:GOTO 145 225 REM FIND E 230 CLS 235 G$="IRP":A$="E":GOSUB 445 240 IF I=0 OR R=0 THEN 250 245 E=I*R:PRINT "E=I*R":GOTO 270 250 IF P=0 OR I=0 THEN 260 255 E=P/I:PRINT "E=P/I":GOTO 270 260 IF P=0 OR R=0 THEN BEEP:GOTO 225 265 E=(P*R)^.5:PRINT "E=(P*R)^.5" 270 GOSUB 560 275 GOTO 145 280 REM FIND I 285 CLS 290 G$="ERP":A$="I":GOSUB 445 295 IF E=0 OR R=0 THEN 305 300 I=E/R:PRINT "I=E/R":GOTO 325 305 IF P=0 OR E=0 THEN 315 310 I=P/E:PRINT "I=P/E":GOTO 325 315 IF P=0 OR R=0 THEN BEEP:GOTO 280 320 I=(P/R)^.5:PRINT "I=(P/R)^.5" 325 GOSUB 560 330 GOTO 145 335 REM FIND R 340 CLS 345 G$="EIP":A$="R":GOSUB 445 350 IF E=0 OR I=0 THEN 360 355 R=E/I:PRINT "R=E/I":GOTO 380 360 IF P=0 OR E=0 THEN 370 365 R=(E^2)/P:PRINT "R=(E^2)/P":GOTO 380 370 IF P=0 OR I=0 THEN BEEP:GOTO 335 375 R=P/(I^2):PRINT "R=P/(I^2)" 380 GOSUB 560 385 GOTO 145 390 REM FIND P 395 CLS 400 G$="EIR":A$="P":GOSUB 445 405 IF E=0 OR R=0 THEN 415 410 P=(E^2)/R:PRINT "P=(E^2)/R":GOTO 435 415 IF R=0 OR I=0 THEN 425 420 P=(I^2)*R:PRINT "P=(I^2)*R":GOTO 435 425 IF I=0 OR E=0 THEN BEEP:GOTO 390 430 P=E*I:PRINT "P=E*I" 435 GOSUB 560 440 GOTO 145 445 REM GET kNOWN VALUES 450 CLS:NZB=0:E=0:R=0:P=0:I=0 455 FOR X=1 TO 3 460 IF NZB=2 THEN 520 465 B$=MID$(G$,X,1) 470 PRINT "What is ";B$;" (ENTER if NA)"; 475 ANS$="" 480 INPUT ANS$ 485 B=VAL(ANS$) 490 IF B=0 THEN 500 495 NZB=NZB+1 500 IF B$="E" THEN E=B 505 IF B$="R" THEN R=B 510 IF B$="P" THEN P=B 515 IF B$="I" THEN I=B 520 NEXT 525 IF NZB=>2 THEN 550 530 PRINT:PRINT "Not enough values! Must enter two." 535 BEEP:BEEP 540 FOR T=0 TO 1000:NEXT 545 GOTO 445 550 CLS 555 RETURN 560 REM DISPLAY RESULTS 565 PRINT A$;"="; 570 IF A$="E" THEN PRINT E 575 IF A$="I" THEN PRINT I 580 IF A$="R" THEN PRINT R 585 IF A$="P" THEN PRINT P 590 PRINT:PRINT "When:" 595 FOR X=1 TO 3 600 B$=MID$(G$,X,1) 605 IF B$="E" AND E<>0 THEN PRINT "E=";E 610 IF B$="I" AND I<>0 THEN PRINT "I=";I 615 IF B$="R" AND R<>0 THEN PRINT "R=";R 620 IF B$="P" AND P<>0 THEN PRINT "P=";P 625 NEXT 630 PRINT:PRINT"Press any key to continue."; 635 ANS$=INKEY$:IF ANS$="" THEN 635 640 RETURN 645 REM DISPLAY CENTERED TEXT 650 REM SCREEN WIDTH IS 40 CHR 655 W=40 660 NS=INT((W-LEN(TX$))/2) 665 FOR X=1 TO NS 670 PRINT " "; 675 NEXT 680 PRINT TX$ 685 RETURN 690 CLS:END 695 REM WRITTEN IN 'COMMON' BASIC 700 REM SHOULD WORK ON ANY PLATFORM 705 REM EVEN "REAL COMPUTERS"