REM"***************************‡" REM"*ƒ#######################*‡" REM"*ƒ# †CHEESE NIBBLER ƒ#*‡" 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 *K.10 O.|MRUN|M REM *** END ON ESCAPE *** ON ERROR ?&FE60=0:GOTO 30000 PROCsound PROCpokes MODE7:PROCinstr:MODE2 PROCscreen poke=&FE60 peek=&FE60 PROCfollow END REM"****************************" REM"**** ƒSET UP DISPLAY ****" REM"****************************" REM DEF PROCscreen VDU19,9,0;0;19,10,0;0; VDU17,129,17,3,18,0,132,16,18,0,0,23;8202;0;0;0; PRINT TAB(0,1);" CHEESE NIBBLER " PRINT TAB(0,0);SPC(20) PRINT TAB(0,2);SPC(20) GCOL0,9:MOVE200,200:MOVE225,200:PLOT85,200,400:PLOT85,225,400:GCOL0,0:MOVE260,150:MOVE260,500:PLOT85,500,150:PLOT85,500,500:GCOL0,9:MOVE530,200:MOVE530,400:PLOT85,560,200:PLOT85,560,400:GCOL0,0: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. "; MOVE340,600:GCOL0,0:PLOT1,0,50:PLOT1,20,0:MOVE420,600:GCOL0,0:PLOT1,0,50:PLOT1,-20,0:GCOL0,9:FOR Y=640TO656:MOVE355,Y:DRAW400,Y:NEXT ENDPROC REM REM"****************************" REM"******ƒFOLLOW MAGNET******" REM"****************************" REM DEF PROCfollow VDU28,11,28,19,4,17,130,12,17,0,19,9,0;0; PRINT TAB(1,10);"CHEESE"''" LOST "'''':IF PE% PRINT"Poke = 6"''"Peek =";?peek ?poke=6 A=(?peek AND 32) IF A<>32 THEN PROCnibble:REM PROCrev SOUND1,-15,100,5 SOUND1,0,0,10 PRINT TAB(1,10);"CHEESE"''" LOST "'''':IF PE% PRINT"Poke = 6"''"Peek =";?peek GOTO 470 REM REM"****************************" REM"***ƒREVERSE MAGNET FOUND***" REM"****************************" DEF PROCrev:TIME=0:delay=266 ?poke=15:SOUND&11,0,0,1:VDU19,9,0;0; REPEAT PRINT TAB(1,10);"CHEESE"''" FOUND "'''':IF PE% PRINT"Poke = 15"''"Peek =";?peek SOUND1,-15,10,2 SOUND1,-15,20,2 UNTIL TIME>delay SOUND&11,0,0,1 ?poke=6 VDU19,9,0;0; ENDPROC REM REM"****************************" REM"*****ƒ EAT CHEESE *****" REM"****************************" DEF PROCnibble VDU19,9,3;0; SOUND&11,0,0,0:delay=5 PRINT TAB(1,10);"CHEESE"''" FOUND "'''':IF PE% PRINT"Poke = 0"''"Peek =";?peek FOR I%=0 TO 10 ?poke=7 TIME=0:REPEAT UNTIL TIME>delay:?&FE60=0 ?poke=14 TIME=0:REPEAT UNTIL TIME>delay:?&FE60=0 NEXT ?&FE6A=5 FOR J%=0 TO1 FOR I%=&40TO&50 ?&FE68=I% A=INKEY(delay) NEXT FOR I%=&50TO&40STEP-1 ?&FE68=I% A=INKEY(delay) NEXT, ?&FE6A=0:VDU19,9,0;0; ENDPROC DEF PROCinstr CLS PRINT TAB(0,0);"„";CHR$157;CHR$141;"‡CHEESE NIBBLER INSTRUCTIONS" PRINT TAB(0,1);"„";CHR$157;CHR$141;"‡CHEESE NIBBLER INSTRUCTIONS" PRINT TAB(0,3);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '6' 'ON'" PRINT TAB(0,4);"„";CHR$157;CHR$141;"‡SENSOR SWITCH BLOCK '6' '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 about 50 centimetres from a strong magnet." PRINT''"3) Press 'SPACE BAR'." 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."DARE"|M ?&FE6A=0 REPEAT *FX15,1 A=GET UNTIL A=13 OR A=49 IF A=13 RUN ELSE END