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.
 
 
 
 
 
 

235 lines
5.8 KiB

  1. 10 PRINT "PROGRAM FILE 203: EFFECT OF ZONES AND MARGIN ON PRINT."
  2. 20 PRINT " ANSI STANDARD 12.4, 12.2"
  3. 30 PRINT
  4. 40 PRINT "THIS TEST IS CONCERNED WITH THE VARIOUS RULES GOVERNING THE"
  5. 50 PRINT "INTERACTION OF ZONE-WIDTH, MARGIN-WIDTH, COLUMNAR POSITION,"
  6. 60 PRINT "AND PRINT-SEPARATORS AS DESCRIBED IN THE STANDARD."
  7. 70 PRINT
  8. 80 PRINT "PLEASE ENTER ZONE-WIDTH FOR THIS IMPLEMENTATION."
  9. 90 INPUT Z
  10. 100 IF Z=INT(Z) THEN 130
  11. 110 PRINT "MUST BE AN INTEGER."
  12. 120 GOTO 80
  13. 130 IF Z>=14 THEN 160
  14. 140 PRINT "ZONE-WIDTH MUST BE >=14."
  15. 150 GOTO 80
  16. 160 PRINT "PLEASE ENTER MARGIN FOR THIS IMPLEMENTATION."
  17. 170 INPUT M
  18. 180 IF M=INT(M) THEN 210
  19. 190 PRINT "MUST BE AN INTEGER."
  20. 200 GOTO 160
  21. 210 IF M>=Z THEN 235
  22. 220 PRINT "MARGIN MUST BE >= ZONE-WIDTH."
  23. 230 GOTO 160
  24. 235 PRINT "PLEASE ENTER NUMBER OF PRINT ZONES ON A LINE."
  25. 240 INPUT Z9
  26. 245 IF Z9=INT(Z9) THEN 260
  27. 250 PRINT "MUST BE AN INTEGER."
  28. 255 GOTO 235
  29. 260 IF Z9 <= ((M-1/Z) + 1) THEN 275
  30. 265 PRINT "NUMBER OF ZONES TOO LARGE FOR MARGIN AND ZONE-WIDTH."
  31. 270 GOTO 80
  32. 275 REM LENGTH OF LAST ZONE
  33. 280 LET Z8=M-(Z*(Z9-1))
  34. 290 PRINT
  35. 300 PRINT "THROUGHOUT THESE TESTS, PAIRS OF OUTPUTS WILL BE PRINTED."
  36. 310 PRINT "THE FIRST OF WHICH IS GENERATED ACCORDING TO THE INFORMATION"
  37. 320 PRINT "JUST SUPPLIED, AND THE SECOND OF WHICH REPRESENTS THE "
  38. 330 PRINT "FEATURE BEING TESTED. THESE TWO OUTPUTS MUST BE IDENTICAL"
  39. 340 PRINT "FOR THE TEST TO PASS."
  40. 350 PRINT
  41. 360 LET C=0
  42. 370 PRINT "SECTION 203.1: COMMA ADVANCES COLUMNAR POSITION TO NEXT"
  43. 380 PRINT " PRINT-ZONE."
  44. 390 PRINT
  45. 400 PRINT " BEGIN TEST."
  46. 403 PRINT
  47. 405 PRINT "COMMA ADVANCED TO THE BEGINNING OF EACH OF THE ";Z9;
  48. 407 PRINT " PRINT ZONES:"
  49. 410 GOSUB 2000
  50. 420 LET T=Z-1
  51. 430 FOR I9=1 TO Z9-1
  52. 440 PRINT "A";
  53. 450 GOSUB 2100
  54. 460 NEXT I9
  55. 470 PRINT "B"
  56. 480 FOR I=1 TO Z9-1
  57. 490 PRINT "A",
  58. 500 NEXT I
  59. 510 PRINT "B"
  60. 512 PRINT
  61. 515 PRINT "PRINT-STATEMENT CONTAINING ONLY A COMMA ADVANCES TO NEXT ";
  62. 517 PRINT "PRINT-ZONE:"
  63. 520 GOSUB 2000
  64. 530 PRINT "C";
  65. 540 LET T=Z+Z-1
  66. 550 GOSUB 2100
  67. 560 PRINT "D"
  68. 570 PRINT "C",
  69. 580 PRINT ,
  70. 590 PRINT "D"
  71. 592 PRINT
  72. 595 PRINT "IF COLUMNAR POSITION IS THE LAST POSITION IN A ZONE, "
  73. 597 PRINT "A COMMA ADVANCES ONE SPACE TO THE NEXT ZONE:"
  74. 600 GOSUB 2000
  75. 610 LET T=Z-2
  76. 620 GOSUB 2100
  77. 630 PRINT "E F"
  78. 640 GOSUB 2100
  79. 650 PRINT "E","F"
  80. 652 PRINT
  81. 655 PRINT "IF COLUMNAR POSITION IS THE FIRST POSITION IN A ZONE,"
  82. 657 PRINT "A COMMA ADVANCES ONE FULL ZONE:"
  83. 660 GOSUB 2000
  84. 670 LET T=Z-1
  85. 680 GOSUB 2100
  86. 690 PRINT "G";
  87. 700 LET T=Z
  88. 710 GOSUB 2100
  89. 720 PRINT "H"
  90. 730 LET T=Z-1
  91. 740 GOSUB 2100
  92. 750 PRINT "G","H"
  93. 752 PRINT
  94. 755 PRINT "LEADING COMMAS IN A PRINT-STATEMENT SKIP PRINT-ZONES:"
  95. 760 GOSUB 2000
  96. 770 LET T=Z+Z
  97. 780 GOSUB 2100
  98. 790 PRINT "I"
  99. 800 PRINT ,,"I"
  100. 810 GOSUB 3000
  101. 820 PRINT "SECTION 203.2: INTERACTION OF TAB AND MARGIN."
  102. 830 PRINT
  103. 840 PRINT " BEGIN TEST."
  104. 850 LET C=0
  105. 860 PRINT
  106. 862 PRINT
  107. 865 PRINT "TABBING TO A POSITION < COLUMNAR POSITION FORCES A NEW LINE:"
  108. 870 GOSUB 2200
  109. 880 PRINT " A"
  110. 890 PRINT " B"
  111. 900 PRINT TAB(5);"A";TAB(5);"B"
  112. 902 PRINT
  113. 905 PRINT "TABBING TO A POSITION >= COLUMNAR POSITION DOES NOT"
  114. 909 PRINT "FORCE A NEW LINE:"
  115. 910 GOSUB 2000
  116. 920 PRINT " CD"
  117. 930 PRINT TAB(5);"C";TAB(6);"D"
  118. 932 PRINT
  119. 935 PRINT "TABBING TO A POSITION, N > MARGIN, M, CAUSES TAB TO"
  120. 937 PRINT "N - M*INT((N-1)/M):"
  121. 940 GOSUB 2000
  122. 950 PRINT " E"
  123. 960 PRINT TAB(M+M+M+3);"E"
  124. 970 GOSUB 3000
  125. 980 PRINT "SECTION 203.3: MARGIN OVERFLOW."
  126. 990 PRINT
  127. 1000 PRINT " BEGIN TEST."
  128. 1010 LET C=0
  129. 1012 PRINT
  130. 1015 PRINT "IF A PRINT-ITEM DOESN'T FIT IN REMAINDER OF CURRENT LINE,"
  131. 1017 PRINT "IT FORCES A NEW LINE BEFORE PRINTING:"
  132. 1020 GOSUB 2200
  133. 1030 LET T=M-2
  134. 1040 GOSUB 2100
  135. 1050 PRINT "A"
  136. 1060 PRINT "BC"
  137. 1065 GOSUB 2100
  138. 1070 PRINT "A";
  139. 1075 PRINT "BC"
  140. 1076 PRINT
  141. 1077 PRINT "FULL LENGTH OF MARGIN IS USED BEFORE FORCING NEW LINE:"
  142. 1080 GOSUB 2000
  143. 1090 GOSUB 2100
  144. 1100 PRINT "DE"
  145. 1105 PRINT "F"
  146. 1110 GOSUB 2100
  147. 1112 PRINT "D";"E";
  148. 1117 PRINT "F"
  149. 1118 PRINT
  150. 1119 PRINT "FILL RIGHTMOST POSITION OF LAST ZONE:"
  151. 1120 GOSUB 2000
  152. 1130 LET T=M-1
  153. 1140 GOSUB 2100
  154. 1150 PRINT "G"
  155. 1160 FOR I1=1 TO Z9-1
  156. 1170 PRINT ,
  157. 1180 NEXT I1
  158. 1190 LET T=Z8-1
  159. 1200 GOSUB 2100
  160. 1210 PRINT "G"
  161. 1212 PRINT
  162. 1215 PRINT "IF COLUMNAR POSITION IS IN LAST ZONE, A COMMA FORCES ";
  163. 1218 PRINT "A NEW LINE:"
  164. 1220 GOSUB 2200
  165. 1230 PRINT "H"
  166. 1240 PRINT "I"
  167. 1250 PRINT "H";
  168. 1260 FOR I1=1 TO Z9-2
  169. 1270 PRINT ,
  170. 1280 NEXT I1
  171. 1290 PRINT ,,"I"
  172. 1300 GOSUB 3000
  173. 1980 PRINT "END PROGRAM 203"
  174. 1990 STOP
  175. 2000 REM SUBROUTINE TO HEAD LINE-PAIRS
  176. 2010 LET C=C+1
  177. 2040 PRINT
  178. 2050 PRINT "THE TWO LINES FOLLOWING THE COLUMN NUMBERS SHOULD BE"
  179. 2060 PRINT "IDENTICAL, CASE #";C
  180. 2070 GOSUB 2300
  181. 2080 RETURN
  182. 2100 REM SUBROUTINE TO PRINT T SPACES
  183. 2110 FOR I=1 TO T
  184. 2120 PRINT " ";
  185. 2130 NEXT I
  186. 2140 RETURN
  187. 2200 REM SUBROUTINE TO HEAD PAIRS OF SETS OF LINES
  188. 2210 LET C=C+1
  189. 2240 PRINT
  190. 2250 PRINT "THE FIRST TWO LINES (1 & 2) FOLLOWING THE COLUMN NUMBERS"
  191. 2260 PRINT "SHOULD BE IDENTICAL TO THE NEXT TWO (3 & 4), CASE #";C
  192. 2270 GOSUB 2300
  193. 2280 RETURN
  194. 2300 REM SUBROUTINE TO PRINT COLUMN NUMBERS
  195. 2310 PRINT "000000000111111111122222222223333333333";
  196. 2320 IF M<60 THEN 2420
  197. 2330 PRINT "44444444445555555555";
  198. 2340 IF M<72 THEN 2420
  199. 2350 PRINT "666666666677";
  200. 2353 IF M<80 THEN 2420
  201. 2355 PRINT "77777777";
  202. 2360 IF M<100 THEN 2420
  203. 2370 PRINT "88888888889999999999";
  204. 2380 IF M<120 THEN 2420
  205. 2390 PRINT "00000000001111111111";
  206. 2400 IF M<132 THEN 2420
  207. 2410 PRINT "222222222233";
  208. 2420 PRINT
  209. 2430 LET A$="0123456789"
  210. 2440 PRINT "123456789";A$;A$;A$;
  211. 2450 IF M<60 THEN 2550
  212. 2460 PRINT A$;A$;
  213. 2470 IF M<72 THEN 2550
  214. 2480 PRINT A$;"01";
  215. 2483 IF M<80 THEN 2550
  216. 2485 PRINT "23456789";
  217. 2490 IF M<100 THEN 2550
  218. 2500 PRINT A$;A$;
  219. 2510 IF M<120 THEN 2550
  220. 2520 PRINT A$;A$;
  221. 2530 IF M<132 THEN 2550
  222. 2540 PRINT A$;"01";
  223. 2550 PRINT
  224. 2560 RETURN
  225. 3000 REM SUBROUTINE TO END SECTION
  226. 3010 PRINT
  227. 3020 PRINT "IF ALL THE ABOVE PAIRS ARE IDENTICAL, THEN "
  228. 3030 PRINT "*** TEST PASSED ***"
  229. 3040 PRINT
  230. 3050 PRINT " END TEST."
  231. 3060 PRINT
  232. 3070 PRINT
  233. 3080 RETURN
  234. 5000 END