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.
 
 
 
 
 
 

255 lines
4.8 KiB

  1. 10 PRINT "PROGRAM FILE 24: PLUS AND MINUS"
  2. 20 PRINT " ANSI STANDARD 7.2, 7.4"
  3. 30 PRINT
  4. 40 PRINT "THIS PROGRAM TESTS THE GROSS SEMANTIC CHARACTERISTICS OF"
  5. 50 PRINT "THE PLUS AND MINUS OPERATORS FOR THE CONSTRUCTION OF"
  6. 60 PRINT "NUMERIC EXPRESSIONS."
  7. 70 PRINT
  8. 80 PRINT "EXPRESSIONS USING ONLY ONE OPERATOR AND CONSTANTS AND"
  9. 90 PRINT "SIMPLE VARIABLES ARE EVALUATED, AND THE RESULTS TESTED"
  10. 100 PRINT "AGAINST THE CORRECT VALUE. CONSTANTS ARE EXPRESSED IN"
  11. 110 PRINT "NR1, NR2, AND NR3 FORM, BUT ARE GENERALLY RESTRICTED TO"
  12. 120 PRINT "INTEGER VALUES TO AVOID ACCURACY PROBLEMS (ACCURACY IS"
  13. 130 PRINT "ADDRESSED IN LATER TESTS)."
  14. 140 PRINT
  15. 142 REM S IS A SWITCH TO INDICATE UNARY (S=0) OR BINARY (S=1)
  16. 143 REM OPERATIONS
  17. 145 LET S=0
  18. 150 LET M$="24.1: UNARY MINUS"
  19. 160 GOSUB 7000
  20. 170 LET N$="CONSTANTS"
  21. 180 LET O$="1"
  22. 190 LET A=-3
  23. 200 IF A>0 THEN 250
  24. 210 IF A<>-3 THEN 250
  25. 220 IF A<-3.1 THEN 250
  26. 230 IF A>-2.9 THEN 250
  27. 240 IF A=-3 THEN 260
  28. 250 GOSUB 9000
  29. 260 LET A=-0
  30. 270 LET O$="2"
  31. 280 IF A=0 THEN 300
  32. 290 GOSUB 9000
  33. 300 LET A=-432.0000
  34. 310 LET O$="3"
  35. 320 IF -432=A THEN 340
  36. 330 GOSUB 9000
  37. 340 LET A=-2E2
  38. 350 LET O$="4"
  39. 360 IF A=-200 THEN 380
  40. 370 GOSUB 9000
  41. 380 LET A=-200E-1
  42. 390 LET O$="5"
  43. 400 IF A=-20 THEN 420
  44. 410 GOSUB 9000
  45. 420 LET N$="VARIABLES"
  46. 430 LET B=34
  47. 440 LET O$="6"
  48. 450 LET A=-B
  49. 460 IF A=-34 THEN 480
  50. 470 GOSUB 9000
  51. 480 LET C=-B
  52. 490 LET A=-C
  53. 500 LET O$="7"
  54. 510 IF A=34 THEN 530
  55. 520 GOSUB 9000
  56. 530 LET B=-99
  57. 540 LET B=-B
  58. 550 LET A=-B
  59. 560 LET O$="8"
  60. 570 IF A=-99 THEN 590
  61. 580 GOSUB 9000
  62. 590 GOSUB 8000
  63. 600 LET M$="24.2: UNARY PLUS"
  64. 610 GOSUB 7000
  65. 620 LET N$="CONSTANTS"
  66. 630 LET O$="1"
  67. 640 LET A=+5
  68. 650 IF A=5 THEN 670
  69. 660 GOSUB 9000
  70. 670 LET A=+0
  71. 680 LET O$="2"
  72. 690 IF A=0 THEN 710
  73. 700 GOSUB 9000
  74. 710 LET A=+123.00
  75. 720 LET O$="3"
  76. 730 IF A=123 THEN 750
  77. 740 GOSUB 9000
  78. 750 LET A=+87E2
  79. 760 IF A=8700 THEN 790
  80. 780 GOSUB 9000
  81. 790 LET A=+.0054E+5
  82. 800 LET O$="5"
  83. 810 IF A=540 THEN 830
  84. 820 GOSUB 9000
  85. 830 LET N$="VARIABLES"
  86. 840 LET B=47
  87. 850 LET O$="6"
  88. 860 LET A=+B
  89. 870 IF A=47 THEN 890
  90. 880 GOSUB 9000
  91. 890 LET B=-88
  92. 900 LET O$="7"
  93. 910 LET C=+B
  94. 920 LET B=+C
  95. 930 LET A=+B
  96. 940 IF A=-88 THEN 960
  97. 950 GOSUB 9000
  98. 960 GOSUB 8000
  99. 965 LET S=1
  100. 970 LET M$="23.3: ADDITION"
  101. 980 LET N$="CONSTANTS"
  102. 990 GOSUB 7000
  103. 1000 LET A=3+6
  104. 1010 LET O$="1"
  105. 1020 LET Y=9
  106. 1030 GOSUB 8500
  107. 1040 LET A=34.00+32
  108. 1050 LET O$="2"
  109. 1060 LET Y=66
  110. 1070 GOSUB 8500
  111. 1080 LET A=23E2+2
  112. 1090 LET O$="3"
  113. 1100 LET Y=2302
  114. 1110 GOSUB 8500
  115. 1120 LET A=33.000+880E-1
  116. 1130 LET O$="4"
  117. 1140 LET Y=121
  118. 1150 GOSUB 8500
  119. 1160 LET N$="VAR. & CONSTS."
  120. 1170 LET A=-34
  121. 1180 LET B=-98.0
  122. 1190 LET A=A+B
  123. 1200 LET O$="5"
  124. 1210 LET Y=-132
  125. 1220 GOSUB 8500
  126. 1230 LET B=94
  127. 1240 LET C=-73
  128. 1250 LET A=B+C
  129. 1260 LET O$="6"
  130. 1270 LET Y=21
  131. 1280 GOSUB 8500
  132. 1290 LET C=434
  133. 1300 LET B=-654
  134. 1310 LET A=B+C
  135. 1320 LET O$="7"
  136. 1330 LET Y=-220
  137. 1340 GOSUB 8500
  138. 1350 LET B=-98
  139. 1360 LET A=2E2+B
  140. 1370 LET O$="8"
  141. 1380 LET Y=102
  142. 1390 GOSUB 8500
  143. 1400 LET B=13.0E1
  144. 1410 LET A=B+22
  145. 1420 LET O$="9"
  146. 1430 LET Y=152
  147. 1440 GOSUB 8500
  148. 1450 LET B=22
  149. 1460 LET C=-22
  150. 1470 LET O$="10"
  151. 1480 LET A=B+C
  152. 1490 LET Y=0
  153. 1500 GOSUB 8500
  154. 1510 LET A=0+C
  155. 1520 LET O$="11"
  156. 1530 LET Y=-22
  157. 1540 GOSUB 8500
  158. 1550 LET A=C+C
  159. 1560 LET O$="12"
  160. 1570 LET Y=-44
  161. 1580 GOSUB 8500
  162. 1590 GOSUB 8000
  163. 1600 LET M$="24.4: SUBTRACTION"
  164. 1610 LET N$="CONSTANTS"
  165. 1620 GOSUB 7000
  166. 1630 LET O$="1"
  167. 1640 LET A=48-29
  168. 1650 LET Y=19
  169. 1660 GOSUB 8500
  170. 1670 LET A=47-646
  171. 1680 LET O$="2"
  172. 1690 LET Y=-599
  173. 1700 GOSUB 8500
  174. 1710 LET A=.00532E5-777.
  175. 1720 LET O$="3"
  176. 1730 LET Y=-245
  177. 1740 GOSUB 8500
  178. 1750 LET N$="VARS. & CONSTS."
  179. 1760 LET B=-56
  180. 1770 LET C=-93
  181. 1780 LET A=B-C
  182. 1790 LET O$="4"
  183. 1800 LET Y=37
  184. 1810 GOSUB 8500
  185. 1820 LET A=C-B
  186. 1830 LET O$="5"
  187. 1840 LET Y=-37
  188. 1850 GOSUB 8500
  189. 1860 LET B=-345.000
  190. 1870 LET A=2-B
  191. 1880 LET O$="6"
  192. 1890 LET Y=347
  193. 1900 GOSUB 8500
  194. 1910 LET A=B-.111E3
  195. 1920 LET O$="7"
  196. 1930 LET Y=-456
  197. 1940 GOSUB 8500
  198. 1950 LET A=B-987
  199. 1960 LET O$="8"
  200. 1970 LET Y=-1332
  201. 1980 GOSUB 8500
  202. 1990 LET A=888.0-B
  203. 2000 LET O$="9"
  204. 2010 LET Y=1233
  205. 2020 GOSUB 8500
  206. 2030 LET B=22
  207. 2040 LET A=22-B
  208. 2050 LET O$="10"
  209. 2060 LET Y=0
  210. 2070 GOSUB 8500
  211. 2080 LET A=0-B
  212. 2090 LET O$="11"
  213. 2100 LET Y=-22
  214. 2110 GOSUB 8500
  215. 2120 LET B=-87
  216. 2130 LET A=B-B
  217. 2140 LET O$="12"
  218. 2150 LET Y=0
  219. 2160 GOSUB 8500
  220. 2170 GOSUB 8000
  221. 6000 PRINT
  222. 6010 PRINT "END PROGRAM 24"
  223. 6020 STOP
  224. 7000 REM SUBROUTINE TO BEGIN SECTION
  225. 7010 PRINT
  226. 7020 PRINT "SECTION ";M$
  227. 7030 PRINT
  228. 7040 PRINT " BEGIN TEST"
  229. 7050 PRINT
  230. 7060 LET R$="PASSED"
  231. 7070 IF S=0 THEN 7300
  232. 7080 PRINT "CASE #","SHOULD BE","ACTUAL","OUTCOME"
  233. 7090 PRINT
  234. 7300 RETURN
  235. 8000 REM SUBROUTINE TO END SECTION
  236. 8010 PRINT
  237. 8040 PRINT "*** TEST ";R$;" ***"
  238. 8060 PRINT
  239. 8070 PRINT " END TEST"
  240. 8080 PRINT
  241. 8090 RETURN
  242. 8500 REM REPORT RESULTS OF TEST CASE
  243. 8505 PRINT O$,Y,A,
  244. 8510 IF Y=A THEN 8550
  245. 8520 PRINT "TEST FAILS"
  246. 8530 LET R$="FAILED"
  247. 8540 GOTO 8560
  248. 8550 PRINT "TEST PASSES"
  249. 8560 RETURN
  250. 9000 REM HANDLE ERROR REPORT
  251. 9010 PRINT "ERROR IN TEST OF ";M$;". ";N$;", CASE #";O$
  252. 9020 LET R$="FAILED"
  253. 9030 RETURN
  254. 9040 END