1 GOSUB1000:GOSUB80:GOSUB50:SYS49152 2 POKEW1,17:SYS49408:C=PEEK(CX):IFCTHEND=PEEK(SP+A(C)):GOSUB10 3 IFPEEK(HM)THENGOSUB20 4 FORJ=RTO20-DL:NEXT:BZ=BZ+R:IFBZ=MXTHENBZ=.:GOSUB50 5 IFSK>NTHENGOSUB7 6 POKEH1,(PEEK(251)/5+9):POKEW1,16:GOTO2 7 KL=KL+R:IFKL>NTHENKL=.:POKEFAST,INT(RND(R)*M):POKE845,(.) 8 IFRND(R)>PTHENPOKEFAST,V:POKE845,(.) 9 RETURN 10 POKEBD,2:FORJ=RTO40:POKESP+A(C),D:POKEW1,129:SYS49608:POKEW1,128:NEXT 11 SC=SC-SK:IFSC199THENGOSUB70:GOSUB80 22 POKESP+21,0:PRINTSC$"[153]SCORE:"SC 23 FORJ=100TO1STEP-2:SYS49608:POKEW1,21:POKEH1,J:POKEW1,20:NEXT 24 PRINTSC$" ":POKEHM,0:POKECX,0 50 REM*** 'NEW COOP' 51 POKESP+21,0:POKEW3,21:POKEH3,PEEK(251):PRINTSC$"[158]NEW COOP":PRINT"[153]"; 52 FORJ=1TO24:PRINT"[218][218]":NEXT 53 PRINT"[218][218]":POKEW1,16:POKEW3,20 54 IFHF=0THENHF=1:GOTO58 55 HF=0:J=1062:FS=40*(INT(RND(1)*25)) 56 HI=INT((FS+J)/256):LO=(FS+J)-(HI*256):POKE843,LO:POKE844,HI 57 SYS49615:POKEJ+FS+L1,10:PRINTSC$" ":POKESP+21,255:GOSUB100:RETURN 58 J=1025:FS=40*(INT(RND(1)*25)) 59 HI=INT((FS+J)/256):LO=(FS+J)-(HI*256):POKE843,LO:POKE844,HI 60 SYS49615:POKEJ+FS+L1,10:PRINTSC$" ":POKESP+21,255:GOSUB100:RETURN 70 REM** NEXT LEVEL 71 PRINTCHR$(142):FORJ=1TO500:NEXT:PRINTCHR$(14):POKESP+21,0:POKEW2,21 72 POKEW1,20:POKEFV,3 :FORK=5TO115STEP2:POKEW3,21:POKEBD,K:POKE646,K 73 POKEH1,K*1.4:PRINTSC$"NEXT LEVEL?":POKEH3,K/4:SYS49608:POKEW3,20:NEXT 74 POKEW1,20:POKEFV,66:FORJ=1TO3500:NEXT:POKEH3,100:POKEBD,0:POKEW2,129:RETURN 80 REM*** PICK SKILL LEVEL 81 POKESP+21,0:POKEFNA(0),32:KZ=0 82 PRINTSC$"[158][157][157][157]PICK SKILL LEVEL" 83 PRINTSC$"[155](1 - 6)" 84 GOSUB200 85 IFKZ<>1THENSYS49608:GOTO84 86 PRINTSC$"[157][157][157] " 87 PRINTSC$" " 88 SC=0:RETURN 100 REM*** PAUSE ROUTINE 101 IFFNB(.)THENRETURN 102 POKEBD,13:PRINTSC$"[158] PAUSING [146]"SC$"[155]SCORE:"SC 103 PRINTSC$"FIRE=PLAY"SC$"ZERO=QUIT" 104 FORJ=1TO1500:NEXT:POKEBD,0 105 SYS49608:S=S+1:IFINT(S/43)=S/43THENPOKEW3,20:POKEH3,PEEK(SP+1):POKEW3,21 106 IFFNB(.)=.THEN110 107 GOSUB200 108 IFSK>5THENGOSUB7 109 GOTO105 110 PRINTSC$" "SC$" "SC$" " 111 PRINTSC$" " 112 POKEW3,20:POKEBD,2:POKEBD,5:POKESP+31,0:POKEBD,7:POKEBD,3:POKEBD,0:RETURN 200 REM*** SKILL 201 G=PEEK(197) 203 IFG=35THEN300 204 IFG=56THENSK=1:DL=1:POKEFAST,1:POKEROT,4:POKE829,0:POKE845,0:KZ=1:RETURN 205 IFG=59THENSK=2:DL=5:POKEFAST,2:POKEROT,3:POKE829,0:POKE845,0:KZ=1:RETURN 206 IFG=8THENSK=3:DL=10:POKEFAST,3:POKEROT,2:POKE829,0:POKE845,0:KZ=1:RETURN 207 IFG=11THENSK=4:DL=15:POKEFAST,4:POKEROT,1:POKE829,0:POKE845,0:KZ=1:RETURN 208 IFG=16THENSK=5:DL=19:POKEFAST,5:POKEROT,0:POKE829,0:POKE845,0:KZ=1:RETURN 209 IFG=19THENSK=6:DL=19:POKEFAST,6:POKEROT,0:POKE829,0:POKE845,0:KZ=1:RETURN 210 RETURN 300 REM*** QUIT 301 POKE49221,2:POKE49228,0:POKE829,0:POKE845,0:POKE646,7 302 FORJ=SP+1TOSP+15STEP2:POKEJ,123:NEXT:POKE214,24:PRINT:FORJ=1TO24 303 PRINT:FORK=1TO20:NEXTK,J:POKEW3,20 304 POKEW3,21:PRINTSC$"BYE BYE . . .":FORJ=1TO2400:NEXT:POKESP+21,0 305 FORJ=L1TOVM+3:POKEJ,0:NEXT:SYS64738 1000 REM*** INITIALIZE 1001 REM**ML RTNS: SPRITEMOVE=49152:BIRDMOVE=49408:FLAPWING=49608:PUTMATE=49615 1002 POKE54296,47:POKE54295,66 :POKE53272,21:POKE53281,0:BD=53280:POKEBD,0 1004 GOSUB10000:GOSUB12000:FAST=49221:ROT=49228:R=1:N=5:M=7:P=(.98):V=28:MX=200 1006 REM*** SET UP SPRITES 1008 POKE53275,255:SP=53248:CX=SP+31:POKECX,0 1012 FORJ=2040TO2047:POKEJ,221:NEXT 1014 B=80:FORJ=SP+1TOSP+15STEP2:POKEJ,B:B=B+20:NEXT 1016 POKESP+23,0:POKESP+29,24 1018 POKESP,40:POKESP+2,70:POKESP+4,100:POKESP+6,130:POKESP+8,188:POKESP+10,245 1020 POKESP+12,20:POKESP+14,48:POKESP+16,192 1022 POKESP+39,7:POKESP+40,3:POKESP+41,4:POKESP+42,13 1024 POKESP+43,7:POKESP+44,3:POKESP+45,13:POKESP+46,4 1025 REM ML VARBLS, ETC IN CASET BUFR 1026 POKE828,221:REM START SPRITE PNTRS 1028 POKE829,1:REM SPRITE ROTATE COUNTR 1030 POKE830,40:POKE831,0:REM LINE VAL 1032 POKE832,0:REM R/L JYSTK FLAG 1034 POKE833,0:REM U/D JYSTK FLAG 1036 POKE834,91:REM BIRD CHAR VAL 1038 POKE835,1:POKE836,4:REM UP LIMIT 1040 POKE837,230:POKE838,6:REM DN LIMIT 1042 POKE841,1:REM SPRITE MOVE COUNTR 1044 HM=842:POKEHM,0:REM 'HOME' FLAG 1046 POKE843,95:POKE844,5:REM MATE'S FIRST LOCATION 1048 POKE251,144:POKE252,4:REM FIRST BIRD LOCATION - ZERO PAGE 1049 POKE845,0:REM FILTER CUT COUNTR 1050 DIMA(129):A(1)=1:A(2)=3:A(4)=5:A(8)=7:A(16)=9:A(32)=11:A(64)=13:A(128)=15 1052 HF=0:BZ=0 1054 DEFFNA(X)=((PEEK(252)*256)+PEEK(251)) 1056 DEFFNB(X)=(PEEK(56320)AND16) 1058 SC$="" 1060 REM*** SOUND VRBLS 1064 L1=54272:H1=L1+1:W1=L1+4:W2=L1+11 1068 L3=L1+14:H3=L1+15:W3=L1+18 1070 FH=L1+22:FV=L1+23:VM=L1+24 1074 REM*** SETUP SOUNDS 1076 POKEL1+5,64:POKEL1+12,15:POKEL1+19,12 1078 POKEL1+7,255:POKEL1+8,255 1082 POKEL1+6,0:POKEL1+13,240:POKEL1+20,12 1084 POKEFH,90 1100 GOSUB11000 3000 REM*** DRAW COOPS 3004 FORJ=1984TO1024STEP-40:POKEJ+L1,10:POKEJ,90:POKEJ+L1+1,10:POKEJ+1,90 3006 POKEJ+L1+38,10:POKEJ+38,90:POKEJ+L1+39,10:POKEJ+39,90:NEXT 3008 FORJ=1024TO1984STEP40:POKEJ+L1,13:POKEJ+L1+1,13:POKEJ+L1+38,13 3010 POKEJ+L1+39,13:NEXT:RETURN 10000 REM*** TITLE 10001 PRINT"[147][153]"CHR$(142); 10002 PRINT"[169] [223]" 10003 PRINT"[169] [223]" 10004 PRINT" P " 10005 PRINT" R " 10006 PRINT" O " 10007 PRINT" P " 10008 PRINT"[223] S [146][169]" 10009 PRINT" [146]" 10010 PRINT"[223] [146][169]" 10011 PRINT" [146]" 10012 PRINT"[169] [223]" 10013 PRINT"[169] [223] [213][195][201] [169] [223]" 10014 PRINT" PROPS [221] [221] PROPS " 10015 PRINT"[223] [146][169] [202][195][203] [146][223] [146][169]" 10016 PRINT"[223] [146][169]" 10017 PRINT" [146]" 10018 PRINT"[169] [223]" 10019 PRINT" [146]" 10020 PRINT"[169] P [223]" 10021 PRINT" R " 10022 PRINT" O " 10023 PRINT" P " 10024 PRINT" S " 10025 PRINT"[223] [146][169]" 10026 PRINT"[223] [146][169][159]READING[157][157][157]DATA..." 10027 Q$="":POKE214,19:PRINT 10028 PRINTQ$"JOYSTICK":PRINTQ$"IN PORT 2" 10999 RETURN 11000 REM*** INSTRUCTIONS 11002 PRINT"[147]":POKE53272,31 11004 R$="" 11006 PRINT"[153][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218]" 11007 PRINT"[218][218][218][218]" 11008 PRINTR$"[218][218][158] YOU ARE A PIGEON X[158] LOST [153][218][218]" 11010 PRINTR$"[218][218][158] IN A DANGEROUS SKY FULL [153][218][218]" 11012 PRINTR$"[218][218][158] OF WHIRLING PROPELLERS. [153][218][218]" 11013 PRINT"[218][218][218][218]" 11014 PRINTR$"[218][218][159] BACK AT THE COOP, YOUR [153][218][218]" 11016 PRINTR$"[218][218][159] MATE WAITS FAITHFULLY-- [150]X[153][218]" 11017 PRINT"[218][218][218][218]" 11018 PRINTR$"[218][218][150] WATCH OUT FOR THE PROPS [153][218][218]" 11020 PRINTR$"[218][218][150] WHILE YOU FLY FOR HOME. [153][218][218]" 11021 PRINT"[218][218][218][218]" 11022 PRINTR$"[218][218][158] HIT FIRE BUTTON DURING [153][218][218]" 11024 PRINTR$"[218][218][158] SCORE DISPLAY TO PAUSE, [153][218][218]" 11026 PRINTR$"[218][218][158] OR CHANGE SKILL LEVEL. [153][218][218]" 11027 PRINT"[218][218][218][218]" 11028 PRINTR$"[218][218][159] HIT ZERO KEY DURING ANY [153][218][218]" 11030 PRINTR$"[218][218][159] PAUSE TO QUIT PLAYING. [153][218][218]" 11032 PRINT"[218][218][218][218]" 11038 PRINTR$"[218][218][158] PRESS FIRE BUTTON NOW [153][218][218]" 11040 PRINTR$"[218][218][158] TO CHOOSE SKILL LEVEL. [153][218][218]" 11042 PRINT"[218][218][218][218]" 11044 PRINT"[218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218][218]" 11050 POKEW3,16:POKEH3,1:POKEL3,90:POKEW2,129 11052 SYS49608:POKEFH,PEEK(VM+3)/2:IFFNB(0)THEN11052 11054 PRINT""CHR$(142):FORJ=1TO200:NEXT:PRINTCHR$(14) 11056 PRINT"[147]":POKEW3,20:SYS49920:REM WHITE COL MEMORY 11058 POKE843,254:POKE844,3:POKE251,220:POKEFH,2:RETURN 12000 REM** SPRITE SHAPE DATA 12001 IFPEEK(14081)=8ANDPEEK(15065)=195THENRETURN 12287 CK=0:FORJ=14080TO14142:READQ:CK=CK+Q:POKEJ,Q:NEXT 12288 DATA 0,8,0,0,24,0,0,56,0,0,56,0,0,56,0,0,24,0,0,16,0,0,16,0,0,0,0 12289 DATA 0,24,0,0,60,0,0,24,0,0,0,0,0,8,0,0,8,0,0,24,0,0,28,0,0,28,0,0,28 12290 DATA 0,0,24,0,0,16,0 12351 FORJ=14144TO14206:READQ:CK=CK+Q:POKEJ,Q:NEXT 12352 DATA 0,0,0,16,0,0,28,0,0,14,0,0,15,0,0,7,128,0,3,128,0,1,192,0,0,128 12353 DATA 0,0,24,0,0,60,0,0,24,0,0,2,0,0,3,128,0,1,192,0,1,224,0,0,240,0,0 12354 DATA 112,0,0,56,0,0,8,0,0,0 12415 FORJ=14208TO14270:READQ:CK=CK+Q:POKEJ,Q:NEXT 12416 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12417 DATA 0, 0,124,24, 62,255,189,255,124,24, 62, 0,0, 0,0,0,0,0,0,0,0,0,0 12418 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12479 FORJ=14272TO14334:READQ:CK=CK+Q:POKEJ,Q:NEXT 12480 DATA 0,0,0,0,0,8,0,0,56,0,0,112,0,0,240,0,1,224,0,1,192,0,3,128,0,2 12481 DATA 0,0,24,0,0,60,0,0,24,0,0,64,0,1,192,0,3,128,0,7,128,0,15 12482 DATA 0,0,14,0,0,28,0,0,16,0,0,0,0,0 12500 IFCK<>5053THENPRINT"ERROR IN DATA LINES 12000-12482":END 49000 REM*** POKE PROPMOVE RTN 49151 CJ=0:FORJ=49152TO49310:READQ:CK=CK+Q:POKEJ,Q:NEXT 49152 DATA 120, 173, 21, 3, 201, 234 49158 DATA 208, 13, 169, 33, 141, 20 49164 DATA 3, 169, 192, 141, 21, 3 49170 DATA 76, 31, 192, 169, 49, 141 49176 DATA 20, 3, 169, 234, 141, 21 49182 DATA 3, 88, 96, 169, 0, 141 49188 DATA 73, 3, 238, 1, 208, 206 49194 DATA 3, 208, 238, 5, 208, 206 49200 DATA 7, 208, 238, 9, 208, 206 49206 DATA 11, 208, 238, 13, 208, 206 49212 DATA 15, 208, 238, 73, 3, 173 49218 DATA 73, 3, 201, 2, 208, 222 49224 DATA 173, 61, 3, 201, 5, 240 49230 DATA 6, 238, 61, 3, 76, 49 49236 DATA 234, 173, 60, 3, 201, 224 49242 DATA 208, 5, 169, 220, 141, 60 49248 DATA 3, 141, 248, 7, 141, 249 49254 DATA 7, 141, 250, 7, 141, 251 49260 DATA 7, 141, 252, 7, 141, 253 49266 DATA 7, 141, 254, 7, 141, 255 49272 DATA 7, 238, 60, 3, 169, 0 49278 DATA 141, 61, 3, 173, 69, 192 49284 DATA 10, 10, 10, 10, 10, 141 49290 DATA 78, 3, 24, 173, 77, 3 49296 DATA 109, 78, 3, 141, 77, 3 49302 DATA 141, 22, 212, 206, 8, 212 49308 DATA 76, 49, 234 49350 IFCK<>22679THENPRINT"ERROR IN DATA LINES 49000-49308":END 49400 REM*** POKE BIRDMOVE RTN 49407 CK=0:FORJ=49408TO49643:READQ:CK=CK+Q:POKEJ,Q:NEXT 49408 DATA 160, 0, 169, 32, 145, 251 49414 DATA 165, 251, 133, 253, 165, 252 49420 DATA 133, 254, 173, 0, 220, 162 49426 DATA 0, 74, 176, 1, 136, 74 49432 DATA 176, 1, 200, 74, 176, 1 49438 DATA 202, 74, 176, 1, 232, 74 49444 DATA 142, 64, 3, 140, 65, 3 49450 DATA 173, 64, 3, 201, 1, 240 49456 DATA 18, 201, 255, 240, 3, 76 49462 DATA 116, 193, 165, 253, 208, 2 49468 DATA 198, 254, 198, 253, 76, 73 49474 DATA 193, 230, 253, 208, 2, 230 49480 DATA 254, 160, 0, 177, 253, 201 49486 DATA 32, 208, 3, 76, 91, 193 49492 DATA 201, 90, 208, 14, 76, 108 49498 DATA 193, 165, 253, 133, 251, 165 49504 DATA 254, 133, 252, 76, 116, 193 49510 DATA 169, 1, 141, 74, 3, 96 49516 DATA 165, 251, 133, 253, 165, 252 49522 DATA 133, 254, 173, 65, 3, 201 49528 DATA 1, 240, 39, 201, 255, 240 49534 DATA 3, 76, 200, 193, 162, 0 49540 DATA 165, 253, 208, 2, 198, 254 49546 DATA 198, 253, 232, 224, 40, 208 49552 DATA 243, 24, 165, 253, 205, 67 49558 DATA 3, 165, 254, 237, 68, 3 49564 DATA 176, 34, 240, 32, 144, 38 49570 DATA 162, 0, 230, 253, 208, 2 49576 DATA 230, 254, 232, 224, 40, 208 49582 DATA 245, 24, 165, 253, 205, 69 49588 DATA 3, 165, 254, 237, 70, 3 49594 DATA 144, 4, 240, 2, 176, 8 49600 DATA 165, 253, 133, 251, 165, 254 49606 DATA 133, 252, 160, 0, 173, 66 49612 DATA 3, 145, 251, 173, 75, 3 49618 DATA 133, 253, 173, 76, 3, 133 49624 DATA 254, 173, 66, 3, 145, 253 49630 DATA 201, 96, 240, 4, 238, 66 49636 DATA 3, 96, 169, 91, 141, 66 49642 DATA 3, 96 49650 IFCK<>33160THENPRINT"ERROR IN DATA LINES 49400-49642":END 49662 REM*** POKE COPYCHAR RTN 49663 CK=0:FORJ=49664TO49704:READQ:CK=CK+Q:POKEJ,Q:NEXT 49664 DATA 169,0,133,4,169,208,133,5 49672 DATA 169,0,133,6,169,56,133,7 49680 DATA 162,0,160,0,177,4,145,6 49688 DATA 200,192,255,208,247,230,5,230 49696 DATA 7,232,224,16,208,236,160,0,96 49700 IFCK<>4894THENPRINT"ERROR IN DATA LINES 49662-49696":END 49918 REM*** POKE WHITEMEM RTN 49919 CK=0:FORJ=49920TO49939:READQ:CK=CK+Q:POKEJ,Q:NEXT 49920 DATA 162, 0, 169, 1, 157, 0 49926 DATA 216, 157, 0, 217, 157, 0 49932 DATA 218, 157, 0, 219, 232, 208 49938 DATA 241, 96 49950 IFCK<>2607THENPRINT"ERROR IN DATA LINES 49918-49938":END 62000 REM* COPY CHAR SET TO 14336 62002 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251 62004 SYS49664 62006 POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1 62400 REM** POKE NEW CHARACTER DATA ** 62500 CK=0:FORJ=15064TO15071:READQ:CK=CK+Q:POKEJ,Q:NEXT 62501 DATA 0,195,102,60,24,0,0,0 62502 FORJ=15072TO15079:READQ:CK=CK+Q:POKEJ,Q:NEXT 62503 DATA 0,0,195,126,24,0,0,0 62504 FORJ=15080TO15087:READQ:CK=CK+Q:POKEJ,Q:NEXT 62505 DATA 0,0,66,255,153,0,0,0 62506 FORJ=15088TO15095:READQ:CK=CK+Q:POKEJ,Q:NEXT 62507 DATA 0,0,0,90,255,129,0,0 62508 FORJ=15096TO15103:READQ:CK=CK+Q:POKEJ,Q:NEXT 62509 DATA 0,0,0,24,126,195,0,0 62510 FORJ=15104TO15111:READQ:CK=CK+Q:POKEJ,Q:NEXT 62511 DATA 0,0,0,24,60,102,195,129 62512 FORJ=15056TO15063:READQ:CK=CK+Q:POKEJ,Q:NEXT 62513 DATA 255, 60, 24, 24, 24, 24, 60,255 62600 IFCK<>3255THENPRINT"ERROR IN DATA LINES 62000-62513":END 63000 RETURN