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