0 CLEAR500:GOSUB2000:GOTO100
1 RETURN
2 PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:RETURN
3 PRINT@A(X,Y),A$(D);:PRINT@B(X,Y),B$(D);:RETURN
4 ON1-(X>1)GOTO40:ONK(PEEK(A(X-2,Y)+M))GOTO40,40,42,40:GOTO42
5 ON1-(X<14)GOTO50:ONK(PEEK(A(X+2,Y)+M))GOTO50,50,52,50:GOTO52
6 ON1-(Y>1)GOTO60:ONK(PEEK(A(X,Y-2)+M))GOTO60,60,62,60:GOTO62
7 ON1-(Y<6)GOTO70:ONK(PEEK(A(X,Y+2)+M))GOTO70,70,72,70:GOTO72
8 ON1-(X>0)GOTO1:ONK(PEEK(A(X-1,Y)+M))GOTO4,90,80,1:PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:X=X-1:D=6:GOTO3
9 ON1-(X<15)GOTO1:ONK(PEEK(A(X+1,Y)+M))GOTO5,91,81,1:PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:X=X+1:D=5:GOTO3
10 ON1-(Y>0)GOTO1:ONK(PEEK(A(X,Y-1)+M))GOTO6,92,82,1:PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:Y=Y-1:D=7:GOTO3
11 ON1-(Y<7)GOTO1:ONK(PEEK(A(X,Y+1)+M))GOTO7,93,83,1:PRINT@A(X,Y),B$;:PRINT@B(X,Y),B$;:Y=Y+1:D=7:GOTO3
12 A=M(J)+SGN(X-M(J)):B=N(J):ONL(A+2,B+2)GOTO13:ONK(PEEK(A(A,B)+M))GOTO13,13,13,13,85:V(J)=RND(4):GOTO18
13 A=M(J):B=N(J)+SGN(Y-N(J)):ONL(A+2,B+2)GOTO14:ONK(PEEK(A(A,B)+M))GOTO14,14,14,14,85:V(J)=RND(4):GOTO18
14 A=M(J)+D(V(J)):B=N(J)+I(V(J)):ONL(A+2,B+2)GOTO15:ONK(PEEK(A(A,B)+M))GOTO15,15,15,15,85:GOTO18
15 FORD=1TO4:A=M(J)+D(D):B=N(J)+I(D):ONL(A+2,B+2)GOTO16:ONK(PEEK(A(A,B)+M))GOTO16,16,16,16,85:V(J)=D:D=4:NEXT:GOTO18
16 NEXT:ONRND(2)GOTO17:A=M(J)+SGN(X-M(J)):B=N(J):PRINT@A(A,B),A$(10);:PRINT@B(A,B),B$(10);:GOTO18
17 A=M(J):B=N(J)+SGN(Y-N(J)):PRINT@A(A,B),A$(10);:PRINT@B(A,B),B$(10);
18 PRINT@A(M(J),N(J)),B$;:PRINT@B(M(J),N(J)),B$;:M(J)=A:N(J)=B:D=RND(2):PRINT@A(A,B),A$(D);:PRINT@B(A,B),B$(D);:RETURN
20 FORT=1TOE:FORJ=1TOL:ONRND(G(J))GOSUB12,13:ONK(PEEK(2)ANDPEEK(K))GOSUB8,9,10,11:NEXT:NEXT:ONT-E+ZGOTO30,94,95,97,97,98
30 FORJ=1TO4:ONG(J)GOTO31,31:GOSUB550:SOUND1,3:SOUND10,2:SOUND1,3:I=I-1:J=4:NEXT:GOTO20
31 NEXT:GOTO20
40 PRINT@A(X-1,Y),A$(10);:PRINT@B(X-1,Y),B$(10);:PRINT@A(X-1,Y),B$;:PRINT@B(X-1,Y),B$;:RETURN
42 H=0:FORC=X-1TO1STEP-1:ONK(PEEK(A(C-1,Y)+M))GOTO49,49,46,49:PRINT@A(C,Y),B$;:PRINT@B(C,Y),B$;
44 PRINT@A(C-1,Y),A$(3);:PRINT@B(C-1,Y),B$(3);:NEXT:GOTO88
46 PRINT@A(C,Y),B$;:PRINT@B(C,Y),B$;:PRINT@A(C-1,Y),A$(9);:PRINT@B(C-1,Y),B$(9);:SOUND100,3
47 FORJ=1TO4:ON1-(C-1=M(J)ANDY=N(J))GOTO48:M(J)=-1:G(J)=0:H=H+1:I=I+1:J=4:NEXT:GOTO44
48 NEXT:STOP:GOTO44
49 C=1:NEXT:GOTO88
50 PRINT@A(X+1,Y),A$(10);:PRINT@B(X+1,Y),B$(10);:PRINT@A(X+1,Y),B$;:PRINT@B(X+1,Y),B$;:RETURN
52 H=0:FORC=X+1TO14:ONK(PEEK(A(C+1,Y)+M))GOTO59,59,56,59:PRINT@A(C,Y),B$;:PRINT@B(C,Y),B$;
54 PRINT@A(C+1,Y),A$(3);:PRINT@B(C+1,Y),B$(3);:NEXT:GOTO88
56 PRINT@A(C,Y),B$;:PRINT@B(C,Y),B$;:PRINT@A(C+1,Y),A$(9);:PRINT@B(C+1,Y),B$(9);:SOUND100,3
57 FORJ=1TO4:ON1-(C+1=M(J)ANDY=N(J))GOTO58:M(J)=-1:G(J)=0:H=H+1:I=I+1:J=4:NEXT:GOTO54
58 NEXT:STOP:GOTO54
59 C=14:NEXT:GOTO88
60 PRINT@A(X,Y-1),A$(10);:PRINT@B(X,Y-1),B$(10);:PRINT@A(X,Y-1),B$;:PRINT@B(X,Y-1),B$;:RETURN
62 H=0:FORC=Y-1TO1STEP-1:ONK(PEEK(A(X,C-1)+M))GOTO69,69,66,69:PRINT@A(X,C),B$;:PRINT@B(X,C),B$;
64 PRINT@A(X,C-1),A$(3);:PRINT@B(X,C-1),B$(3);:NEXT:GOTO88
66 PRINT@A(X,C),B$;:PRINT@B(X,C),B$;:PRINT@A(X,C-1),A$(9);:PRINT@B(X,C-1),B$(9);:SOUND100,3
67 FORJ=1TO4:ON1-(X=M(J)ANDC-1=N(J))GOTO68:M(J)=-1:G(J)=0:H=H+1:I=I+1:J=4:NEXT:GOTO64
68 NEXT:STOP:GOTO64
69 C=1:NEXT:GOTO88
70 PRINT@A(X,Y+1),A$(10);:PRINT@B(X,Y+1),B$(10);:PRINT@A(X,Y+1),B$;:PRINT@B(X,Y+1),B$;:RETURN
72 H=0:FORC=Y+1TO6:ONK(PEEK(A(X,C+1)+M))GOTO79,79,76,79:PRINT@A(X,C),B$;:PRINT@B(X,C),B$;
74 PRINT@A(X,C+1),A$(3);:PRINT@B(X,C+1),B$(3);:NEXT:GOTO88
76 PRINT@A(X,C),B$;:PRINT@B(X,C),B$;:PRINT@A(X,C+1),A$(9);:PRINT@B(X,C+1),B$(9);:SOUND100,3
77 FORJ=1TO4:ON1-(X=M(J)ANDC+1=N(J))GOTO78:M(J)=-1:G(J)=0:H=H+1:I=I+1:J=4:NEXT:GOTO74
78 NEXT:STOP:GOTO74
79 C=6:NEXT:GOTO88
80 GOSUB2:X=X-1:GOSUB3:GOTO84
81 GOSUB2:X=X+1:GOSUB3:GOTO84
82 GOSUB2:Y=Y-1:GOSUB3:GOTO84
83 GOSUB2:Y=Y+1:GOSUB3:GOTO84
84 FORT=1TO5:D=7:GOSUB3:SOUND200,5:D=8:GOSUB3:SOUND1,3:NEXT:D=1:GOSUB3:T=E+2:J=4:K=0:RETURN
85 GOSUB18:SOUND1,1:GOTO84
86 FORT=1TO5:PRINT@32*11+11,"+ 5000 bonus";:SOUND200,1:SOUND205,1:SOUND225,1:PRINTCHR$(8)CHR$(8)CHR$(8)CHR$(8)CHR$(8);
87 PRINT"BONUS";:SOUND200,1:SOUND205,1:SOUND225,1:NEXT:SC=SC+5000:RETURN
88 IFI>=4THENT=E+1:J=4
89 SC=SC+(H*H*100):RETURN
90 GOSUB2:X=X-1:D=6:SOUND200,1:SOUND205,1:SOUND225,1:SC=SC+500:S=S+1:GOTO3
91 GOSUB2:X=X+1:D=5:SOUND200,1:SOUND205,1:SOUND225,1:SC=SC+500:S=S+1:GOTO3
92 GOSUB2:Y=Y-1:D=7:SOUND200,1:SOUND205,1:SOUND225,1:SC=SC+500:S=S+1:GOTO3
93 GOSUB2:Y=Y+1:D=7:SOUND200,1:SOUND205,1:SOUND225,1:SC=SC+500:S=S+1:GOTO3
94 PRINT@0,"SCORE:";SC;:FORT=1TO1500:NEXT:GOTO110
95 MN=MN-1:POKE16863,48+MN:IFMN=0THENPRINT@0,"SCORE:";SC;:GOSUB700:GOSUB3000:GOSUB4000:GOTO105
96 GOSUB540:SOUND200,1:FORT=1TO1000:NEXT:K=17023:GOTO20
97 CLS:PRINT@7*32+7,"CHALLENGE STAGE OVER";:PRINT@32*9+11,"SCORE:";SC;:ON1-(S>9)GOSUB1,86:FORT=1TO4000:NEXT:GOTO110
98 MN=MN-1:POKE16863,48+MN:IFMN=0THENPRINT@0,"SCORE:";SC;:GOSUB700:GOSUB3000:GOSUB4000:GOTO105
99 GOTO97
100 DIMA$(11),B$(11),B$,A(16,8),B(16,8),K(255),J,T,K,X,Y,A,B,M,D,M(4),N(4),D(4),I(4),V(4),L(19,22),G(4),L,C,E,H,I,S
101 DIMX(100),Y(100),I,MN,XX,YY,A,I$:GOSUB1000:FORX=0TO15:FORY=0TO7:A(X,Y)=(Y*2)*32+(X*2):B(X,Y)=(Y*2)*32+(X*2)+32:NEXT:NEXT
102 X=RND(-(PEEK(9)*256+PEEK(10)))
105 MN=3:LV=0:SC=0:GOSUB800
110 RESTORE:GOSUB150:GOSUB200:GOSUB500:GOSUB700:GOTO20
150 E=50:REM TIME FOR NEW BEE ** REGULAR STAGE **
151 EG=3:REM # OF EGGS
152 L=4:REM # OF BEES
153 BL=20:REM # OF BLANKS TO ADD TO MAZE+LV
154 Z=0:S=0:LV=LV+1:IFLV/6-INT(LV/6)=0THENMN=MN+1
160 IFMN>9THENMN=9
170 IFLV/5-INT(LV/5)=0THENGOSUB190
180 RETURN
190 CLS:PRINT@32*7+9,"CHALLENGE STAGE";:PRINT@32*9+2,"GET AS MANY EGGS AS YOU CAN!";
195 E=75:REM TIME TO FINISH ** CHALLENGE STAGE **
196 EG=10:REM # OF EGGS
197 L=1:REM # OF BEES
198 BL=20:REM # OF BLANKS TO ADD TO MAZE+LV
199 Z=3:FORT=1TO25:SOUND20+RND(10)*10,1:NEXT:RETURN
200 CLS3:X=4:Y=3:GOSUB2:Y=Y+1:GOSUB2:X(0)=X:Y(0)=Y:K=1
210 IFX<14THENIFK(PEEK(A(X+2,Y)+M))=1THEN260
220 IFX>1THENIFK(PEEK(A(X-2,Y)+M))=1THEN260
230 IFY<6THENIFK(PEEK(A(X,Y+2)+M))=1THEN260
240 IFY>1THENIFK(PEEK(A(X,Y-2)+M))=1THEN260
250 GOTO350
260 ONRND(4)GOTO270,280,290,300
270 XX=0:YY=-1:IFY>1THENIFK(PEEK(A(X,Y+YY+YY)+M))=1THENFORC=1TO2:PRINT@A(X,Y+(YY*C)),B$;:PRINT@B(X,Y+(YY*C)),B$;:NEXT:GOTO330
275 GOTO260
280 XX=0:YY=1:IFY<6THENIFK(PEEK(A(X,Y+YY+YY)+M))=1THENFORC=1TO2:PRINT@A(X,Y+(YY*C)),B$;:PRINT@B(X,Y+(YY*C)),B$;:NEXT:GOTO330
285 GOTO260
290 XX=1:YY=0:IFX<14THENIFK(PEEK(A(X+XX+XX,Y)+M))=1THENFORC=1TO2:PRINT@A(X+(XX*C),Y),B$;:PRINT@B(X+(XX*C),Y),B$;:NEXT:GOTO330
295 GOTO260
300 XX=-1:YY=0:IFX>1THENIFK(PEEK(A(X+XX+XX,Y)+M))=1THENFORC=1TO2:PRINT@A(X+(XX*C),Y),B$;:PRINT@B(X+(XX*C),Y),B$;:NEXT:GOTO330
305 GOTO260
330 X=X+(XX*2):Y=Y+(YY*2):X(K)=X:Y(K)=Y:K=K+1:GOTO210
350 K=K-1:X=X(K):Y=Y(K)
360 IFK=0THEN400
370 GOTO210
400 K=17023:Y=7:FORT=1TOBL+LV:X=RND(14)-1:Y=RND(7):GOSUB2:NEXT:X=15:FORY=1TO6:ONRND(2)GOSUB2:NEXT:RETURN
500 I=0:POKE16862,12
505 IFLV/6-INT(LV/6)=0THENFORT=1TO5:POKE16863,48+MN+64:SOUND200,1:POKE16863,48+MN:SOUND225,1:NEXT
507 POKE16863,48+MN:LV$=RIGHT$(STR$(LV),2):POKE16894,ASC(MID$(LV$,1,1)):POKE16895,ASC(MID$(LV$,2,1))
510 FORJ=1TOL:GOSUB550:NEXT
520 FORJ=1TOEG
530 D=4:X=RND(16)-1:Y=RND(7)-1:ONK(PEEK(A(X,Y)+M))GOTO530,530,530,530,530:GOSUB3:NEXT
540 D=5:X=1+RND(14)-1:Y=1+RND(6)-1:ONK(PEEK(A(X,Y)+M))GOTO540,540,540,540,540:GOTO570
550 M(J)=RND(15)-1:N(J)=RND(8)-1:ONK(PEEK(A(M(J),N(J))+M))GOTO550,550,550,550,550:PRINT@A(M(J),N(J)),A$(1);
560 PRINT@B(M(J),N(J)),B$(1);:V(J)=RND(4):G(J)=2:RETURN
570 ONK(PEEK(A(X-1,Y)+M))GOTO575,575,540
575 ONK(PEEK(A(X+1,Y)+M))GOTO580,580,540
580 ONK(PEEK(A(X,Y-1)+M))GOTO590,590,540
590 ONK(PEEK(A(X,Y+1)+M))GOTO595,595,540
595 GOSUB3:RETURN
600 DATA 170,8,170,8,176,8,185,8,185,8,176,8,170,8,159,8,147,8
610 DATA 147,8,159,8,170,8,170,12,159,4,159,16
620 DATA 170,8,170,8,176,8,185,8,185,8,176,8,170,8,159,8,147,8
630 DATA 147,8,159,8,170,8,159,12,147,4,147,16,-1,-1
640 DATA 159,8,159,8,170,8,147,8,159,8,170,4,176,4,170,8,147,8
650 DATA 159,8,170,4,176,4,170,8,159,8,147,8,159,8,108,16
660 DATA 170,8,170,8,176,8,185,8,185,8,176,8,170,8,159,8,147,8
670 DATA 147,8,159,8,170,8,159,12,147,4,147,16,-1,-1
700 READA,B
710 IFA<0ANDB<0THENRETURN
720 SOUNDA,B/4
740 GOTO700
800 IFSF=1THEN820
810 SF=1:GOSUB2000:X=14:Y=2:D=1:GOSUB3:X=14:Y=4:D=3:GOSUB3:X=14:Y=6:D=4:GOSUB3:PRINT@480+16,"p=PLAY s=SCORES";:GOTO890
820 GOSUB2000:GOSUB3100:PRINT@480+16,"p=PLAY h=HELP  ";
890 I$=INKEY$:IFI$=""THEN890
891 IFI$="P"THEN896
892 IFI$="H"THEN810
893 IFI$="S"THEN820
894 IFI$="Q"THENEND
895 GOTO890
896 RETURN
1000 A$(1)=""
1010 B$(1)=""
1020 A$(2)=""
1030 B$(2)=""
1040 A$(3)=""
1050 B$(3)=""
1060 A$(4)=""
1070 B$(4)=""
1100 A$(5)=""
1110 B$(5)=""
1130 A$(6)=""
1140 B$(6)=""
1160 A$(7)=""
1170 B$(7)=""
1190 A$(8)=""
1200 B$(8)=""
1210 B$=""
1220 A$(9)=""
1230 B$(9)=""
1240 A$(10)=""
1250 B$(10)=""
1300 K(65)=1:K(83)=2:K(87)=3:K(90)=4:K(71)=1:K(74)=2:K(89)=3:K(72)=4
1310 M=16384
1320 K(175)=1:K(199)=2:K(157)=3:K(158)=3:K(12)=4:K(181)=5:K(183)=5
1330 D(1)=1:I(1)=0:D(2)=-1:I(2)=0:D(3)=0:I(3)=1:D(4)=0:I(4)=-1
1400 FORX=0TO19:FORY=0TO11:L(X,Y)=1:NEXT:NEXT
1410 FORX=2TO17:FORY=2TO9:L(X,Y)=2:NEXT:NEXT
1500 RETURN
2000 CLS
2001 PRINT"    PENGUINO    BY JIM GERRIE"
2005 PRINT"            RETROSPECTIVA"
2010 PRINT"          BASIC GAME"
2020 PRINT"        CONTEST 2012"
2030 PRINT"           
2040 PRINT"        SQUASH"
2050 PRINT"          SNOW-BEES 100PTS";
2060 PRINT"     Ͽ     BY PUSHING
2070 PRINT"        ICE BLOCKS."
2080 PRINT"      COLLECT"
2090 PRINT"      PENGUIN 
2100 PRINT"    EGGS FOR 500PTS"
2110 PRINT"      USE:  W"
2120 PRINT"             A S"
2130 PRINT"                Z"
2140 PRINT"    ";:RETURN
3000 SW=0
3010 FORI=1TO9:IFHS(I)<HS(I+1)THENTM=HS(I):TM$=NM$(I):HS(I)=HS(I+1):NM$(I)=NM$(I+1):HS(I+1)=TM:NM$(I+1)=TM$:SW=SW+1
3030 NEXT
3090 IFSW<>0THEN3000
3095 RETURN
3100 PRINT@32*1+16,"     TOP 10     ";:PRINT@32*2+16,"   HIGH SCORES  ";:PRINT@32*3+16,"";
3110 FORA=1TO10:PRINT@32*(3+A)+16,"              ";:NEXT
3120 PRINT@32*14+16,"";
3200 FORA=1TO10:PRINT@32*(3+A)+17,A;NM$(A);HS(A);:NEXT
3210 RETURN
4000 IFSC>HS(10)THEN4050
4020 RETURN
4050 CLS:PRINT"YOU MADE THE TOP 10!"
4060 INPUT"INITIALS (MAX 3)";TM$:NM$=LEFT$(TM$+"   ",3):IFNM$="ASS"ORNM$="FU "ORNM$="BUM"THENNM$="!@#"
4070 FORX=10TO1STEP-1
4080 IFSC>HS(X-1)ANDX>1THENHS(X)=HS(X-1):NM$(X)=NM$(X-1):GOTO4100
4090 HS(X)=SC:NM$(X)=NM$:X=1
4100 NEXT:RETURN
