Listing of file='ROVER.BAS;01' on disk='vmedia/air_raid-sector.ccvf'
100 REM COPYRIGHT (C) 1979 BY COMPUCOLOR CORPORTION 110 REM ROVER ROBOT ADAPTED BY DON MILLER 120 CLEAR 100 130 TM= 256* PEEK (32941)+ PEEK (32940) 140 Z= TM+ 8:AD= 33283:GOSUB 190:TM= TM+ 1 150 X= 41:Y= 20:H= 8:W= 20:C= 1 160 Z= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 190 170 Z= 128- W- W:AD= TM+ 149:GOSUB 190:POKE TM+ 129,H- 1 180 POKE TM+ 131,W* (C+ 1):POKE TM+ 143,35* (1- C):GOTO 200 190 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN 200 PLOT 6,32,12,15,27,24 210 PLOT 6,54 220 PLOT 2,0,0,242,0,127,127,127,127,0,0,0,255 230 PLOT 6,27:FOR I= 40TO 61:PLOT 3,I,19,32:NEXT I 240 FOR I= 61TO 40STEP - 1:PLOT 3,I,28,32:NEXT I 250 FOR J= 20TO 27:PLOT 3,40,J,32:NEXT J 260 FOR J= 27TO 20STEP - 1:PLOT 3,61,J,32:NEXT J 270 PLOT 6,9:FOR I= 40TO 61:PLOT 3,I,7,32:NEXT I 280 FOR I= 61TO 40STEP - 1:PLOT 3,I,16,32:NEXT I 290 FOR J= 8TO 15:PLOT 3,40,J,32:NEXT J 300 FOR J= 15TO 8STEP - 1:PLOT 3,61,J,32:NEXT J 310 PLOT 6,2,15,27,24 320 GOSUB 3660 330 PLOT 6,25:FOR I= 1TO 8:GOSUB 4660:PRINT "ROVER ":NEXT I 340 PLOT 6,46 350 FOR I= 1TO 8:GOSUB 4660:PRINT " ROBOT":NEXT I 360 PLOT 6,35 370 FOR I= 1TO 8:GOSUB 4660:PRINT " ROVERROBOT ":NEXT I 380 DIM F(9,9) 390 REM 400 REM 410 R= 9:CL= 9 420 NN= 0:OO= 0:SZ= 0 430 D$= "SCLMIE" 440 E$= "NRE" 450 P= 0:S= 1:YR= 2:XR= 3 460 SP= 0 470 REM 480 PLOT 6,38:FOR I= 1TO 8:GOSUB 3230:NEXT I 490 GOSUB 640 500 PLOT 6,38 510 GOSUB 1060 520 PLOT 6,38 530 GOSUB 1370 540 PLOT 6,38:FOR I= 1TO 8:GOSUB 3230:NEXT I 550 PLOT 15 560 GOSUB 4660:INPUT "TRY ANOTHER GAME?";M$ 570 PLOT 15 580 IF LEFT$ (M$,1)< > "Y"THEN 630 590 REM 600 N= NN:GOSUB 3920:GOSUB 3990:BB= 0:GOSUB 4050:GOSUB 4340 610 PLOT 15,6,52,3,40,5:PRINT NN;" IN";SZ;" STEPS " 620 GOTO 390 630 PLOT 6,2,12,27,11,1 640 REM 650 PLOT 6,38:GOSUB 3230 660 PLOT 15 670 GOSUB 4660:PRINT "WHICH GRID DO YOU " 680 PLOT 15:GOSUB 3230 690 GOSUB 4660:PRINT "WANT....NOVICE, " 700 PLOT 15:GOSUB 3230 710 GOSUB 4660:PRINT "REGULAR OR EXPERT? " 720 PLOT 15:GOSUB 3230 730 GOSUB 4660:INPUT " (N,R,E)";M$ 740 PLOT 15 750 IF LEFT$ (M$,1)= "N"THEN L1= 1:GOTO 790 760 IF LEFT$ (M$,1)= "R"THEN L1= 2:GOTO 790 770 IF LEFT$ (M$,1)= "E"THEN L1= 3:GOTO 790 780 GOTO 650 790 REM 800 PLOT 14,31,6,57,3,40,3 810 IF L1= 1THEN PRINT " NOVICE " 820 IF L1= 2THEN PRINT " REGULAR " 830 IF L1= 3THEN PRINT " EXPERT " 840 P1= 0 850 PLOT 15 860 Z1= .8- L1/ 10 870 J= PEEK (33209):FOR I= 0TO J:Q9= RND (1):NEXT I 880 FOR I= 1TO R 890 SC= 0 900 FOR J= 1TO CL 910 F(I,J)= INT (RND (1)+ Z1) 920 IF F(I,J)= 1THEN SC= 0:GOTO 950 930 P1= P1+ 1:SC= SC+ 1 940 IF SC> 3THEN SC= 0:P1= P1- 1:F(I,J)= 1 950 NEXT J 960 NEXT I 970 FOR I= 1TO CL 980 IF (F(R- 2,I)= P)OR (F(R- 1,I)= P)OR (F(R,I)= P)THEN 1010 990 F(R- 2+ INT (3* RND (1)),I)= P 1000 P1= P1+ 1 1010 NEXT I 1020 K1= INT (P1/ 3) 1030 M1= INT (P1/ 10) 1040 Z9= 0 1050 RETURN 1060 REM 1070 REM 1080 R1= 0:C1= 0 1090 PLOT 6,38 1100 GOSUB 3230 1110 PLOT 15 1120 GOSUB 4660:INPUT "LIKE A HINT (Y/N) ?";M$ 1130 PLOT 15 1140 IF LEFT$ (M$,1)< > "Y"THEN 1260 1150 FOR I= 1TO 9 1160 N= I+ 9:PK= N:GO= 1 1170 IF F(1,I)< > STHEN 1190 1180 GOSUB 3920:GOSUB 3990:BB= 64:GOSUB 4050 1190 NEXT I 1200 FOR I= 1TO 1000:NEXT I 1210 FOR I= 1TO 9 1220 IF F(1,I)< > STHEN 1250 1230 N= I+ 9:PK= N 1240 GOSUB 3920:GOSUB 3990:BB= 0:GOSUB 4050 1250 NEXT I 1260 PLOT 6,33,3,41,8:PRINT "COMMANDS # LEFT" 1270 PLOT 6,25,3,41,9:PRINT " STEP (S) " 1280 PLOT 3,41,10:PRINT " " 1290 PLOT 3,41,10:PRINT " MAP (M) ";M1 1300 PLOT 3,41,11:PRINT " " 1310 PLOT 3,41,11:PRINT " CHECK (C) ";K1 1320 PLOT 3,41,12:PRINT " LOOK (L) " 1330 PLOT 3,41,13:PRINT " END (E) " 1340 PLOT 3,41,14:PRINT " " 1350 PLOT 3,41,15:PRINT "THERE ARE ";P1;" STOPS " 1360 RETURN 1370 REM 1380 PLOT 6,38 1390 GOSUB 3230 1400 PLOT 15 1410 GOSUB 4660:INPUT "NEXT COMMAND ?";M$ 1420 PLOT 15 1430 GOSUB 3230 1440 IF LEFT$ (M$,1)= "S"THEN I= 1:GOTO 1530 1450 IF LEFT$ (M$,1)= "C"THEN I= 2:GOTO 1530 1460 IF LEFT$ (M$,1)= "L"THEN I= 3:GOTO 1530 1470 IF LEFT$ (M$,1)= "M"THEN I= 4:GOTO 1530 1480 IF LEFT$ (M$,1)= "#"THEN I= 5:GOTO 1530 1490 IF LEFT$ (M$,1)= "E"THEN I= 6:GOTO 1530 1500 IF LEFT$ (M$,1)= "0"THEN GOSUB 2630:GOTO 1540 1510 GOSUB 4660:PRINT "WHAT DID YOU SAY? " 1520 GOSUB 4660:GOTO 1400 1530 ON IGOSUB 1560,1800,1990,2170,2290,2520 1540 IF Z9= 0THEN 1370 1550 RETURN 1560 REM 1570 GOSUB 2360 1580 IF (NN= 0)AND (N< 19)THEN R1= R9:C1= C9:NN= N:GOTO 1710 1590 IF (NN= 0)AND (N> 18)THEN 1680 1600 IF (ABS (N- NN)> 10)THEN 1680 1610 IF (ABS (N- NN)< 8)AND (ABS (N- NN)> 1)THEN 1680 1620 IF (INT (NN/ 9)= (NN/ 9))AND (N= NN+ 1)THEN 1680 1630 IF (INT (NN/ 9)= (NN/ 9))AND (N= NN- 8)THEN 1680 1640 N1= NN- 1 1650 IF (INT (N1/ 9)= (N1/ 9))AND (N= NN+ 8)THEN 1680 1660 IF (INT (N1/ 9)= (N1/ 9))AND (N= NN- 1)THEN 1680 1670 GOTO 1700 1680 GOSUB 4660:PRINT "ILLEGAL MOVE !!!!!!!" 1690 GOSUB 4660:GOSUB 4660:GOTO 1560 1700 R1= R9:C1= C9:NT= N:N= NN:GOSUB 3920:GOSUB 3990:BB= 0:GOSUB 4050:GOSUB 4340:NN= NT 1710 SZ= SZ+ 1 1720 N= NN:GOSUB 3920:GOSUB 4450:PLOT 6,38 1730 IF F(R1,C1)= PTHEN 3240 1740 F(R1,C1)= YR 1750 N= NN:GOSUB 3920:GOSUB 4450 1760 PLOT 6,38 1770 IF NN> 81THEN 3480 1780 PLOT 6,38 1790 RETURN 1800 REM 1810 IF K1> = 1THEN 1860 1820 PLOT 6,38 1830 GOSUB 4660:PRINT "SORRY! NONE LEFT !" 1840 FOR I= 1TO 1000:NEXT I 1850 RETURN 1860 K1= K1- 1 1870 PLOT 6,38,3,56,11:PRINT K1;" " 1880 GOSUB 2360 1890 Z1= F(R9,C9) 1900 GOSUB 3920 1910 IF Z1= PTHEN GO= 0:GOSUB 4150:GOTO 1940 1920 IF Z1= STHEN GO= 1:GOSUB 4150:GOTO 1940 1930 IF Z1= YRTHEN GOSUB 4450:GOTO 1940 1940 FOR I= 1TO 500:NEXT I 1950 IF GO= 1THEN PK= N 1960 IF N= NNTHEN RETURN 1970 GOSUB 3990:BB= 0:GOSUB 4050:GOSUB 4340 1980 RETURN 1990 REM 2000 IF R1* C1= 0THEN GOSUB 4660:PRINT "ROVER HASN'T STARTED":GOTO 2160 2010 Z1= 0 2020 FOR I= R1+ 1TO R 2030 IF F(I,C1)< > PTHEN 2050 2040 Z1= Z1+ 1 2050 NEXT I 2060 PLOT 6,38 2080 GOSUB 4660:PRINT Z1;" STOPS DOWNWARD " 2090 Z1= 0 2100 FOR I= 1TO CL 2110 IF F(R1,I)< > PTHEN 2130 2120 Z1= Z1+ 1 2130 NEXT I 2140 GOSUB 3230 2150 GOSUB 4660:PRINT Z1;" STOPS IN THIS ROW" 2160 FOR I= 1TO 1000:NEXT I:RETURN 2170 REM 2180 GOSUB 3230 2190 IF M1> = 1THEN 2230 2200 GOSUB 4660:PRINT "SORRY! NONE LEFT !" 2210 FOR I= 1TO 1000:NEXT I 2220 RETURN 2230 M1= M1- 1 2240 PLOT 6,38,3,56,10:PRINT M1;" " 2250 R9= R1 2260 GOSUB 2730 2270 REM 2280 RETURN 2290 REM 2300 GOSUB 3230 2310 IF NN< > 0THEN RETURN 2320 N= 90:NN= N:SP= 1 2330 GOSUB 2820 2340 NN= 0:SP= 0 2350 RETURN 2360 REM 2370 REM 2380 PLOT 6,38 2390 PLOT 15 2400 GOSUB 4660:INPUT "SQUARE NUMBER?";N 2410 PLOT 15 2420 N= INT (N) 2430 IF (N< 10)OR (N> 90)THEN 2500 2440 REM 2450 R9= 0:Q= N 2460 R9= R9+ 1:Q= Q- 9:IF Q< 10THEN 2480 2470 GOTO 2460 2480 C9= N- R9* 9 2490 RETURN 2500 GOSUB 4660:PRINT N;" NOT IN GRID" 2510 GOSUB 4660:GOSUB 4660:GOTO 2360 2520 REM 2530 FOR I= 1TO 3:GOSUB 3230:NEXT I 2540 Z9= 1 2550 PLOT 6,38 2560 FOR I= 1TO 4:GOSUB 3230:NEXT I 2570 PLOT 15 2580 GOSUB 4660:PRINT "GAME IS OVER " 2590 PLOT 15 2600 FOR I= 1TO 1000:NEXT I 2610 N= NN 2620 GOTO 3340 2630 REM 2640 REM 2650 REM 2660 REM 2670 GOSUB 3230 2680 N= PK 2690 Z9= 0 2700 GOSUB 2420 2710 GOSUB 1580 2720 RETURN 2730 REM 2740 IF NN< > 0THEN 2820 2750 PLOT 6,38 2760 GOSUB 3230 2770 GOSUB 4660:PRINT "ROVER HASN'T STARTED" 2780 PLOT 15 2790 FOR I= 1TO 1000:NEXT I 2800 M1= M1+ 1:R1= R9 2810 RETURN 2820 IF SP= 1THEN NZ= 90:N= 90:GOTO 2840 2830 NZ= NN 2840 IF INT (NZ/ 9)= (NZ/ 9)THEN 2860 2850 NZ= NZ+ 1:GOTO 2840 2860 REM 2870 NY= NZ 2880 NX= N 2890 X9= 1 2900 Z8= 0 2910 FOR II= 10TO NY 2920 Z8= Z8+ 1:IF Z8> 9THEN Z8= 1:X9= X9+ 1 2930 N= II 2940 Y9= II- X9* 9 2950 Z1= F(X9,Y9) 2960 IF Z1< > STHEN 2990 2970 GOSUB 3920:GOSUB 3990:GO= 1:GOSUB 4150 2980 GOTO 3080 2990 IF Z1< > PTHEN 3020 3000 GOSUB 3920:GOSUB 3990:GO= 0:GOSUB 4150 3010 GOTO 3080 3020 IF Z1< > YRTHEN 3050 3030 GOSUB 3920:GOSUB 4450 3040 GOTO 3080 3050 REM 3060 OO= 1 3070 GOTO 3030 3080 NEXT II 3090 IF SP= 1THEN 3120 3100 TT= INT ((NN- 1)/ 9):TT= TT* 500 3110 FOR I= 1TO TT:NEXT I 3120 NY= NZ 3130 FOR II= NYTO 10STEP - 1 3140 N= II 3150 IF N< > NNTHEN 3180 3160 IF SP= 1THEN 3180 3170 GOTO 3190 3180 GOSUB 3920:GOSUB 3990:BB= 0:GOSUB 4050:GOSUB 4340 3190 NEXT II 3200 N= NX 3210 PLOT 6,38 3220 RETURN 3230 GOSUB 4660:PRINT " ":RETURN 3240 REM 3250 Z9= 1 3260 PLOT 6,38 3270 FOR I= 1TO 4:GOSUB 3230:NEXT I 3280 GOSUB 4660:PRINT " WHOOPS !!! " 3290 GOSUB 4660:PRINT "ROVER LANDED ON A " 3300 GOSUB 4660:PRINT "STOP SQUARE. GAME IS" 3310 GOSUB 4660:PRINT "OVER. " 3320 FOR I= 1TO 4:GOSUB 3230:NEXT I 3330 FOR I= 1TO 1000:NEXT I 3340 OO= 1:GOSUB 3920:GOSUB 4450:OO= 0 3350 FOR I= 1TO 8:GOSUB 3230:NEXT I 3360 PLOT 15 3370 GOSUB 4660:INPUT "FINAL MAP (Y/N)?";M$ 3380 PLOT 15 3390 IF LEFT$ (M$,1)= "Y"THEN 3410 3400 RETURN 3410 FOR I= 1TO 500:NEXT I 3420 SP= 1 3430 IF R1* C1= 0THEN 3460 3440 F(R1,C1)= XR 3450 R9= R 3460 GOSUB 2730 3470 RETURN 3480 REM 3490 Z9= 1 3500 PLOT 6,38 3510 FOR I= 1TO 4:GOSUB 3230:NEXT I 3520 GOSUB 4660:PRINT "HOORAY! ROVER ROBOT " 3530 GOSUB 4660:PRINT " MADE IT ! " 3540 FOR I= 1TO 4:GOSUB 3230:NEXT I 3550 FOR I= 1TO 2000:NEXT I 3560 OO= 2:GOSUB 3920:GOSUB 4450 3570 GOSUB 4660:INPUT "FINAL MAP (Y/N)?";M$ 3580 IF LEFT$ (M$,1)= "Y"THEN 3600 3590 RETURN 3600 R9= R 3610 SP= 1 3620 GOSUB 2730 3630 RETURN 3640 RETURN 3650 FOR I= 1TO 1000:NEXT I:PLOT 6,2,15,27,11:END 3660 REM 3670 N= 10 3680 CC= 38 3690 XX= 2 3700 YY= 2 3710 FOR XX= 2TO 34STEP 4 3720 PLOT 6,CC 3730 PLOT 3,XX,YY:PRINT "neeo" 3740 YY= YY+ 1 3750 IF CC= 38OR CC= 14THEN C1= CC- 3:GOTO 3770 3760 C1= CC- 5 3770 PLOT 6,C1,3,XX,YY:PRINT N 3780 PLOT 6,CC 3790 PLOT 3,XX,YY:PRINT "a" 3800 PLOT 3,XX+ 3,YY:PRINT "b" 3810 N= N+ 1 3820 YY= YY+ 1 3830 PLOT 3,XX,YY:PRINT "lm" 3840 GOSUB 4590 3850 YY= YY- 2 3860 NEXT XX 3870 IF YY> 25THEN 3910 3880 XX= 2 3890 YY= YY+ 3 3900 GOTO 3710 3910 RETURN 3920 REM 3930 IF N< 10OR N> 90THEN N= 10 3940 NS= N 3950 YY= 3* INT ((N- 1)/ 9)- 1 3960 XX= 2+ 4* (N- (INT ((N- 10)/ 9)* 9)- 10):GOTO 3970 3970 N= NS 3980 RETURN 3990 REM 4000 IF INT ((N- 6)/ 4)= ((N- 6)/ 4)THEN CC= 38:GOTO 4040 4010 IF INT ((N- 7)/ 4)= ((N- 7)/ 4)THEN CC= 30:GOTO 4040 4020 IF INT ((N- 8)/ 4)= ((N- 8)/ 4)THEN CC= 14:GOTO 4040 4030 CC= 62 4040 RETURN 4050 REM 4060 REM 4070 REM 4080 REM 4090 PLOT 6,CC+ BB 4100 PLOT 3,XX,YY:PRINT "neeo" 4110 PLOT 3,XX,YY+ 1:PRINT "a" 4120 PLOT 3,XX+ 3,YY+ 1:PRINT "b" 4130 PLOT 3,XX,YY+ 2:PRINT "lm" 4140 RETURN 4150 REM 4160 REM 4170 REM 4180 REM 4190 IF GO= 0THEN CC= 8:GOTO 4210 4200 CC= 16 4210 PLOT 6,CC 4220 PLOT 3,XX,YY,32,32,32,32 4230 PLOT 3,XX,YY+ 2,32,32,32,32 4240 PLOT 29:IF GO= 1THEN PLOT 30:GOTO 4270 4250 PLOT 3,XX,YY+ 2,124,32,32,126 4260 PLOT 6,1,3,XX,YY,126:PLOT 3,XX+ 3,YY,124:PLOT 6,CC 4270 PLOT 31 4280 IF GO= 0THEN PLOT 6,14,3,XX,YY+ 1:PRINT "STOP":GOTO 4330 4290 PLOT 6,2 4300 PLOT 29:PLOT 3,XX,YY,116:PLOT 3,XX+ 3,YY,117 4310 PLOT 3,XX,YY+ 2,118:PLOT 3,XX+ 3,YY+ 2,119 4320 PLOT 6,21,3,XX,YY+ 1:PRINT " GO " 4330 RETURN 4340 REM 4350 REM 4360 REM 4370 REM 4380 PLOT 15 4390 IF CC= 38OR CC= 14THEN CD= CC- 3:GOTO 4410 4400 CD= CC- 5 4410 PLOT 6,CD 4420 PLOT 3,XX,YY+ 1:PRINT N 4430 PLOT 6,CC,3,XX,YY+ 1:PRINT "a" 4440 RETURN 4450 REM 4460 REM 4470 PLOT 6,70 4480 IF OO= 1THEN PLOT 6,65 4490 IF OO= 2THEN PLOT 6,66 4500 PLOT 3,XX,YY:PRINT " vw " 4510 PLOT 3,XX,YY+ 1:PRINT "q p" 4520 PLOT 3,XX,YY+ 2:PRINT "baba" 4530 PLOT 6,112,3,XX+ 1,YY+ 1:PRINT " " 4540 IF OO= 1THEN PLOT 6,72,3,XX+ 1,YY+ 1:PRINT " " 4550 IF OO= 2THEN PLOT 6,80,3,XX+ 1,YY+ 1:PRINT " " 4560 OO= 0 4570 PLOT 6,38 4580 RETURN 4590 REM 4600 IF CC= 38THEN CC= 30:GOTO 4640 4610 IF CC= 30THEN CC= 14:GOTO 4640 4620 IF CC= 14THEN CC= 62:GOTO 4640 4630 CC= 38 4640 REM 4650 RETURN 4660 REM 4670 A= CALL (1) 4680 PLOT 3,X,Y+ H- 1:PRINT SPC( W)"" 4690 PLOT 3,X,Y+ H- 1 4700 RETURN