- Timer: calculates unknown 555 timer values with input of two known values.
- CCT: aid to designing circuits. There appears to be a basic error.
- Homebrew (LCR): computes LCR circuit values and coil properties.
Content
Source Code
1 REM This program calculates unknown Timer values with input of two known values.
5 REM 5/1/84
6 REM Gary L Mueller
7 CLS
9 POKE 23609,100
10 PRINT AT 4,14;"555"
14 REM
15 REM **MENU**
16 REM
20 PRINT AT 5,13;"MENU"
30 PRINT AT 7,7;"1. ASTABLE OPERATIONS"
40 PRINT AT 9,7;"2. MONOSTABLE OPERATION"
50 PRINT AT 18,3;"INPUT CHOICE 1,2"
60 INPUT M
70 PRINT M
80 PAUSE 30
90 IF M=1 THEN GO TO 400
100 IF M=2 THEN GO TO 1200
110 IF M>2 THEN GO TO 50
400 CLS
404 REM
405 REM **ASTABLE GRAPHICS**
406 REM ********************
410 PRINT AT 1,3;"555"
420 PRINT AT 2,1;"ASTABLE"
430 PRINT AT 5,3;"OUTPUT"
440 PRINT AT 5,13;"316"
460 PRINT AT 0,20;"Vcc"
470 PRINT AT 2,13;"4 8"
480 PRINT AT 2,17;"Ra"
490 PRINT AT 3,13;"2 7"
510 PRINT AT 4,17;"Rb"
520 PRINT AT 6,17;"C"
530 CIRCLE 152,168,2
540 PLOT 150,168
550 DRAW -38,0
560 DRAW 0,-8
570 DRAW -10,0
580 DRAW 0,-33
590 DRAW 28,0
600 DRAW 0,33
610 DRAW -18,0
620 PLOT 116,128
630 DRAW 0,-16
640 DRAW 8,0
650 DRAW -16,0
660 PLOT 116,116
670 DRAW 23,0
680 DRAW 0,3
690 PLOT 130,132
700 DRAW 10,0
710 PLOT 140,136
720 DRAW 0,-8
730 PLOT 130,148
740 DRAW 10,0
750 PLOT 140,151
760 DRAW 0,-6
770 PLOT 140,168
780 DRAW 0,-8
790 PLOT 102,132
800 DRAW -10,0
810 CIRCLE 87,132,2
820 PLOT 112,144
830 DRAW 7,-7
840 PLOT 125,168
850 DRAW 0,-8
860 PRINT AT 10,18;"1000 Ms= 1 Sec"
864 REM
865 REM **END OF GRAPHICS**
866 REM
867 REM **ASTABLE VALUES INPUT*
868 REM
870 PRINT AT 9,0;"INPUT Ra"
875 PRINT AT 2,17; FLASH 1;"Ra"
880 INPUT A
885 PRINT AT 2,17; FLASH 0;"Ra"
890 PRINT AT 9,10;A
900 PRINT AT 10,0;"INPUT Rb"
905 PRINT AT 4,17; FLASH 1;"Rb"
910 INPUT B
915 PRINT AT 4,17; FLASH 0;"Rb"
920 PRINT AT 10,10;B
930 PRINT AT 11,0;"INPUT C"
935 PRINT AT 6,17; FLASH 1;"C"
940 INPUT C1
945 PRINT AT 6,17; FLASH 0;"C"
950 PRINT AT 11,10;C1
954 REM
955 REM *PROCESSING AND OUTPUT*
956 REM
960 LET C=C1*.000001
970 LET F=(A+2*B)*C
980 LET H=1.44/F
990 PRINT AT 13,0;"FREQUENCY IS ";H;" Hz"
1010 PRINT
1020 LET T=.693*(A+B)*C
1030 PRINT AT 15,0;"OUTPUT HIGH ";T;" Sec"
1040 LET S=.693*B*C
1050 PRINT "OUTPUT LOW ";S;" Sec"
1060 LET U=S+T
1070 PRINT "TOTAL PERIOD ";U;" Sec"
1080 PRINT AT 21,0;"WANT COPY? Y/N"
1090 INPUT Y$
1100 IF Y$="Y" THEN GO SUB 1160
1110 PRINT AT 21,0;"WANT ANOTHER VALUE Y/N?"
1120 INPUT Y$
1140 IF Y$="Y" THEN GO TO 400
1150 PRINT AT 21,0;"WANT MENU? Y/N "
1152 INPUT Y$
1153 IF Y$="N" THEN GO TO 6035
1154 IF Y$="Y" THEN GO TO 7
1155 IF Y$<>"Y" THEN GO TO 1150
1157 REM
1158 REM **COPY SUBROUTINE**
1159 REM
1160 PRINT AT 21,0;"SET UP PRINTER AND PRESS A KEY"
1161 PAUSE 50
1162 IF INKEY$="" THEN GO TO 1162
1163 PRINT AT 21,0;" "
1164 COPY
1170 RETURN
1199 REM
1200 REM MONOSTABLE
1201 REM **********************
1205 REM **MENU**
1206 CLS
1208 PRINT AT 1,5;"555";AT 2,2;"MONOSTABLE"
1210 PRINT AT 4,14;"MENU"
1220 PRINT AT 5,5;"----------------------"
1230 PRINT AT 7,5;"1. CONVERT INPUT Hz TO Ms"
1240 PRINT AT 9,5;"2. Ra & C KNOWN"
1250 PRINT AT 11,5;"3. TIME & C KNOWN"
1260 PRINT AT 13,5;"4. TIME & Ra KNOWN"
1265 PRINT AT 15,5;"5. ASTABLE OPERATION"
1270 PRINT AT 18,3;"INPUT CHOICE 1,2,3,4,5"
1280 INPUT M
1290 PRINT M
1300 PAUSE 30
1310 CLS
1330 IF M=1 THEN GO TO 2000
1340 IF M=2 THEN GO TO 3000
1350 IF M=3 THEN GO TO 4000
1360 IF M=4 THEN GO TO 5000
1370 IF M=5 THEN GO TO 400
1380 IF M>5 THEN GO TO 1270
1549 REM
1550 REM **MONOSTABLE GRAPHICS**
1551 REM ***********************
1599 CLS
1600 PRINT AT 5,3;"OUTPUT"
1605 PRINT AT 5,13;"316"
1610 PRINT AT 0,20;"Vcc"
1620 PRINT AT 2,13;"4 8"
1625 PRINT AT 2,17;"Ra"
1630 PRINT AT 3,13;"2 7"
1640 PRINT AT 6,17;"C"
1650 CIRCLE 152,168,2
1660 PLOT 150,168
1670 DRAW -38,0
1680 DRAW 0,-8
1690 DRAW -10,0
1700 DRAW 0,-33
1710 DRAW 28,0
1720 DRAW 0,33
1730 DRAW -18,0
1740 PLOT 116,128
1750 DRAW 0,-16
1760 DRAW 8,0
1770 DRAW -16,0
1780 PLOT 116,116
1790 DRAW 23,0
1800 DRAW 0,3
1810 PLOT 130,132
1820 DRAW 10,0
1850 PLOT 130,148
1860 DRAW 10,0
1870 PLOT 140,151
1880 DRAW 0,-24
1890 PLOT 140,168
1900 DRAW 0,-8
1910 PLOT 102,132
1920 DRAW -10,0
1930 CIRCLE 87,132,2
1940 PLOT 102,148
1950 DRAW -10,0
1955 CIRCLE 87,148,2
1956 PRINT AT 3,2;"TRIGGER"
1960 PLOT 125,168
1970 DRAW 0,-8
1972 PRINT AT 4,19;"1000 Ms=1 Sec"
1974 REM
1975 REM **END OF GRAPHICS**
1976 REM
1980 RETURN
1990 STOP
1999 REM
2000 REM **CONVERT INPUT Hz TO Ms**
2001 REM ******************
2005 CLS
2010 PRINT AT 5,0;"**CONVERT INPUT Hz TO Ms**"
2020 PRINT AT 7,0;"INPUT Hz"
2030 INPUT Hz
2040 LET X=1000/Hz
2050 PRINT AT 9,0;"Hz= ";X;" Ms"
2060 PRINT AT 12,0;"Copy Value Down"
2070 PAUSE 300
2080 GO TO 1206
2999 REM
3000 REM **Ra & C KNOWN**
3001 REM *************************
3005 CLS
3010 GO SUB 1599
3015 PRINT AT 9,0;"**Ra & C KNOWN**"
3020 PRINT AT 11,0;"INPUT Ra "
3025 PRINT AT 2,17; FLASH 1;"Ra"
3030 INPUT Ra
3035 PRINT AT 2,17; FLASH 0;"Ra"
3040 PRINT AT 11,10;Ra
3050 PRINT AT 12,0;"INPUT C "
3051 PRINT AT 6,17; FLASH 1;"C"
3052 INPUT C1
3055 PRINT AT 6,17; FLASH 0;"C"
3057 PRINT AT 12,10;C1
3060 LET C=C1*.001
3070 LET T=1.1*Ra*C
3075 LET S=T/1000
3080 PRINT AT 15,0;"Output High is ";T;" Ms"
3082 PRINT AT 17,0;"Or ";S;" Sec"
3085 GO SUB 5500
3086 GO TO 3005
3999 REM
4000 REM **TIME & C KNOWN**
4001 REM **********************
4005 CLS
4010 GO SUB 1599
4015 PRINT AT 9,0;"**TIME & C KNOWN**"
4020 PRINT AT 11,0;"INPUT TIME IN Ms "
4030 INPUT T
4040 PRINT AT 11,18;T
4050 PRINT AT 12,0;"INPUT C "
4055 PRINT AT 6,17; FLASH 1;"C"
4060 INPUT C1
4065 PRINT AT 6,17; FLASH 0;"C"
4070 PRINT AT 12,10;C1
4080 LET C=(C1*.001)*1.1
4090 LET Ra=T/C
4100 PRINT AT 15,0;"Ra= ";Ra
4110 GO SUB 5500
4120 GO TO 4005
5000 REM **TIME & Ra KNOWN**
5001 REM *************************
5005 CLS
5010 GO SUB 1599
5015 PRINT AT 9,0;"**TIME & Ra KNOWN**"
5020 PRINT AT 11,0;"INPUT TIME IN Ms"
5030 INPUT T
5040 PRINT AT 11,18;T
5050 PRINT AT 12,0;"INPUT Ra"
5055 PRINT AT 2,17; FLASH 1;"Ra"
5060 INPUT Ra
5065 PRINT AT 2,17; FLASH 0;"Ra"
5070 PRINT AT 12,10;Ra
5080 LET Rb=Ra*1.1*.001
5085 PRINT Rb
5090 LET C=T*Rb
5100 PRINT AT 15,0;"C= ";C
5110 GO SUB 5500
5120 GO TO 5005
5500 REM
5510 REM *DECISION ROUTINE*
5520 REM
5530 PRINT AT 21,0;"COPY TO PRINTER? Y/N"
5540 INPUT Y$
5550 IF Y$="Y" THEN GO SUB 1160
5560 PRINT AT 21,0;"WANT NEW VALUE? Y/N "
5570 INPUT Y$
5580 IF Y$="Y" THEN RETURN
5590 PRINT AT 21,0;"WANT MENU? Y/N "
5600 INPUT M$
5610 IF M$="Y" THEN GO TO 1206
6000 CLS
6010 PRINT "PROCESSING ENDED-NEED MORE DATA? Y/N"
6020 INPUT A$
6030 IF A$="Y" THEN GO TO 7
6035 CLS
6040 PRINT AT 10,10;"GOODBYE"
6045 PAUSE 100
6050 CLS
7000 STOP
9898 REM
9899 REM *PROGRAM SAVE & AUTO RUN**
9900 SAVE "TIMER" LINE 5
9999 REM **END OF PROGRAM**
5 LET o$=""
10 FOR j=1 TO 20: FOR k=1 TO 32
12 LET e=CODE c$(j,k)
14 IF e=49 OR e=50 OR (e>51 AND e<87 AND e<>71 AND e<>72 AND e<>73 AND e<>80 AND e<>81 AND e<>83) THEN LET o$=o$+CHR$ j+CHR$ k
18 NEXT k: NEXT j
20 RETURN
22 CLS
26 FOR j=1 TO 20: FOR k=1 TO 32: PRINT c$(j,k);: LET w(j,k)=CODE c$(j,k)+100: NEXT k: NEXT j
36 IF e$="f" THEN GO TO 42
40 GO TO 500
42 COPY
44 GO TO 8000
67 IF u$="1" THEN GO TO 8000
68 GO TO 22
78 LET r=64511+8*(CODE g$-32)
80 DIM a$(8,8): DIM b$(8,8)
90 LET d=r
100 FOR j=1 TO 8
110 LET d=d+1: LET e=PEEK d
120 FOR k=8 TO 1 STEP -1
130 LET t=INT (e/2)
140 IF e/2<>t THEN LET a$(j,k)="!"
150 LET b$(j,k)=a$(j,k): LET e=t
170 NEXT k: NEXT j
330 LET x=9
340 FOR j=1 TO 8
350 LET x=x-1
360 FOR k=1 TO 8
370 LET a$(j,k)=CHR$ (CODE b$(k,x)-32): NEXT k
385 LET r=r+1
386 POKE r,(128*CODE a$(j,1)+64*CODE a$(j,2)+32*CODE a$(j,3)+16*CODE a$(j,4)+8*CODE a$(j,5)+4*CODE a$(j,6)+2*CODE a$(j,7)+CODE a$(j,8))
390 NEXT j
395 GO SUB 420
400 CLS : FOR j=1 TO 20: FOR k=1 TO 32: PRINT c$(j,k);: NEXT k: NEXT j
410 GO TO 560
420 IF g$<>"G" AND g$<>"H" AND g$<>"I" AND g$<>"P" AND g$<>"S" THEN GO TO 440
430 RETURN
440 LET j$=q$(CODE g$-56)
450 IF j$="4" THEN LET j$="0"
455 LET j$=STR$ (VAL j$+1): LET q$(CODE g$-56)=j$
470 RETURN
480 LET t=1
490 GO TO 585
502 LET t=0: LET g$=" ": LET s=10: LET c=16
555 IF INKEY$<>"" THEN GO TO 555
560 PRINT AT s,c;"_"
565 PRINT AT 21,15;g$
570 IF INKEY$="" THEN GO TO 600
580 LET e$=INKEY$
583 IF e$="1" THEN GO TO 480
585 IF e$="0" THEN LET t=0
590 GO TO 620
600 PRINT AT s,c;" "
610 GO TO 560
620 IF e$="0" OR e$="1" THEN LET g$=" "
622 IF e$="0" OR e$="1" THEN GO TO 630
624 IF CODE e$<53 OR CODE e$>56 THEN GO TO 750
630 PRINT AT s,c;"_"
631 IF t=1 THEN GO TO 635
632 LET c$(s+1,c+1)=g$: LET w(s+1,c+1)=56: LET e=CODE g$
636 PRINT AT s,c;g$
637 IF t=1 THEN PRINT AT s,c;c$(s+1,c+1)
640 IF e$="5" THEN LET c=c-1
650 IF e$="6" THEN LET s=s+1
660 IF e$="7" THEN LET s=s-1
670 IF e$="8" THEN LET c=c+1
680 IF c<0 THEN LET c=0
690 IF c>31 THEN LET c=31
700 IF s<0 THEN LET s=0
710 IF s>19 THEN LET s=19
730 GO TO 560
755 LET t=0
760 POKE 23607,60
762 PRINT AT 20,0;"Enter code or C-copy A-activate": PRINT "D-de activate R-rotate M-menu"
770 INPUT j$
775 POKE 23607,251
780 PRINT AT 20,0;v$;v$
783 IF LEN j$=1 THEN GO TO 900
785 LET x=0
790 FOR j=1 TO 56
810 LET h$=i$(j)
820 IF j$=h$ THEN GO TO 850
830 NEXT j
840 GO TO 760
850 LET g$=CHR$ (j+32)
870 GO TO 570
900 IF j$<>"c" AND j$<>"r" AND j$<>"m" AND j$<>"d" AND j$<>"a" THEN GO TO 760
903 IF j$="c" THEN GO TO 9490
905 IF j$="r" AND CODE g$>56 THEN GO TO 74
906 IF j$="r" THEN PRINT AT 20,0;"sorry not a rotatable symbol"
907 IF j$="r" THEN GO TO 770
908 IF j$<>"a" THEN CLS
910 IF j$="d" THEN GO TO 56
930 IF j$="m" THEN GO TO 8000
1002 LET e$="W"
1006 LET f$=""
1007 LET f=0
1010 IF e$="W" THEN PRINT AT 21,5;"searching for earths"
1015 IF e$="X" THEN PRINT AT 21,5;"searching for power"
1020 FOR j=1 TO 20: FOR k=1 TO 32
1035 IF c$(j,k)="W" AND e$="W" THEN GO TO 1080
1040 IF e$="X" AND c$(j,k)="X" THEN GO TO 1080
1050 NEXT k: NEXT j
1067 IF e$="X" THEN GO TO 1073
1070 PRINT AT 20,0; INK 4;"incomplete circuit no earths"
1071 LET t=0
1072 GO TO 770
1073 PRINT AT 20,0; INK 2;"incomplete circuit no power"
1074 LET t=0
1075 GO TO 770
1077 PRINT AT 20,0; INK 3;"looks expensive short circuit"
1078 LET t=0
1079 GO TO 770
1085 LET l$="0"
1090 PRINT AT 20,0;v$;v$
1110 DIM a$(4)
1112 LET a$="1234"
1115 IF j=1 OR j=20 OR k=1 OR k=32 THEN DIM a$(3)
1120 IF j=1 THEN LET a$="234"
1125 IF j=20 THEN LET a$="124"
1130 IF k=1 THEN LET a$="123"
1135 IF k=32 THEN LET a$="134"
1155 IF (j=1 AND k=32) OR (j=1 AND k=1) OR (j=20 AND k=32) OR (j=20 AND k=1) THEN DIM a$(2)
1160 IF j=1 AND k=32 THEN LET a$="34"
1170 IF j=20 AND k=32 THEN LET a$="14"
1175 IF j=20 AND k=1 THEN LET a$="12"
1180 IF j=1 AND k=1 THEN LET a$="23"
1191 IF f=1 THEN GO TO 2000
1195 FOR m=1 TO LEN a$
1200 LET n=0
1220 GO TO VAL a$(m)*20+1230
1230 NEXT m
1232 LET ta=0
1235 IF LEN f$>0 THEN GO TO 1730
1237 IF ta=1 THEN GO TO 1110
1238 IF u=1 AND f>1 THEN GO TO 1885
1239 IF e$="W" THEN GO TO 1242
1240 IF f>1 THEN GO TO 1950
1241 GO TO 1800
1242 LET e$="X"
1243 IF f>1 THEN GO TO 1950
1245 GO TO 1005
1250 LET e=j-2
1252 IF j=2 THEN LET e=j
1255 LET k$=c$(j-1,k)+c$(e,k)+CHR$ 1+CHR$ 0+CHR$ 1+CHR$ (j-1)+CHR$ k+CHR$ (w(j-1,k))
1260 GO TO 1350
1270 LET e=k+2
1272 IF k=31 THEN LET e=k
1275 LET k$=c$(j,k+1)+c$(j,e)+CHR$ 2+CHR$ 1+CHR$ 2+CHR$ j+CHR$ (k+1)+CHR$ (w(j,k+1))
1280 GO TO 1350
1290 LET e=j+2
1292 IF j=19 THEN LET e=j
1295 LET k$=c$(j+1,k)+c$(e,k)+CHR$ 3+CHR$ 2+CHR$ 1+CHR$ (j+1)+CHR$ k+CHR$ (w(j+1,k))
1300 GO TO 1350
1310 LET e=k-2
1320 IF k=2 THEN LET e=k
1330 LET k$=c$(j,k-1)+c$(j,e)+CHR$ 4+CHR$ 1+CHR$ 0+CHR$ j+CHR$ (k-1)+CHR$ (w(j,k-1))
1354 IF a$(m)="1" AND l$="3" OR a$(m)="2" AND l$="4" OR a$(m)="3" AND l$="1" OR a$(m)="4" AND l$="2" THEN GO TO 1230
1355 IF (e$="W" AND k$(1)="X") OR (e$="X" AND k$(1)="W") THEN GO TO 1076
1356 IF e$="W" AND CODE k$(8)=32 THEN GO TO 1230
1357 IF e$="X" AND CODE k$(8)=16 THEN GO TO 1230
1358 IF CODE k$(1)=34 THEN GO TO 1490
1360 IF CODE k$(1)=33 THEN GO TO 1570
1380 FOR a=1 TO 11
1385 LET e=CODE p$(CODE k$(3),a)
1390 IF k$(1)=CHR$ e THEN LET n=1
1400 IF a=2 AND n=1 THEN GO TO 1230
1410 IF n=1 THEN GO TO 1440
1420 NEXT a
1430 GO TO 1230
1440 LET k=k-1+CODE k$(5): LET j=j-1+CODE k$(4)
1460 IF e$="W" THEN LET w(j,k)=32
1465 IF e$="X" THEN LET w(j,k)=16
1470 PRINT AT j-1,k-1; PAPER (w(j,k)/8);c$(j,k)
1472 IF e$="W" THEN PRINT AT 21,5;"searching for earths"
1473 IF e$="X" THEN PRINT AT 21,5;"searching for power"
1475 LET l$=a$(m): LET u=1
1478 IF INKEY$="h" THEN GO TO 1485
1480 GO TO 1110
1485 PRINT AT 21,0;"circuit frozen please continue"
1486 GO TO 555
1490 FOR a=1 TO 11
1500 IF k$(2)=p$(CODE k$(3),a) THEN GO TO 1530
1510 NEXT a
1520 GO TO 1230
1530 LET k=k-1+CODE k$(5): LET j=j-1+CODE k$(4)
1550 GO TO 1440
1570 LET f$=f$+k$(6)+k$(7)
1580 LET f$=f$+k$(6)+k$(7)
1590 GO TO 1380
1740 LET ta=1: LET j=CODE f$(1): LET k=CODE f$(2): LET f$=f$(3 TO ): LET l$="0"
1780 GO TO 1237
1810 GO SUB 5
1870 IF LEN o$>0 THEN GO TO 1900
1880 GO TO 560
1885 LET u=0
1900 FOR g=1 TO LEN o$-1 STEP 2
1905 LET f=1
1910 LET j=CODE o$(g): LET k=CODE o$(g+1)
1925 LET l$="0"
1930 GO TO 1110
1950 NEXT g
1960 IF f>1 AND u=1 THEN GO TO 1885
1970 PRINT AT 21,2; FLASH 1;"complete-any key to continue"
1980 PAUSE 0
1985 PRINT AT 21,2;" "
1995 GO TO 560
2000 LET j$="0"
2001 LET q=16
2002 IF j<20 THEN LET d=w(j+1,k)
2003 IF j>1 THEN LET e=w(j-1,k)
2004 IF k<32 THEN LET t=w(j,k+1)
2005 IF k>1 THEN LET h=w(j,k-1)
2006 LET w$=c$(j,k): LET wd=w(j,k): LET e$="X"
2012 IF w$="T" OR w$="U" THEN GO TO 2400
2013 FOR o=1 TO LEN a$
2015 IF CODE w$>56 AND CODE w$<69 THEN GO TO 2500
2016 IF w$="1" OR w$="2" THEN GO TO 3600
2018 GO TO VAL a$(o)*20+g1
2020 NEXT o
2030 GO TO 1950
2040 IF e=q THEN GO TO g2
2050 GO TO g1
2060 IF t=q THEN GO TO g2
2070 GO TO g1
2080 IF d=q THEN GO TO g2
2090 GO TO g1
2100 IF h=q THEN GO TO g2
2110 GO TO g1
2122 IF CODE w$>56 THEN GO TO 2250
2125 FOR p=1 TO LEN a$
2130 IF w$="7" AND a$(o)="1" AND a$(p)="3" THEN GO TO 2200
2140 IF w$="6" AND a$(o)="2" AND a$(p)="4" THEN GO TO 2200
2150 IF w$="5" AND a$(o)="3" AND a$(p)="1" THEN GO TO 2200
2160 IF w$="8" AND a$(o)="4" AND a$(p)="2" THEN GO TO 2200
2170 NEXT p
2180 GO TO g1
2200 LET f=2
2210 LET j$=a$(p)
2220 DIM a$(1)
2230 LET a$=j$
2240 GO TO 1192
2255 LET f=3
2270 IF w$="E" OR w$="V" THEN GO TO 2320
2280 IF w$="F" THEN GO TO 2360
2300 GO TO 2500
2320 LET r$="1432"
2322 IF w$="V" THEN LET w$=q$(30)
2324 IF w$="E" THEN LET w$=q$(13)
2330 LET j$=r$(VAL w$)
2340 GO TO 2220
2360 LET r$="4321"
2370 LET j$=r$(VAL q$(14))
2380 GO TO 2220
2400 LET f=3
2402 LET r$="1432"
2404 IF w$="T" THEN LET w$=q$(28)
2405 IF w$="U" THEN LET w$=q$(29)
2407 IF (w$="1" AND d=32) OR (w$="2" AND t=32) OR (w$="3" AND e=32) OR (w$="4" AND h=32) THEN LET e$="W"
2408 IF (w$="1" AND d>32) OR (w$="2" AND t>32) OR (w$="3" AND e>32) OR (w$="4" AND h>32) THEN GO TO 1950
2410 LET j$=r$(VAL w$)
2411 IF w$="1" AND j>1 THEN LET j=j-1
2412 IF w$="2" AND k<32 THEN LET k=k+1
2413 IF w$="3" AND j<32 THEN LET j=j+1
2414 IF w$="4" AND k>1 THEN LET k=k-1
2415 GO TO 2220
2500 IF j<2 OR j>31 OR k<2 OR k>31 THEN GO TO 1950
2501 LET f=4
2603 IF CODE w$>56 AND CODE w$<69 THEN GO TO 3040
2610 IF w$="J" THEN GO TO 2740
2613 IF CODE w$>74 AND CODE w$<79 THEN GO TO 2800
2620 IF w$="O" THEN GO TO 2630
2622 IF w$="R" THEN GO TO 2680
2630 LET r=VAL q$(23)
2635 IF r=1 AND d=q AND t=q THEN LET j$="1"
2640 IF r=2 AND t=q AND e=q THEN LET j$="4"
2650 IF r=3 AND e=q AND h=q THEN LET j$="3"
2660 IF r=4 AND h=q AND d=q THEN LET j$="2"
2670 IF j$="0" THEN GO TO 1950
2675 GO TO 2220
2680 LET r=VAL q$(26)
2685 IF r=1 AND e=q AND t<33 THEN LET j$="3"
2686 IF r=1 AND d=q AND t<33 THEN LET j$="1"
2690 IF r=2 AND h=q AND e<33 THEN LET j$="2"
2691 IF r=2 AND t=q AND e<33 THEN LET j$="4"
2700 IF r=3 AND d=q AND h<33 THEN LET j$="1"
2701 IF r=3 AND e=q AND h<33 THEN LET j$="3"
2710 IF r=4 AND t=q AND d<33 THEN LET j$="4"
2711 IF r=4 AND h=q AND d<33 THEN LET j$="2"
2720 IF j$<>"0" THEN GO TO 2220
2730 GO TO 1950
2740 LET r=VAL q$(18)
2745 IF r=1 AND (e=q OR d=q) THEN LET j$="2"
2750 IF r=2 AND (t=q OR h=q) THEN LET j$="1"
2760 IF r=3 AND (e=q OR d=q) THEN LET j$="4"
2770 IF r=4 AND (t=q OR h=q) THEN LET j$="3"
2780 IF j$<>"0" THEN GO TO 2220
2785 GO TO 1950
2800 LET r=VAL q$(CODE w$-56)
2802 LET e$="W"
2810 IF w$="M" OR w$="N" THEN GO TO 2890
2820 IF r=1 THEN LET j$="3"
2822 IF r=2 THEN LET j$="2"
2824 IF r=3 THEN LET j$="1"
2826 IF r=4 THEN LET j$="4"
2835 IF r=1 AND e=q AND t=32 THEN LET e$="X"
2840 IF r=2 AND h=q AND e=32 THEN LET e$="X"
2850 IF r=3 AND d=q AND h=32 THEN LET e$="X"
2860 IF r=4 AND t=q AND d=32 THEN LET e$="X"
2870 GO TO 2220
2890 IF r=1 THEN LET j$="1"
2892 IF r=2 THEN LET j$="4"
2894 IF r=3 THEN LET j$="3"
2896 IF r=4 THEN LET j$="2"
2915 IF r=1 AND t=q AND d=q THEN LET e$="X"
2920 IF r=2 AND e=q AND t=q THEN LET e$="X"
2930 IF r=3 AND h=q AND e=q THEN LET e$="X"
2940 IF r=4 AND d=q AND h=q THEN LET e$="X"
2950 GO TO 2220
3040 LET r=VAL q$(CODE w$-56)
3045 LET e$="W"
3046 IF r=1 THEN LET j$="2"
3047 IF r=2 THEN LET j$="1"
3048 IF r=3 THEN LET j$="4"
3049 IF r=4 THEN LET j$="3"
3050 IF w$=";" OR w$="<" THEN GO TO 3120
3052 IF w$="=" OR w$=">" THEN GO TO 3200
3054 IF w$="?" OR w$="@" THEN GO TO 3360
3056 IF w$="A" OR w$="B" THEN GO TO 3280
3058 IF w$="C" OR w$="D" THEN GO TO 3450
3060 IF r=1 AND d=q AND e=q THEN LET e$="X"
3070 IF r=2 AND t=q AND h=q THEN LET e$="X"
3080 IF r=3 AND d=q AND e=q THEN LET e$="X"
3090 IF r=4 AND t=q AND h=q THEN LET e$="X"
3100 GO TO 2220
3140 LET e$="X"
3145 IF r=1 AND d=q AND e=q THEN LET e$="W"
3150 IF r=2 AND t=q AND h=q THEN LET e$="W"
3160 IF r=3 AND d=q AND e=q THEN LET e$="W"
3170 IF r=4 AND t=q AND h=q THEN LET e$="W"
3185 LET f=4
3190 GO TO 2220
3220 IF r=1 AND (d=q OR e=q) THEN LET e$="X"
3230 IF r=2 AND (t=q OR h=q) THEN LET e$="X"
3240 IF r=3 AND (d=q OR e=q) THEN LET e$="X"
3250 IF r=4 AND (t=q OR h=q) THEN LET e$="X"
3260 GO TO 2220
3305 IF r=1 AND ((d=q AND e>q) OR (e=q AND d>q)) THEN LET e$="X"
3315 IF r=2 AND ((t=q AND h>q) OR (h=q AND t>q)) THEN LET e$="X"
3325 IF r=3 AND ((d=q AND e>q) OR (e=q AND d>q)) THEN LET e$="X"
3335 IF r=4 AND ((t=q AND h>q) OR (h=q AND t>q)) THEN LET e$="X"
3340 GO TO 2220
3370 LET e$="X"
3380 IF r=1 AND (d=q OR e=q) THEN LET e$="W"
3390 IF r=2 AND (t=q OR h=q) THEN LET e$="W"
3400 IF r=3 AND (d=q OR h=q) THEN LET e$="W"
3410 IF r=4 AND (t=q OR h=q) THEN LET e$="W"
3430 LET f=6
3440 GO TO 2220
3460 IF r=1 AND h>q THEN LET e$="X"
3480 IF r=2 AND d>q THEN LET e$="X"
3500 IF r=3 AND t>q THEN LET e$="X"
3520 IF r=4 AND e>q THEN LET e$="X"
3545 LET f=5
3550 GO TO 2220
3600 IF w$="1" AND e=32 THEN LET j$="3"
3610 IF w$="1" AND d=32 THEN LET j$="1"
3620 IF w$="2" AND h=32 THEN LET j$="2"
3630 IF w$="2" AND t=32 THEN LET j$="4"
3640 IF j$="0" THEN GO TO 1950
3650 LET e$="W"
3660 LET f=5
3670 GO TO 2220
8000 CLS : LET u$=""
8005 POKE 23607,60
8010 PRINT TAB 10;"ELECTRONICS"
8030 PRINT : PRINT "This is a circuit design": PRINT "programme."
8060 PRINT : PRINT "You may:-": PRINT AT 7,0;"ABEEP read operating instructions"
8090 PRINT : PRINT "BBEEP start a new circuit": PRINT : PRINT "CBEEP continue existing circuit"
8130 PRINT : PRINT "DBEEP display the circuit symbols": PRINT : PRINT "EBEEP save the existing circuit": PRINT : PRINT "FBEEP copy your circuit on printer"
8155 PRINT : PRINT "GBEEP print the circuit symbols"
8160 PRINT AT 21,3;"Type your required option"
8170 PAUSE 0
8175 POKE 23607,251
8180 LET e$=INKEY$
8190 IF e$="b" THEN GO TO 8600
8200 IF e$="c" OR e$="f" THEN GO TO 22
8210 IF e$="d" THEN GO TO 9200
8220 IF e$="e" THEN GO TO 9000
8225 IF e$="g" THEN GO TO 9450
8230 CLS
8235 POKE 23607,60
8240 PRINT TAB 9;"INSTRUCTIONS"
8260 PRINT : PRINT "Whilst working on a circuit": POKE 23607,251: PRINT "you will see a flashing symbol"; FLASH 1;"_"
8270 POKE 23607,60
8280 PRINT "this shows where the next item": PRINT "will be printed": PRINT "ON ERRshown at bottom of the screenBEEP "
8320 PRINT : PRINT "The arrowed keys move the cursor": PRINT "To erase, press '0', then move": PRINT "the cursor through the symbol."
8350 PRINT "To move the cursor, without": PRINT "erasing, press '1' then continue"
8380 PRINT : PRINT "To alter the symbol, press": PRINT "any key."
8390 PRINT "When requested, enter the code"
8410 PRINT "or one of the following:-"
8420 PRINT AT 20,3; FLASH 1;"PRESS 'ENTER' TO CONTINUE"
8425 PAUSE 0
8430 CLS
8433 PRINT TAB 9;"INSTRUCTIONS"
8440 PRINT : PRINT "'C'-to copy circuit on printer.": PRINT : PRINT "'M'-to return to the 'Menu'.": PRINT : PRINT "'A'-to activate the circuit."
8470 PRINT
8480 PRINT "'D'-to deactivate the circuit."
8485 PRINT
8490 PRINT "'R'-to rotate the present": PRINT "symbol, & all displays of it,": PRINT "through 90 deg."
8520 PRINT "A symbol may be rotated through": PRINT "360 deg, in 90 deg steps."
8535 PRINT "All symbols after the diodes": PRINT "may be rotated."
8540 PRINT AT 19,3; FLASH 1;"PRESS 'ENTER' TO CONTINUE"
8550 PAUSE 0
8560 GO TO 8000
8600 DIM c$(20,32): DIM w(20,32): LET o$=""
8610 CLS : GO TO 500
8999 STOP
9000 POKE 23607,60
9001 PRINT AT 10,10; FLASH 1; INK 1;"PLEASE WAIT"
9002 FOR j=1 TO 512
9004 LET v(j)=PEEK (64512+j)
9005 NEXT j
9006 PRINT AT 10,10;" "
9008 SAVE "cct" LINE 9010
9010 POKE 23609,255
9011 POKE 23607,60
9012 BORDER 5
9020 PRINT AT 10,8;"loading complete": PRINT AT 12,PI;"please wait while I create": PRINT TAB 5;"the electronic symbols"
9025 POKE 23607,251
9030 FOR j=15616 TO 16383: POKE j+48896,PEEK j: NEXT j
9045 FOR j=0 TO 63
9050 FOR k=1 TO 8
9060 LET x=j*8+k
9070 POKE 64512+x,v(x)
9075 NEXT k
9076 NEXT j
9080 POKE 23607,251
9085 CLS
9086 LET u$="1"
9090 GO TO 67
9200 LET x=1: LET y=10
9210 CLS
9220 FOR j=x TO y
9225 IF x=41 AND j>46 THEN GO TO 9410
9230 PRINT CHR$ (j+32);" ";i$(j);" ";y$(j);TAB 18;CHR$ (j+42);" ";i$(j+10);" ";y$(j+10)
9235 PRINT
9240 NEXT j
9245 POKE 23607,60
9250 PRINT AT 21,0;"'N' for next page, 'R' to return"
9260 PAUSE 0
9270 LET e$=INKEY$
9272 POKE 23607,251
9275 IF e$="p" THEN COPY
9276 IF e$="p" THEN GO TO 9260
9280 IF e$="n" THEN GO TO 9370
9300 IF e$="r" THEN GO TO 8000
9370 IF x=41 THEN GO TO 9200
9375 CLS
9380 LET x=y+11: LET y=x+9
9400 GO TO 9220
9410 PRINT CHR$ (j+32);" ";i$(j);" ";y$(j)
9420 GO TO 9235
9450 POKE 23607,251
9452 FOR j=1 TO 28
9455 LPRINT CHR$ (j+32);" ";i$(j);" ";y$(j);
9460 LPRINT " / ";CHR$ (j+60);" ";i$(j+28);" ";y$(j+28)
9475 LPRINT TAB 15;"/"
9480 NEXT j
9485 GO TO 8000
9490 FOR j=1 TO 20: FOR k=1 TO 32
9492 IF w(j,k)=16 THEN LPRINT INVERSE 1;c$(j,k);
9493 IF w(j,k)=32 THEN LPRINT "W";
9494 IF w(j,k)>55 THEN LPRINT c$(j,k);
9496 NEXT k: NEXT j
9497 GO TO 760
10 BORDER 5: PAPER 6: INK 0: CLS
20 PRINT AT PI,6;"HOMEBREW ELECTRONICS";AT 6,NOT PI;"Program to Work With RF CIRCUITS or RF FILTERS";AT 10,6;"Will Calculate F FreQuency C Capacitiance & L Inductance values for resonants circuits,And also calculate the design of an air wound coil"
30 PRINT AT 17,NOT PI;"Adapted from Raido Elec. artical by,Lawrence G. Friedman";AT 21,5;"Push ENTER To Continue"
40 PRINT AT 1,2;"R&J's Service Co. Presents"
50 PAUSE 3672
60 BORDER 7: PAPER 7: INK 0: CLS
70 PRINT TAB 2;"RESONANT CIRCUIT DESIGN"
80 FOR x=1 TO 500: NEXT x
90 CLS
100 PRINT TAB 10;"MENU"
110 PRINT AT 5,2;"1 To Determine L,C,or F"
120 PRINT AT 7,2;"2 To Caculate Coil Parameters"
130 INPUT a
140 IF a=1 THEN GO TO 160
150 IF a=2 THEN GO TO 330
160 CLS
170 INPUT "Also Calculate Coil Parameters (Y/N) ";a$
180 CLS
190 PRINT "Enter '0' For Unkown Value"
200 PRINT AT 5,NOT PI;"Enter F In MHZ>"
210 INPUT F
220 PRINT AT 7,NOT PI;"Enter L In UH>"
230 INPUT L
240 PRINT AT 9,NOT PI;"Enter C In PF>"
250 INPUT C
260 IF NOT F THEN PRINT AT 5,16;1000/(6.238*SQR (L*C));" (MHZ)"
270 IF NOT L THEN LET Z=25330/((F^2)*C)
280 IF L THEN LET Z=L
290 IF NOT L THEN PRINT AT 7,16;25330/((F^2)*C);" (UH)"
300 IF C=0 THEN PRINT AT 9,16;25330/((F^2)*L);" (PF)"
310 PAUSE 1000
320 IF a$="N" OR a$="n" THEN GO TO 60
330 CLS : PRINT TAB 4;"Coil Parameters"
340 FOR X=1 TO 1000: NEXT X
350 LET Z=0
360 IF Z THEN GO TO 400
370 INPUT "Enter L in UH>"',l
380 LET Z=L
390 LET D=0
400 INPUT "Enter Coil Diam.in Inches"',d
410 LET D=D/2
420 INPUT "Enter Coil Length in Inches"',g
430 LET T=SQR ((Z*((9*D)+(10*G)))/D)
440 PRINT AT 12,5;"TURNS ";T
450 LET W=T/G
460 LET C$=" IS THE LARGEST WIRE SIZE"
470 IF W<18.9 THEN PRINT AT 10,NOT PI;"#16";C$: GO TO 550
480 IF W<23.6 THEN PRINT AT 10,NOT PI;"#18";C$: GO TO 550
490 IF W<29.4 THEN PRINT AT 10,NOT PI;"#20";C$: GO TO 550
500 IF W<37 THEN PRINT AT 10,NOT PI;"#22";C$: GO TO 550
510 IF W<46.3 THEN PRINT AT 10,NOT PI;"#24";C$: GO TO 550
520 IF W<50 THEN PRINT AT 10,NOT PI;"#26";C$: GO TO 550
530 IF W<72.7 THEN PRINT AT 10,NOT PI;"#28";C$: GO TO 550
540 IF W<80.5 THEN PRINT AT 10,NOT PI;"#30";C$: GO TO 550
550 INPUT "Repeat Parameter Design (Y/N) ";r$
560 IF R$="y" OR r$="Y" THEN GO TO 400
570 IF r$="n" OR R$="N" THEN GO TO 580
580 INPUT "Repeat L,C,F Calculation (Y/N) ";p$
590 IF p$="y" OR P$="Y" THEN GO TO 160
600 IF p$="N" OR P$="n" THEN GO TO 610
610 BORDER 6: PAPER 6: INK 1: CLS
620 PRINT AT 10,NOT PI;"DO YOU WANT TO SAVE ON TAPE (Y/N)"
630 INPUT ;O$
640 IF o$="y" OR O$="Y" THEN GO TO 670
650 IF o$="N" OR O$="n" THEN GO TO 660
660 CLS : PAPER 2: PAUSE 100: NEW
670 CLS : SAVE "HOMEBREW" LINE 10
680 PAUSE 500: GO TO 660
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


