ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

109 lines
4.3 KiB

  1. 10 REM ******************************************************************
  2. 20 REM * *
  3. 30 REM * PROGRAM NAME: RC5% *
  4. 40 REM * *
  5. 50 REM * COMPUTES THE NEAREST STANDARD VALUE OF 5% RESISTORS OR *
  6. 60 REM * CAPACITORS GIVEN A CALCULATED VALUE INPUT *
  7. 70 REM * BY: M.F. KAVANAUGH--BRADLEY UNIVERSITY *
  8. 80 REM * *
  9. 90 REM ******************************************************************
  10. 100 PRINT:PRINT " DO YOU WISH:"
  11. 110 PRINT " (R)ESISTOR (1 OHM-100 MEG)"
  12. 120 PRINT " (C)APACITOR (1PF-1000 MFD)"
  13. 130 PRINT " (E)XIT"
  14. 140 PRINT:INPUT I$
  15. 150 IF I$="R" GOTO 500
  16. 160 IF I$="C" GOTO 1000
  17. 170 IF I$="E" GOTO 9000 ELSE GOTO 100
  18. 500 REM
  19. 510 REM ********************* RESISTORS *********************************
  20. 520 REM
  21. 530 T$="RESISTORS":GOSUB 1530
  22. 540 PRINT "ENTER THE RESISTOR VALUES USING THE POWER OF TEN FORMAT."
  23. 550 PRINT "ERRORS MAY BE CORRECTED AFTER ALL VALUES HAVE BEEN ENTERED."
  24. 560 FOR I=1 TO N:GOSUB 1640:PRINT:NEXT I
  25. 561 FOR I=1 TO N: V$(I)="":NEXT I
  26. 562 GOSUB 1570
  27. 590 FOR I= 1 TO N
  28. 600 IF V(I)>=1E+06 THEN V(I)=V(I)/1E+06:V$(I)="M":GOTO 630
  29. 610 IF V(I)>=1000! THEN V(I)=V(I)/1000:V$(I)="K":GOTO 630
  30. 620 V$(I)="OHMS"
  31. 630 NEXT I
  32. 632 GOSUB 1920
  33. 640 REM ***** DISPLAY STANDARD VALUE ***************
  34. 650 GOSUB 1750:GOTO 1820
  35. 1000 REM
  36. 1010 REM ******************* CAPACITORS **********************************
  37. 1020 REM
  38. 1030 T$="CAPACITORS":GOSUB 1530
  39. 1040 PRINT "ENTER THE VALUE OF CAPACITOR,IN MFD.,USING THE POWER OF TEN FORMAT."
  40. 1050 PRINT "ERRORS MAY BE CORRECTED AFTER ALL THE VALUES HAVE BEEN ENTERED."
  41. 1060 FOR I=1 TO N:GOSUB 1640:PRINT:NEXT I
  42. 1061 FOR I= 1 TO N:V$(I)="":NEXT I
  43. 1062 GOSUB 1570
  44. 1090 FOR I=1 TO N:V(I)=V(I)*1E+06:NEXT I
  45. 1120 FOR I=1 TO N
  46. 1130 IF V(I)>=1000! THEN V(I)=V(I)/1E+06:V$(I)="MFD":GOTO 1150
  47. 1140 V$(I)="PF"
  48. 1150 NEXT I
  49. 1152 GOSUB 1920
  50. 1160 REM ***** DISPLAY STANDARD VALUES *************
  51. 1170 GOSUB 1750
  52. 1180 GOTO 1820
  53. 1500 REM
  54. 1510 REM ******************** ENTER VALUES *******************************
  55. 1520 REM
  56. 1530 PRINT:PRINT "NUMBER OF ";T$;" TO BE ENTERED:":INPUT N
  57. 1540 IF N<=100 GOTO 1550
  58. 1545 PRINT "100 MAX":GOTO 1530
  59. 1550 PRINT:RETURN
  60. 1560 REM ******** CHECK INPUT VALUES ***************
  61. 1570 GOSUB 1750
  62. 1580 INPUT "ARE THESE VALUES CORRECT (Y/N)";A$
  63. 1590 IF A$="Y" THEN RETURN
  64. 1600 IF A$="N" GOTO 1610 ELSE 1580
  65. 1610 INPUT "ENTER COMPONENT VALUE TO BE CHANGED";I:PRINT
  66. 1620 GOSUB 1640:GOTO 1570
  67. 1630 REM ******* VALUE AND RANGE TEST **************
  68. 1640 PRINT I$;I;"=":INPUT; V(I)
  69. 1650 IF I$="C" GOTO 1690
  70. 1660 IF V(I)<1 GOTO 1720
  71. 1670 IF V(I)>1E+08 GOTO 1730
  72. 1680 RETURN
  73. 1690 IF V(I)<.000001 GOTO 1720
  74. 1700 IF V(I)>1000! GOTO 1730
  75. 1710 RETURN
  76. 1720 PRINT:PRINT I$;I;" IS TOO SMALL":PRINT:GOTO 1640
  77. 1730 PRINT:PRINT I$;I;" IS TOO LARGE":PRINT:GOTO 1640
  78. 1740 REM ******** PUT VALUES ON TERMINAL ***********
  79. 1750 PRINT:FOR I=1 TO N STEP 4
  80. 1760 IF I<=N THEN PRINT TAB(2);I$;I;"=";V(I);V$(I);
  81. 1770 IF (I+1)<=N THEN PRINT TAB(20);I$;I+1;"=";V(I+1);V$(I+1);
  82. 1780 IF (I+2)<=N THEN PRINT TAB(38);I$;I+2;"=";V(I+2);V$(I+2);
  83. 1790 IF (I+3)<=N THEN PRINT TAB(56);I$;I+3;"=";V(I+3);V$(I+3)
  84. 1800 NEXT I:PRINT:RETURN
  85. 1810 REM ******* PUT VALUES ON A PRINTER ***********
  86. 1820 PRINT:INPUT "DO YOU WANT HARDCOPY (Y/N)";HC$
  87. 1830 IF HC$="N" GOTO 100
  88. 1840 IF HC$<>"Y" GOTO 1820
  89. 1850 LPRINT: FOR I=1 TO N STEP 4
  90. 1860 IF I<=N THEN LPRINT TAB(2);I$;I;"=";V(I);V$(I);
  91. 1870 IF (I+1)<=N THEN LPRINT TAB(20);I$;I+1;"=";V(I+1);V$(I+1);
  92. 1880 IF (I+2)<=N THEN LPRINT TAB(38);I$;I+2;"=";V(I+2);V$(I+2);
  93. 1890 IF (I+3)<=N THEN LPRINT TAB(56);I$;I+3;"=";V(I+3);V$(I+3)
  94. 1900 NEXT I:LPRINT:RETURN
  95. 1910 REM ******* FIND STANDARD VALUES **************
  96. 1920 PRINT:PRINT " CALCULATING STANDARD VALUES"
  97. 1930 FOR I=1 TO N:L=1
  98. 1940 IF V(I)>10 THEN L=L*10:V(I)=V(I)/10:GOTO 1940
  99. 1945 IF V(I)<1 THEN L=L/10:V(I)=V(I)*10:GOTO 1945
  100. 1950 READ D2
  101. 1960 D1=D2:READ D2:IF V(I)>D2 GOTO 1960
  102. 1970 MD=(D1+D2)/2:IF V(I)<MD THEN V(I)=D1*L:GOTO 1990
  103. 1980 V(I)=D2*L
  104. 1990 RESTORE:NEXT I:RETURN
  105. 2000 REM ********* STANDARD VALUE TABEL ************
  106. 2010 DATA 1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,3.0,3.3
  107. 2020 DATA 3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1,10,11
  108. 9000 PRINT:PRINT "GOODBYE":PRINT:END