10 REM FLYING GEESE
20 REM à MICHAEL BEWS
25 REM PAN BOOKS 1984
30 MODE 1:BORDER 1:INK 0,1:INK 1,24:INK 2,18:INK 3,6:PAPER 0:PEN 1
40 GOTO 340
50 REM SHOOT ROUTINE
60 FOR X=O TO FR:D(X)=ET-X+SGN(O-TW*INT(RND*TW)):LOCATE G(X)-O+1,H(X)+1:PRINT"  ";:FOR Z=O TO FR:F=-F:LOCATE G(X)+1,D(X)+1:PRINT" ";A$(TH-F);:NEXT Z
70 IF INKEY(9)<>0 THEN GOTO 120
80 SOUND 1,1000,1:SOUND 1,1500,1:SOUND 1,800,1
90 LOCATE TH+1,SI+1:PRINT CHR$(235);:SH=SH+O:LOCATE SX+1,1:PRINT SH;:FOR Z=1 TO 5:NEXT:LOCATE TH+1,SI+1:PRINT " ";:IF G(X)=EV OR G(X)=TV THEN FG=1:B=B+O:LOCATE G(X)+1,D(X)+1:PRINT"   ";:LOCATE TN,1:PRINT B;:G(X)=O-TW:H(X)=O
100 IF FG=0 THEN GOTO 120 ELSE FG=0
110 FOR Y=D(X) TO NI STEP TW:LOCATE FO+1,Y-TW+1:PRINT" ";:LOCATE FO+1,Y-O+1:PRINT" ";:LOCATE FO+1,Y+1:PRINT CHR$(236);:LOCATE FO+1,Y+O+1:PRINT CHR$(237);:NEXT Y:LOCATE FO+1,NI-O+1:PRINT" ";:LOCATE FO+1,NI+1:PRINT" ";:LOCATE FO+1,NI+O+1:PRINT" ";
120 H(X)=D(X):G(X)=G(X)+TW:IF G(X)>TN THEN LOCATE G(X)-O+1,H(X)+1:PRINT"  ";:G(X)=O
130 NEXT X:IF SH>99 THEN 240
140 GOTO 60
150 FOR X=1 TO 4:H(X)=1:G(X)=X*5-4:NEXT x
160 CLS:PEN 3:LOCATE 1,1:PRINT"SHOTS:   ";:LOCATE 31,1:PRINT"SCORE:   ";:PEN 1:LOCATE 22,14:PRINT STRING$(3,235);:LOCATE 21,15:PRINT STRING$(5,235);:LOCATE 20,16:PRINT STRING$(7,235);:LOCATE 20,17:PRINT STRING$(7,235);
170 LOCATE 21,18:PRINT CHR$(235);CHR$(143);:LOCATE 22,18:PRINT CHR$(235);:LOCATE 23,18:PRINT CHR$(234);CHR$(235);CHR$(235);:LOCATE 23,19:PRINT CHR$(234);:LOCATE 23,20:PRINT CHR$(234);
180 LOCATE 32,13:PRINT STRING$(3,235);:LOCATE 31,14:PRINT STRING$(5,235);:LOCATE 30,15:PRINT STRING$(7,235);:LOCATE 30,16:PRINT STRING$(7,235);
190 LOCATE 31,17:PRINT CHR$(235);CHR$(143);:LOCATE 32,17:PRINT CHR$(235);:LOCATE 33,17:PRINT CHR$(234);CHR$(235);CHR$(235);:LOCATE 33,18:PRINT CHR$(234);:LOCATE 33,19:PRINT CHR$(234);
200 LOCATE 1,21:PRINT STRING$(10,235);"        ";STRING$(22,235);:LOCATE 1,22:PRINT STRING$(40,143);
210 LOCATE 2,19:PRINT CHR$(243);:LOCATE 2,20:PRINT CHR$(244);
220 LOCATE 25,19:PRINT CHR$(243);:LOCATE 25,20:PRINT CHR$(244);
230 GOTO 60
240 REM END ROUTINE
250 FOR X=-20 TO 40:SOUND 1,(X+60),3:NEXT
260 IF B> TOT THEN TOT=B
270 LOCATE 12,9:PEN 2:PRINT"G A M E  O V E R":PEN 1
280 LOCATE 5,12:PRINT"LAST SCORE:";B;:LOCATE 20,12:PRINT"HIGHEST SCORE:";TOT; 
290 LOCATE 9,15:PRINT"PRESS ANY KEY TO CONTINUE";
300 IF INKEY$<>" " THEN 300
310 IF INKEY$="" THEN 310 ELSE SH=0:B=0:GOTO 150
320 REM INITIALISE
330 REM
340 SX=6:HY=30:TOT=0:SH=0:FI=15:TV=12:EV=11:NI=19:TY=20:EN=18:TF=34:SI=16:FO=14:ET=8:F=-1:O=1:TW=2:TH=3:FR=4:TN=37
350 REM GRAPHICS
360 SYMBOL AFTER 230
370 SYMBOL 231,2,6,7,7,127,31,8,0
380 SYMBOL 232,0,0,48,104,254,192,0,0 
390 SYMBOL 233,0,0,0,0,127,31,15,3
400 SYMBOL 243,1,98,244,232,88,232,248,224
410 SYMBOL 244,224,224,144,144,144,144,144,216
420 SYMBOL 234,85,170,85,170,85,170,85,170
430 SYMBOL 235,66,16,132,33,4,81,4,160 
440 SYMBOL 236,0,16,18,54,118,62,60,60 
450 SYMBOL 237,48,56,28,20,24,16,16,0 
460 A$(4)=CHR$(231)+CHR$(232)
470 A$(2)=CHR$(233)+CHR$(232)
480 GOTO 150