10 MODE 1:DEFINT a-z:SYMBOL AFTER 238
20 INK 0,9:INK 1,26:INK 2,0:INK 3,6:BORDER 9:PAPER 0
30 LOCATE 4,2:PEN 3:PRINT"PROFESSIONAL LAWNMOWER SIMULATER"
40 LOCATE 15,4:PRINT"by J.Dixon"
50 LOCATE 2,8:PEN 1:PRINT"Incorporating Cliff Lawson's Multimode"
60 LOCATE 15,15:PEN 3:PRINT"Please Wait
70 '
80 MEMORY &9FFF:
7407
27 Z
13
61422 180 TO 990 STEP 10
100 csum=0:FOR byte=1 TO 8
110 READ a$:b=VAL("&"+a$)
120 csum=csum+b:POKE
3372
1025
1263
4084 :NEXT
130 READ sum:IF sum<>csum THEN 160 ELSE NEXT
140 CALL &A000:GOTO 1010
150 '
160 PRINT"Cheksum error in line";lin:STOP
170 '
180 DATA 21,07,a2,01,09,a0,c3,d1, 776
190 DATA bc,14,a0,c3,2a,a0,c3,b7, 1143
200 DATA a0,c3,d5,a0,4d,4f,44,45, 1021
210 DATA d3,4e,4f,52,4d,41,cc,49, 869
220 DATA 4e,4b,d3,00,21,17,a1,c3, 776
230 DATA 00,a1,fe,04,20,f6,cd,ca, 1104
240 DATA a0,21,01,a2,36,00,11,02, 429
250 DATA a2,01,05,00,ed,b0,06,06, 593
260 DATA 21,05,a2,dd,7e,00,77,2b, 709
270 DATA dd,23,dd,23,10,f5,3a,02, 833
280 DATA a2,32,01,a2,3a,05,a2,32, 650
290 DATA 06,a2,3e,c9,32,eb,bd,3e, 967
300 DATA 00,32,00,a2,06,14,cd,19, 468
310 DATA bd,10,fb,21,f7,a1,06,81, 1032
320 DATA 11,76,a0,c3,e0,bc,3a,00, 960
330 DATA a2,3c,fe,06,32,00,a2,20, 726
340 DATA 04,af,32,00,a2,f5,21,01, 670
350 DATA a2,16,00,5f,19,7e,cd,1c, 663
360 DATA bd,f1,cd,99,a0,cd,25,bd, 1379
370 DATA c9,fe,06,30,14,5f,cb,27, 866
380 DATA cb,27,cb,27,cb,27,83,21, 890
390 DATA 0b,a2,16,00,5f,19,e5,d1, 753
400 DATA c9,21,ab,a1,c3,00,a1,f5, 1167
410 DATA cd,ca,a0,f1,b7,20,05,3e, 1090
420 DATA 02,c3,0e,bc,dd,7e,00,c3, 941
430 DATA 0e,bc,3e,c3,32,eb,bd,21, 966
440 DATA f7,a1,c3,e6,bc,b7,28,22, 1278
450 DATA 47,cb,27,3d,dd,e5,e1,5f, 1144
460 DATA 16,00,19,2b,7e,e5,cd,99, 803
470 DATA a0,e1,05,2b,2b,7e,fe,1b, 883
480 DATA 30,04,cd,0a,a1,12,13,10, 481
490 DATA f2,c9,21,52,a1,c3,00,a1, 1075
500 DATA 7e,fe,24,c8,23,cd,5a,bb, 1133
510 DATA 18,f6,e5,d5,5f,16,00,21, 862
520 DATA 71,a2,19,7e,d1,e1,c9,0a, 1071
530 DATA 7c,4d,4f,44,45,53,2c,6d, 653
540 DATA 31,2c,6d,32,2c,6d,33,2c, 500
550 DATA 6d,34,0d,0a,0a,73,65,74, 526
560 DATA 73,20,74,68,65,20,6d,6f, 720
570 DATA 64,65,20,66,6f,72,20,34, 644
580 DATA 20,76,69,73,69,62,6c,65, 782
590 DATA 20,73,65,63,74,69,6f,6e, 789
600 DATA 73,24,0a,7c,49,4e,4b,53, 594
610 DATA 2c,73,2c,62,2c,69,30,2c, 542
620 DATA 2e,2e,2c,69,31,35,0d,0a, 366
630 DATA 0a,73,65,74,73,20,74,68, 709
640 DATA 65,20,62,6f,72,64,65,72, 771
650 DATA 20,28,62,29,20,61,6e,64, 550
660 DATA 20,69,6e,6b,73,20,28,69, 646
670 DATA 30,20,75,70,20,74,6f,0d, 581
680 DATA 0a,69,31,35,29,20,66,6f, 503
690 DATA 72,20,73,65,63,74,69,6f, 793
700 DATA 6e,20,73,20,28,30,2e,2e, 469
710 DATA 35,29,24,0a,41,72,65,20, 452
720 DATA 79,6f,75,20,73,75,72,65, 828
730 DATA 2c,20,6d,79,20,6d,75,6d, 673
740 DATA 20,61,6c,77,61,79,73,20, 721
750 DATA 74,6f,6c,64,20,6d,65,0d, 690
760 DATA 0a,74,68,61,74,20,73,65, 691
770 DATA 63,74,69,6f,6e,20,6e,75, 800
780 DATA 6d,62,65,72,73,20,77,65, 789
790 DATA 72,65,20,66,72,6f,6d,20, 715
800 DATA 30,20,74,6f,20,35,24,00, 428
810 DATA 00,00,00,00,00,00,00,00, 0
820 DATA 01,00,00,00,00,00,00,00, 1
830 DATA 00,00,00,0c,14,12,0c,15, 83
840 DATA 00,02,03,04,05,06,07,0a, 37
850 DATA 0b,0c,0d,0e,0e,14,12,0c, 114
860 DATA 15,00,02,03,04,05,06,07, 48
870 DATA 0a,0b,0c,0d,0e,0a,14,12, 108
880 DATA 0c,15,00,02,03,04,05,06, 53
890 DATA 07,0a,0b,0c,0d,0e,12,14, 105
900 DATA 12,0c,15,00,02,03,04,05, 65
910 DATA 06,07,0a,0b,0c,0d,0e,15, 94
920 DATA 14,12,0c,15,00,02,03,04, 80
930 DATA 05,06,07,0a,0b,0c,0d,0e, 78
940 DATA 0d,14,12,0c,15,00,02,03, 89
950 DATA 04,05,06,07,0a,0b,0c,0d, 68
960 DATA 0e,14,04,15,1c,18,1d,0c, 152
970 DATA 05,0d,16,06,17,1e,00,1f, 130
980 DATA 0e,07,0f,12,02,13,1a,19, 126
990 DATA 1b,0a,03,0b,00,00,00,00, 51
1000 '
1010 ON BREAK GOSUB 3090
1020 DIM b(40,25)
1030 GOSUB 1810
1040 ENV 1,5,-3,30
1050 GOSUB 2890
1060 WINDOW #1,1,33,1,3:CLS #1
1070 WINDOW #2,34,40,1,2:CLS #2
1080 WINDOW #3,1,40,3,25:CLS #3
1090 FOR y=1 TO 25:FOR x=1 TO 40:b(x,y)=0:NEXT:NEXT
1100 RESTORE 1810
1110 —MODES,1,1,1,1:PAPER 1
1120 FOR i=0 TO 5:—INKS,i,9:NEXT
1130 —INKS,1,99,9,26,3,20
1140 —INKS,2,99,9,26,3,20
1150 —INKS,3,99,9,26,17,2
1160 —INKS,4,99,9,26,6,24
1170 GOSUB 2080
1180 x=24:y=15:d=1:z=521
1190 EVERY 300 GOSUB 1730
1200 EVERY 5,1 GOSUB 1790
1210 REM ***** MAIN LOOP
1220 EI
1230 LOCATE x,y:PEN 0:PRINT CHR$(22)CHR$(0)CHR$(207):IF b(x,y)=0 THEN z=z-1
1240 b(x,y)=1
1250 IF z=0 THEN g=g+1:DI:GOTO 1600
1260 IF d=1 THEN x=x+1:m$=CHR$(251)
1270 IF d=2 THEN x=x-1:m$=CHR$(252)
1280 IF d=3 THEN y=y-1:m$=CHR$(249)
1290 IF d=4 THEN y=y+1:m$=CHR$(250)
1300 IF b(x,y)<2 THEN 1510
1310 p=1:q=1
1320 re=REMAIN(0):re=REMAIN(1)
1330 SOUND 2,302,150,1,1,0,5
1340 IF b(x,y)=2 THEN g$="wall":c=20
1350 IF b(x,y)=3 THEN g$="path":c=10
1360 IF b(x,y)=4 THEN g$="flower bed":c=5
1370 IF b(x,y)=5 THEN g$="bushes":c=5
1380 IF b(x,y)=6 THEN g$="fence":c=15
1390 IF b(x,y)=7 THEN g$="greenhouse":c=30
1400 IF b(x,y)=8 THEN g$="swing":c=15
1410 IF b(x,y)=9 THEN g$="umbrella":c=10
1420 IF b(x,y)=10 THEN g$="chair":c=5
1430 IF b(x,y)=11 THEN g$="birdbath":c=10
1440 PEN #1,1:PRINT #1,"You hit the "g$
1450 LOCATE #1,1,2:PRINT #1,"Repair the damage and mend mower
1460 LOCATE #1,1,3:PRINT #1,"Lose"c"minutes
1470 IF d=1 THEN x=x-1
1480 IF d=2 THEN x=x+1
1490 IF d=3 THEN y=y+1
1500 IF d=4 THEN y=y-1
1510 LOCATE x,y:PEN 1:PRINT CHR$(22)CHR$(1)m$:FOR i=1 TO 100:NEXT
1520 IF p=1 THEN m=m+c:GOSUB 1740
1530 IF INKEY(27)=0 THEN p=0:d=1
1540 IF INKEY(34)=0 THEN p=0:d=2
1550 IF INKEY(69)=0 THEN p=0:d=3
1560 IF INKEY(71)=0 THEN p=0:d=4
1570 IF p=1 THEN 1530
1580 IF q=1 THEN q=0:GOTO 1190
1590 GOTO 1220
1600 REM ***** PLAY AGAIN
1610 re=REMAIN(0):re=REMAIN(1)
1620 FOR i=1 TO 1500:NEXT
1630 CLS #1:CLS #2:CLS #3
1640 —NORMAL,1
1650 PRINT CHR$(22)CHR$(1)
1660 IF h<2 THEN LOCATE 7,9:PEN 2:PRINT"Well Done! You get your swim" ELSE LOCATE 5,9:PEN 2:PRINT"Sorry, lunch is ready - no swim"
1670 CALL &BB03
1680 LOCATE 13,18:PRINT"Play again (y/n)"
1690 IF INKEY(43)=0 THEN 1060
1700 IF INKEY(46)=0 THEN END
1710 GOTO 1690
1720 REM ***** UPDATE SCORE
1730 m=m+1
1740 IF m>59 THEN h=h+1:m=m-60
1750 CLS #2
1760 PEN #2,2:PRINT #2,h; USING"###";m
1770 IF p=1 THEN FOR i=1 TO 2500:NEXT:CLS#1
1780 RETURN
1790 SOUND 1,3800,10,5,0,0,21:RETURN
1800 REM ***** GRAPHICS DATA
1810 SYMBOL 238,3,7,15,31,15,31,13,29
1820 SYMBOL 239,224,248,240,252,248,240,176,216
1830 SYMBOL 240,255,129,129,129,129,129,129,255
1840 SYMBOL 241,126,247,221,255,187,247,221,110
1850 SYMBOL 242,223,223,0,251,251,0,223,223
1860 SYMBOL 243,0,3,15,31,63,127,255,255
1870 SYMBOL 244,0,192,240,248,252,254,255,255
1880 SYMBOL 246,219,219,195,219,219,24,219,219
1890 SYMBOL 247,3,1,1,1,1,1,2,0
1900 SYMBOL 248,128,128,128,128,128,128,192,0
1910 SYMBOL 249,62,127,62,8,8,8,8,62
1920 SYMBOL 250,62,8,8,8,8,62,127,62
1930 SYMBOL 251,2,135,135,255,135,135,2,0
1940 SYMBOL 252,64,225,225,225,225,225,64,0
1950 SYMBOL 253,0,34,85,136,136,136,136,255
1960 SYMBOL 254,8,8,8,8,8,8,8,8
1970 SYMBOL 255,16,16,16,16,16,16,16,16
1980 h$=CHR$(238)+CHR$(239)
1990 t$=CHR$(247)+CHR$(248)
2000 r$=CHR$(253):f$=CHR$(208)
2010 j$=CHR$(209):k$=CHR$(210)
2020 p$=CHR$(211)
2030 u$=CHR$(243)+CHR$(143)+CHR$(244)
2040 c$=CHR$(150)+CHR$(8)+j$
2050 d$=p$+CHR$(8)+CHR$(156):RETURN
2060 REM ***** SET UP SCREEN
2070 REM ***** Wall
2080 PRINT CHR$(22)CHR$(0)
2090 y=25:FOR x=40 TO 1 STEP -1:GOSUB 2770:NEXT
2100 y=20:FOR x=31 TO 39:GOSUB 2770:NEXT
2110 x=1:FOR y=20 TO 24:GOSUB 2760:NEXT
2120 x=40:FOR y=20 TO 24:GOSUB 2760:NEXT
2130 x=14:FOR y=20 TO 24:GOSUB 2760:NEXT
2140 REM ***** Pool
2150 x=40:FOR y=5 TO 12:GOSUB 2790:NEXT
2160 y=6:FOR x=30 TO 39:GOSUB 2790:NEXT
2170 FOR y=7 TO 10:FOR x=26 TO 30:GOSUB 2790:NEXT:NEXT
2180 y=11:FOR x=30 TO 39:GOSUB 2790:NEXT
2190 FOR y=7 TO 10:LOCATE 31,y:PEN 3:PRINT STRING$(9,CHR$(143)):NEXT
2200 REM ***** Bushes
2210 PRINT CHR$(22)CHR$(1)
2220 FOR x=9 TO 12:b(x,7)=5:NEXT:LOCATE 9,7:PEN 2:PRINT h$h$
2230 FOR x=7 TO 12:b(x,8)=5:NEXT:LOCATE 7,8:PRINT h$t$t$
2240 FOR x=7 TO 8:b(x,9)=5:NEXT:LOCATE 7,9:PRINT t$
2250 FOR y=5 TO 12:LOCATE 1,y:PRINT h$:b(2,y)=5:NEXT
2260 REM ***** Swing
2270 FOR x=16 TO 17:FOR y=9 TO 11:b(x,y)=8:NEXT:NEXT
2280 LOCATE 16,9:PRINT f$f$
2290 FOR y=9 TO 11:LOCATE 16,y:PRINT p$j$:NEXT
2300 LOCATE 16,11:PRINT CHR$(130)CHR$(129)
2310 FOR y=9 TO 10:LOCATE 16,y:PEN 1:PRINT CHR$(254)CHR$(255):NEXT
2320 REM ***** Greenhouse
2330 FOR x=17 TO 22:FOR y=21 TO 23:b(x,y)=7:NEXT:NEXT
2340 LOCATE 17,21:PEN 1:PRINT CHR$(204)CHR$(205)
2350 LOCATE 18,21:PRINT STRING$(4,f$)CHR$(205)
2360 LOCATE 17,21:PRINT STRING$(6,k$)
2370 LOCATE 18,21:PRINT STRING$(5,r$)
2380 FOR y=22 TO 23:LOCATE 17,y:PRINT p$j$:NEXT
2390 FOR y=22 TO 23:LOCATE 22,y:PRINT j$:NEXT
2400 LOCATE 17,23:PRINT STRING$(6,k$)
2410 FOR y=22 TO 23:LOCATE 17,y:PRINT CHR$(157)CHR$(151)STRING$(4,r$):NEXT
2420 REM ***** Fence
2430 y=4:FOR x=1 TO 40:GOSUB 2800:NEXT
2440 y=13:FOR x=1 TO 14:GOSUB 2800:NEXT
2450 y=17:FOR x=14 TO 25:GOSUB 2800:NEXT
2460 REM *****  Birdbath
2470 LOCATE 21,14:PRINT CHR$(245):b(21,14)=11
2480 LOCATE 21,15:PRINT CHR$(155):b(21,15)=11
2490 REM ***** Flowers
2500 w=1:FOR i=1 TO 20:GOSUB 2810:NEXT
2510 y=14:FOR x=1 TO 13 STEP 2:GOSUB 2820:NEXT
2520 w=2:FOR i=21 TO 25:GOSUB 2810:NEXT
2530 y=14:FOR x=2 TO 14 STEP 2:GOSUB 2820:NEXT
2540 y=18:FOR x=14 TO 25:GOSUB 2820:NEXT
2550 x=40:FOR y=13 TO 19:GOSUB 2820:NEXT
2560 w=3:FOR i=26 TO 37:GOSUB 2810:NEXT
2570 REM ***** Umbrellas and Chairs
2580 FOR x=33 TO 35:b(x,14)=9:NEXT:LOCATE 33,14:PEN 3:PRINT u$
2590 LOCATE 32,16:PRINT d$:b(32,16)=10:LOCATE 37,16:PRINT c$:b(37,16)=10
2600 LOCATE 7,16:PRINT d$:b(7,16)=10:LOCATE 8,18:PRINT d$:b(8,18)=10:LOCATE 9,17:PRINT c$:b(9,17)=10
2610 LOCATE 9,22:PRINT c$:b(9,22)=10:LOCATE 7,23:PRINT c$:b(7,23)=10
2620 FOR x=4 TO 6:b(x,21)=9:NEXT:LOCATE 4,21:PRINT u$
2630 FOR y=15 TO 16:LOCATE 34,y:PEN 1:PRINT CHR$(149):b(34,y)=9:NEXT
2640 FOR x=33 TO 35:b(x,16)=9:NEXT:LOCATE 33,16:PRINT STRING$(3,f$)
2650 LOCATE 34,16:PRINT k$
2660 FOR y=22 TO 23:LOCATE 5,y:PRINT CHR$(149):b(5,y)=9:NEXT
2670 FOR x=4 TO 6:b(x,23)=9:NEXT:LOCATE 4,23:PRINT STRING$(3,f$)
2680 LOCATE 5,23:PRINT k$
2690 REM ***** Scoreboard
2700 IF h=j AND m<k THEN j=j:k=m
2710 IF g<2 OR h<i THEN j=h:k=m
2720 h=0:m=0
2730 PEN #2,2:PRINT #2,h; USING"###";m
2740 LOCATE 34,3:PEN 1:PRINT j; USING"###";k
2750 LOCATE 24,15:PRINT CHR$(251):RETURN
2760 LOCATE x,y:PRINT CHR$(246):GOTO 2780
2770 LOCATE x,y:PEN 2:PRINT CHR$(242);
2780 b(x,y)=2:RETURN
2790 LOCATE x,y:PEN 2:PRINT CHR$(240):b(x,y)=3:RETURN
2800 LOCATE x,y:PRINT r$:b(x,y)=6:RETURN
2810 READ x,y
2820 LOCATE x,y:PEN w:PRINT CHR$(241):b(x,y)=4:RETURN
2830 DATA 21,7,22,7,23,7,24,7,25,7,21,8,21,9,21,10
2840 DATA 26,14,27,14,28,14,29,14,30,14,30,13,30,12
2850 DATA 2,15,1,16,1,18,28,23,29,23
2860 DATA 1,15,3,15,2,16,1,17,1,19
2870 DATA 28,22,29,22,27,23,30,23,28,24,29,24
2880 DATA 37,21,38,21,39,21,38,22,39,22,39,23
2890 REM ***** INSTRUCTIONS
2900 CLS:—NORMAL,1
2910 LOCATE 4,1:PEN 3:PRINT"PROFESSIONAL LAWNMOWER SIMULATER"
2920 LOCATE 15,4:PEN 2:PRINT"Instructions
2930 LOCATE 1,6:PRINT"It's a lovely Sunday morning and you arelonging for a swim in your new pool     before lunch.
2940 PRINT:PRINT"However, having paid for the pool you   cannot afford a gardener so must mow    your lawn first.
2950 PRINT:PRINT"Luckily you have a motor mower so you   don't have to push it, only guide it, sobe careful it doesn't run away with you.You lose time if you hit any obstacles.
2960 PRINT:PRINT"If you complete the job within 2 hours  you get your swim.
2970 LOCATE 15,24:PRINT"PRESS A KEY
2980 a$=INKEY$:IF a$="" THEN 2980
2990 CLS:LOCATE 1,1:PRINT"Use keys:-
3000 LOCATE 17,3:PRINT"a - up
3010 LOCATE 17,5:PRINT"z - down
3020 LOCATE 17,7:PRINT"o - left
3030 LOCATE 17,9:PRINT"p - right
3040 LOCATE 1,12:PRINT"The mower stops itself when all the     grass is cut. If you think you've       finished and the mower knows you haven'tyou must look for the tricky bits you'vemissed.
3050 PRINT:PRINT"Your time is shown top right with the   time to beat underneath.
3060 LOCATE 11,23:PRINT"PRESS A KEY TO START
3070 a$=INKEY$:IF a$="" THEN 3070
3080 RETURN
3090 PEN 2:PAPER 0
3100 —NORMAL,1:END