home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk118 / math.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-03-19  |  17.3 KB  |  870 lines

  1. 10  OPEN "I",#1,"tdata"
  2. 20  INPUT#1,SV1$,SV2$,SV3$,SV4$,SV5$,SV6$
  3. 30  CLOSE#1
  4. 40  CLS
  5. 50  LOCATE 5,8:PRINT"File of saved programs:"
  6. 60  LOCATE 8,8:PRINT"1. "SV1$
  7. 70  LOCATE 10,8:PRINT"2. "SV2$
  8. 80  LOCATE 12,8:PRINT"3. "SV3$
  9. 90  LOCATE 14,8:PRINT"4. "SV4$
  10. 100  LOCATE 16,8:PRINT"5. "SV5$
  11. 110  LOCATE 18,8:PRINT"6. "SV6$
  12. 120  LOCATE 21,8,1:PRINT"Which file do you want? ";
  13. 130  E$=INPUT$(1)
  14. 140  IF E$=CHR$(27) GOTO 8480
  15. 150  IF E$<"1" OR E$>"6" GOTO 130
  16. 160  PRINT E$
  17. 170  S$="SAV"+E$
  18. 180  CLS
  19. 190  LOCATE 13,11,0:PRINT"One moment, please!"
  20. 200  OPEN "I",#1,S$
  21. 210  INPUT#1,GRD,FORM$,TYP$,TLIMIT$,BNDA,BNDB,BNDC,BNDD,BNDE,TEST,BASE,SEL
  22. 220  CLOSE#1
  23. 230  CLS
  24. 240  LOCATE 13,1:INPUT "What is your name? ",MICK$
  25. 250  IF GRD>0 GOTO 330
  26. 260  CLS
  27. 270  LOCATE 13,1:PRINT "What grade are you in "MICK$"? "
  28. 280  E$=INPUT$(1)
  29. 290  IF E$=CHR$(27) GOTO 8480
  30. 300  IF E$<"1" OR E$>"6" GOTO 280
  31. 310  GRD=VAL(E$)
  32. 320  ON GRD GOSUB 8510,8540,8570,8600,8630,8660
  33. 330  PROB=1
  34. 340  AFORM$=FORM$
  35. 350  ATYP$=TYP$
  36. 360  RANDOMIZE(BASE)
  37. 370  BFORM$=LEFT$(AFORM$,1)
  38. 380  AFORM$=RIGHT$(AFORM$,9)+BFORM$
  39. 390  FORMAT=VAL(BFORM$)
  40. 400  BTYP$=LEFT$(ATYP$,1)
  41. 410  ATYP$=RIGHT$(ATYP$,9)+BTYP$
  42. 420  TYPE=VAL(BTYP$)
  43. 430  TIME$="00:00:00"
  44. 440  ON FORMAT GOTO 720,750,790,820,850
  45. 450  IF Y$<>Z$ GOTO 670
  46. 460  TLAPSE$=TIME$
  47. 470  IF TLIMIT$<TLAPSE$ THEN V$=", but time is out!" ELSE V$="!          "
  48. 480  LOCATE 21,1:PRINT"Correct"V$
  49. 490  IF TLIMIT$<TLAPSE$ GOTO 680
  50. 500  CORRECT=CORRECT+1
  51. 510  SCORE=100*CORRECT\PROB
  52. 520  PRINT
  53. 530  IF PROB<>TEST GOTO 560
  54. 540  PRINT "Test is over!  Press ";CHR$(17);CHR$(196);CHR$(217);" for score.";
  55. 550  GOTO 570
  56. 560  LOCATE 23,1:PRINT"For next problem, press ";CHR$(17);CHR$(196);CHR$(217);" ";
  57. 570  E$=INPUT$(1)
  58. 580  IF E$=CHR$(27) GOTO 7940
  59. 590  IF E$<>CHR$(13) GOTO 570
  60. 600  IF PROB=TEST GOTO 7940
  61. 610  PROB=PROB+1
  62. 620  IF MPROB=PROB-1 THEN RETURN
  63. 630  W$=""
  64. 640  IF MPROB<>0 GOTO 370
  65. 650  CLS
  66. 660  GOTO 370
  67. 670  LOCATE 21,1:PRINT"Wrong! Answer is ";Z$
  68. 680  SOUND 45,25
  69. 690  M$=STR$(PROB)
  70. 700  MM$=MM$+M$
  71. 710  GOTO 510
  72. 720  BND=BNDA+1
  73. 730  IF GRD>4 THEN L=1 ELSE L=0
  74. 740  ON TYPE GOTO 1390,1390,1390,2940
  75. 750  BND=BNDB+1
  76. 760  IF GRD>4 THEN L=1 ELSE L=0
  77. 770  ON GRD GOTO 2610,2610,1410,780,780,780
  78. 780  IF TYPE=4 GOTO 2940 ELSE GOTO 1410
  79. 790  BND=BNDC+1
  80. 800  IF GRD=4 THEN L=1 ELSE L=0
  81. 810  ON GRD GOTO 1390,1390,2960,1410,4630,4630
  82. 820  BND=BNDD+1
  83. 830  IF GRD=3 THEN L=1 ELSE L=0
  84. 840  ON GRD GOTO 1390,1410,1410,4630,4630,4630
  85. 850  BND=BNDE+1
  86. 860  L=0
  87. 870  ON GRD GOTO 6930,6930,6930,4630,4630,4630
  88. 880  FOR I=1 TO QTY
  89. 890  DB$(I)=""
  90. 900  AB$(I)=STR$(B(I))
  91. 910  BB(I)=LEN(AB$(I))-1
  92. 920  CB$(I)=RIGHT$(AB$(I),BB(I))
  93. 930  FOR H=1 TO BB(I)
  94. 940  J$=RIGHT$(CB$(I),1)
  95. 950  CB$(I)=J$+LEFT$(CB$(I),BB(I)-1)
  96. 960  DB$(I)=" "+J$+DB$(I)
  97. 970  EB(I)=LEN(DB$(I))
  98. 980  NEXT H
  99. 990  NEXT I
  100. 1000  IF L=0 GOTO 1220
  101. 1010  IF GRD<6 THEN DCML=GRD-1
  102. 1020  FOR I=1 TO QTY
  103. 1030  ON TYPE GOTO 1040,1040,1050,1050
  104. 1040  IF I>1 GOTO 1080
  105. 1050  AA=1000*RND(PROB)
  106. 1060  IF GRD=6 THEN AC=AA MOD BB(I)+1 ELSE AC=AA MOD DCML
  107. 1070  IF AC=0 GOTO 1050
  108. 1080  C(I)=AC
  109. 1090  IF BB(I)=>C(I) GOTO 1130
  110. 1100  FOR H=1 TO C(I)-BB(I)
  111. 1110  DB$(I)=" 0"+DB$(I)
  112. 1120  NEXT H
  113. 1130  EB(I)=LEN(DB$(I))
  114. 1140  MID$(DB$(I),EB(I)-2*C(I)+1)="."
  115. 1150  NEXT I
  116. 1160  ON TYPE GOTO 1170,1170,1190,1210
  117. 1170  L=C(1)
  118. 1180  GOTO 1220
  119. 1190  L=C(1)+C(2)
  120. 1200  GOTO 1220
  121. 1210  L=C(1)-C(2)
  122. 1220  W$=STR$(A)
  123. 1230  WW=LEN(W$)-1
  124. 1240  W$=RIGHT$(W$,WW)
  125. 1250  IF L=<WW GOTO 1290
  126. 1260  W$="0"+W$
  127. 1270  WW=WW+1
  128. 1280  GOTO 1250
  129. 1290  IF L=>0 GOTO 1340
  130. 1300  W$=W$+"0"
  131. 1310  WW=WW+1
  132. 1320  L=L+1
  133. 1330  GOTO 1290
  134. 1340  IF L=0 GOTO 1360
  135. 1350  W$=LEFT$(W$,WW-L)+"."+RIGHT$(W$,L)
  136. 1360  Z$=W$
  137. 1370  CC$=STRING$(EB(1),"SOUND")
  138. 1380  RETURN
  139. 1390  ON FORMAT GOSUB 7540,7540,7590,7920
  140. 1400  GOTO 1420
  141. 1410  ON TYPE GOSUB 7540,7540,7540
  142. 1420  GOSUB 880
  143. 1430  IF MPROB>PROB GOTO 610
  144. 1440  CLS
  145. 1450  PRINT TAB(7) "OK " MICK$", here is problem "PROB
  146. 1460  IF FORMAT<>3 GOTO 1480
  147. 1470  LOCATE 3,21+BB(1)-EB(3):PRINT USING "&";DB$(3)
  148. 1480  LOCATE 5,21+BB(1)-EB(1):PRINT USING "&";DB$(1)
  149. 1490  LOCATE 7,20+BB(1)-EB(1):PRINT OP$;
  150. 1500  LOCATE 7,21+BB(1)-EB(2):PRINT USING "&";DB$(2)
  151. 1510  PRINT SPC(20+BB(1)-EB(1)) CC$
  152. 1520  IF RE=1 GOTO 560
  153. 1530  LOCATE 23,1,1:PRINT "To correct an entry, press c"
  154. 1540  YAX=9
  155. 1550  XAX=20+BB(1)
  156. 1560  ON TYPE GOTO 1900,1900,1570
  157. 1570  IF BB(2)=1 THEN TYPE=1
  158. 1580  IF BB(2)=1 GOTO 1900
  159. 1590  FOR H=1 TO BB(2)
  160. 1600  FB$=MID$(AB$(2),BB(2)-H+2,1)
  161. 1610  GB=VAL(FB$)
  162. 1620  ANS=GB*B(1)
  163. 1630  AANS$=STR$(ANS)
  164. 1640  BANS=LEN(AANS$)-1
  165. 1650  IF GB=0 THEN BANS=BB(1)
  166. 1660  FOR G=1 TO BANS
  167. 1670  LOCATE YAX,XAX,1
  168. 1680  E$=INPUT$(1)
  169. 1690  IF E$<>"c" AND E$<>"C" GOTO 1770
  170. 1700  IF G=1 GOTO 1540
  171. 1710  IF BANS=BB(1) GOTO 1740
  172. 1720  IF G=BANS-1 THEN XAX=XAX+2
  173. 1730  IF G=BANS THEN XAX=XAX-4
  174. 1740  XAX=XAX+2
  175. 1750  G=G-1
  176. 1760  GOTO 1670
  177. 1770  IF E$<"0" OR E$>"9" GOTO 1680
  178. 1780  PRINT E$
  179. 1790  IF BANS=BB(1) GOTO 1820
  180. 1800  IF G=BANS-2 THEN XAX=XAX-2
  181. 1810  IF G=BANS-1 THEN XAX=XAX+4
  182. 1820  XAX=XAX-2
  183. 1830  NEXT G
  184. 1840  IF BANS=BB(1) THEN XAX=XAX+(2*BANS-2) ELSE IF BANS=1 THEN XAX=XAX ELSE XAX=XAX+(2*BANS-4)
  185. 1850  CC$=STRING$(2*WW-1,"SOUND")
  186. 1860  IF H=BB(2) THEN PRINT SPC(21+BB(1)-2*WW)CC$
  187. 1870  YAX=YAX+2
  188. 1880  NEXT H
  189. 1890  XAX=20+BB(1)
  190. 1900  W$=STR$(A)
  191. 1910  WW=LEN(W$)-1
  192. 1920  IF BB(1)=1 AND WW=2 THEN XAX=XAX-2
  193. 1930  FOR I=1 TO WW
  194. 1940  LOCATE YAX,XAX,1
  195. 1950  Q$(I)=INPUT$(1)
  196. 1960  IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 2060
  197. 1970  IF I=1 GOTO 1540
  198. 1980  ON TYPE GOTO 1990,2030,2000
  199. 1990  IF WW>BB(1) GOTO 2010 ELSE GOTO 2030
  200. 2000  IF BANS+BB(2)-1<WW GOTO 2010 ELSE GOTO 2030
  201. 2010  IF I=WW-1 THEN XAX=XAX+2
  202. 2020  IF I=WW THEN XAX=XAX-4
  203. 2030  XAX=XAX+2
  204. 2040  I=I-1
  205. 2050  GOTO 1940
  206. 2060  IF Q$(I)<"0" OR Q$(I)>"9" GOTO 1940
  207. 2070  PRINT Q$(I)
  208. 2080  ON TYPE GOTO 2090,2130,2100
  209. 2090  IF WW>BB(1) GOTO 2110 ELSE GOTO 2130
  210. 2100  IF BANS+BB(2)-1<WW GOTO 2110 ELSE GOTO 2130
  211. 2110  IF I=WW-1 THEN XAX=XAX+4
  212. 2120  IF I=WW-2 THEN XAX=XAX-2
  213. 2130  XAX=XAX-2
  214. 2140  NEXT I
  215. 2150  PRINT
  216. 2160  HV=0
  217. 2170  IF L=0 GOTO 2260
  218. 2180  PRINT "Decimal goes   spaces from the right?"
  219. 2190  LOCATE YAX+2,14,1
  220. 2200  E$=INPUT$(1)
  221. 2210  IF E$="c" OR E$="C" GOTO 1540
  222. 2220  IF E$<"0" OR E$>"8" GOTO 2200
  223. 2230  PRINT E$
  224. 2240  HV=VAL(E$)
  225. 2250  XAX=21+BB(1)
  226. 2260  ON TYPE GOTO 2270,2300,2290
  227. 2270  IF WW>BB(1) THEN SWAP Q$(WW),Q$(WW-1)
  228. 2280  GOTO 2300
  229. 2290  IF BANS+BB(2)-1<WW THEN SWAP Q$(WW),Q$(WW-1)
  230. 2300  Y$=""
  231. 2310  FOR I=1 TO WW
  232. 2320  XAX=XAX-2
  233. 2330  Y$=Q$(I)+Y$
  234. 2340  IF I<>HV OR L=0 GOTO 2380
  235. 2350  Y$="."+Y$
  236. 2360  LOCATE YAX,XAX
  237. 2370  PRINT "."
  238. 2380  NEXT I
  239. 2390  IF WW=>HV GOTO 2480
  240. 2400  XAX=XAX+1
  241. 2410  FOR I=WW+1 TO HV+1
  242. 2420  IF I=HV+1 THEN XAX=XAX-1 ELSE XAX=XAX-2
  243. 2430  IF I=HV+1 THEN Q$(I)="." ELSE Q$(I)="0"
  244. 2440  LOCATE YAX,XAX
  245. 2450  PRINT Q$(I)
  246. 2460  Y$=Q$(I)+Y$
  247. 2470  NEXT I
  248. 2480  LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
  249. 2490  E$=INPUT$(1)
  250. 2500  IF E$<>"c" AND E$<>"C" GOTO 2590
  251. 2510  XAX=19+BB(1)
  252. 2520  FOR I=1 TO 9
  253. 2530  Q$(I)=" "
  254. 2540  LOCATE YAX,XAX,0
  255. 2550  PRINT Q$(I)
  256. 2560  IF I=WW OR I=HV AND HV>WW THEN XAX=XAX-1 ELSE XAX=XAX-2
  257. 2570  NEXT I
  258. 2580  GOTO 1540
  259. 2590  IF E$<>CHR$(13) GOTO 2490
  260. 2600  GOTO 450
  261. 2610  ON FORMAT GOSUB 7540,7540,7590,7920
  262. 2620  GOSUB 880
  263. 2630  IF MPROB>PROB GOTO 610
  264. 2640  CLS
  265. 2650  PRINT TAB(7) "OK " MICK$", here is problem "PROB
  266. 2660  LOCATE 10,18-EB(1)-EB(2):PRINT USING "&";DB$(1);
  267. 2670  PRINT USING " &";OP$;
  268. 2680  PRINT USING "& _=";DB$(2)
  269. 2690  IF RE=1 GOTO 560
  270. 2700  LOCATE 23,1,1:PRINT "To correct an entry, press c"
  271. 2710  XAX=23
  272. 2720  YAX=10
  273. 2730  FOR I=1 TO WW
  274. 2740  LOCATE YAX,XAX
  275. 2750  Q$(I)=INPUT$(1)
  276. 2760  IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 2810
  277. 2770  IF I=1 GOTO 2740
  278. 2780  XAX=XAX-2
  279. 2790  I=I-1
  280. 2800  GOTO 2740
  281. 2810  IF Q$(I)<"0" OR Q$(I)>"9" GOTO 2750
  282. 2820  PRINT Q$(I)
  283. 2830  XAX=XAX+2
  284. 2840  NEXT I
  285. 2850  LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217)" ";
  286. 2860  E$=INPUT$(1)
  287. 2870  IF E$="c" OR E$="C" GOTO 2710
  288. 2880  IF E$<>CHR$(13) GOTO 2860
  289. 2890  Y$=""
  290. 2900  FOR I=1 TO WW
  291. 2910  Y$=Y$+Q$(I)
  292. 2920  NEXT I
  293. 2930  GOTO 450
  294. 2940  ON FORMAT GOSUB 7540,7540,7590,7920
  295. 2950  GOTO 2970
  296. 2960  GOSUB 7540
  297. 2970  GOSUB 880
  298. 2980  IF MPROB>PROB GOTO 610
  299. 2990  CLS
  300. 3000  PRINT TAB(7) "OK " MICK$", here is problem "PROB
  301. 3010  LOCATE 4,18:PRINT USING "&";"VARPTR";CC$
  302. 3020  LOCATE 5,17-EB(2):PRINT USING "&";DB$(2);
  303. 3030  PRINT " ";
  304. 3040  PRINT USING "&";"CALL";
  305. 3050  PRINT USING "&";DB$(1)
  306. 3060  IF RE=1 GOTO 560
  307. 3070  LOCATE 23,1,1:PRINT "To correct an entry, press c"
  308. 3080  IF GRD<5 THEN GOTO 3360
  309. 3090  LOCATE 10,1:PRINT "Move decimals   spaces to the right?"
  310. 3100  LOCATE 10,15,1
  311. 3110  E$=INPUT$(1)
  312. 3120  IF E$<"0" OR E$>"9" GOTO 3110
  313. 3130  HH=VAL(E$)
  314. 3140  IF HH>C(2) GOTO 3110
  315. 3150  LOCATE 10,1:PRINT STRING$(36," ")
  316. 3160  IF E$="0" GOTO 3270
  317. 3170  MID$(DB$(2),EB(2)-2*C(2)+1)=" "
  318. 3180  IF C(2)=HH GOTO 3200
  319. 3190  MID$(DB$(2),EB(2)-2*(C(2)-HH)+1)="."
  320. 3200  MID$(DB$(1),EB(1)-2*C(1)+1)=" "
  321. 3210  IF C(1)=HH GOTO 3280 ELSE IF C(1)>HH GOTO 3270
  322. 3220  FOR I=1 TO HH-C(1)
  323. 3230  DB$(1)=DB$(1)+" 0"
  324. 3240  B(1)=VAL(DB$(1))
  325. 3250  NEXT I
  326. 3260  GOTO 3280
  327. 3270  MID$(DB$(1),EB(1)-2*(C(1)-HH)+1)="."
  328. 3280  EB(1)=LEN(DB$(1))
  329. 3290  CC$=STRING$(EB(1),"SOUND")
  330. 3300  LOCATE 4,19:PRINT USING "&";CC$
  331. 3310  LOCATE 5,17-EB(2):PRINT USING "&";DB$(2)
  332. 3320  LOCATE 5,19:PRINT USING "&";DB$(1)
  333. 3330  LOCATE 3,19+EB(1)-2*(C(1)-HH),0
  334. 3340  IF HH<C(1) THEN PRINT "."
  335. 3350  IF C(1)-HH>WW GOTO 3390
  336. 3360  XAX=20+EB(1)-2*WW
  337. 3370  WWW=WW
  338. 3380  GOTO 3410
  339. 3390  XAX=20+EB(1)-2*(C(1)-HH)
  340. 3400  WWW=C(1)-HH
  341. 3410  YAX=3
  342. 3420  DIV=B(1)
  343. 3430  II=0:Y$=""
  344. 3440  FOR I=1 TO WWW
  345. 3450  LOCATE YAX,XAX,1
  346. 3460  Q$(I)=INPUT$(1)
  347. 3470  IF I=1 AND Q$(I)="c" OR Q$(I)="C" GOTO 4510 ELSE IF Q$(I)="c" OR Q$(I)="C" GOTO 3350
  348. 3480  IF Q$(I)<"0" OR Q$(I)>"9" GOTO 3460
  349. 3490  PRINT Q$(I)
  350. 3500  Y$=Q$(I)+Y$
  351. 3510  YY=VAL(Y$)
  352. 3520  IF Q$(I)<>"0" GOTO 3580
  353. 3530  XAX=XAX+2
  354. 3540  II=II+1
  355. 3550  IF YY=0 OR I=WWW GOTO 4320
  356. 3560  YAX=YAX+4*(I-II)+2
  357. 3570  GOTO 4240
  358. 3580  YAX=YAX+4*(I-II)
  359. 3590  AQ=VAL(Q$(I))
  360. 3600  BQ=AQ*B(2)
  361. 3610  CQ$=STR$(BQ)
  362. 3620  DQ=LEN(CQ$)-1
  363. 3630  GOSUB 4440
  364. 3640  IF BB(2)=1 AND DQ=2 THEN XAX=XAX-2
  365. 3650  FOR H=1 TO DQ
  366. 3660  LOCATE YAX,XAX,1
  367. 3670  R$(H)=INPUT$(1)
  368. 3680  IF R$(H)<>"c" AND R$(H)<>"C" GOTO 3790
  369. 3690  IF H<>1 GOTO 3730
  370. 3700  IF BB(2)=1 AND DQ=2 THEN XAX=XAX+2
  371. 3710  YAX=YAX-4*(I-II)
  372. 3720  GOTO 3450
  373. 3730  IF DQ=BB(2) GOTO 3760
  374. 3740  IF H=DQ THEN XAX=XAX-4
  375. 3750  IF H=DQ-1 THEN XAX=XAX+2
  376. 3760  XAX=XAX+2
  377. 3770  H=H-1
  378. 3780  GOTO 3660
  379. 3790  IF R$(H)<"0" OR R$>"9" GOTO 3670
  380. 3800  PRINT R$(H)
  381. 3810  IF DQ=BB(2) GOTO 3840
  382. 3820  IF H=DQ-1 THEN XAX=XAX+4
  383. 3830  IF H=DQ-2 THEN XAX=XAX-2
  384. 3840  XAX=XAX-2
  385. 3850  NEXT H
  386. 3860  CC$=STRING$(2*DQ-1,"SOUND")
  387. 3870  IF DQ=BB(2) THEN PRINT SPC(XAX+1) CC$ ELSE PRINT SPC(XAX-1) CC$
  388. 3880  ANS$=""
  389. 3890  IF DQ<>BB(2) THEN SWAP R$(DQ),R$(DQ-1)
  390. 3900  FOR H=1 TO DQ
  391. 3910  ANS$=R$(H)+ANS$
  392. 3920  NEXT H
  393. 3930  DANS=LEN(ANS$)
  394. 3940  ZERO$=STRING$(WW-I,48)
  395. 3950  ANS$=ANS$+ZERO$
  396. 3960  AANS=VAL(ANS$)
  397. 3970  BANS=DIV-AANS
  398. 3980  DIV=BANS
  399. 3990  CAN$=STR$(BANS)
  400. 4000  AN=LEN(CAN$)-1
  401. 4010  BN=AN-LEN(ZERO$)
  402. 4020  IF DQ=BB(2) THEN XAX=XAX+2*DQ ELSE XAX=XAX+2*DQ-2
  403. 4030  YAX=YAX+2:DQ=BN
  404. 4040  GOSUB 4440
  405. 4050  IF BANS>0 GOTO 4070 ELSE BN=0
  406. 4060  GOTO 4220
  407. 4070  FOR G=1 TO BN
  408. 4080  LOCATE YAX,XAX,1
  409. 4090  E$=INPUT$(1)
  410. 4100  IF E$<>"c" AND E$<>"C" GOTO 4180
  411. 4110  IF G<>1 GOTO 4150
  412. 4120  DIV=DIV+AANS
  413. 4130  YAX=YAX-2
  414. 4140  GOTO 3640
  415. 4150  G=G-1
  416. 4160  XAX=XAX+2
  417. 4170  GOTO 4080
  418. 4180  IF E$<"0" OR E$>"9" GOTO 4090
  419. 4190  XAX=XAX-2
  420. 4200  PRINT E$
  421. 4210  NEXT G
  422. 4220  IF I=WWW GOTO 4320
  423. 4230  XAX=XAX+2*(BN+1)
  424. 4240  LOCATE YAX,XAX,1
  425. 4250  E$=INPUT$(1)
  426. 4260  IF E$<>"c" AND E$<>"C" GOTO 4290
  427. 4270  XAX=XAX-2
  428. 4280  IF BN>0 GOTO 4070 ELSE GOTO 3350
  429. 4290  IF E$<"0" OR E$>"9" GOTO 4250
  430. 4300  PRINT E$
  431. 4310  YAX=YAX-4*(I-II)-2
  432. 4320  NEXT I
  433. 4330  LOCATE 21,1,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
  434. 4340  E$=INPUT$(1)
  435. 4350  IF E$="c" OR E$="C" GOTO 3350
  436. 4360  IF E$<>CHR$(13) GOTO 4340
  437. 4370  Y$=""
  438. 4380  FOR I=WWW TO 1 STEP -1
  439. 4390  Y$=Q$(I)+Y$
  440. 4400  IF L=0 GOTO 4420
  441. 4410  IF I=WWW-(C(1)-HH)+1 THEN Y$="."+Y$
  442. 4420  NEXT I
  443. 4430  GOTO 450
  444. 4440  XAX=XAX-8
  445. 4450  FOR P=5 TO 1 STEP -1
  446. 4460  LOCATE YAX,XAX,0
  447. 4470  IF P>DQ THEN PRINT " "
  448. 4480  IF P>1 THEN XAX=XAX+2
  449. 4490  NEXT P
  450. 4500  RETURN
  451. 4510  IF HH>C(1) GOTO 4550
  452. 4520  IF HH=C(1) GOTO 4580
  453. 4530  MID$(DB$(1),EB(1)-2*(C(1)-HH)+1)=" "
  454. 4540  GOTO 4570
  455. 4550  DB$(1)=LEFT$(DB$(1),EB(1)-2*(HH-C(1)))
  456. 4560  EB(1)=LEN(DB$(1))
  457. 4570  CC$=STRING$(EB(1),"SOUND")
  458. 4580  MID$(DB$(1),EB(1)-2*C(1)+1)="."
  459. 4590  IF HH=C(2) GOTO 4610
  460. 4600  MID$(DB$(2),EB(2)-2*(C(2)-HH)+1)=" "
  461. 4610  MID$(DB$(2),EB(2)-2*C(2)+1)="."
  462. 4620  GOTO 2990
  463. 4630  QTY=6
  464. 4640  BND=BND/2
  465. 4650  GOSUB 7480
  466. 4660  IF MPROB>PROB GOTO 610
  467. 4670  FOR I=1 TO QTY-1
  468. 4680  IF B(I)<2 GOTO 4760
  469. 4690  FOR H=I+1 TO QTY
  470. 4700  IF B(H)<2 GOTO 4750
  471. 4710  IF B(I)*B(H)>BND*2 GOTO 4750
  472. 4720  IF B(I)<>5 THEN SWAP B(I),B(5)
  473. 4730  IF B(H)<>6 THEN SWAP B(H),B(6)
  474. 4740  GOTO 4770
  475. 4750  NEXT H
  476. 4760  NEXT I
  477. 4770  IF B(5)=1 AND B(6)=1 GOTO 4650
  478. 4780  IF B(5)*B(6)>BND*2 OR B(5)=1 GOTO 4810
  479. 4790  IF B(6)=1 THEN B(6)=B(5)
  480. 4800  GOTO 4870
  481. 4810  B(5)=B(6)
  482. 4820  IF GRD>4 AND FORMAT=5 GOTO 5070
  483. 4830  IF B(5)*B(6)<BND*2 GOTO 4870
  484. 4840  B(5)=B(5)-2
  485. 4850  B(6)=B(6)-2
  486. 4860  GOTO 4830
  487. 4870  IF GRD=5 AND FORMAT=3 OR FORMAT=5 GOTO 5030
  488. 4880  FOR I=1 TO 3
  489. 4890  FOR H=I+1 TO 4
  490. 4900  IF B(I)<B(H) THEN SWAP B(I),B(H)
  491. 4910  NEXT H
  492. 4920  NEXT I
  493. 4930  IF TYPE<3 GOTO 4960
  494. 4940  IF TYPE=4 THEN SWAP B(4),B(6)
  495. 4950  GOTO 5070
  496. 4960  FOR I=3 TO 4
  497. 4970  IF B(I)<>B(I+2) GOTO 4990
  498. 4980  B(I)=B(I)-1
  499. 4990  IF B(I)<B(I+2) GOTO 5020
  500. 5000  B(I)=B(I)-B(I+2)
  501. 5010  GOTO 4970
  502. 5020  NEXT I
  503. 5030  IF TYPE<>2 GOTO 5070
  504. 5040  IF B(3)/B(5)>B(4)/B(6) GOTO 5070
  505. 5050  B(3)=B(3)+1
  506. 5060  GOTO 5040
  507. 5070  FOR I=1 TO QTY
  508. 5080  AB$(I)=STR$(B(I))
  509. 5090  EB(I)=LEN(AB$(I))
  510. 5100  NEXT I
  511. 5110  FOR I=3 TO 4
  512. 5120  IF EB(I)=<EB(I+2) GOTO 5170
  513. 5130  AB$(I+2)=" "+AB$(I+2)
  514. 5140  CB$(I)=AB$(I)
  515. 5150  EB(I+2)=EB(I+2)+1
  516. 5160  GOTO 5190
  517. 5170  CB$(I)=SPACE$(EB(I+2))
  518. 5180  RSET CB$(I)=AB$(I)
  519. 5190  NEXT I
  520. 5200  IF GRD>4 GOTO 5230
  521. 5210  QTY=2
  522. 5220  GOTO 5240
  523. 5230  IF FORMAT=5 THEN QTY=5 ELSE QTY=2
  524. 5240  FOR I=1 TO QTY
  525. 5250  IF I=4 GOTO 5300
  526. 5260  B(I)=0
  527. 5270  AB$(I)=""
  528. 5280  EB(I)=0
  529. 5290  CB$(I)=""
  530. 5300  NEXT I
  531. 5310  EQ$=" ="
  532. 5320  EC$=""
  533. 5330  CC$=" "+STRING$(EB(6)-1,"SOUND")
  534. 5340  IF EB(5)<>0 GOTO 5400
  535. 5350  DC$=""
  536. 5360  OP$=""
  537. 5370  AN=B(6)
  538. 5380  BN=B(4)
  539. 5390  GOTO 5520
  540. 5400  DC$=" "+STRING$(EB(5)-1,"SOUND")
  541. 5410  IF B(2)>0 THEN B(4)=B(2)*B(6)+B(4)
  542. 5420  IF B(1)>0 THEN B(3)=B(1)*B(5)+B(3)
  543. 5430  IF TYPE=4 THEN SWAP B(4),B(6)
  544. 5440  IF B(6)<>B(5) OR TYPE>2 GOTO 5470
  545. 5450  AN=B(6)
  546. 5460  GOTO 5510
  547. 5470  AN=B(6)*B(5)
  548. 5480  IF TYPE>2 GOTO 5510
  549. 5490  B(4)=B(4)*B(5)
  550. 5500  B(3)=B(3)*B(6)
  551. 5510  ON TYPE GOSUB 6810,6840,6870,6900
  552. 5520  PP=LEN(OP$)
  553. 5530  CN=BN MOD AN
  554. 5540  DN=BN\AN
  555. 5550  IF CN=0 GOTO 5730
  556. 5560  FOR H=2 TO CN
  557. 5570  EN=AN MOD H
  558. 5580  GN=CN MOD H
  559. 5590  IF EN+GN>0 GOTO 5630
  560. 5600  AN=AN/H
  561. 5610  CN=CN/H
  562. 5620  GOTO 5550
  563. 5630  NEXT H
  564. 5640  IF CN=0 GOTO 5730
  565. 5650  IF B(4)=B(6) AND B(3)=0 GOTO 5670
  566. 5660  IF CN<>B(4) OR AN<>B(6) OR B(3)<>0 GOTO 5730
  567. 5670  DN=CINT(100*BN/AN)
  568. 5680  DNS$=STR$(DN)
  569. 5690  EC$=" %"
  570. 5700  Z$=DNS$+EC$
  571. 5710  WW=LEN(DNS$)-1
  572. 5720  GOTO 5750
  573. 5730  IF DN>0 THEN DNS$=STR$(DN) ELSE DNS$=""
  574. 5740  IF CN>0 GOTO 5800
  575. 5750  CNS$=""
  576. 5760  ANS$=""
  577. 5770  ANT=0
  578. 5780  ANU$=""
  579. 5790  GOTO 5840
  580. 5800  CNS$=STR$(CN)
  581. 5810  ANS$=STR$(AN)
  582. 5820  ANT=LEN(ANS$)-1
  583. 5830  ANU$="/"+RIGHT$(ANS$,ANT)
  584. 5840  IF CNS$<>"" THEN CNT=LEN(CNS$)-1 ELSE CNT=0
  585. 5850  DNT=LEN(DNS$)
  586. 5860  ANV=LEN(ANU$)
  587. 5870  IF B(3)<>0 GOTO 5890
  588. 5880  IF EC$=" %" GOTO 5930
  589. 5890  Z$=DNS$+CNS$+ANU$
  590. 5900  WW=LEN(Z$)-1-ANV
  591. 5910  IF Z$="" THEN Z$=" 0"
  592. 5920  IF ANV>0 THEN EC$=" "+STRING$(ANV-1,"SOUND") ELSE EC$=""
  593. 5930  CLS
  594. 5940  PRINT TAB(7) "OK " MICK$", here is problem "PROB
  595. 5950  IF GRD=4 AND FORMAT=4 GOTO 6040
  596. 5960  IF GRD>4 AND FORMAT=3 GOTO 6040
  597. 5970  X=20-EB(1)-EB(5)-PP-EB(2)-EB(6)
  598. 5980  LOCATE 7,X:PRINT SPC(EB(1));CB$(3);SPC(PP);SPC(EB(2));CB$(4)
  599. 5990  LOCATE 8,X:PRINT AB$(1);DC$;OP$;AB$(2);CC$;EQ$;SPC(DNT);EC$
  600. 6000  LOCATE 9,X:PRINT SPC(EB(1));AB$(5);SPC(PP);SPC(EB(2));AB$(6);SPC(2);SPC(DNT);ANS$
  601. 6010  IF ANV>0 THEN XAX=21+DNT+ANV ELSE XAX=23
  602. 6020  YAX=7
  603. 6030  GOTO 6360
  604. 6040  EB(7)=ANV
  605. 6050  A=0
  606. 6060  FOR I=5 TO 7
  607. 6070  IF EB(I)>A THEN A=EB(I)
  608. 6080  NEXT I
  609. 6090  IF A=EB(5) GOTO 6130
  610. 6100  CB$(3)=" "+CB$(3)
  611. 6110  AB$(5)=" "+AB$(5)
  612. 6120  DC$=" "+DC$
  613. 6130  IF A=EB(6) GOTO 6170
  614. 6140  CB$(4)=" "+CB$(4)
  615. 6150  AB$(6)=" "+AB$(6)
  616. 6160  CC$=" "+CC$
  617. 6170  IF A=EB(7) GOTO 6210
  618. 6180  ANT=ANT+1
  619. 6190  ANS$=" "+ANS$
  620. 6200  EC$=" "+EC$
  621. 6210  CB$(2)=SPACE$(EB(1))
  622. 6220  RSET CB$(2)=AB$(2)
  623. 6230  LOCATE 4,20:PRINT CB$(3)
  624. 6240  LOCATE 5,20-EB(1):PRINT AB$(1);DC$
  625. 6250  LOCATE 6,20:PRINT AB$(5)
  626. 6260  LOCATE 8,20:PRINT CB$(4)
  627. 6270  LOCATE 9,18-EB(1):PRINT OP$;CB$(2);CC$
  628. 6280  LOCATE 10,20:PRINT AB$(6)
  629. 6290  FC$=STRING$(EB(1)+EB(4)+1,"SOUND")
  630. 6300  LOCATE 11,20-EB(1):PRINT FC$
  631. 6310  LOCATE 13,20:PRINT EC$
  632. 6320  LOCATE 14,20:PRINT ANS$
  633. 6330  YAX=12
  634. 6340  IF ANV>0 THEN XAX=20+ANT ELSE XAX=21-DNT
  635. 6350  IF RE=1 GOTO 560
  636. 6360  LOCATE 23,1:PRINT "To correct an entry, press c"
  637. 6370  IF RE=1 GOTO 560
  638. 6380  IF CN=0 OR EC$=" %" THEN YAX=YAX+1
  639. 6390  IF CNT=2 THEN XAX=XAX-1
  640. 6400  X=XAX
  641. 6410  WW=ABS(WW)
  642. 6420  FOR I=1 TO WW
  643. 6430  LOCATE YAX,XAX,1
  644. 6440  Q$(I)=INPUT$(1)
  645. 6450  IF Q$(I)<>"c" AND Q$(I)<>"C" GOTO 6560
  646. 6460  IF I=1 GOTO 6430
  647. 6470  I=I-1
  648. 6480  IF CNT>0 AND I=CNT+1 GOTO 6470
  649. 6490  IF I<>CNT GOTO 6540
  650. 6500  YAX=YAX-1
  651. 6510  XAX=X
  652. 6520  I=1
  653. 6530  GOTO 6430
  654. 6540  XAX=XAX-1
  655. 6550  GOTO 6430
  656. 6560  IF Q$(I)<"0" OR Q$(I)>"9" GOTO 6440
  657. 6570  PRINT Q$(I)
  658. 6580  IF I<>CNT GOTO 6650
  659. 6590  YAX=YAX+1
  660. 6600  IF GRD=4 AND FORMAT=4 OR GRD>4 AND FORMAT=3 THEN XAX=20-DNT+1 ELSE XAX=23
  661. 6610  IF I=2 THEN SWAP Q$(1),Q$(2)
  662. 6620  Q$(I+1)=" "
  663. 6630  I=I+1
  664. 6640  GOTO 6660
  665. 6650  XAX=XAX+1
  666. 6660  NEXT I
  667. 6670  IF DN>9 THEN SWAP Q$(WW),Q$(WW-1)
  668. 6680  IF EC$=" %"THEN Y$=EC$ ELSE Y$=ANU$
  669. 6690  FOR I=1 TO WW
  670. 6700  Y$=Q$(I)+Y$
  671. 6710  NEXT I
  672. 6720  Y$=" "+Y$
  673. 6730  LOCATE 21,1:PRINT "Press ";CHR$(17);CHR$(196);CHR$(217);" ";
  674. 6740  E$=INPUT$(1)
  675. 6750  IF E$<>"c" AND E$<>"C" GOTO 6790
  676. 6760  IF CNS$<>"" THEN YAX=YAX-1
  677. 6770  XAX=X
  678. 6780  GOTO 6420
  679. 6790  IF E$<>CHR$(13) GOTO 6740
  680. 6800  GOTO 450
  681. 6810  BN=B(3)+B(4)
  682. 6820  OP$=" +"
  683. 6830  RETURN
  684. 6840  BN=B(3)-B(4)
  685. 6850  OP$=" -"
  686. 6860  RETURN
  687. 6870  BN=B(3)*B(4)
  688. 6880  OP$=" x"
  689. 6890  RETURN
  690. 6900  BN=B(3)*B(4)
  691. 6910  OP$=" <UNK! {00F6}>"
  692. 6920  RETURN
  693. 6930  QTY=1
  694. 6940  GOSUB 7480
  695. 6950  IF MPROB>PROB GOTO 610
  696. 6960  CLS
  697. 6970  LOCATE 1,7:PRINT"OK " MICK$", here is problem "PROB
  698. 6980  LOCATE 3,1:PRINT "I am thinking of a number from 1 -"BND-1"Can you find it!"
  699. 6990  LOCATE 5,5,1:PRINT"(After each answer, press ";CHR$(17);CHR$(196);CHR$(217);")"
  700. 7000  IF RE=1 GOTO 560
  701. 7010  PRINT
  702. 7020  FOR H=1 TO 12
  703. 7030  XAX=1
  704. 7040  YAX=CSRLIN
  705. 7050  FOR I=1 TO 4
  706. 7060  LOCATE YAX,XAX
  707. 7070  J$(I)=INPUT$(1)
  708. 7080  IF J$(I)=CHR$(13) GOTO 7200
  709. 7090  IF J$(I)<>"c" AND J$(I)<>"C" GOTO 7140
  710. 7100  IF I=1 GOTO 7070
  711. 7110  I=I-1
  712. 7120  XAX=XAX-1
  713. 7130  GOTO 7060
  714. 7140  IF J$(I)<"0" OR J$(I)>"9" GOTO 7070
  715. 7150  PRINT J$(I);
  716. 7160  XAX=XAX+1
  717. 7170  NEXT I
  718. 7180  LOCATE YAX,1:PRINT"    ";
  719. 7190  IF J$(I)<>CHR$(13) GOTO 7030
  720. 7200  Y$=" "
  721. 7210  FOR K=1 TO I-1
  722. 7220  Y$=Y$+J$(K)
  723. 7230  NEXT K
  724. 7240  A=VAL(Y$)
  725. 7250  IF A>B(1) THEN PRINT" It's lesser!"
  726. 7260  IF A<B(1) THEN PRINT" It's greater!"
  727. 7270  PRINT
  728. 7280  IF A=B(1) GOTO 460
  729. 7290  NEXT H
  730. 7300  PRINT
  731. 7310  LOCATE 19,1:PRINT "Sorry, "MICK$"!  Too many guesses."
  732. 7320  LOCATE 21,1:PRINT "The correct answer is "B(1)
  733. 7330  GOTO 680
  734. 7340  A=B(1)+B(2)
  735. 7350  OP$="+"
  736. 7360  RETURN
  737. 7370  A=B(1)+B(2)
  738. 7380  SWAP A,B(1)
  739. 7390  OP$="-"
  740. 7400  RETURN
  741. 7410  A=B(1)*B(2)
  742. 7420  OP$="x"
  743. 7430  RETURN
  744. 7440  A=B(1)*B(2)
  745. 7450  SWAP A,B(1)
  746. 7460  OP$="<UNK! {00F6}>"
  747. 7470  RETURN
  748. 7480  FOR I=1 TO QTY
  749. 7490  AA=10000*RND(PROB)
  750. 7500  B(I)=AA MOD BND
  751. 7510  IF B(I)<1 GOTO 7490
  752. 7520  NEXT I
  753. 7530  RETURN
  754. 7540  QTY=2
  755. 7550  GOSUB 7480
  756. 7560  IF B(1)<B(2) THEN SWAP B(1),B(2)
  757. 7570  ON TYPE GOSUB 7340,7370,7410,7440
  758. 7580  RETURN
  759. 7590  QTY=3
  760. 7600  GOSUB 7480
  761. 7610  FOR I=1 TO 3
  762. 7620  IF B(1)+B(2)+B(3)<BND GOTO 7660
  763. 7630  B(I)=B(I)\2
  764. 7640  NEXT I
  765. 7650  GOTO 7610
  766. 7660  IF B(1)<B(2) THEN SWAP B(1),B(2)
  767. 7670  IF B(1)<B(3) THEN SWAP B(1),B(3)
  768. 7680  A=B(1)+B(2)+B(3)
  769. 7690  IF A>BND GOTO 7610
  770. 7700  OP$="+"
  771. 7710  RETURN
  772. 7720  QTY=2
  773. 7730  J$="":K$=""
  774. 7740  FOR H=1 TO 3
  775. 7750  GOSUB 7480
  776. 7760  IF B(1)+B(2)<BND GOTO 7810
  777. 7770  FOR I=1 TO 2
  778. 7780  IF B(I)>3 THEN B(I)=B(I)-4
  779. 7790  NEXT I
  780. 7800  GOTO 7760
  781. 7810  JJ$=STR$(B(1))
  782. 7820  KK$=STR$(B(2))
  783. 7830  J$=J$+JJ$
  784. 7840  K$=K$+KK$
  785. 7850  NEXT H
  786. 7860  B(1)=VAL(J$)
  787. 7870  B(2)=VAL(K$)
  788. 7880  IF B(1)<B(2) THEN SWAP B(1),B(2)
  789. 7890  A=B(1)+B(2)
  790. 7900  OP$="+"
  791. 7910  RETURN
  792. 7920  QTY=6
  793. 7930  ON GRD GOTO 7720,7720,7480,7480,7480,7480
  794. 7940  IF RE=1 AND SEL=3 OR SEL=5 GOTO 8480
  795. 7950  LL$=MM$
  796. 7960  CLS
  797. 7970  LOCATE 13,11,0:PRINT"One moment, please!"
  798. 7980  OPEN "O",#2,"mis"
  799. 7990  WRITE#2,GRD,FORM$,TYP$,BNDA,BNDB,BNDC,BNDD,BNDE,BASE,ANA,SCORE,SEL,MICK$,LL$,TEST,TLIMIT$,PROB
  800. 8000  CLOSE#2
  801. 8010  CLEAR
  802. 8020  OPEN "I",#2,"mis"
  803. 8030  INPUT#2,GRD,FORM$,TYP$,BNDA,BNDB,BNDC,BNDD,BNDE,BASE,ANA,SCORE,SEL,MICK$,LL$,TEST,TLIMIT$,PROB
  804. 8040  CLOSE#2
  805. 8050  CLS
  806. 8060  IF ANA>0 GOTO 8090
  807. 8070  LOCATE 3,11:PRINT"You did "PROB" problems"
  808. 8080  LOCATE 6,11:PRINT"Your score is "SCORE "%"
  809. 8090  IF LL$>" " GOTO 8150
  810. 8100  LOCATE 12,1:PRINT"Great work, "MICK$;
  811. 8110  IF SEL=3 GOTO 8170
  812. 8120  PRINT". Some more? (y/n)"
  813. 8130  BASE=BASE+1
  814. 8140  GOTO 8260
  815. 8150  LOCATE 9,1:PRINT"You missed problem:"LL$
  816. 8160  IF SEL<>3 GOTO 8200
  817. 8170  PRINT"....Enter code."
  818. 8180  E$=INPUT$(1)
  819. 8190  IF E$<>"{" GOTO 8180
  820. 8195  IF SEL=3 AND LL$="" THEN 8480
  821. 8200  PRINT
  822. 8210  IF SEL=2 GOTO 8250
  823. 8220  PRINT "Do you want to see the problems missed? (y/n) "
  824. 8230  RE=1
  825. 8240  GOTO 8270
  826. 8250  PRINT "Do you want to redo the problems missed?(y/n) "
  827. 8260  RE=0
  828. 8270  E$=INPUT$(1)
  829. 8280  IF E$="n" OR E$="N" GOTO 8480
  830. 8290  IF E$<>"y"  AND E$<>"Y" GOTO 8270
  831. 8300  ANA=LEN(LL$)
  832. 8310  IF ANA=0 GOTO 330
  833. 8320  MISS=0
  834. 8330  FOR GG=1 TO ANA
  835. 8340  U$=MID$(LL$,GG,1)
  836. 8350  IF U$<>" " THEN UU$=UU$+U$
  837. 8360  IF U$=" " OR GG=ANA THEN GOSUB 8410
  838. 8370  IF U$=" " THEN UU$=""
  839. 8380  NEXT GG
  840. 8390  MPROB=0:LL$=""
  841. 8400  GOTO 7940
  842. 8410  IF UU$<"1" THEN RETURN
  843. 8420  MPROB=VAL(UU$)
  844. 8430  UU$=" "
  845. 8440  MISS=MISS+1
  846. 8450  CLS
  847. 8460  LOCATE 13,11,0:PRINT"One moment, please!"
  848. 8470  IF MISS=1 GOTO 330 ELSE GOTO 370
  849. 8480  CLS
  850. 8490  LOCATE 13,11,0:PRINT"One moment, please!"
  851. 8500  CHAIN "a:tutor"
  852. 8510  TYP$="1121211112"
  853. 8520  BNDA=9:BNDB=9:BNDC=10:BNDD=9:BNDE=99
  854. 8530  RETURN
  855. 8540  TYP$="1221113112"
  856. 8550  BNDA=99:BNDB=12:BNDC=18:BNDD=5:BNDE=999
  857. 8560  RETURN
  858. 8570  TYP$="1324311432"
  859. 8580  BNDA=999:BNDB=9:BNDC=5:BNDD=99:BNDE=999
  860. 8590  RETURN
  861. 8600  TYP$="1321421232"
  862. 8610  BNDA=9999:BNDB=99:BNDC=999:BNDD=12:BNDE=12
  863. 8620  RETURN
  864. 8630  TYP$="1421413243"
  865. 8640  BNDA=999:BNDB=99:BNDC=18:BNDD=18:BNDE=18
  866. 8650  RETURN
  867. 8660  TYP$="1321414242"
  868. 8670  BNDA=9999:BNDB=999:BNDC=24:BNDD=24:BNDE=24
  869. 8680  RETURN
  870.