Listing of file='ROVER.BAS;01' on disk='vmedia/ncc_9-sector.ccvf'
0 GOTO 65000 1 CLEAR 100 2 PLOT 6,32,12,15,27,24 3 PLOT 6,54,2,0,0,242,0,127,127,127,127,0,0,0,255 10 PLOT 6,27:FOR I= 40TO 61:PLOT 3,I,19,32:NEXT I 12 FOR I= 61TO 40STEP - 1:PLOT 3,I,28,32:NEXT I 14 FOR J= 20TO 27:PLOT 3,40,J,32:NEXT J 16 FOR J= 27TO 20STEP - 1:PLOT 3,61,J,32:NEXT J 20 PLOT 6,9:FOR I= 40TO 61:PLOT 3,I,7,32:NEXT I 22 FOR I= 61TO 40STEP - 1:PLOT 3,I,16,32:NEXT I 24 FOR J= 8TO 15:PLOT 3,40,J,32:NEXT J 26 FOR J= 15TO 8STEP - 1:PLOT 3,61,J,32:NEXT J 99 PLOT 6,2,15,27,24 100 GOSUB 50000 102 X= 41:Y= 8:H= 8:W= 20:C= 1:GOSUB 64000 104 PLOT 6,25:FOR I= 1TO 8:GOSUB 60000:PRINT "ROVER ":NEXT I 105 PLOT 6,46 106 FOR I= 1TO 8:GOSUB 60000:PRINT " ROBOT":NEXT I 107 PLOT 6,35 108 FOR I= 1TO 8:GOSUB 60000:PRINT " ROVERROBOT ":NEXT I 120 X= 41:Y= 20:H= 8:W= 20:C= 1:GOSUB 64000 140 DIM F(9,9) 700 REM ******** BEGINNING OF TRUE ROVER ********* 705 REM 710 R= 9:CL= 9 712 NN= 0:OO= 0:SZ= 0 715 D$= "SCLMIE" 720 E$= "NRE" 725 P= 0:S= 1:YR= 2:XR= 3 728 GOSUB 30000 729 PLOT 6,38:FOR I= 1TO 8:GOSUB 39000:NEXT I 730 PLOT 14:GOSUB 60000:INPUT "INSTRUCTIONS (Y/N)?";Q$ 731 PLOT 15 732 GOSUB 39000 735 IF LEFT$ (Q$,1)< > "Y"THEN 745 740 GOSUB 30118 742 PLOT 6,38 745 GOSUB 32000 747 PLOT 6,38 750 GOSUB 33000 757 PLOT 6,38 760 GOSUB 34000 761 PLOT 6,38:FOR I= 1TO 8:GOSUB 39000:NEXT I 763 PLOT 14 765 GOSUB 60000:INPUT "TRY ANOTHER GAME?";M$ 766 PLOT 15 770 IF LEFT$ (M$,1)< > "Y"THEN 29999 775 REM CLEAN UP BEFORE NEXT GAME 780 N= NN:GOSUB 51000:GOSUB 52000:BB= 0:GOSUB 53000:GOSUB 55000 785 PLOT 15,6,52,3,40,5:PRINT NN;" IN";SZ;" STEPS " 790 GOTO 700 29999 PLOT 6,2,15,27,11:END 30000 REM *** INSTRUCTIONS *** 30010 PLOT 6,14:FOR I= 1TO 4:GOSUB 39000:NEXT I 30020 PLOT 14 30100 GOSUB 60000:PRINT " ROVER ROBOT " 30105 PLOT 15 30110 FOR I= 1TO 4:GOSUB 39000:NEXT I 30115 FOR I= 1TO 200:NEXT I 30117 RETURN 30118 PLOT 15,6,38 30120 GOSUB 60000:PRINT "HELP ROVER CROSS THE" 30130 GOSUB 60000:PRINT "GRID. EACH SQUARE IS" 30140 GOSUB 60000:PRINT "EITHER GO OR STOP. " 30150 GOSUB 60000:PRINT "ROVER CANNOT LAND ON" 30160 GOSUB 60000:PRINT "A STOP SQUARE. ROVER" 30170 GOSUB 60000:PRINT "MAY START ON ANY N0." 30180 GOSUB 60000:PRINT "IN ROW ONE (10-18). " 30182 GOSUB 39000 30185 FOR I= 1TO 10000:NEXT I 30190 GOSUB 60000:PRINT "HE'S TRYING TO GET " 30200 GOSUB 60000:PRINT "TO THE BOTTOM ROW. " 30300 GOSUB 60000:PRINT "YOU CAN CHECK ANY " 30310 GOSUB 60000:PRINT "SQUARE TO SEE IF IT " 30320 GOSUB 60000:PRINT "IS GO OR STOP. BUT " 30330 GOSUB 60000:PRINT "YOU CAN ONLY CHECK A" 30340 GOSUB 60000:PRINT "LIMITED NUMBER OF " 30350 GOSUB 60000:PRINT "TIMES. OK? " 30360 FOR I= 1TO 10000:NEXT I 30370 GOSUB 60000:PRINT "YOU WILL ALSO GET A " 30380 GOSUB 60000:PRINT "MAP OPTION, TO SHOW " 30390 GOSUB 60000:PRINT "YOU WHERE ROVER HAS " 30400 GOSUB 60000:PRINT "BEEN AND ALL THE " 30410 GOSUB 60000:PRINT "STOPS UP TO THE " 30420 GOSUB 60000:PRINT "CURRENT ROW SO THAT " 30430 GOSUB 60000:PRINT "YOU MAY MOVE ROVER " 30440 GOSUB 60000:PRINT "AROUND DEAD ENDS. " 30450 FOR I= 1TO 10000:NEXT I 30460 GOSUB 60000:PRINT "BUT, YOU ONLY GET A " 30470 GOSUB 60000:PRINT "LIMITED NUMBER OF " 30480 GOSUB 60000:PRINT "MAPS. OK? " 30490 GOSUB 60000:PRINT " " 30500 GOSUB 60000:PRINT " HERE ARE THE " 30510 GOSUB 60000:PRINT "COMMANDS AVAILABLE " 30520 GOSUB 60000:PRINT "AND WHAT EACH ONE " 30530 GOSUB 60000:PRINT "DOES. THERE ARE 5. " 30535 FOR I= 1TO 10000:NEXT I 30540 GOSUB 60000:PRINT " " 30550 GOSUB 60000:PRINT "1. STEP (S) " 30560 GOSUB 60000:PRINT "ROVER CAN MOVE TO A " 30570 GOSUB 60000:PRINT "TOUCHING SQUARE-- " 30580 GOSUB 60000:PRINT "HORIZONTAL,VERTICAL " 30590 GOSUB 60000:PRINT "OR DIAGONAL. I'LL " 30600 GOSUB 60000:PRINT "ASK FOR THE NUMBER " 30610 GOSUB 60000:PRINT "OF THE SQUARE YOU " 30620 GOSUB 60000:PRINT "WANT TO MOVE TO. " 30630 FOR I= 1TO 10000:NEXT I 30640 GOSUB 60000:PRINT "2. CHECK (C) " 30650 GOSUB 60000:PRINT "YOU MAY CHECK ANY " 30660 GOSUB 60000:PRINT "SQUARE TO SEE IF IT " 30670 GOSUB 60000:PRINT "IS A GO OR STOP.I'LL" 30680 GOSUB 60000:PRINT "ASK FOR THE NUMBER " 30690 GOSUB 60000:PRINT "OF THE SQUARE YOU " 30700 GOSUB 60000:PRINT "WANT TO CHECK. " 30710 GOSUB 60000:PRINT "LIMITED NUMBER CHECK" 30720 FOR I= 1TO 10000:NEXT I 30730 GOSUB 60000:PRINT "3. LOOK (L) " 30740 GOSUB 60000:PRINT "YOU MAY LOOK AT THE " 30750 GOSUB 60000:PRINT "NUMBER OF STOPS " 30760 GOSUB 60000:PRINT "STRAIGHT AHEAD FROM " 30770 GOSUB 60000:PRINT "WHERE ROVER IS TO " 30780 GOSUB 60000:PRINT "THE LAST ROW AND THE" 30790 GOSUB 60000:PRINT "NUMBER OF STOPS IN " 30800 GOSUB 60000:PRINT "THE NEXT ROW.ANYTIME" 30810 FOR I= 1TO 10000:NEXT I 30820 GOSUB 60000:PRINT "4. MAP (M) " 30830 GOSUB 60000:PRINT "DRAWS A MAP FROM ROW" 30840 GOSUB 60000:PRINT "1 TO CURRENT ROW " 30850 GOSUB 60000:PRINT "SHOWING ROVER'S PATH" 30860 GOSUB 60000:PRINT "AND EVERY GO OR STOP" 30870 GOSUB 60000:PRINT "SQUARE IN THOSE ROWS" 30880 GOSUB 60000:PRINT "LIMITED NUMBER MAPS " 30890 GOSUB 60000:PRINT " " 30900 FOR I= 1TO 10000:NEXT I 30910 GOSUB 60000:PRINT "5. END (E) " 30920 GOSUB 60000:PRINT "TO END THE GAME. " 30950 GOSUB 60000:PRINT " " 30960 GOSUB 60000:PRINT " " 30990 FOR I= 1TO 2000:NEXT I 30999 RETURN 32000 REM *** SUBROUTINE TO INITIALIZE GRID, CHECKS, MAPS 32100 PLOT 6,38:GOSUB 39000 32105 PLOT 14 32110 GOSUB 60000:PRINT "WHICH GRID DO YOU " 32115 PLOT 15:GOSUB 39000:PLOT 14 32120 GOSUB 60000:PRINT "WANT....NOVICE, " 32125 PLOT 15:GOSUB 39000:PLOT 14 32130 GOSUB 60000:PRINT "REGULAR OR EXPERT? " 32135 PLOT 15:GOSUB 39000:PLOT 14 32140 GOSUB 60000:INPUT " (N,R,E)";M$ 32145 PLOT 15 32150 IF LEFT$ (M$,1)= "N"THEN L1= 1:GOTO 32190 32160 IF LEFT$ (M$,1)= "R"THEN L1= 2:GOTO 32190 32170 IF LEFT$ (M$,1)= "E"THEN L1= 3:GOTO 32190 32175 GOTO 32100 32190 REM 32192 PLOT 14,31,6,57,3,40,3 32194 IF L1= 1THEN PRINT " NOVICE " 32196 IF L1= 2THEN PRINT " REGULAR " 32198 IF L1= 3THEN PRINT " EXPERT " 32200 P1= 0 32205 PLOT 15 32210 Z1= .8- L1/ 10 32215 J= PEEK (33209):FOR I= 0TO J:Q9= RND (1):NEXT I 32220 FOR I= 1TO R 32225 SC= 0 32230 FOR J= 1TO CL 32240 F(I,J)= INT (RND (1)+ Z1) 32250 IF F(I,J)= 1THEN SC= 0:GOTO 32270 32260 P1= P1+ 1:SC= SC+ 1 32262 IF SC> 3THEN SC= 0:P1= P1- 1:F(I,J)= 1 32270 NEXT J 32280 NEXT I 32290 FOR I= 1TO CL 32300 IF (F(R- 2,I)= P)OR (F(R- 1,I)= P)OR (F(R,I)= P)THEN 32330 32310 F(R- 2+ INT (3* RND (1)),I)= P 32320 P1= P1+ 1 32330 NEXT I 32340 K1= INT (P1/ 3) 32350 M1= INT (P1/ 10) 32360 Z9= 0 32999 RETURN 33000 REM *** SUBROUTINE TO FIND A GO STARTING POSITION AND 33010 REM GIVE INFO 33100 R1= 0:C1= 0 33110 PLOT 6,38 33120 GOSUB 39000 33130 PLOT 14 33140 GOSUB 60000:INPUT "LIKE A HINT (Y/N) ?";M$ 33145 PLOT 15 33150 IF LEFT$ (M$,1)< > "Y"THEN 33205 33160 Z1= INT (9* RND (1)+ 1) 33165 N= Z1+ 9 33166 PK= N:GO= 1 33170 IF F(1,Z1)= STHEN 33200 33180 F(1,Z1)= S 33190 P1= P1- 1 33200 GOSUB 51000:GOSUB 52000:BB= 64:GOSUB 53000 33202 FOR I= 1TO 1000:NEXT I 33204 BB= 0:GOSUB 53000 33205 PLOT 6,33,3,41,8:PRINT "COMMANDS # LEFT" 33206 PLOT 6,25,3,41,9:PRINT " STEP (S) " 33207 PLOT 3,41,10:PRINT " " 33210 PLOT 3,41,10:PRINT " MAP (M) ";M1 33213 PLOT 3,41,11:PRINT " " 33215 PLOT 3,41,11:PRINT " CHECK (C) ";K1 33220 PLOT 3,41,12:PRINT " LOOK (L) " 33222 PLOT 3,41,13:PRINT " END (E) " 33225 PLOT 3,41,14:PRINT " " 33230 PLOT 3,41,15:PRINT "THERE ARE ";P1;" STOPS " 33999 RETURN 34000 REM *** SUBROUTINE TO PROCESS NEXT COMMAND 34100 PLOT 6,38 34110 GOSUB 39000 34115 PLOT 14 34120 GOSUB 60000:INPUT "NEXT COMMAND ?";M$ 34125 PLOT 15 34126 GOSUB 39000 34130 IF LEFT$ (M$,1)= "S"THEN I= 1:GOTO 34300 34140 IF LEFT$ (M$,1)= "C"THEN I= 2:GOTO 34300 34150 IF LEFT$ (M$,1)= "L"THEN I= 3:GOTO 34300 34160 IF LEFT$ (M$,1)= "M"THEN I= 4:GOTO 34300 34170 IF LEFT$ (M$,1)= "#"THEN I= 5:GOTO 34300 34180 IF LEFT$ (M$,1)= "E"THEN I= 6:GOTO 34300 34182 IF LEFT$ (M$,1)= "0"THEN GOSUB 36000:GOTO 34310 34190 GOSUB 60000:PRINT "WHAT DID YOU SAY? " 34200 GOTO 34120 34300 ON IGOSUB 34400,34500,34600,34700,34800,35000 34310 IF Z9= 0THEN 34000 34399 RETURN 34400 REM *** SUBROUTINE TO PROCESS STEP COMMAND *** 34410 GOSUB 34900 34415 IF (NN= 0)AND (N< 19)THEN R1= R9:C1= C9:NN= N:GOTO 34451 34417 IF (NN= 0)AND (N> 18)THEN 34440 34420 IF (ABS (N- NN)> 10)THEN 34440 34425 IF (ABS (N- NN)< 8)AND (ABS (N- NN)> 1)THEN 34440 34430 IF (INT (NN/ 9)= (NN/ 9))AND (N= NN+ 1)THEN 34440 34431 IF (INT (NN/ 9)= (NN/ 9))AND (N= NN- 8)THEN 34440 34432 N1= NN- 1 34435 IF (INT (N1/ 9)= (N1/ 9))AND (N= NN+ 8)THEN 34440 34436 IF (INT (N1/ 9)= (N1/ 9))AND (N= NN- 1)THEN 34440 34437 GOTO 34450 34440 GOSUB 60000:PRINT "ILLEGAL MOVE !!!!!!!" 34445 GOTO 34400 34450 R1= R9:C1= C9:NT= N:N= NN:GOSUB 51000:GOSUB 52000:BB= 0:GOSUB 53000:GOSUB 55000:NN= NT 34451 SZ= SZ+ 1 34452 N= NN:GOSUB 51000:GOSUB 56000:PLOT 6,38 34455 IF F(R1,C1)= PTHEN 39100 34460 F(R1,C1)= YR 34461 N= NN:GOSUB 51000:GOSUB 56000 34462 PLOT 6,38 34465 IF NN> 81THEN 39500:REM *** MADE IT TO LAST ROW 34466 PLOT 6,38 34499 RETURN 34500 REM *** SUBROUTINE TO PROCESS CHECK COMMAND *** 34510 IF K1> = 1THEN 34530 34511 PLOT 6,38 34515 GOSUB 60000:PRINT "SORRY! NONE LEFT !" 34516 FOR I= 1TO 1000:NEXT I 34520 RETURN 34530 K1= K1- 1 34535 PLOT 6,38,3,56,11:PRINT K1;" " 34540 GOSUB 34900 34545 Z1= F(R9,C9) 34550 GOSUB 51000 34560 IF Z1= PTHEN GO= 0:GOSUB 54000:GOTO 34570 34565 IF Z1= STHEN GO= 1:GOSUB 54000:GOTO 34570 34566 IF Z1= YRTHEN GOSUB 56000:GOTO 34570 34570 FOR I= 1TO 500:NEXT I 34571 IF GO= 1THEN PK= N 34572 IF N= NNTHEN RETURN 34575 GOSUB 52000:BB= 0:GOSUB 53000:GOSUB 55000 34580 RETURN 34600 REM *** SUBROUTINE TO PROCESS LOOK COMMAND *** 34605 IF R1* C1= 0THEN GOSUB 60000:PRINT "ROVER HASN'T STARTED":GOTO 34698 34610 Z1= 0 34620 FOR I= R1+ 1TO R 34630 IF F(I,C1)< > PTHEN 34650 34640 Z1= Z1+ 1 34650 NEXT I 34660 PLOT 6,38 34665 GOSUB 39000:GOSUB 39000 34670 GOSUB 60000:PRINT Z1;" STOPS DOWNWARD " 34680 Z1= 0 34690 FOR I= 1TO CL 34691 IF F(R1,I)< > PTHEN 34693 34692 Z1= Z1+ 1 34693 NEXT I 34694 GOSUB 39000:GOSUB 39000 34696 GOSUB 60000:PRINT Z1;" STOPS IN THIS ROW" 34698 FOR I= 1TO 2000:NEXT I:RETURN 34700 REM *** SUBROUTINE TO PROCESS MAP COMMAND *** 34702 GOSUB 39000 34710 IF M1> = 1THEN 34750 34720 GOSUB 60000:PRINT "SORRY! NONE LEFT !" 34730 FOR I= 1TO 1000:NEXT I 34740 RETURN 34750 M1= M1- 1 34760 PLOT 6,38,3,56,10:PRINT M1;" " 34770 R9= R1 34780 GOSUB 38000 34785 GOSUB 39000 34790 RETURN 34800 REM *** UNADVERTISED SUBROUTINE TO SNEAK A PEEK AT GRID*** 34802 GOSUB 39000 34810 IF NN< > 0THEN RETURN 34820 N= 90:NN= N:SP= 1 34830 GOSUB 38100 34840 NN= 0:SP= 0 34899 RETURN 34900 REM *** SUBROUTINE TO INPUT SQUARE NUMBER AFTER STEP OR 34901 REM OR CHECK COMMAND 34902 PLOT 6,38 34903 PLOT 14 34905 GOSUB 60000:INPUT "SQUARE NUMBER?";N 34907 PLOT 15 34910 N= INT (N) 34915 IF (N< 10)OR (N> 90)THEN 34930 34916 REM *** CONVERT NUMBER TO COORDINATES *** 34917 R9= 0:Q= N 34918 R9= R9+ 1:Q= Q- 9:IF Q< 10THEN 34920 34919 GOTO 34918 34920 C9= N- R9* 9 34929 RETURN 34930 GOSUB 60000:PRINT N;" NOT IN GRID" 34935 GOTO 34900 35000 REM *** SUBROUTINE TO END GAME *** 35010 FOR I= 1TO 3:GOSUB 39000:NEXT I 35100 Z9= 1 35105 PLOT 6,38 35110 FOR I= 1TO 4:GOSUB 39000:NEXT I 35115 PLOT 14 35120 GOSUB 60000:PRINT "GAME IS OVER " 35125 PLOT 15 35130 FOR I= 1TO 1000:NEXT I 35135 N= NN 35140 GOTO 39200 36000 REM *** SHORTCUT ROUTINE TO PROCESS RETURN AS STEP TO 36010 REM LAST SUCCESSFUL CHECK POSITION (I.E.,GO SQUARE) 36020 REM WITHOUT HAVING TO ENTER S, RETURN AND THEN SQUARE 36030 REM NUMBER 36040 GOSUB 39000 36100 N= PK 36105 Z9= 0 36110 GOSUB 34910 36120 GOSUB 34415 36200 RETURN 38000 REM *** CONTINUATION OF MAP COMMAND PROCESSING *** 38010 IF NN< > 0THEN 38100 38015 PLOT 6,38 38020 GOSUB 39000:PLOT 14 38030 GOSUB 60000:PRINT "ROVER HASN'T STARTED" 38035 PLOT 15 38040 FOR I= 1TO 1000:NEXT I 38050 M1= M1+ 1:R1= R9 38060 RETURN 38100 IF SP= 1THEN NZ= 90:N= 90:GOTO 38110 38105 NZ= NN 38110 IF INT (NZ/ 9)= (NZ/ 9)THEN 38200 38120 NZ= NZ+ 1:GOTO 38110 38200 REM NZ NOW EQUALS END OF LAST ROW ROBOT HAS ENTERED 38210 NY= NZ 38220 NX= N 38228 X9= 1 38229 Z8= 0 38230 FOR II= 10TO NY 38232 Z8= Z8+ 1:IF Z8> 9THEN Z8= 1:X9= X9+ 1 38240 N= II 38280 Y9= II- X9* 9 38400 Z1= F(X9,Y9) 38410 IF Z1< > STHEN 38500 38420 GOSUB 51000:GOSUB 52000:GO= 1:GOSUB 54000 38430 GOTO 38700 38500 IF Z1< > PTHEN 38600 38510 GOSUB 51000:GOSUB 52000:GO= 0:GOSUB 54000 38520 GOTO 38700 38600 IF Z1< > YRTHEN 38630 38610 GOSUB 51000:GOSUB 56000 38620 GOTO 38700 38630 REM THIS SQUARE IS WHERE ROVER GOT STOPPED 38635 OO= 1 38640 GOTO 38610 38700 NEXT II 38702 IF SP= 1THEN 38800 38705 TT= INT ((NN- 1)/ 9):TT= TT* 500 38710 FOR I= 1TO TT:NEXT I 38800 NY= NZ 38810 FOR II= NYTO 10STEP - 1 38820 N= II 38825 IF N< > NNTHEN 38830 38826 IF SP= 1THEN 38830 38827 GOTO 38840 38830 GOSUB 51000:GOSUB 52000:BB= 0:GOSUB 53000:GOSUB 55000 38840 NEXT II 38850 N= NX 38855 PLOT 6,38 38860 RETURN 39000 GOSUB 60000:PRINT " ":RETURN 39100 REM *** SUBROUTINE WHEN ROVER LANDS ON STOP *** 39105 Z9= 1 39107 PLOT 6,38 39110 FOR I= 1TO 4:GOSUB 39000:NEXT I 39112 GOSUB 60000:PRINT " WHOOPS !!! " 39115 GOSUB 60000:PRINT "ROVER LANDED ON A " 39120 GOSUB 60000:PRINT "STOP SQUARE. GAME IS" 39125 GOSUB 60000:PRINT "OVER. " 39130 FOR I= 1TO 4:GOSUB 39000:NEXT I 39135 FOR I= 1TO 1000:NEXT I 39200 OO= 1:GOSUB 51000:GOSUB 56000:OO= 0 39201 FOR I= 1TO 8:GOSUB 39000:NEXT I 39204 PLOT 14 39205 GOSUB 60000:INPUT "FINAL MAP (Y/N)?";M$ 39206 PLOT 15 39210 IF LEFT$ (M$,1)= "Y"THEN 39250 39220 RETURN 39250 FOR I= 1TO 500:NEXT I 39255 SP= 1 39260 IF R1* C1= 0THEN 39300 39270 F(R1,C1)= XR 39280 R9= R 39300 GOSUB 38000 39310 RETURN 39500 REM *** SUBROUTINE ROVER MADE IT TO LAST ROW *** 39510 Z9= 1 39515 PLOT 6,38 39520 FOR I= 1TO 4:GOSUB 39000:NEXT I 39530 GOSUB 60000:PRINT "HOORAY! ROVER ROBOT " 39540 GOSUB 60000:PRINT " MADE IT ! " 39550 FOR I= 1TO 4:GOSUB 39000:NEXT I 39560 FOR I= 1TO 2000:NEXT I 39562 OO= 2:GOSUB 51000:GOSUB 56000 39570 GOSUB 60000:INPUT "FINAL MAP (Y/N)?";M$ 39580 IF LEFT$ (M$,1)= "Y"THEN 39600 39590 RETURN 39600 R9= R 39605 SP= 1 39610 GOSUB 38000 39620 RETURN 39999 RETURN 49999 FOR I= 1TO 1000:NEXT I:PLOT 6,2,15,27,11:END 50000 REM *** SUBROUNTINE TO DRAW 9 X 9 GRID 50100 N= 10 50110 CC= 38 50120 XX= 2 50130 YY= 2 50200 FOR XX= 2TO 34STEP 4 50300 PLOT 6,CC 50320 PLOT 3,XX,YY:PRINT "neeo" 50410 YY= YY+ 1 50412 IF CC= 38OR CC= 14THEN C1= CC- 3:GOTO 50420 50414 C1= CC- 5 50420 PLOT 6,C1,3,XX,YY:PRINT N 50425 PLOT 6,CC 50426 PLOT 3,XX,YY:PRINT "a" 50435 PLOT 3,XX+ 3,YY:PRINT "b" 50440 N= N+ 1 50510 YY= YY+ 1 50534 PLOT 3,XX,YY:PRINT "lm" 50540 GOSUB 59000 50545 YY= YY- 2 50550 NEXT XX 50560 IF YY> 25THEN 50999 50600 XX= 2 50610 YY= YY+ 3 50630 GOTO 50200 50999 RETURN 51000 REM *** SUBROUTINE TO FIND X AND Y FROM NUMBER 10 TO 90 ** 51002 IF N< 10OR N> 90THEN GOSUB 60000:PRINT " HELP!!!!!! ":GOTO 29999 51005 NS= N 51100 YY= 3* INT ((N- 1)/ 9)- 1 51105 XX= 2+ 4* (N- (INT ((N- 10)/ 9)* 9)- 10):GOTO 51300 51300 N= NS 51999 RETURN 52000 REM *** SUBROUTINE TO FIND COLOR OF GRID FROM NO. 10 TO 90 52100 IF INT ((N- 6)/ 4)= ((N- 6)/ 4)THEN CC= 38:GOTO 52999 52200 IF INT ((N- 7)/ 4)= ((N- 7)/ 4)THEN CC= 30:GOTO 52999 52300 IF INT ((N- 8)/ 4)= ((N- 8)/ 4)THEN CC= 14:GOTO 52999 52400 CC= 62 52999 RETURN 53000 REM *** SUBROUTINE TO BLINK BORDER OF A GRID 53010 REM COMING IN, C=COLOR, X AND Y ARE SET TO UPPER 53020 REM LEFT HAND CORNER OF GRID, AND TO BLINK BB=64 53030 REM TO NOT BLINK, COMING IN BB=0 53100 PLOT 6,CC+ BB 53200 PLOT 3,XX,YY:PRINT "neeo" 53210 PLOT 3,XX,YY+ 1:PRINT "a" 53220 PLOT 3,XX+ 3,YY+ 1:PRINT "b" 53230 PLOT 3,XX,YY+ 2:PRINT "lm" 53999 RETURN 54000 REM *** SUBROUTINE TO CHANGE GRID TO GREEN FOR GO OR 54010 REM TO RED FOR STOP 54100 REM COMING IN, GO=0 FOR STOP, 1 FOR GO 54110 REM X AND Y HAVE BEEN SET 54200 IF GO= 0THEN CC= 8:GOTO 54215:REM RED FOR STOP 54210 CC= 16:REM GREEN FOR GO 54215 PLOT 6,CC 54220 PLOT 3,XX,YY,32,32,32,32 54230 PLOT 3,XX,YY+ 2,32,32,32,32 54235 PLOT 31 54240 IF GO= 0THEN PLOT 6,14,3,XX,YY+ 1:PRINT "STOP":GOTO 54999 54250 PLOT 6,21,3,XX,YY+ 1:PRINT " GO " 54999 RETURN 55000 REM *** SUBROUTINE TO RESTORE COLOR AND NUMBER OF 2 55010 REM CENTER POSITIONS ONLY 55020 REM COMING IN, X AND Y SET, COLOR SET AND BORDER HAS 55030 REM HAS BEEN RESTORED 55040 PLOT 15 55100 IF CC= 38OR CC= 14THEN CD= CC- 3:GOTO 55115 55110 CD= CC- 5 55115 PLOT 6,CD 55200 PLOT 3,XX,YY+ 1:PRINT N 55210 PLOT 6,CC,3,XX,YY+ 1:PRINT "a" 55999 RETURN 56000 REM SUBROUTINE TO PUT ROBOT IN A SPECIFIC GRID 56010 REM COMING IN, X AND Y ARE SET 56100 PLOT 6,70 56110 IF OO= 1THEN PLOT 6,65 56115 IF OO= 2THEN PLOT 6,66 56200 PLOT 3,XX,YY:PRINT " vw " 56300 PLOT 3,XX,YY+ 1:PRINT "q p" 56400 PLOT 3,XX,YY+ 2:PRINT "baba" 56500 PLOT 6,112,3,XX+ 1,YY+ 1:PRINT " " 56510 IF OO= 1THEN PLOT 6,72,3,XX+ 1,YY+ 1:PRINT " " 56515 IF OO= 2THEN PLOT 6,80,3,XX+ 1,YY+ 1:PRINT " " 56516 OO= 0 56520 PLOT 6,38 56999 RETURN 59000 REM *** SUBROUTINE TO CHANGE COLORS*** 59100 IF CC= 38THEN CC= 30:GOTO 59200 59110 IF CC= 30THEN CC= 14:GOTO 59200 59120 IF CC= 14THEN CC= 62:GOTO 59200 59130 CC= 38 59200 REM 59999 RETURN 60000 REM *** SUBROUTINE FOR SCROLLING *** 60100 A= CALL (0) 60110 PLOT 3,X,Y+ H- 1:PRINT SPC( W)"" 60120 PLOT 3,X,Y+ H- 1 60999 RETURN 64000 GOSUB 65410 64010 Z= 28672+ 128* Y+ X+ X:AD= TM+ 2:GOSUB 65400 64015 Z= 128- W- W:AD= TM+ 25:GOSUB 65400 64020 POKE TM+ 5,H- 1:POKE TM+ 7,W* (C+ 1):POKE TM+ 19,35* (1- C) 64030 RETURN 64040 REM 65000 GOSUB 65410:RESTORE 65030 65030 DATA 33,-1,-1,6,-1,14,-1,17,128,0,25,126 65040 DATA 17,128,255,25,119,35,-1,13,194,-1,-1 65050 DATA 17,-1,-1,25,5,194,-1,-1,201 65055 IF TM> 65503THEN TM= TM- 32:GOTO 65080 65060 FOR I= 1TO 32:READ A 65065 IF A> = 0AND A< > PEEK (TM+ 1)THEN I= 32:TM= TM- 32 65070 NEXT 65080 RESTORE 65030 65090 FOR I= 1TO 32:READ A:POKE TM+ I,A- (A< 0):NEXT 65100 Z= TM+ 1:AD= 33283:GOSUB 65400 65110 Z= TM:AD= ER:GOSUB 65400 65120 Z= TM+ 6:AD= TM+ 30:GOSUB 65400 65130 Z= TM+ 8:AD= TM+ 22:GOSUB 65400 65190 CLEAR 25:GOTO 1 65400 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN 65410 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN 65500 END