10 : 20 : 30 : 40 : 50 REM" PROGRAM AND IDEA BY RUSHDEN ROY A'L PLATE'PROGRAMMER FOR 8BIT SOFTWARE. 60 : 70 REM" MASTER 128 DEC 1993 80 ON ERROR:PROCerror:END 90 MODE7 100 VDU 23,1,0;0;0;0; 110 PRINT 120 PROCROY 130 PROCdh(6,12,1,"Shopping and the") 140 PROCdh(6,14,1,"minor irritations.") 150 PROCdh(6,16,1,"(Beware of the Traffic Warden!)") 160 PROCSP 170 PROCdh(1,2,1,"SHOPPING WITH A TIME LIMIT.") 180 PROCdh(1,4,1,"------------") 190 PROCdh(3,6,0,"You intend to nip in and out of a") 200 PROCdh(3,7,0,"supermarket to get a few items...") 210 PROCdh(3,8,0,"it will take only a minute or two you") 220 PROCdh(3,9,0,"reckon and then back to your car.") 230 PROCdh(6,11,0,"BUT...in fifteen stages you will find") 240 PROCdh(6,12,0,"that things are not so straight") 250 PROCdh(6,13,0,"foward as you had hoped.") 260 PROCdh(2,15,0,"At each stage you will use 1, 3 or 5") 270 PROCdh(2,16,0,"minutes of your 45 min. limit.") 280 PROCdh(4,18,0,"You can gamble but be careful because") 290 PROCdh(4,19,0,"it may make you slightly worse off!") 300 PROCdh(1,21,0,"Its taken 7 mins.to get to the shop.") 310 PROCSP 320 PROCdata 330 ti=7 340 PROCa 350 END 360 DEF PROCa:CLS:PROCwa:PROCsup(1) 370 PROChead("Grab a trolly and rush....") 380 rd=RND(3) 390 IFrd=1:Sa%=1:PROCdh(6,12,1,a1$) 400 IFrd=2:Sa%=3:PROCdh(6,12,1,a2$) 410 IFrd=3:Sa%=5:PROCdh(6,12,1,a3$) 420 IFSa%>1 SOUND1,-10,60,1 430 PROCdhr(6,16,14,Sa%) 440 PROCdh(6,16,1,mius$) 450 PRINT 460 ti=ti+Sa% 470 PROCsmcap(ti/2,1) 480 IFSa%=1 PROCSP:PROCb 490 PROCask:IF ans$="Y" PROCaa ELSE PROCb 500 ENDPROC 510 DEF PROCaa:CLS:PROCwa:PROCsup(1) 520 IF Sa%=3rd=RND(2):ELSErd=RND(3) 530 PROChead("Grab a trolly and rush....") 540 IFrd=1:Saa%=1:PROCdh(6,12,1,a1$) 550 IFrd=2:Saa%=3:PROCdh(6,12,1,a2$) 560 IFrd=3:Saa%=5:PROCdh(6,12,1,a3$) 570 PROCdhr(6,16,14,Saa%) 580 PROCdh(6,16,1,mius$) 590 PRINTCHR$(130)gam$:PROCline(2) 600 ti=ti-Sa%+1+Saa% 610 PROCsmcap(ti/2,1) 620 PROCSP:PROCb:ENDPROC 630 DEF PROCb:CLS:PROCwa:PROCsup(2) 640 PROChead("...along the aisles and...") 650 rd=RND(3) 660 IFrd=1:Sb%=1:PROCdh(6,12,1,b1$) 670 IFrd=2:Sb%=3:PROCdh(6,12,1,b2$) 680 IFrd=3:Sb%=5:PROCdh(6,12,1,b3$) 690 IFSb%>1 SOUND1,-10,60,1 700 PROCdhr(6,16,14,Sb%) 710 PROCdh(6,16,1,mius$) 720 PRINT 730 ti=ti+Sb% 740 PROCsmcap(ti/2,1) 750 IF Sb%=1 PROCSP:PROCc 760 PROCask:IF ans$="Y"THEN PROCbb ELSE PROCc 770 ENDPROC 780 DEF PROCbb:CLS:PROCwa:PROCsup(2) 790 IFSb%=3rd=RND(2):ELSErd=RND(3) 800 PROChead("...along the aisles and...") 810 IFrd=1:Sbb%=1:PROCdh(6,12,1,b1$) 820 IFrd=2:Sbb%=3:PROCdh(6,12,1,b2$) 830 IFrd=3:Sbb%=5:PROCdh(6,12,1,b3$) 840 PROCdhr(6,16,14,Sbb%) 850 PROCdh(6,16,1,mius$) 860 PRINTCHR$(130)gam$:PROCline(2) 870 ti=ti-Sb%+1+Sbb% 880 PROCsmcap(ti/2,1) 890 PROCSP:PROCc:ENDPROC 900 DEF PROCc:CLS:PROCwa:PROCsup(3) 910 PROChead("...snap up a few items...") 920 rd=RND(3) 930 IFrd=1:Sc%=1:PROCdh(6,12,1,c1$) 940 IFrd=2:Sc%=3:PROCdh(6,12,1,c2$) 950 IFrd=3:Sc%=5:PROCdh(6,12,1,c3$) 960 IFSc%>1 SOUND1,-10,60,1 970 PROCdhr(6,16,14,Sc%) 980 PROCdh(6,16,1,mius$) 990 PRINT 1000 ti=ti+Sc% 1010 PROCsmcap(ti/2,1) 1020 IF Sc%=1 PROCSP:PROCd 1030 PROCask:IF ans$="Y"THEN PROCcc ELSE PROCd 1040 ENDPROC 1050 DEF PROCcc:CLS:PROCwa:PROCsup(3) 1060 PROChead("...snap up a few items...") 1070 IFSc%=3rd=RND(2):ELSErd=RND(3) 1080 IFrd=1:Scc%=1:PROCdh(6,12,1,c1$) 1090 IFrd=2:Scc%=3:PROCdh(6,12,1,c2$) 1100 IFrd=3:Scc%=5:PROCdh(6,12,1,c3$) 1110 PROCdhr(6,16,14,Scc%) 1120 PROCdh(6,16,1,mius$) 1130 PRINTCHR$(130)gam$:PROCline(2) 1140 ti=ti-Sc%+1+Scc% 1150 PROCsmcap(ti/2,1) 1160 PROCSP:PROCd:ENDPROC 1170 DEF PROCd:CLS:PROCwa:PROCsup(4) 1180 PROChead("...disaster...") 1190 rd=RND(3) 1200 IFrd=1:Sd%=1:PROCdh(6,12,1,d1$) 1210 IFrd=2:Sd%=3:PROCdh(6,12,1,d2$) 1220 IFrd=3:Sd%=5:PROCdh(6,12,1,d3$) 1230 IFSd%>1 SOUND1,-10,60,1 1240 PROCdhr(6,16,14,Sd%) 1250 PROCdh(6,16,1,mius$) 1260 PRINT 1270 ti=ti+Sd% 1280 PROCsmcap(ti/2,1) 1290 IF Sd%=1 PROCSP:PROCe 1300 PROCask:IF ans$="Y" PROCdd ELSE PROCe 1310 ENDPROC 1320 DEF PROCdd:CLS:PROCwa:PROCsup(4) 1330 IFSd%=3rd=RND(2):ELSErd=RND(3) 1340 PROChead("...disaster...") 1350 IFrd=1:Sdd%=1:PROCdh(6,12,1,d1$) 1360 IFrd=2:Sdd%=3:PROCdh(6,12,1,d2$) 1370 IFrd=3:Sdd%=5:PROCdh(6,12,1,d3$) 1380 PROCdhr(6,16,14,Sdd%) 1390 PROCdh(6,16,1,mius$) 1400 PRINTCHR$(130)gam$:PROCline(2) 1410 ti=ti-Sd%+1+Sdd% 1420 PROCsmcap(ti/2,1) 1430 PROCSP:PROCe:ENDPROC 1440 DEF PROCe:CLS:PROCwa:PROCsup(5) 1450 PROChead("..items in the trolly..") 1460 rd=RND(3) 1470 IFrd=1:Se%=1:PROCdh(6,12,1,e1$) 1480 IFrd=2:Se%=3:PROCdh(6,12,1,e2$) 1490 IFrd=3:Se%=5:PROCdh(6,12,1,e3$) 1500 IFSe%>1 SOUND1,-10,60,1 1510 PROCdhr(6,16,14,Se%) 1520 PROCdh(6,16,1,mius$) 1530 PRINT 1540 ti=ti+Se% 1550 PROCsmcap(ti/2,1) 1560 IF Se%=1 PROCSP:PROCf 1570 PROCask:IF ans$="Y" PROCee ELSE PROCf 1580 ENDPROC 1590 DEF PROCee:CLS:PROCwa:PROCsup(5) 1600 IFSe%=3rd=RND(2):ELSErd=RND(3) 1610 PROChead("..items in the trolly..") 1620 IFrd=1:See%=1:PROCdh(6,12,1,e1$) 1630 IFrd=2:See%=3:PROCdh(6,12,1,e2$) 1640 IFrd=3:See%=5:PROCdh(6,12,1,e3$) 1650 PROCdhr(6,16,14,See%) 1660 PROCdh(6,16,1,mius$) 1670 PRINTCHR$(130)gam$:PROCline(2) 1680 ti=ti-Se%+1+See% 1690 PROCsmcap(ti/2,1) 1700 PROCSP:PROCf:ENDPROC 1710 DEF PROCf:CLS:PROCwa:PROCsup(6) 1720 PROChead("...I dont believe it!!...") 1730 rd=RND(3) 1740 IFrd=1:Sf%=1:PROCdh(6,12,1,f1$) 1750 IFrd=2:Sf%=3:PROCdh(6,12,1,f2$) 1760 IFrd=3:Sf%=5:PROCdh(6,12,1,f3$) 1770 IFSf%>1 SOUND1,-10,60,1 1780 PROCdhr(6,16,14,Sf%) 1790 PROCdh(6,16,1,mius$) 1800 PRINT 1810 ti=ti+Sf% 1820 PROCsmcap(ti/2,1) 1830 IF Sf%=1 PROCSP:PROCg 1840 PROCask:IF ans$="Y" PROCff ELSEPROCg 1850 ENDPROC 1860 DEF PROCff:CLS:PROCwa:PROCsup(6) 1870 IFSf%=3rd=RND(2):ELSErd=RND(3) 1880 PROChead("...I dont believe it!!...") 1890 IFrd=1:Sff%=1:PROCdh(6,12,1,f1$) 1900 IFrd=2:Sff%=3:PROCdh(6,12,1,f2$) 1910 IFrd=3:Sff%=5:PROCdh(6,12,1,f3$) 1920 PROCdhr(6,16,14,Sff%) 1930 PROCdh(6,16,1,mius$) 1940 PRINTCHR$(130)gam$:PROCline(2) 1950 ti=ti-Sf%+1+Sff% 1960 PROCsmcap(ti/2,1) 1970 PROCSP:PROCg:ENDPROC 1980 DEF PROCg:CLS:PROCwa:PROCsup(7) 1990 PROChead("rush towards the check out") 2000 rd=RND(3) 2010 IFrd=1:Sg%=1:PROCdh(6,12,1,g1$) 2020 IFrd=2:Sg%=3:PROCdh(6,12,1,g2$) 2030 IFrd=3:Sg%=5:PROCdh(6,12,1,g3$) 2040 IFSg%>1 SOUND1,-10,60,1 2050 PROCdhr(6,16,14,Sg%) 2060 PROCdh(6,16,1,mius$) 2070 PRINT 2080 ti=ti+Sg% 2090 PROCsmcap(ti/2,1) 2100 IF Sg%=1 PROCSP:PROCh 2110 PROCask:IF ans$="Y" PROCgg ELSE PROCh 2120 ENDPROC 2130 DEF PROCgg:CLS:PROCwa:PROCsup(7) 2140 IFSg%=3rd=RND(2):ELSErd=RND(3) 2150 PROChead("rush towards the check out") 2160 IFrd=1:Sgg%=1:PROCdh(6,12,1,g1$) 2170 IFrd=2:Sgg%=3:PROCdh(6,12,1,g2$) 2180 IFrd=3:Sgg%=5:PROCdh(6,12,1,g3$) 2190 PROCdhr(6,16,14,Sgg%) 2200 PROCdh(6,16,1,mius$) 2210 PRINTCHR$(130)gam$:PROCline(2) 2220 ti=ti-Sg%+1+Sgg% 2230 PROCsmcap(ti/2,1) 2240 PROCSP:PROCh:ENDPROC 2250 DEF PROCh:CLS:PROCwa:PROCsup(8) 2260 PROChead("..selecting a check out..") 2270 rd=RND(3) 2280 IFrd=1:Sh%=1:PROCdh(6,12,1,h1$) 2290 IFrd=2:Sh%=3:PROCdh(6,12,1,h2$) 2300 IFrd=3:Sh%=5:PROCdh(6,12,1,h3$) 2310 IFSh%>1 SOUND1,-10,60,1 2320 PROCdhr(6,16,14,Sh%) 2330 PROCdh(6,16,1,mius$) 2340 PRINT 2350 ti=ti+Sh% 2360 PROCsmcap(ti/2,1) 2370 IFSh%=1 PROCSP:PROCi 2380 PROCask:IF ans$="Y" PROChh ELSE PROCi 2390 ENDPROC 2400 DEF PROChh:CLS:PROCwa:PROCsup(8) 2410 IFSh%=3rd=RND(2):ELSErd=RND(3) 2420 PROChead("..selecting a check out..") 2430 IFrd=1:Shh%=1:PROCdh(6,12,1,h1$) 2440 IFrd=2:Shh%=3:PROCdh(6,12,1,h2$) 2450 IFrd=3:Shh%=5:PROCdh(6,12,1,h3$) 2460 PROCdhr(6,16,14,Shh%) 2470 PROCdh(6,16,1,mius$) 2480 PRINTCHR$(130)gam$:PROCline(2) 2490 ti=ti-Sh%+1+Shh% 2500 PROCsmcap(ti/2,1) 2510 PROCSP:PROCi:ENDPROC 2520 DEF PROCi:CLS:PROCwa:PROCsup(9) 2530 PROChead("..what is the hold up?...") 2540 rd=RND(3) 2550 IFrd=1:Si%=1:PROCdh(6,12,1,i1$) 2560 IFrd=2:Si%=3:PROCdh(6,12,1,i2$) 2570 IFrd=3:Si%=5:PROCdh(6,12,1,i3$) 2580 IFSi%>1 SOUND1,-10,60,1 2590 PROCdhr(6,16,14,Si%) 2600 PROCdh(6,16,1,mius$) 2610 PRINT 2620 ti=ti+Si% 2630 PROCsmcap(ti/2,1) 2640 IFSi%=1 PROCSP:PROCj 2650 PROCask:IF ans$="Y" PROCii ELSE PROCj 2660 ENDPROC 2670 DEF PROCii:CLS:PROCwa:PROCsup(9) 2680 IFSi%=3rd=RND(2):ELSErd=RND(3) 2690 PROChead("..what is the hold up?...") 2700 IFrd=1:Sii%=1:PROCdh(6,12,1,i1$) 2710 IFrd=2:Sii%=3:PROCdh(6,12,1,i2$) 2720 IFrd=3:Sii%=5:PROCdh(6,12,1,i3$) 2730 PROCdhr(6,16,14,Sii%) 2740 PROCdh(6,16,1,mius$) 2750 PRINTCHR$(130)gam$:PROCline(2) 2760 ti=ti-Si%+1+Sii% 2770 PROCsmcap(ti/2,1) 2780 PROCSP:PROCj:ENDPROC 2790 DEF PROCj:CLS:PROCwa:PROCsup(10) 2800 PROChead("...check out problems...") 2810 rd=RND(3) 2820 IFrd=1:Sj%=1:PROCdh(6,12,1,j1$) 2830 IFrd=2:Sj%=3:PROCdh(6,12,1,j2$) 2840 IFrd=3:Sj%=5:PROCdh(6,12,1,j3$) 2850 IFSj%>1 SOUND1,-10,60,1 2860 PROCdhr(6,16,14,Sj%) 2870 PROCdh(6,16,1,mius$) 2880 PRINT 2890 ti=ti+Sj% 2900 PROCsmcap(ti/2,1) 2910 IFSj%=1 PROCSP:PROCk 2920 PROCask:IF ans$="Y" PROCjj ELSE PROCk 2930 ENDPROC 2940 DEF PROCjj:CLS:PROCwa:PROCsup(10) 2950 IFSj%=3rd=RND(2):ELSErd=RND(3) 2960 PROChead("...check out problems...") 2970 IFrd=1:Sjj%=1:PROCdh(6,12,1,j1$) 2980 IFrd=2:Sjj%=3:PROCdh(6,12,1,j2$) 2990 IFrd=3:Sjj%=5:PROCdh(6,12,1,j3$) 3000 PROCdhr(6,16,14,Sjj%) 3010 PROCdh(6,16,1,mius$) 3020 PRINTCHR$(130)gam$:PROCline(2) 3030 ti=ti-Sj%+1+Sjj% 3040 PROCsmcap(ti/2,1) 3050 PROCSP:PROCk:ENDPROC 3060 DEF PROCk:CLS:PROCwa:PROCsup(11) 3070 PROChead("...please be quick!!...") 3080 rd=RND(3) 3090 IFrd=1:Sk%=1:PROCdh(6,12,1,k1$) 3100 IFrd=2:Sk%=3:PROCdh(6,12,1,k2$) 3110 IFrd=3:Sk%=5:PROCdh(6,12,1,k3$) 3120 IFSk%>1 SOUND1,-10,60,1 3130 PROCdhr(6,16,14,Sk%) 3140 PROCdh(6,16,1,mius$) 3150 PRINT 3160 ti=ti+Sk% 3170 PROCsmcap(ti/2,1) 3180 IFSk%=1 PROCSP:PROCl 3190 PROCask:IF ans$="Y" PROCkk ELSE PROCl 3200 ENDPROC 3210 DEF PROCkk:CLS:PROCwa:PROCsup(11) 3220 IF Sk%=3rd=RND(2):ELSErd=RND(3) 3230 PROChead("...please be quick!!..") 3240 IFrd=1:Skk%=1:PROCdh(6,12,1,k1$) 3250 IFrd=2:Skk%=3:PROCdh(6,12,1,k2$) 3260 IFrd=3:Skk%=5:PROCdh(6,12,1,k3$) 3270 PROCdhr(6,16,14,Skk%) 3280 PROCdh(6,16,1,mius$) 3290 PRINTCHR$(130)gam$:PROCline(2) 3300 ti=ti-Sk%+1+Skk% 3310 PROCsmcap(ti/2,1) 3320 PROCSP:PROCl:ENDPROC 3330 DEF PROCl:CLS:PROCwa:PROCsup(12) 3340 PROChead("..still at the check out..") 3350 rd=RND(3) 3360 IFrd=1:Sl%=1:PROCdh(6,12,1,l1$) 3370 IFrd=2:Sl%=3:PROCdh(6,12,1,l2$) 3380 IFrd=3:Sl%=5:PROCdh(6,12,1,l3$) 3390 IFSl%>1 SOUND1,-10,60,1 3400 PROCdhr(6,16,14,Sl%) 3410 PROCdh(6,16,1,mius$) 3420 PRINT 3430 ti=ti+Sl% 3440 PROCsmcap(ti/2,1) 3450 IFSl%=1 PROCSP:PROCm 3460 PROCask:IF ans$="Y" PROCll ELSE PROCm 3470 ENDPROC 3480 DEF PROCll:CLS:PROCwa:PROCsup(12) 3490 IF Sl%=3rd=RND(2):ELSErd=RND(3) 3500 PROChead("..still at the check out.") 3510 IFrd=1:Sll%=1:PROCdh(6,12,1,l1$) 3520 IFrd=2:Sll%=3:PROCdh(6,12,1,l2$) 3530 IFrd=3:Sll%=5:PROCdh(6,12,1,l3$) 3540 PROCdhr(6,16,14,Sll%) 3550 PROCdh(6,16,1,mius$) 3560 PRINTCHR$(130)gam$:PROCline(2) 3570 ti=ti-Sl%+1+Sll% 3580 PROCsmcap(ti/2,1) 3590 PROCSP:PROCm:ENDPROC 3600 DEF PROCm:CLS:PROCwa:PROCsup(13) 3610 PROChead("..pay for the shopping..") 3620 rd=RND(3) 3630 IFrd=1:Sm%=1:PROCdh(6,12,1,m1$) 3640 IFrd=2:Sm%=3:PROCdh(6,12,1,m2$) 3650 IFrd=3:Sm%=5:PROCdh(6,12,1,m3$) 3660 IFSm%>1 SOUND1,-10,60,1 3670 PROCdhr(6,16,14,Sm%) 3680 PROCdh(6,16,1,mius$) 3690 PRINT 3700 ti=ti+Sm% 3710 PROCsmcap(ti/2,1) 3720 IFSm%=1 PROCSP:PROCo 3730 PROCask:IF ans$="Y" PROCmm ELSE PROCo 3740 ENDPROC 3750 DEF PROCmm:CLS:PROCwa:PROCsup(13) 3760 IF Sm%=3rd=RND(2):ELSErd=RND(3) 3770 PROChead("..pay for the shopping..") 3780 IFrd=1:Smm%=1:PROCdh(6,12,1,m1$) 3790 IFrd=2:Smm%=3:PROCdh(6,12,1,m2$) 3800 IFrd=3:Smm%=5:PROCdh(6,12,1,m3$) 3810 PROCdhr(6,16,14,Smm%) 3820 PROCdh(6,16,1,mius$) 3830 PRINTCHR$(130)gam$:PROCline(2) 3840 ti=ti-Sm%+1+Smm% 3850 PROCsmcap(ti/2,1) 3860 PROCSP:PROCo:ENDPROC 3870 DEF PROCo:CLS:PROCwa:PROCsup(14) 3880 PROChead("...packing your shopping..") 3890 rd=RND(3) 3900 IFrd=1:So%=1:PROCdh(6,12,1,o1$) 3910 IFrd=2:So%=3:PROCdh(6,12,1,o2$) 3920 IFrd=3:So%=5:PROCdh(6,12,1,o3$) 3930 IFSo%>1 SOUND1,-10,60,1 3940 PROCdhr(6,16,14,So%) 3950 PROCdh(6,16,1,mius$) 3960 PRINT 3970 ti=ti+So% 3980 PROCsmcap(ti/2,1) 3990 IFSo%=1 PROCSP:PROCp 4000 PROCask:IF ans$="Y" PROCoo ELSE PROCp 4010 ENDPROC 4020 DEF PROCoo:CLS:PROCwa:PROCsup(14) 4030 IF So%=3rd=RND(2):ELSErd=RND(3) 4040 PROChead("...packing your shopping..") 4050 IFrd=1:Soo%=1:PROCdh(6,12,1,o1$) 4060 IFrd=2:Soo%=3:PROCdh(6,12,1,o2$) 4070 IFrd=3:Soo%=5:PROCdh(6,12,1,o3$) 4080 PROCdhr(6,16,14,Soo%) 4090 PROCdh(6,16,1,mius$) 4100 PRINTCHR$(130)gam$:PROCline(2) 4110 ti=ti-So%+1+Soo% 4120 PROCsmcap(ti/2,1) 4130 PROCSP:PROCp 4140 ENDPROC 4150 DEF PROCp:CLS:PROCwa:PROCsup(15) 4160 PROChead("...rush back to your car..") 4170 rd=RND(3) 4180 IFrd=1:Sp%=1:PROCdh(6,12,1,p1$) 4190 IFrd=2:Sp%=3:PROCdh(6,12,1,p2$) 4200 IFrd=3:Sp%=5:PROCdh(6,12,1,p3$) 4210 IFSp%>1 SOUND1,-10,60,1 4220 PROCdhr(6,16,14,Sp%) 4230 PROCdh(6,16,1,mius$) 4240 PRINT 4250 ti=ti+Sp% 4260 PROCsmcap(ti/2,1) 4270 IFSp%=1 PROCSP:PROCfinish 4280 PROCask:IF ans$="Y" PROCpp 4290 PROCfinish:ENDPROC 4300 DEF PROCpp:CLS:PROCwa:PROCsup(15) 4310 IF Sp%=3rd=RND(2):ELSErd=RND(3) 4320 PROChead("...rush back to your car..") 4330 IFrd=1:Spp%=1:PROCdh(6,12,1,p1$) 4340 IFrd=2:Spp%=3:PROCdh(6,12,1,p2$) 4350 IFrd=3:Spp%=5:PROCdh(6,12,1,p3$) 4360 PROCdhr(6,16,14,Spp%) 4370 PROCdh(6,16,1,mius$) 4380 PRINTCHR$(130)gam$:PROCline(2) 4390 ti=ti-Sp%+1+Spp% 4400 PROCsmcap(ti/2,1) 4410 PROCSP 4420 PROCfinish 4430 ENDPROC 4440 DEF PROCfinish:CLS:PRINT 4450 PROChead("back to the car at last.") 4460 PROCdh(6,7,1,"It has taken you") 4470 PROCdhr(6,17,9,ti) 4480 PROCdh(6,11,1,"minutes.") 4490 IF ti<46 THEN PROCunder:ENDPROC 4500 IF ti<45 OR ti<51 THEN PROCletoff:ENDPROC 4510 IF ti>50 THEN PROCover: ENDPROC 4520 PROCSP2 4530 ENDPROC 4540 DEF PROCunder 4550 PROCdh(1,13,1,"You are") 4560 PROCdhr(1,18,15,45-ti) 4570 PROCdh(1,17,1,"minute/s before the limit.") 4580 PROCdh(3,19,1,"Congratulations to a good citizen.") 4590 PROCSP2 4600 ENDPROC 4610 DEF PROCover 4620 PROCdh(1,13,1,"You are") 4630 PROCdhr(1,17,15,ti-45) 4640 PROCdh(1,17,1,"minutes over!") 4650 PROCdh(3,19,1,"Oh! A parking ticket on the screen!") 4660 PROCSP2 4670 ENDPROC 4680 DEF PROCletoff 4690 PROCdh(1,13,1,"You are") 4700 PROCdhr(1,17,15,ti-45) 4710 PROCdh(1,17,1,"minute/s over!") 4720 PROCdh(3,19,1,"No ticket but warden tells you off!") 4730 PROCSP2 4740 ENDPROC 4750 RUN 4760 END 4770 ENDPROC 4780 DEF PROCask 4790 PRINTTAB(0,21)"Would you like to try and change this?" 4800 PRINTTAB(0,22)"(You will have one minute added and it" 4810 PRINTTAB(0,23)"may show the same!)Gamble? PressY/N" 4820 *FX15,1 4830 ans$=GET$:IFans$<>"Y" AND ans$<>"N" THEN GOTO 4830 4840 ENDPROC 4850 DEF PROCSP 4860 PRINTTAB(2,23)"Please press SPACE to continue>>>" 4870 *FX15,1 4880 REPEAT UNTIL GET =32:CLS 4890 ENDPROC 4900 DEF PROCSP2 4910 PROCdh(2,22,0,"To go shopping again. Press SPACE.") 4920 PROCdh(2,23,0,"To end press any other key.") 4930 *FX15,1 4940 IF GET$<>" "CLS:PRINTTAB(13,10)"BYE FROM ROY.":END:ELSE RUN 4970 ENDPROC 4980 DEF PROCline(c) 4990 PRINTCHR$(144+c)TAB(7)STRING$(25,",") 5000 ENDPROC 5010 DEF PROCdh(C%,L%,D%,A$) 5020 IF D% A$=CHR$(141)+A$ 5030 X%=(40-LENA$)DIV 2-1 5040 FORY%=L%TOL%+D%:PRINTTAB(X%,Y%);CHR$(128+C%);A$:NEXT 5050 ENDPROC 5060 DEFPROCdhr(c,x,y,r%):FOR J=0TO1:PRINTTAB(x,y+J);CHR$(141);CHR$(128+c);r%:NEXT:ENDPROC 5070 DEF PROCwa 5080 PRINTCHR$(132)CHR$(157)CHR$(135)" WAITING LIMITED TO 45 MINUTES"''''' 5090 ENDPROC 5100 DEF PROCsup(st%) 5110 PRINTCHR$(129)CHR$(157)CHR$(131)"IN TOWN SUPER MARKET (stage ";st%;"/15)" 5120 ENDPROC 5130 DEF PROCdata 5140 mius$="minute/s added for this.":gam$=" (plus 1 because you had a gamble.)" 5150 a1$="You have chosen a good trolly.":a2$="The trolly wheels are rather stiff.":a3$="Your trolly has a wobbly wheel." 5160 b1$="Good, you have a clear aisle.":b2$="Pallets and boxes in the way.":b3$="You have met a talkative friend." 5170 c1$=" OK. You have found your items.":c2$="You have to ask assistant for help.":c3$="Bother! You cannot find your items." 5180 d1$="Slipped on wet gooey floor!":d2$="Trolly knocks down stack of cans.":d3$="A jar of jam dropped and broken!" 5190 e1$="You have selected nine items.":e2$="You have selected eleven items.":e3$="You have selected fourteen items." 5200 f1$="Milk bottle cap leaks.":f2$="Your bag of sugar has a leak.":f3$="The bag of flour has burst!" 5210 g1$="Your lucky this is a small queue.":g2$="This is a medium sized queue.":g3$="Oh no! What a long queue." 5220 h1$="All seems O.K. Fingers crossed.":h2$="This till now closing. Sorry.":h3$="'8 ITEMS ONLY'till.You have more!" 5230 i1$="Customer in front pays by switch.":i2$="One in front using credit card.":i3$="Customer writes a cheque. Slowly." 5240 j1$="Check out asks super for change.":j2$="The till roll has to be changed.":j3$="Tea break. Till person change over." 5250 k1$="Experienced assistant on till.":k2$="Trainee on till with supervisor.":k3$="Trainee struggling on till." 5260 l1$="Your items go through smoothly.":l2$="Price check with next till.":l3$="A no price item Ass.rings to check." 5270 m1$="You pay with cash.":m2$="You pay with a card.":m3$="You have to write a cheque." 5280 o1$="Assistant helps you to pack.":o2$="Flimsy bags a job to open.":o3$="Bags no good you fetch box." 5290 p1$="No hold up getting back.":p2$="Paths crowded in rush hour":p3$="Relative stops you with some gossip." 5300 ENDPROC 5310 DEFPROChead(header$) 5320 IFLEN(header$)MOD2=1THENheader$=header$+CHR$32 5330 RO%=LEN(header$):DI%=(28-RO%)/2 5340 header$=STRING$(DI%," ")+header$+STRING$(DI%-1," ") 5350 PRINT" ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,l 5";header$" 5";header$;" -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,." 5360 ENDPROC:PRINT"................. 5370 DEF PROCsmcap(x,y) 5380 IF x>30 x=30 5390 PRINTTAB(x,y)"" 5400 PRINTTAB(x,y+1)" Tׯ" 5410 PRINTTAB(x,y+2)" " 5420 IFti <45 PRINTTAB((ti/2)+3)CHR$(134);ti ELSE PRINTTAB((ti/2)+3)CHR$(136);ti 5430 PRINTTAB(0,y+4);CHR$(134)"In limit..............Over^limit......." 5440 ENDPROC 5450 DEF PROCerror:REPORT:PRINT" at line ";ERL:ENDPROC 5460 DEFPROCROY 5470 PRINT"7`+47``57k`5 ``IDEA AND PROGRAM ``````" 5480 PRINT"5b(55( 5m h%7`+4757`k 7k`57`k 7e757`k" 5490 PRINT"uzp5upp5jpz 5( 5555js05 n15bs550!5u0`5" 5500 PRINT"ppppBYppppp upp5u5upp5uzp5upp5u7t5upp5" 5510 PRINT 5520 PRINT" FOR 8-BIT SOFTWARE" 5530 PRINT""' 5540 ENDPROC