REM"***************************‡" REM"*ƒ#######################*‡" REM"*ƒ#† SHADE RUNNER ƒ #*‡" REM"*ƒ# † COPYRIGHT ƒ#*‡" REM"*ƒ# ƒA.WHITTAKER #*‡" REM"*ƒ#######################*‡" REM"*ƒ# † CONSULTANT ƒ#*‡" REM"*ƒ# ƒK.ECCLESON ƒ#*‡" REM"*ƒ#######################*‡" REM"***************************‡" REM *** SET UP PORT *** *FX4 1 ?&FE62=15 REM *** TURN OFF MOTORS *** ?&FE60=0 REM *** TURN OFF HORN *** ?&FE6B=&10:?&FE6A=0:?&FE68=0 REM *** END ON ESCAPE *** ON ERROR ?&FE60=0:GOTO 30000 *K.10 O.|M RUN|M PROCsound PROCpokes MODE7:PROCinstr:MODE2 PROCscreen poke=&FE60 peek=&FE60 PROCfollow END REM"****************************" REM"**** ƒ SET UP DISPLAY  ****" REM"****************************" REM DEF PROCscreen VDU17,129,17,3,18,0,132,16,18,0,0,19,10,0;0;19,9,0;0;23;8202;0;0;0; PRINT TAB(0,1);" SHADE RUNNER " PRINT TAB(0,0);SPC(20) PRINT TAB(0,2);SPC(20) MOVE200,200:MOVE225,200:PLOT85,200,400:PLOT85,225,400:MOVE260,150:MOVE260,500:PLOT85,500,150:PLOT85,500,500:MOVE530,200:MOVE530,400:PLOT85,560,200:PLOT85,560,400:MOVE300,500:MOVE300,550:PLOT85,460,500:PLOT85,460,550 GCOL0,7 MOVE230,290:MOVE230,310:PLOT85,260,290:PLOT85,260,310:MOVE500,290:MOVE500,310:PLOT85,530,290:PLOT85,530,310:MOVE260,500:MOVE300,500:PLOT85,260,550:PLOT85,300,550:MOVE460,500:MOVE500,500:PLOT85,460,550:PLOT85,500,550 MOVE260,550:MOVE340,550:PLOT85,340,625:PLOT85,420,550:PLOT85,420,625:PLOT85,500,550 VDU18,0,3,18,0,129,5 VDU4:PRINT TAB(0,30);" Escape to end. "; VDU4 PROCcircle(380,600,30,9) ENDPROC REM REM"****************************" REM"*****ƒ DRAW L.D.R'S  *****" REM"****************************" REM DEF PROCcircle(x%,y%,r%,c%) GCOL0,c% FOR A%=0 TO 360 STEP 20 MOVEx%,y% MOVESIN(RAD(A%))*r%+x%,COS(RAD(A%))*r%+y% PLOT85,SIN(RAD(A%+20))*r%+x%,COS(RAD(A%+20))*r%+y% NEXT ENDPROC REM REM"****************************" REM"*****ƒ FOLLOW LIGHT *****" REM"****************************" REM DEF PROCfollow VDU28,11,28,19,4,17,130,12,17,0,19,9,3;0; PRINT TAB(1,10);" ON "''" BEAM "'''':IF PE% PRINT"Poke = 6"''"Peek =";?peek ?poke=6 IF ?peek<>230 THEN PROCrev SOUND1,-15,100,5 SOUND1,0,0,10 GOTO 600 REM REM"****************************" REM"**ƒREVERSE IF BEAM BROKEN**" REM"****************************" REM DEF PROCrev VDU19,9,0;0; ?poke=15:SOUND&11,0,0,1 PRINT TAB(1,10);"SHADOW"''"DETECTED"'''':IF PE% PRINT"Poke = 15"''"Peek =";?peek REPEAT SOUND1,-15,10,2 SOUND1,-15,20,2 UNTIL ?peek=239 SOUND&11,0,0,1 PRINT TAB(1,10);" ON "''" BEAM "'''':IF PE% PRINT"Poke = 6"''"Peek =";?peek ?poke=6 VDU19,9,3;0; ENDPROC DEF PROCinstr CLS PRINT TAB(0,0);"„";CHR$157;CHR$141;"‡SHADE RUNNER INSTRUCTIONS" PRINT TAB(0,1);"„";CHR$157;CHR$141;"‡SHADE RUNNER INSTRUCTIONS" PRINT TAB(0,3);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '8' 'ON'" PRINT TAB(0,4);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '8' 'ON'" PRINT TAB(0,6);"„";CHR$157;CHR$141;"‡ BULB 'OFF' ";CHR$156;"„";CHR$157;"‡ TREKKER 'OFF' " PRINT TAB(0,7);"„";CHR$157;CHR$141;"‡ BULB 'OFF' ";CHR$156;"„";CHR$157;"‡ TREKKER 'OFF' " FOR I%=9 TO 23 VDU31,0,I%,132,157,131 NEXT PRINT TAB(0,24);"‚";CHR$157;"ˆ„Press 'SPACE BAR' to continue."; VDU28,3,23,39,9 PRINT''';"1) Set switches as above." PRINT''"2) Place TREKKER on floor facing a strong light, desk lamp, torch or window etc." PRINT''"3) TREKKER will follow the light until you cast a shadow, he will then run away until clear." VDU23;8202;0;0;0; REPEAT UNTIL GET=32 CLS PRINT TAB(0,5);"";CHR$157;SPC(31);"„";CHR$157 PRINT TAB(0,6);"";CHR$157;CHR$141;"ˆ ‡TURN TREKKER ON NOW ! „";CHR$157 PRINT TAB(0,7);"";CHR$157;CHR$141;"ˆ ‡TURN TREKKER ON NOW ! „";CHR$157 PRINT TAB(0,8);"";CHR$157;SPC(31);"„";CHR$157 VDU28,0,24,39,0 PRINT TAB(0,6);"„";CHR$157;CHR$141;"‡ BULB 'OFF' ";CHR$156;"„";CHR$157;"‡ TREKKER 'ON' " PRINT TAB(0,7);"„";CHR$157;CHR$141;"‡ BULB 'OFF' ";CHR$156;"„";CHR$157;"‡ TREKKER 'ON' " REPEAT UNTIL GET=32 ENDPROC DEF PROCdub(X,Y,A$):PRINT TAB(X,Y);CHR$141;A$;TAB(X,Y+1);CHR$141;A$;:ENDPROC DEF PROCsound VDU22,7,23;8202;0;0;0;:PRINT TAB(0,11);"":PRINT TAB(0,12);"‡";CHR$141;"DO YOU WANT SOUND (ˆY‰/ˆN‰)†ˆ?":PRINT TAB(0,13);"‡";CHR$141;"DO YOU WANT SOUND (ˆY‰/ˆN‰)†ˆ?":PRINT TAB(0,14);"" REPEAT:*FX202 32 *FX15 1 A$=GET$:UNTIL A$="Y" OR A$="N" IF A$="Y" THEN *FX210 0 IF A$="N" THEN *FX210 1 *FX4 1 ENDPROC DEF PROCpokes VDU22,7,23;8202;0;0;0;:PRINT TAB(0,11);"":PRINT TAB(0,12);"‡";CHR$141;"DO YOU WANT PEEK AND POKES (Y/N)":PRINT TAB(0,13);"‡";CHR$141;"DO YOU WANT PEEK AND POKES (Y/N)":PRINT TAB(0,14);"" REPEAT:*FX202 32 *FX15 1 A$=GET$:UNTIL A$="Y" OR A$="N" IF A$="Y" THEN PE%=TRUE IF A$="N" THEN PE%=FALSE *FX4 1 ENDPROC MODE7 VDU23;8202;0;0;0; PROCdub(0,1,"‚Pressf0‚to LOAD next program") PROCdub(0,4,"‚PressRETURN‚to REPEAT") PRINT'' FOR L=19TO23:PRINT TAB(0,L);"ƒ";:NEXT:VDU28,10,23,30,19 *K.0 1|MCH."CARD1"|M REPEAT *FX15,1 A=GET UNTIL A=13 OR A=49 IF A=13 RUN ELSE END