2 MODE7 30 *FX 229,1 40 PROCinst 50 DIMREF(20,3) 60 X%=520:Y%=520:ENVELOPE 1,129,240,-2,0,1,40,1,127,-12,-127,-127,127,0 70 A=0:B=27:G$="":electro=0:score=0:charge=9 80 *K.0MO.7|ML.|N|M 90 *K.1RUN|M 100 MODE1 110 VDU23,224,0,0,0,0,0,0,&10,&38, 23,225,&10,&38,&54,&BA,&38,&38,&28,&28, 23,226,&D0,&F0,&7C,&3A,&38,&38,&28,&28, 23,227,&10,&7C,&7C,&FE,&FE,&FE,&82,&82 120 VDU23,228,&7F,&10,&10,&10,&10,&10,&14,&1E, 23,229,&FF,0,0,0,0,0,0,&40, 23,230,&FF,0,0,0,0,0,0,0, 23,231,&FF,0,0,0,0,0,0,0, 23,232,&FC,&18,&18,&18,&18,&18,&18,&18 130 VDU23,233,&14,&17,&14,&7F,&47,&4E,&4C,&58, 23,234,&9F,&64,&E4,&FF,&1C,&0E,&06,&03, 23,235,&1F,&FF,&1F,&FF,0,0,0,0, 23,236,&01,&02,&FC,&FF,0,0,0,0, 23,237,&F8,&18,&18,&FE,&7E,&7E,&7E,&7E 140 VDU23,238,&58,&58,&4C,&4E,&7F,&03,0,0, 23,239,3,3,6,&0E,&1C,&F8,&E0,0, 23,240,&FF,&43,&2F,&1F,0,0,0,0, 23,241,&FF,0,&C0,&FF,0,0,0,0, 23,242,&FE,&18,&3C,&E6,&66,&3C,&18,0 150 VDU23,243,0,0,0,0,0,0,&3C,&18 160 DIM les$(3):les$(1)=CHR$(224)+CHR$(8)+CHR$(10)+CHR$(225):les$(2)=CHR$(224)+CHR$(8)+CHR$(10)+CHR$(226):les$(3)=CHR$(224)+CHR$(8)+CHR$(10)+CHR$(227) 170 eng$=" "+STRING$(5,CHR$(8))+CHR$(10)+""+STRING$(5,CHR$(8))+CHR$(10)+""+STRING$(5,CHR$(8))+CHR$(10)+"" 320 PROCFEN:FORX=1TO20:REF(X,0)=RND(35)+2:REF(X,1)=RND(18)+10:REF(X,3)=0 322 REF(X,2)=1:Q=RND(6):IFQ=6THENREF(X,2)=3 324 IFQ=5ORQ=4THENREF(X,2)=2 326 NEXT:PROCRED(1):COLOUR3 328 TIME=0 330 PROCSPLAT:GOTO330 19999 STOP 20000 DEFPROCMCL(X,Y,T):IF X<0 OR Y<0 THEN ENDPROC ELSE PRINTTAB(X,Y);les$(T):ENDPROC 20010 DEFPROCMENG(X,Y):COLOUR0:PRINTTAB(A,B);eng$:COLOUR3:PRINTTAB(X,Y);eng$:A=X:B=Y:ENDPROC 20020 DEFPROCFEN: LOCAL X% 20030 FORF%=-324TO1280STEP32:MOVEF%,700:DRAWF%+324,1024:MOVEF%,1024:DRAWF%+324,700:NEXT 20040 COLOUR131:COLOUR0:PRINTTAB(0,0);"SCORE ";score;" CHARGE ";charge:COLOUR128:COLOUR3:ENDPROC 20050 DEFFNCWRS 20070 G$=INKEY$(1):X%=X%+32*((G$="," AND X%>0)-(G$="." AND X%<1280)):Y%=Y%+32*((G$="X" AND Y%>0)-(G$="C" AND Y%<1024)) 20080 Q=POINT(X%+4,Y%+4):MOVEA%,B%-40:PLOT7,A%,B%+40:MOVEA%-40,B%:PLOT7,A%+40,B% 20090 MOVEX%,Y%-40:PLOT21,X%,Y%+40:MOVEX%-40,Y%:PLOT21,X%+40,Y% 20100 A%=X%:B%=Y% 20110 =Q 20120 DEFPROCSPLAT 20130 REPEAT:IFTIME>200THENPROCAPHNL 20132 IFG$="V"ORG$="M"THENelectro=1:PROCelectrify 20135 D=FNCWRS:UNTILG$=" " 20140 IFD<>1THENENDPROC 20142 XS=(X%/32-2)/32:YS=((30-Y%/32)-27)/32 20143 Y=27:Z=TIME 20145 FORX=0TO X%/32-2 STEP XS 20150 PROCMENG(X,Y):Y=Y+YS 20155 NEXT:PROCKILL 20160 TIME=Z:ENDPROC 20170 DEFPROCAARGH 20180 SOUND2,1,1,5:ENDPROC 20190 DEFPROCBZZZT:SOUND&0010,-15,7,15:SOUND1,-1,75,15:PROCAARGH:ENDPROC 20200 DEFPROCRED(U):LOCAL X%,D%:FOR X%=1 TO 20 20210 IFREF(X%,3)<>43THEN COLOUR0:PROCMCL(REF(X%,0),REF(X%,1),1):REF(X%,1)=REF(X%,1)-U:COLOUR1:PROCMCL(REF(X%,0),REF(X%,1),REF(X%,2)) ELSE D%=D%+1 20215 IFREF(X%,1)<=1 AND electro=1 THEN PROCBZZZT:REF(X%,3)=43:REF(X%,1)=20:score=FNINC(X%) 20217 IFREF(X%,1)<0THEN20330 20220 NEXT:COLOUR3:*FX21,0 20222 IFD%=20THEN20400 20225 ENDPROC 20230 DEFPROCKILL:LOCAL X:PROCAARGH 20240 C%=X%/32:D%=(30-Y%/32)+1 20250 FORX=1TO20:IF((REF(X,0)=C%)AND(REF(X,1)=D%))THENREF(X,3)=43:score=FNINC(X) 20260 NEXT:PROCMENG(0,27):D=FNCWRS:PROCFEN:PROCRED(0):ENDPROC 20270 DEFPROCAPHNL:PROCRED(1):electro=0:PROCelectrify:TIME=0:ENDPROC 20280 DEFPROCelectrify:IFcharge=0THEN20300 20290 IFelectro<>0THENGCOL2,2:MOVE0,1024:MOVE0,974:PLOT85,1280,1024:PLOT85,1280,974:GCOL0,3:charge=charge-1:ENDPROC 20300 PROCFEN:COLOUR1:FORX=1TO20:IFREF(X,3)<>43THENPROCMCL(REF(X,0),REF(X,1),REF(X,2)) 20310 NEXT:COLOUR3:ENDPROC 20320 DEFFNINC(X)=score+10*REF(X,2) 20330 CLEAR:MODE7 20340 FORX=0TO1:PRINTTAB(6,9+X);CHR$141;CHR$134;"The fence is breached !!!":NEXT 20345 PRINT'"You have qualified as a Russian agent" 20350 FORX=-15TO0:SOUND0,X,5,5:NEXT 20360 PRINT''"Do you want to go again?(Y or N)" 20370 REPEAT:A$=GET$:UNTILA$="Y"ORA$="N" 20380 IFA$="Y"THENRUN 20390 CLS:END 20400 CLEAR:MODE7:FORX=0TO1:PRINTTAB(4,9+X);CHR$141;CHR$134;"Well done! You got them all!":NEXT 20410 PRINT'"Robertson's will be along to scrape up the remains" 20420 FORX=1TO5:SOUND1,-15,180-10*X,5:SOUND1,0,0,5:NEXT 20430 GOTO20360 20440 DEFPROCinst 20450 FORX=0TO1:PRINTTAB(1,X);CHR$141;CHR$129;"ATTACK OF THE LESBIAN COMMUNISTS":NEXT 20460 PRINT" The Greenham Common Game" 20470 PRINT'"You represent the forces of Good and Sanity,as embodied by the Thatcher Government.Several leftist subversives, who call themselves 'peace women' but" 20480 PRINT"are really lesbian communists,are prac- tising sabotage on the fence of the nuclear base at Greenham Common by cutting holes in the fence with a view" 20490 PRINT"to introducing Russian agents to the cruise missile silos within.Your job is to align the crosswires on them and thenscramble a steamroller to run them over."; 20500 PRINT"As a last resort,the top wire of the fence can be electrified;unfortunately as the base is far from civilisation theelectricity comes from batteries,which" 20510 PRINT"will only last for 10 electrifications." 20520 PRINT'"Press any key to continue" 20530 A=GET:CLS 20540 FORX=0TO1:PRINTTAB(14,X);CHR$141;CHR$134;"CONTROLS":NEXT 20550 PRINT'''"X Move horizontal crosswire down" 20560 PRINT'"C Move horizontal crosswire up" 20570 PRINT'", Move vertical crosswire left" 20580 PRINT'". Move vertical crosswire right" 20590 PRINT'"V Electrify fence" 20600 PRINT'"M Electrify fence" 20610 PRINT'"Space Scramble steamroller to splat" 20620 PRINT'''"Press any key to start" 20630 A=GET: ENDPROC