home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
genie-commodore-file-library
/
C64Educational
/
OHM
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
10KB
|
315 lines
1 REM ** OHM'S LAW CALCUATOR 3.8 **
2 REM
3 REM ******* JIM MIRUS 1987 *******
4 REM
5 REM ********* C-64 BASIC ***********
6 REM
7 REM
10 PRINT"[147]":POKE53280,11:POKE53281,0:PRINT" [159]J[155] AND [158]J "
11 PRINT" SOFTWARE"
12 PRINT" PRESENTS !":FORW=ITO1500:NEXTW
15 POKE53280,0:POKE53281,0:PRINTCHR$(147)
17 A=1:B=-1:C=40:D=-40:N=1:P=54272:V=1984
19 FORZ=1TO12:GOSUB35
21 V=V-39:N=N+1
23 NEXT
25 V=V+42:N=N-1
27 FORZ=1TO12:GOSUB35
29 V=V+42:N=N-1
31 NEXT
33 GOTO99
35 Q=INT(15*RND(1))+1
37 FORX=1TON:POKEV+A,67:POKEV+A+P,Q:V=V+A:NEXT
39 POKEV,75:POKEV+P,Q
41 FORX=1TON:POKEV+D,66:POKEV+D+P,Q:V=V+D:NEXT
43 POKEV,73:POKEV+P,Q
45 FORX=1TON:POKEV+B,67:POKEV+B+P,Q:V=V+B:NEXT
47 POKEV,85:POKEV+P,Q
49 FORX=1TON:POKEV+C,66:POKEV+C+P,Q:V=V+C:NEXT
51 POKEV,74:POKEV+P,Q
53 RETURN
99 FORW=1TO1300:NEXTW:PRINT""
100 PRINTCHR$(14):POKE53280,0:POKE53281,0:PRINT"[155]"
120 PRINT" [207]HM'S"
121 PRINT:PRINT" [204]AW"
124 PRINT
125 PRINT" [129] [195]ALCULATOR"
126 PRINT" [202][158]I[154]M [205][129]IR[156]U[150]S "
130 FORW=ITO2300:NEXTW
140 GOSUB5000:POKE53280,11:PRINT" [196]EFINITIONS [146][155]"
150 PRINT" 1. [210] = [210]ESISTANCE IN OHMS"
155 PRINT" 2. [214] = [214]OLTAGE ([197][205][198]) IN [214]OLTS"
160 PRINT" 3. [201] = [195]URRENT IN [193]MPERES"
165 PRINT" 4. [208] = [208]OWER IN [215]ATTS"
170 PRINT" 5. [218] = [201]MPEDANCE IN [207]HMS"
175 PRINT" 6. [216]L = [201]NDUCTIVE [210]EACTANCE IN [207]HMS"
180 PRINT" 7. [216]C = [195]APACITIVE [210]EACTANCE IN [207]HMS"
185 PRINT" [208][210][197][211][211][160][193][206][217][160][203][197][217][160][146][155]"
186 GETA$:IFA$=""GOTO186
190 GOSUB5000:PRINT" [211]ELECT 1 OR 2 AND PRESS [210]ETURN [146][155]"
192 PRINT" 1. [207]HM'S [204]AW [195]ALCUATOR"
193 PRINT" 2. [193].[195]. [195]ALCUATOR"
195 PRINT:INPUTS
196 IFS=1THENGOTO200
197 IFS=2THENGOTO1010
200 GOSUB5000:PRINT" [211]ELECT [214]ALUE [206]EEDED AND PRESS [210]ETURN [146][155]"
210 PRINT" 1. [210]ESISTANCE IN [207]HMS ([210])"
220 PRINT" 2. [214]OLTAGE IN [214]OLTS ([214])"
230 PRINT" 3. [195]URRENT IN [193]MPERES ([201])"
240 PRINT" 4. [208]OWER IN [215]ATTS ([208])"
245 PRINT" 5. [210]ESISTANCE IN [208]ARALLEL"
247 PRINT" 6. [214]OLTAGE DROPING [210]ESISTOR"
250 PRINT:INPUTS
260 IFS=1THENGOTO300
265 IFS=2THENGOTO400
270 IFS=3THENGOTO500
275 IFS=4THENGOTO600
280 IFS=5THENGOTO700
290 IFS=6THENGOTO800
300 PRINT"[147]":PRINT"[158] [210]ESISTANCE [146][155]"
302 PRINT"[158][211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN[146][155]"
305 PRINT" 1. [214]OLTS ([214]) & [193]MPERES ([201])"
310 PRINT" 2. [215]ATTS ([208]) & [193]MPERES ([201])"
315 PRINT" 3. [214]OLTS ([214]) & [215]ATTS ([208])"
320 PRINT:INPUTNV
321 IFNV=1THENGOTO330
322 IFNV=2THENGOTO350
323 IFNV=3THENGOTO370
330 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
335 PRINT" 2. [197]NTER [193]MPERES":INPUTI
340 PRINT:PRINT:R=V/I
342 PRINT"[158] [212]HE ANSWER IS [155][146]"R"[158] [207]HMS [146][155]"
345 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
346 GETA$:IFA$=""THENGOTO346
347 IFA$="Y"THENGOTO300
348 IFA$="N"THENGOTO190
350 PRINT"[147] 1. [197]NTER [215]ATTS":INPUTP
352 PRINT" 2. [197]NTER [193]MPERES":INPUTI
355 PRINT:PRINT:R=P/I^2:GOTO342
370 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
375 PRINT" 2. [197]NTER [215]ATTS":INPUTP
380 PRINT:PRINT:R=V^2/P:GOTO342
400 PRINT"[147][156] [214]OLTAGE [146][155]"
402 PRINT"[156][211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN[146][155]"
405 PRINT" 1. [193]MPERES ([201]) & [210]ESISTANCE ([210])"
410 PRINT" 2. [193]MPERES ([201]) & [215]ATTS ([208])"
415 PRINT" 3. [215]ATTS ([208]) & [210]ESISTANCE ([210])"
420 PRINT:INPUTS
421 IFS=1THENGOTO430
422 IFS=2THENGOTO450
423 IFS=3THENGOTO470
430 PRINT"[147] 1. [197]NTER [193]MPERES":INPUTI
435 PRINT" 2. [197]NTER [210]ESISTANCE":INPUTR
440 PRINT:PRINT:V=I*R
442 PRINT"[158] [212]HE ANSWER IS [146][155]"V"[158] [214]OLTS[146][155]"
443 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
444 GETA$:IFA$=""THENGOTO444
445 IFA$="Y"THENGOTO400
446 IFA$="N"THENGOTO190
450 PRINT"[147] 1. [197]NTER [193]MPERES":INPUTI
452 PRINT" 2. [197]NTER [215]ATTS":INPUTP
455 PRINT:PRINT:V=P/I:GOTO442
470 PRINT"[147] 1. [197]NTER [215]ATTS":INPUTP
475 PRINT" 2. [197]NTER [210]ESISTANCE":INPUTR
480 PRINT:PRINT:V=SQR(P*R):GOTO442
500 PRINT"[147][129] [195]URRENT [146][155]"
502 PRINT"[129][211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN[155][146]"
505 PRINT" 1. [214]OLTAGE ([214]) & [210]ESISTANCE ([210])"
510 PRINT" 2. [214]OLTAGE ([214]) & [215]ATTS ([208])"
515 PRINT" 3. [210]ESISTANCE ([210]) & [215]ATTS ([208])"
520 PRINT:INPUTS
521 IFS=1THENGOTO530
522 IFS=2THENGOTO550
523 IFS=3THENGOTO570
530 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
535 PRINT" 2. [197]NTER [210]ESISTANCE":INPUTR
540 PRINT:PRINT:I=V/R
542 PRINT"[158] [212]HE ANSWER IS [146][155]"I"[158] [193]MPERES [146][155]"
543 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
544 GETA$:IFA$=""THENGOTO544
545 IFA$="Y"THENGOTO500
546 IFA$="N"THENGOTO190
550 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
552 PRINT" 2. [197]NTER [215]ATTS":INPUTP
555 PRINT:PRINT:I=P/V:GOTO542
570 PRINT"[147] 1. [197]NTER [210]ESISTANCE":INPUTR
575 PRINT" 2. [197]NTER [215]ATTS":INPUTP
580 PRINT:PRINT:I=SQR(P/R):GOTO542
600 PRINT"[147] [208]OWER [146][155]"
602 PRINT"[211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN[146][155]"
605 PRINT" 1. [214]OLTAGE ([214]) & [193]MPERES ([201])"
610 PRINT" 2. [193]MPERES ([201]) & [210]ESISTANCE ([210])"
615 PRINT" 3. [214]OLTAGE ([214]) & [210]ESISTANCE ([210])"
620 PRINT:INPUTS
621 IFS=1THENGOTO630
622 IFS=2THENGOTO650
623 IFS=3THENGOTO670
630 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
635 PRINT" 2. [197]NTER [193]MPERES":INPUTI
640 PRINT:PRINT:P=V*I
642 PRINT"[158] [212]HE ANSWER IS [146][155]"P"[158] [215]ATTS [146][155]"
643 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
644 GETA$:IFA$=""THENGOTO644
645 IFA$="Y"THENGOTO600
646 IFA$="N"THENGOTO190
650 PRINT"[147] 1. [197]NTER [193]MPERES":INPUTI
652 PRINT" 2. [197]NTER [210]ESISTANCE":INPUTR
655 PRINT:PRINT:P=I^2*R:GOTO642
670 PRINT"[147] 1. [197]NTER [214]OLTAGE":INPUTV
675 PRINT" 2. [197]NTER [210]ESISTANCE":INPUTR
680 PRINT:PRINT:P=V^2/R:GOTO642
700 PRINT"[147][159][200]OW MANY [210]ESISTERS IN [208]ARALLEL[146][155]":PRINT:INPUTX
705 R(L)=0:RT=0
710 FORL=1TOX
720 PRINT:PRINT"[197]NTER VALUE #";L;:INPUTR(L)
730 NEXT
750 FORL=1TOX
760 RT=RT+(1/R(L)):NEXT
770 RT=1/RT
780 PRINT:PRINT"[158] [212]OTAL [210][197][201][211][212][193][206][195][197][160]IS [146][155]";RT"[158] [207]HMS [146][155]"
781 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
782 GETA$:IFA$=""THENGOTO782
783 IFA$="Y"THENGOTO700
784 IFA$="N"THENGOTO190
800 PRINT"[147] [214]OLTAGE [196]ROP [146]"
805 PRINT"[155][211]ELECT PROGRAM NEEDED AND PRESS"
807 PRINT"[210]ETURN"
809 PRINT"1. [198]IND [214]OLTAGE DROP AT RESISTOR"
812 PRINT"2. [198]IND RESISTOR NEEDED TO DROP":PRINT"VOLTAGE TO DESIERED LEVEL."
815 INPUTS
820 IFS=1THENGOTO830
825 IFS=2THENGOTO900
830 PRINT"[147] [214]OLTAGE [196]ROP [146]"
833 R=0:I=0:V=0
835 PRINT:PRINT"[155][210]ESISTANCE IN [207]HMS":INPUTR
840 PRINT:PRINT"[195]URRENT IN [193]MPS.":INPUTI
845 V=I*R
850 PRINT" [212]HE ANSWER IS [146]"V" [214]OLTS [146]"
860 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
865 GETA$:IFA$=""THENGOTO865
870 IFA$="Y"THENGOTO800
875 IFA$="N"THENGOTO190
900 PRINT"[147] [214]OLTAGE [196]ROP [146]"
905 PRINT"[155][213]SE THIS PROGRAM TO FIND VALUE OF"
907 PRINT"RESISTOR NEEDED TO DROP SOURCE VOLTAGE"
909 PRINT"TO THE VOLTAGE NEEDED FOR THE DEVICE.":PRINT
912 VX=0:VT=0:VL=0:R=0:IL=0
915 INPUT"[196]EVICE [214]OLTAGE";VL:PRINT
920 INPUT"[196]EVICE [195]URRENT ([193]MPS.)";IL:PRINT
925 INPUT"[211]OURCE [214]OLTAGE";VT
930 VX=VT-VL:R=VX/IL:P=VX*IL
940 PRINT" [210]ESISTANCE IS [146][155] "R" [207]HMS [146]"
945 PRINT" [214]OLTAGE DROP IS [146][155] "VX" [214]OLTS [146]"
950 PRINT" [208]OWER IS [146][155] "P" [215]ATTS [146]"
960 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
965 GETA$:IFA$=""THENGOTO965
970 IFA$="Y"THENGOTO900
975 IFA$="N"THENGOTO190
1000 PRINT"[147]":PRINTCHR$(142)
1005 LOAD"*",8:CHR$(13)
1010 GOSUB5000:PRINT"[158] [193].[195]. "
1015 PRINT" [211]ELECT [214]ALUE [206]EEDED AND PRESS [210]ETURN [146][155]"
1020 PRINT" 1. [201]NPEDANCE IN [207]HMS"
1030 PRINT" 2. [201]NDUCTIVE [210]EACTANCE IN [207]HMS"
1040 PRINT" 3. [195]APACITIVE [210]EACTANCE IN [207]HMS"
1045 PRINT" 4. [201]NDUCTORS IN [208]ARALLEL"
1050 PRINT" 5. [195]APACITORS IN [211]ERIES"
1060 PRINT:INPUTS
1065 IFS=1THENGOTO1200
1067 IFS=2THENGOTO1300
1070 IFS=3THENGOTO1400
1075 IFS=4THENGOTO1500
1080 IFS=5THENGOTO1600
1200 GOSUB5000:PRINT"[158] [201]MPEDANCE [146][155]"
1205 PRINT"[158][211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN[146][155]"
1210 PRINT" 1. [210]ESISTANCE & [210]EACTANCE"
1212 Z=0:R=0:X=0:XL=0:XC=0
1215 PRINT" 2. [210]ESISTANCE, [201]NDUC./[210]EACT.([216]L) & [195]APAC./[210]EACT.([216]C)"
1220 PRINT:INPUTS
1225 IFS=1THENGOTO1235
1230 IFS=2THENGOTO1265
1235 PRINT"[147]":PRINT"[158] [201]MPEDANCE [146][155]"
1240 PRINT"[197]NTER [210]ESISTANCE":INPUTR
1245 PRINT"[197]NTER [210]EACTANCE":INPUTX
1250 Z=SQR(R^2+X^2)
1255 PRINT"[158] [212]HE [201]MPEDANCE IS [146][155]"Z"[158] [207]HMS "
1256 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1257 GETA$:IFA$=""THENGOTO1257
1258 IFA$="Y"THENGOTO1200
1259 IFA$="N"THENGOTO190
1265 PRINT"[147]":PRINT"[158] [201]MPEDANCE [146][155]"
1270 PRINT"[197]NTER [210]ESISTANCE":INPUTR
1275 PRINT"[197]NTER [201]NDUCTIVE [210]EACTANCE":INPUTXL
1280 PRINT"[197]NTER [195]APACITIVE [210]EACTANCE":INPUTXC
1285 X=(XL-XC)^2:Z=SQR(R^2+X):GOTO1255
1300 GOSUB5000:PRINT"[156] [201]NDUCTIVE [210]EACTANCE [146][155]"
1305 PRINT"[156] [211]ELECT [203]NOWN [214]ALUES AND PRESS [210]ETURN [146][155]"
1310 PRINT" 1. [198]REQUENCY([200]Z) & [201]NDUCTANCE([200]ENRYS)"
1315 PRINT" 2. [201]NPEDANCE([218]), [196].[195]. [210]ESISTANCE"
1317 Z=0:XC=0:L=0:R=0:F=0:P=6.28
1320 PRINT:INPUTS
1325 IFS=1THENGOTO1340
1330 IFS=2THENGOTO1365
1340 PRINT"[147]":PRINT"[156] [201]NDUCTIVE [210]EACTANCE [146][155]"
1345 PRINT" [197]NTER [198]REQUENCY([200]Z)":INPUTF
1350 PRINT" [197]NTER [201]NDUCTANCE([200]ENRYS)":INPUTL
1352 XL=P*(F*L)
1355 PRINT"[158] [201]NDUCTIVE [210]EACTANCE IS [146][155]"XL"[158] [207]HMS "
1356 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1357 GETA$:IFA$=""THENGOTO1357
1358 IFA$="Y"THENGOTO1300
1359 IFA$="N"THENGOTO190
1365 PRINT"[147]":PRINT"[156] [201]NDUCTIVE [210]EACTANCE [146][155]"
1370 PRINT" [197]NTER [196].[195]. [210]ESISTANCE":INPUTR
1375 PRINT" [197]NTER [201]NPEDANCE":INPUTZ
1385 XL=SQR(Z^2-R^2)
1390 PRINT"[158] [201]NDUCTIVE [210]EACTANCE IS [146][155]"XL"[158] [207]HMS "
1392 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1393 GETA$:IFA$=""THENGOTO1393
1394 IFA$="Y"THENGOTO1300
1395 IFA$="N"THENGOTO190
1400 GOSUB5000:PRINT" [195]APACTIVE [210]EACTANCE [146][155]"
1405 PRINT""
1410 PRINT" [197]NTER [198]REQUENCY([200]Z)":INPUTF
1415 PRINT" [197]NTER CAPACITANCE([198]ARADS)":INPUTC
1420 P=6.28:XC=1/(P*F*C)
1425 PRINT"[158] [195]APACTIVE [210]EACTANCE IS [146][155]"XC"[158] [207]HMS "
1430 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1435 GETA$:IFA$=""THENGOTO1435
1440 IFA$="Y"THENGOTO1400
1445 IFA$="N"THENGOTO190
1500 PRINT"[147][159][200]OW MANY [201]NDUCTORS IN [208]ARALLEL[146][155]":PRINT:INPUTX
1505 R(L)=0:RT=0
1510 FORL=1TOX
1515 PRINT:PRINT"[197]NTER VALUE #";L;:INPUTR(L)
1520 NEXT
1525 FORL=1TOX
1530 RT=RT+(1/R(L)):NEXT
1535 RT=1/RT
1540 PRINT:PRINT"[158] [212]OTAL [201][206][196][213][195][212][193][206][195][197][160]: [146][155]";RT"[158] [200]ENRYS [146][155]"
1545 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1550 GETA$:IFA$=""THENGOTO1550
1555 IFA$="Y"THENGOTO1500
1560 IFA$="N"THENGOTO190
1600 PRINT"[147][159] [200]OW MANY [195]APACTORS IN [211]ERIES [146][155]"
1602 PRINT" ( [205]ICROFARAD )":PRINT:INPUTX
1605 R(L)=0:RT=0
1610 FORL=1TOX
1615 PRINT:PRINT"[197]NTER VALUE #";L;:INPUTR(L)
1620 NEXT
1625 FORL=1TOX
1630 RT=RT+(1/R(L)):NEXT
1635 RT=1/RT
1640 PRINT:PRINT"[158] [212]OTAL [195][193][208][193][195][201][212][193][206][195][197][160]: [146][155]";RT"[158] MMF. [146][155]"
1645 FORT=1TO1000:NEXTT:PRINT" [212][210][217][160][193][199][193][201][206][160][217]/[206] [146][155]"
1650 GETA$:IFA$=""THENGOTO1650
1655 IFA$="Y"THENGOTO1600
1660 IFA$="N"THENGOTO190
5000 C1$="_"
5100 C1=23:C2=19:C3=24:C4=39:C5=59903
5200 FORJ=0TOC1:C2$=C2$+CHR$(32)+CHR$(157)+CHR$(17):NEXT:C2$=C2$+CHR$(145)
5300 FORJ=0TOC2:IFJ=0THENPOKE781,C3:SYSC5
5400 IFC1$="_"THENPRINT"";TAB(J);C2$:PRINT"";TAB(C4-J);C2$
5500 IFC1$="^"THENPOKE781,J:SYSC5:POKE781,C3-J:SYSC5
5600 NEXT:PRINT"[147]";:C2$="":RETURN