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.
 
 
 
 
 
 

210 lines
5.2 KiB

  1. 10 PRINT "PROGRAM FILE 18: THE IF-THEN STATEMENT WITH STRING OPERANDS."
  2. 20 PRINT " ANSI STANDARD 10.2, 10.4"
  3. 30 PRINT
  4. 40 PRINT "SECTION 18.1: THE IF-THEN STATEMENT WITH STRING OPERANDS."
  5. 50 PRINT
  6. 60 PRINT "THIS SECTION TESTS THE COMPARISON OF STRING VARIABLES AND"
  7. 70 PRINT "CONSTANTS WITH A VARIETY OF VALUES. BOTH RELATIONSHIPS"
  8. 80 PRINT "(= AND <>) ARE TESTED FOR EACH PAIR OF VALUES. THE 'V' OR"
  9. 90 PRINT "'C' FOLLOWING THE COMPARAND VALUE INDICATES WHETHER IT IS"
  10. 100 PRINT "A VARIABLE OR A CONSTANTS."
  11. 110 PRINT
  12. 120 PRINT "'T' OR 'F' IS PRINTED TO SHOW THE OUTCOME OF THE"
  13. 130 PRINT "COMPARISON. FOR INCORRECT COMPARES, AN '*' IS PRINTED"
  14. 140 PRINT "NEXT TO THE ERRONEOUS RESULT. WHEN DISPLAYING COMPARAND"
  15. 150 PRINT "VALUES, THE UNDERLINE CHARACTER, '_', IS USED TO REPRESENT"
  16. 160 PRINT "THE SPACE CHARACTER (THUS A DISPLAYED 'ONE_BLANK' "
  17. 170 PRINT "INDICATES AN INTERNAL VALUE OF 'ONE BLANK')."
  18. 171 PRINT "ALSO, THE NULL STRING (LENGTH OF ZERO) IS DENOTED BY THE"
  19. 172 PRINT "LABEL '(NULL STRING)'."
  20. 180 PRINT
  21. 190 PRINT "CHARACTER STRINGS SHOULD TEST EQUAL IF AND ONLY IF THE"
  22. 200 PRINT "STRINGS ARE EQUAL IN LENGTH AND CONTAIN IDENTICAL SEQUENCES"
  23. 210 PRINT "OF CHARACTERS."
  24. 220 PRINT
  25. 230 PRINT " BEGIN TEST."
  26. 240 PRINT
  27. 250 PRINT "LEFT";TAB(22);": RIGHT"
  28. 260 PRINT "COMPARAND";TAB(19);"V/C: COMPARAND";TAB(42);"V/C";
  29. 270 PRINT TAB(47);"=";TAB(51);"<>";TAB(55);"RESULT"
  30. 275 PRINT
  31. 280 LET R$="PASSED"
  32. 300 LET T$=" ABC"
  33. 310 LET V$="__ABC"
  34. 320 GOSUB 2500
  35. 330 LET T$="ABC"
  36. 340 LET V$="ABC"
  37. 350 GOSUB 2000
  38. 360 LET T$="ABC "
  39. 370 LET V$="ABC_"
  40. 380 GOSUB 2500
  41. 390 LET T$=" ABC "
  42. 400 LET V$="___ABC__"
  43. 410 GOSUB 2500
  44. 420 LET T$=""
  45. 430 LET V$="(NULL STRING)"
  46. 440 GOSUB 2500
  47. 450 LET T$="ABCD"
  48. 460 LET V$="ABCD"
  49. 470 GOSUB 2500
  50. 500 LET T$=" 0X9"
  51. 510 LET V$="___0X9"
  52. 520 GOSUB 3500
  53. 530 LET T$="0X9"
  54. 540 LET V$="0X9"
  55. 550 GOSUB 3500
  56. 560 LET T$="0X9 "
  57. 570 LET V$="0X9__"
  58. 580 GOSUB 3500
  59. 590 LET T$=" 0X9 "
  60. 600 LET V$="_0X9__"
  61. 610 GOSUB 3000
  62. 620 LET T$=" "
  63. 630 LET V$="__"
  64. 640 LET U$=" "
  65. 650 LET W$="____"
  66. 660 GOSUB 4500
  67. 670 LET T$=" "
  68. 680 LET V$="_"
  69. 690 LET U$=""
  70. 700 LET W$="(NULL STRING)"
  71. 710 GOSUB 4500
  72. 720 LET T$="18 CHARACTERS LONG"
  73. 730 LET V$="18_CHARACTERS_LONG"
  74. 740 LET U$="18 CHARACTERS LONG"
  75. 750 LET W$="18_CHARACTERS_LONG"
  76. 760 GOSUB 4000
  77. 770 LET U$="18 CHARACTERS LONK"
  78. 780 LET W$="18_CHARACTERS_LONK"
  79. 790 GOSUB 4500
  80. 800 LET T$="!#$%&'()0=+*<>?"
  81. 810 LET V$="!#$%&'()0=+*<>?"
  82. 820 LET U$="!#$%&'()0=+*<>?"
  83. 830 LET W$="!#$%&'()0=+*<>?"
  84. 840 GOSUB 4000
  85. 850 LET T$=""
  86. 860 LET V$="(NULL STRING)"
  87. 870 LET U$=""
  88. 880 LET W$="(NULL STRING)"
  89. 890 GOSUB 4000
  90. 900 LET T$="UVWXYZ "
  91. 910 LET V$="UVWXYZ_"
  92. 920 LET U$="UVWXYZ "
  93. 930 LET W$="UVWXYZ__"
  94. 940 GOSUB 4500
  95. 1900 PRINT
  96. 1910 PRINT "*** TEST ";R$;" ***"
  97. 1915 PRINT
  98. 1920 PRINT " END TEST."
  99. 1925 PRINT
  100. 1930 PRINT "END PROGRAM 18"
  101. 1940 STOP
  102. 2000 REM SUBROUTINE TO TEST CONSTANT = VARIABLE
  103. 2005 LET B$="T*"
  104. 2010 LET A$="T"
  105. 2020 LET L$=" OK "
  106. 2030 IF "ABC"<>T$ THEN 2060
  107. 2040 LET B$="F"
  108. 2050 GOTO 2080
  109. 2060 LET R$="FAILED"
  110. 2070 LET L$="FAILED"
  111. 2080 IF "ABC"=T$ THEN 2120
  112. 2090 LET R$="FAILED"
  113. 2100 LET L$="FAILED"
  114. 2110 LET A$="F*"
  115. 2120 GOSUB 2900
  116. 2125 GOSUB 5000
  117. 2130 RETURN
  118. 2500 REM SUBROUTINE TO TEST CONSTANT <> VARIABLE
  119. 2505 LET A$="T*"
  120. 2510 LET B$="T"
  121. 2520 LET L$=" OK "
  122. 2530 IF "ABC"=T$ THEN 2560
  123. 2540 LET A$="F"
  124. 2550 GOTO 2580
  125. 2560 LET R$="FAILED"
  126. 2570 LET L$="FAILED"
  127. 2580 IF "ABC"<>T$ THEN 2620
  128. 2590 LET R$="FAILED"
  129. 2600 LET L$="FAILED"
  130. 2610 LET B$="F*"
  131. 2620 GOSUB 2900
  132. 2625 GOSUB 5000
  133. 2630 RETURN
  134. 2900 REM SUBROUTINE TO PRINT COMPARANDS FOR CONSTANT:VARIABLE
  135. 2910 PRINT "ABC";TAB(20);"C : ";V$;TAB(43);"V";
  136. 2920 RETURN
  137. 3000 REM SUBROUTINE TO TEST VARIABLE = CONSTANT
  138. 3005 LET B$="T*"
  139. 3010 LET A$="T"
  140. 3020 LET L$=" OK "
  141. 3030 IF T$<>" 0X9 " THEN 3060
  142. 3040 LET B$="F"
  143. 3050 GOTO 3080
  144. 3060 LET R$="FAILED"
  145. 3070 LET L$="FAILED"
  146. 3080 IF T$=" 0X9 " THEN 3120
  147. 3090 LET R$="FAILED"
  148. 3100 LET L$="FAILED"
  149. 3110 LET A$="F*"
  150. 3120 GOSUB 3900
  151. 3125 GOSUB 5000
  152. 3130 RETURN
  153. 3500 REM SUBROUTINE TO TEST VARIABLE <> CONSTANT
  154. 3505 LET A$="T*"
  155. 3510 LET B$="T"
  156. 3520 LET L$=" OK "
  157. 3530 IF T$=" 0X9 " THEN 3560
  158. 3540 LET A$="F"
  159. 3550 GOTO 3580
  160. 3560 LET R$="FAILED"
  161. 3570 LET L$="FAILED"
  162. 3580 IF T$<>" 0X9 " THEN 3620
  163. 3590 LET R$="FAILED"
  164. 3600 LET L$="FAILED"
  165. 3610 LET B$="F*"
  166. 3620 GOSUB 3900
  167. 3625 GOSUB 5000
  168. 3630 RETURN
  169. 3900 REM SUBROUTINE TO PRINT COMPARANDS FOR VARIABLE:CONSTANT
  170. 3910 PRINT V$;TAB(20);"V : _0X9__";TAB(43);"C";
  171. 3920 RETURN
  172. 4000 REM SUBROUTINE TO TEST VARIABLE = VARIABLE
  173. 4005 LET B$="T*"
  174. 4010 LET A$="T"
  175. 4020 LET L$=" OK "
  176. 4030 IF T$<>U$ THEN 4060
  177. 4040 LET B$="F"
  178. 4050 GOTO 4080
  179. 4060 LET R$="FAILED"
  180. 4070 LET L$="FAILED"
  181. 4080 IF T$=U$ THEN 4120
  182. 4090 LET R$="FAILED"
  183. 4100 LET L$="FAILED"
  184. 4120 GOSUB 4900
  185. 4125 GOSUB 5000
  186. 4130 RETURN
  187. 4500 REM SUBROUTINE TO TEST VARIABLE <> VARIABLE
  188. 4505 LET A$="T*"
  189. 4510 LET B$="T"
  190. 4520 LET L$=" OK "
  191. 4530 IF T$=U$ THEN 4560
  192. 4540 LET A$="F"
  193. 4550 GOTO 4580
  194. 4560 LET R$="FAILED"
  195. 4570 LET L$="FAILED"
  196. 4580 IF T$<>U$ THEN 4620
  197. 4590 LET R$="FAILED"
  198. 4600 LET L$="FAILED"
  199. 4610 LET B$="F*"
  200. 4620 GOSUB 4900
  201. 4625 GOSUB 5000
  202. 4630 RETURN
  203. 4900 REM SUBROUTINE TO PRINT COMPARANDS FOR VARIABLE:VARIABLE
  204. 4910 PRINT V$;TAB(20);"V : ";W$;TAB(43);"V";
  205. 4920 RETURN
  206. 5000 REM SUBROUTINE TO PRINT RESULTS OF COMPARE
  207. 5010 PRINT TAB(47);A$;TAB(51);B$;TAB(55);L$
  208. 5020 RETURN
  209. 9000 END