ROM Computer Magazine Archive ROM MAGAZINE ISSUE 10 — FEBRUARY/MARCH 1985 / PAGE 16

 FLIGHT OF THE CONDOR

by Jack Chung

Flight of the Condor


    "Flight of the Condor" is a futuristic, strategic, and arcade action machine language game. The game requires one joystick and an Atari 400/800 computer.

    When the game is run, it asks you a number of questions before you begin playing. The first is how many refuelling castles you want. This can be from one to ten, depending how lucky you feel. If you pick zero, you will still have one because in the top left hand corner of the strategic screen there is always a refuelling castle. The next question asks you how many Vulture squadrons you wish to fight, where ten is the hardest, and one is the easiest. The third question that needs to be resolved is the Vulture Difficulty. This is from one to seven, where one is the easiest, and seven is the most difficult. This skill level makes the Vultures fly higher (easy level), or lower (difficult level), depending on the skill level chosen. The last question that the computer asks you is what you want the Doom's-Day Hour to be. This can be from one to ninety-nine, depending on how difficult you want to make it for yourself. The Doom's-Day Hour, or Ultimatum Hour, is the amount of turns you have before the Vultures overrun your planet.
    The game is actually two games in one. The first screen which appears is called the strategic screen and contains 162 squares or sectors. In each one is either nothing, a refuelling castle, or a Vulture. By moving your Condor with the joystick you can examine each sector. Each time you move one square you lose one energy point. If your energy points go below one, your game is over. To make this game a little easier, you have a scanner in which you can look at the contents of a sector without actually moving to it. Your scanner is activated by pressing your space bar. A cross will appear on the screen, and you can now move it to whichever sector that you wish to examine. Once it's on the sector you wish to look at, press your button. This will then tell you what is in it. To use your scanner will cost only one energy point, so you can check sectors that are far away without it being too costly.
    If, when moving your bird, you encounter another bird figure, you will enter into what I call the Tactical phase of the game. This is where the combat takes place between you and the Vultures. Your bird appears at the bottom of the screen while the Vulture swoops down from above, dropping boulders, trying to hit you. Whatever your energy was before you entered the sector determines the amount of hits you can take before being destroyed. You are able to move your Condor left and right to dodge the Vulture fire. To fire back at the Vulture, press your joystick button and direct your bullets by moving your joystick either left or right. The only way to leave an enemy sector is either by destroying the enemy or by being killed.
    The game is won when you have killed all of the Vultures or lost when your energy level runs out. The game is quite enjoyable, and I hope you have a good time playing it.
    It uses redefined characters to draw all the graphics in the strategic screen. In the Tactical screen, animated player/missile graphics are used. Also, a short assembly language subroutine is used to speed up the graphics in the Tactical phase of the game. The game is split up into four programs. The first program loads in the character set, the second program is the machine code in the form of data statements, and the third is the initialization and main part of the game. Save the first one as LCHAR.BAS, the second as LMAIN.BAS, and the third as MAIN. Then TYPE `D:LCHAR.BAS` and it will run the program. If you have a cassette, change line 20 from RUN 'D:' to RUN `C:` in program one and two. You have to save it also as SAVE `C:` and then to run it type RUN `C:`. The fourth listing is the assembler code. You Don't need this to run the program. It is only listed so you can have a better understanding of what the program is doing.
    This game can be acquired by sending $3.00 U.S. and a blank disk or cassette to:

ROM MAGAZINE
P.O. BOX 160
Maple Ridge, B.C.
V2X 7G1

10 REM READ IN CHARACTER SET
20 FOR I=34816 TO 35848:READ X:POKE I,X:NEXT I:RUN "D:LMAXN.BAS"
1000 DATA 0,0,0,0,0,0,8,0,0,24,24,24,24,0,24,0,0,102,102,182,0,0,8,8
1010 DATA 0,102,255,102,102,255,102,0,24,62,96,60,6,124,24,0,0,182,188,24,48,102,70,0
1020 DATA 28,54,28,56,111,182,59,0,0,24,24,24,0,0,0,0,0,14,28,24,24,28,14,0
1030 DATA 8,112,56,24,24,56,112,0,0,102,60,255,68,182,8,8,0,24,24,126,24,24,0,0
1040 DATA 8,0,0,8,0,24,24,48,0,0,0,126,0,0,0,0,0,0,0,0,0,24,24,0
1050 DATA 0,6,12,24,48,96,64,0,8,60,102,118,118,102,60,0,0,24,56,24,24,24,126,0
1060 DATA 0,60,102,12,24,48,126,0,0,126,12,24,12,102,60,0,8,12,28,68,108,126,12, 0
1070 DATA 0,126,96,124,6,102,60,8,8,68,96,124,102,182,60,8,8,126,6,12,24,48,48,0
1080 DATA 0,60,102,68,102,102,68,0,8,68,102,62,6,12,56,0,0,8,24,24,8,24,24,0
1090 DATA 8,0,24,24,8,24,24,48,6,12,24,48,2d,12,6,B,B,B,126,0,0,126,8,0
1100 DATA 96,48,24,12,24,48,96,0,0,60,102,12,24,0,24,8,0,68,102,110,110,96,62,0
1110 DATA 48,120,284,252,204,204,238,8,252,102,102,124,182,182,252,8,124,198,192,192,192,198,124,0
1120 DATA 252,102,102,182,182,182,252,0,254,102,96,120,96,102,254,0,254,102,96,120,96,96,240,0
1130 DATA 124,198,192,,192,206,198,124,0,238,204,284,252,284,204,238,0,126,90,24,24,24,90,126,0
1140 DATA 30,12,12,12,12,204,120,0,115,54,60,56,60,54,115,0,120,48,48,48,48,54,126,0
1150 DATA 198,238,254,214,198,198,231,0,204,236,252,228,204,204,238,8,124,198,198,198,198,198,124,8
1160 DATA 252,102,102,182,124,96,224,0,124,198,198,198,198,204,118,0,252,102,102,124,120,108,230,0
1170 DATA 124,198,192,124,6,198,124,0,255,iSS,24,24,24,24,60,8,238,204,284,204,204,204,120,0
1180 DATA 238,204,284,204,204,128,48,8,231,198,198,214,254,238,198,0,195,182,60,24,60,102,195,0
1190 DATA 238,284,204,120,48,45,120,0,254,198,12,24,48,182,254,8,0,30,24,24,24,24,30,0
1200 DATA 0,64,96,48,24,12,6,0,0,128,24,24,24,24,120,0,8,8,28,54,99,8,8,8
1210 DATA 0,8,8,8,0,0,255,0,0,54,127,127,62,28,8,0,21,16,24,26,38,26,26,26
1220 DATA 85,1,137,169,237,169,169,169,26,26,27,27,27,27,21,0,169,169,249,249,249,249,85,8
1238 DATA 21,31,31,31,30,27,26,30,85,253,253,189,189,185,169,173,31,31,38,30,31,31,21,0
1240 DATA 189,189,173,237,253,253,85,0,21,18,24,18,24,18,24,18,85,33,137,33,137,33,137,33
1250 DATA 24,18,24,18,24,18,21,0,137,33,137,33,137,33,85,0,42,32,32,33,32,36,36,37
1260 DATA 170,2,194,66,66,70,70,214,37,37,33,32,33,36,42,8,214,214,218,66,18,6,170,0
1278 DATA 2,2,2,2,2,2,42,47,160,224,224,224,224,224,234,254,42,2,2,2,2,2,2,0
1280 DATA 234,224,224,224,224,224,160,0,192,192,48,48,12,12,3,3,3,3,12,12,48,48,192,192
1298 DATA 3,3,12,12,4$,48,192,192,192,192,d8,48,12,12,3,3,240,240,240,240,240,240,240,240
1300 DATA 24,24,24,31,31,8,0,0,128,96,120,96,126,24,30,0,8,24,60,126,24,24,24,8
1310 DATA 0,24,24,24,126,60,24,0,0,24,48,126,48,24,0,0,0,24,12,126,12,24,8,8
1320 DATA 8,24,60,126,126,60,24,0,0,0,60,6,62,182,62,8,0,112,96,124,182,182,124,0
1330 DATA 8,0,68,96,96,96,60,8,8,14,6,62,102,102,62,0,0,0,60,102,126,96,68,8
1340 DATA 8,14,24,62,24,24,68,0,0,0,62,102,102,62,6,124,8,112,96,124,102,182,119,0
1350 DATA 0,24,0,56,24,24,68,0,0,12,0,28,12,12,12,120,8,112,96,188,128,188,102,0
1360 DATA 0,56,24,24,24,24,60,0,0,0,102,127,127,107,99,8,0,0,124,1B2,102,182,102,0
1370 DATA 0,0,60,102,102,102,68,0,0,8,124,102,102,124,96,112,0,0,62,102,102,62,6,14
1380 DATA 0,0,124,102,96,96,96,0,8,0,62,96,60,6,124,0,0,24,126,24,24,24,14,0
1390 DATA 0,8,102,102,102,102,62,0,0,0,102,102,102,60,24,0,0,0,99,107,127,62,54,0
1400 DATA 8,0,102,60,24,68,102,0,0,0,102,102,182,62,12,120,0,0,126,12,24,48,126,8
1410 DATA 0,24,60,126,126,24,60,0,24,24,24,24,24,24,24,24,0,126,120,124,110,102,6,0
1420 DATA 8,24,56,128,56,24,8,8,16,24,28,30,28,24,16,0,0

10 REM READ IN MACHINE LANGUAGE PROGRAM
20 FOR I=20480 TO 21341:READ X:POKE Z,X :NEXT I:RUN "D:MAIN"
1000 DATA 104,173,1,6,141,199,2,173,8,6,19,10,10,10,24,105,8,141,192,2,141,193,2,141
1010 DATA 2,6,173,0,6,iB,10,iO,10,141,182,82,162,158,142,3,288,169,1,141,77,82,169,112
1020 DATA 141,190,81,169,iBB,141,191,81,160,153,162,80,169,7,32,92,228,169,192,141,14,212,169,58
1030 DATA 141,47,2,369,3,141,29,208,169,96,141,7,212,168,9,152,153,0,188,153,8,101,153,0
1040 DATA 99,153,0,182,153,8,103,200,208,238,160,200,162,8,189,45,83,153,0,102,189,61,83,153
1050 DATA 0,183,200,232,224,16,144,238,169,1,141,111,2,159,120,141,13,82,173,1,6,208,1,96
1060 DATA 173,2,6,16,1,96,76,138,80,173,252,2,201,33,208,3,76,98,228,238,186,81,173,186
1070 DATA 81,285,182,82,144,19,169,0,141,186,81,169,3,32,61,82,24,105,1,141,77,82,76,196
1080 DATA 80,32,18,81,32,106,81,32,14,82,173,183,82,248,6,32,185,82,76,237,50,173,132,2
1090 DATA 208,19,169,1,141,183,82,173,13,82,24,105,8,141,5,208,169,190,141,184,82,173,181,82
1100 DATA 248,6,32,92,82,76,15,81,169,1,141,181,82,173,190,81,24,105,8,141,4,208,173,191
1110 DATA 81,24,105,9,141,180,82,76,98,228,174,77,82,224,1,208,13,173,191,81,201,40,144,6
1120 DATA 56,233,2,141,191,81,224,2,208,13,173,191,81,201,180,176,6,24,185,2,141,191,81,224
1130 DATA 3,208,21,173,190,81,201,50,176,8,169,200,141,190,81,76,80,81,56,233,1,141,198,81
1140 DATA 224,4,208,21,173,190,81,201,200,144,8,169,50,141,190,81,76,185,81,24,105,1,141,198
1150 DATA 81,96,173,190,81,161,8,208,24,105,8,141,1,205,172,191,81,174,187,81,238,188,81,173
1160 DATA 188,81,201,30,144,22,169,0,141,188,81,224,16,208,8,162,0,142,187,81,76,156,81,162
1170 DATA 16,142,187,81,189,205,81,153,0,100,189,237,81,153,0,101,200,232,238,189,81,173,189,81
1180 DATA 201,16,144,232,169,0,141,189,81,96,1,0,21,0,142,106,0,0,0,129,66,36,24,24
1190 DATA 36,66,129,0,0,0,0,8,3,15,63,127,195,93,15,31,12,0,0,8,0,0,8,0
1200 DATA 0,0,0,0,0,29,15,31,111,63,31,0,0,0,0,0,192,230,239,228,252,248,240,187
1210 DATA 4,8,0,0,8,0,8,8,0,6,15,28,124,248,240,251,228,280,0,0,8,145,174,0
1220 DATA 211,138,41,4,208,9,173,13,82,56,233,1,141,13,82,138,41,8,208,9,173,13,52,24
1230 DATA 185,1,141,13,82,173,13,82,141,2,208,24,105,8,141,3,288,141,5,208,96,141,76,82
1240 DATA 238,76,82,173,18,210,205,76,82,176,248,96,4,2,169,8,160,0,153,0,188,153,8,101
1250 DATA 200,208,247,96,.173,8,208,248,29,169,0,141,181,82,169,1,141,30,208,169,0,168,153,0
1260 DATA 99,208,208,258,286,1,6,173,16,141,199,2,96,173,180,82,24,189,8,6,105,1,141
1270 DATA 180,82,162,8,172,180,52,192,240,144,6,169,0,141,181,52,96,169,0,162,0,153,0,99
1288 DATA 208,232,224,8,144,247,162,0,200,169,2,153,8,99,232,224,8,144,245,96,159,1,16,0
1290 DATA 7,173,9,208,240,41,169,0,141,183,82,168,153,0,99,200,208,250,169,1,141,38,208,173
1300 DATA 2,6,248,233,16,141,2,6,141,192,2,141,193,2,169,0,141,0,210,141,1,210,96,173
1310 DATA 184,82,141,0,218,173,184,82,141,1,218,162,8,172,184,82,192,10,176,12,169,8,141,183
1320 DATA 82,141,0,210,141,1,210,96,169,0,162,A,153,0,99,200,232,224,10,144,247,173,184,82
1330 DATA 56,233,3,141,184,82,168,162,0,200,169,4,153,0,99,232,224,8,144,245,96,0,1,35
1340 DATA 114,38,39,29,62,115,119,255,231,195,199,141,141,128,128,196,78,100,228,184,124,110,238,255
1350 DATA 231,195,227,177,177,0,0,8,8,0,0,0,8,0,0,0,0,0,0,0,0,0

1 DIM I$(1),POS(162,2)
2 XP=1:VP=I:FOR I=1 TO 162:POS(I,1)=0:POS(I,2)=0:NEXT I
3 GOSUB 20000:POKE 764,25S:POKE 752,0:POS(1,1)=1
5 ? "# REFUEL CASTLES (0-10)  ";:INPUT NCASTLE
6 ? "# VULTURE SQUADS (1-10)  ";:INPUT NFELCOM
7 ? "VULTURE DIFFICULTY (1-7) ";:INPUT DIF
8 ? "DOOMS DAY HOUR    (1-99) ";:INPUT HOUR
9 ENERGY=15
20 FOR I=X TO NCASTLE:W=INT(161*RND(0)+13
21 W=INT(161*RND(0)+13
22 IF POS(W,1)=0 THEN POS(W,1)=INT(2*RND(0)):GOTO 24
23 GOTO 21
24 NEXT I
30 FOR I=1 TO NFELCON:W=INT(161*RND(0)+1)
31 W=INT (161*RND(0)+1)
40 IF POS(W,1)=0 AND POS(W,2)=0 THEN P05(W,2)=IHT(DIF*RND(0)+1):GOTO 50
41 GOTO 31
50 NEXT I:X=2:Y=2
60 GRAPHICS 0:? "     FLIGHT OF THE CONDOR":? :POKE 752,1
70 POKE 7S6,PEEK (106)-24:POKE 54281,PEEK(106)-24
80 SETCOLOR 0,0,0:SETCOLOR 1,7,2:SETCOLOR 2,2,6:SETCOLOR 4,0,10
90 POKE 53270,0:POKE 53271,7*16+2:POKE 53272,2*16+6:POKE 63274,0*16+10
100 A=PEEK(560)+256,*PEEK(561)+5
110 FOR I=1 TO 20:POKE A+I,4:NEXT I
120 FOR I=1 TO 9
130 ? ""
140 ? ""
149 NEXT I
150 POSITION X,Y:? ""
151 POSITION 2,21:? "";ENERGY;" !":POSITION 20,21:? "";HOUR
200 S=5TICK(0):TX=X:TY=Y:TXP=XP:IF PEEK(764)=33 THEN POKE 764,255:GOTO 3000
210 IF S=15 THEN 200
220 IF S=X4 THEN Y=Y-2:XP=XP-X8
230 IF S=X3 THEN Y=Y+2:XP=XP+18
240 IF S=7 THEN X=X+2:XP=XP+1
250 IF S=11 THEN X=X-2:XP=XP-1
251 IF X>36 THEN X=36:XP=XP-1
252 IF X<2 THEN X=2:XP=XP+1
253 IF Y>18 THEN Y=18:XP=XP-18
254 IF Y<2 THEN Y=2:XP=XP+18
256 FOR P=X TO 50:S0UND 0,200,10,4:NEXT P:SOUND 0,0,0,0
260 IF POS(XP,1)>0 THEN 500
261 IF POS(XP,2)>0 THEN 1000
269 POSITION TX,TY:? ""
270 POSITION X, Y : ? ""
272 ENERGY=ENERGY-X:HOUR=HOUR-1
273 IF ENERGY=0 THEN 10000
274 IF HOUR=0 THEN 10000
280 POSITION 15,21:? ENERGY;" ":POSITION 33,21:? HOUR
300 GOTO 200
500 POSITION X,Y:? "":XP=TX:Y=TY:XP=TXP
501 IF ENERGY=X5 THEN 272
502 POSITION 11,22:? "":FOR I=ENERGY TO 15
503 ENERGY=ENERGY+X:IF ENERGY=0 THEN 10000
505 P0SITION 15,21:? X;" ":FOR T=X TO 40:NEXT T:SOUND 0,I,10,8:NEXT I:SOUND 0,0,0,0
510 POSITION 11,22:? "                 "
520 GOTO 251
1000 POSITION X,Y:? "":FOR T-1 TO 200:SOUND 0,T,12,8:NEXT T:SOUND 0,0,0,0:POKE 1537,ENERGY
1010 GRAPHICS 0:POKE 559,0:SETCOLOR 2,0,8:POKE 752,1:A=PEEK(560)+256 PEEK(561)+5:POKE 53260,1:SETCOLOR 4,0,0
l011 POKE A-2,68:POKE A+X,6:POKE A+2,6:FOR I=3 TO X9:POKE A+I,4:NEXT I:POKE 756, PEEK(106)-24:POKE A+20,2
1012 POKE A+2X,2:POKE A+22,2:SETCOLOR 0,7,4:POSITXON 6,1:? "TACTICAL"
1013 FOR I=1 TO 8
1014 ? ""
1015 ? "":NEXT I
1018 FOR NSQUAD=X TO POS(XP,2)
1019 D2=INT(DIF*RND(0)+1)
1020 POKE 1536,DI:POKE 559,62
1040 U=USR(20480):POKE 53252,0:POKE 53253,0
1050 IF PEEK(1537)=0 THEN 10000
1060 IF PEEK(1538)>144 THEN 2000
1070 NEXT NSQUAD:POS(XP,2)-0:ENERGY-PEEK(1537):NFELCON=NFELCON-1:IF NFELCON=0 THEN 11000
1090 POKE 54286,0:POKE 548,5:POKE 549,233:POKE 54286,192:GOTO 60
2000 FOR I=16 TO 0 STEP -0.2:SOUND 0,I,0,I:POKE 53266,I:POKE 53267,I:NEXT I
2001 POKE 54286,128:POKE 53252,0:POKE 53253,0:FOR T=X TO 200:NEXT T
2005 FOR I=0 TO 3:POKE 53248+I,0:NEXT I
2010 GOTO 1070
3000 POSITION 2,21:? "                           "
3010 ? "                                      ":SX=X:SY=Y:XP1=XP
3020 SOUND 0,200,10,8:SOUND 1,202,10,8
3100 S=STICK(0):TX=SX:TY=SY:IF STRIG(0)=0 THEN 4000
3110 IF S=15 THEN 3100
3120 IF S=14 THEN SY=SY-2:XP1-XP1-18
3130 IF S=13 THEN SY=SY+2:XP1-XP1+18
3140 IF S=7 THEN SX=SX+2:XP1-XP1+l
3150 IF S=11 THEN SX=SX-2:XP1-XP1-1
3160 IF SX>36 THEN SX=36:XP1-XP1-1
3170 IF SX<2 THEN SX=2:XP1-XP1+1
3180 IF SY>18 THEN SY=18:XP1=XP1-18
3190 IF SY<2 THEN SY=2:XP1-XP1+18
3200 POSITION TX,TY:? ""
3205 POSITION X,Y:? ""
3210 POSITION SX,SY:? ""
3220 GOTO 3100
4000 IF POS(XP1,1)>0 THEN POSITION SX,SY:? "":GOTO 4030
4010 IF POS(XP1,2)>0 THEN POSITION SX,SV:? "":GOTO 4030
4020 P0SITION SX,SY? "":ENERGY=ENERGY-1
4020 POSITION 2,21:? "                                "
4100 SOUND 0,0,0,0:SOUND 1,0,0,0:GOTO 150
10000 XP=TXP:POKE 54286,0:POKE 548,S:POKE 549,233:POKE 54286,192
10001 FOR I=0 TO 7:POKE 53248+I,0:NEXT I
10002 GRAPHICS 0:SETCOLOR 2,0,0:POKE 752,X:SETCOLOR 1,0,0:POKE 756,PEEK(106)-24
l0010 IF ENERGY=0 THEN POSITION 8,10:? "YOU RAN OUT OF ENERGY    ":GOSUB 32000
10012 IF HOUR=0 THEN POSITION 8,1.0:? " THERE WAS A BIG EXPLOSION":GOSUB 32000
10020 POSITION 8,10:? "AND YOUR SHIP CONDOR      ":GOSUB 32000
10030 POSITION 8,10:? "CRASHED.BUT BY LUCK       ":GOSUB 32000
10040 P0SXTXON 8,10:? "YOU WERE RESCUED          ":GOSUB 32000
10050 POSITION 8,10:? " BY THE STAR FLEET        ":GO5UB 32000
10060 POSITION 8,10:? "STAR PATROL AND NOW       ":GOSUB 32000
10070 POSITION 8,10:? "READY AGAIN TO WASTE      ":GOSUB 32000
10080 POSITION 8,10:? "OUR ENEMY,THE RAVEN!      ":GOSUB 32000
10090 POSITION 8,10:? "PRESS ANY KEY TO START":GOSUB 32000:SETCOLOR 1,0,8
10100 IF PEEK(764)=255 THEN 10108
10200 GOTO 2
11000 XP=TXP:POKE 54286,0:POKE 548,5:POKE 549,233:POKE 54286,192
11001 FOR I=0 TO 7:POKE 53248+I,0:NEXT I
11002 GRAPHICS 0:SETCOLOR 2,0,0:POKE 752,1:SETCOLOR 1,0,0:POKE 756,PEEK(106)-24
11010 POSITION 8,10:? "VERY WELL DONE.     ":GOSUB 32000
11020 POSITION 8,10:? "YOU DESTOVED THE    ":GOSUB 32000
11030 POSITION 8,10:? "FLEET AND SAVE OUR  ":GOSUB 32000
11040 POSITION 8,10:? "WORLD. NO REWARD    ":GOSUB 32000
11050 POSITION 8,10:? "CAN REPRESENT OUR   ":GOSUB 32000
11060 POSITION 8,10:? "APPRECIATION SO     ":GOSUB 32000
11070 POSITION 8,10:? "ALL I CAN DO IS SAY ":GOSUB 32000
11080 POSITION 8,10:? "THANKS!             ":GOSUB 32000
11090 POSITION 8,10:? "PRESS ANY KEY TO START":GOSUB 32000
11100 IF PEEK(764)=255 THEN 11100
11110 GOTO 2
20000 GRAPHICS 0:SETCOLOR 2,0,0:POKE 752,1:SETCOLOR 1,0,0:POKE 756,PEEK(106)-24
20010 POSITION 5,10:? "        FLIGHT OF THE CONDOR":GOSUB 32000
20020 P05XTXON 5,10:? "        BY JACK CHUNG    ":GOSUB 32000
20030 POSITION 5,10:? "                     ":SETCOLOR 1,0,8:RETURN
32000 FOR I=0 TO 15 STEP 0.1:SETCOLOR 1,0,I:NEXT I:FOR T=1 TO 200:NEXT T:SET COLOR 1,0,0:RETURN

Check Data

0 REM CHECK DATA FOR PROGRAM ONE OF THE FLIGHT OF THE CONDOR
10 DATA 6725,964,131,425,333,844,22,243,45,125,103,866,635,44,6,799,833,307
1150 DATA 8950,130,15,718,888,409,755,795,707,476,619,232,335,893,484,573,36,885
1320 DATA 3979,127,905,180,73,176,209,916,116,100,231,946

0 REM CHECK DATA FOR PROGRAM TWO OF THE FLIGHT OF THE CONDOR
10 DATA 10524,734,778,292,417,957,508,723,560,528,568,504,764,548,605,675,640,723
1150 DATA 9515,768,707,910,268,641,81,830,390,477,478,701,387,554,540,701,358,724
1320 DATA 1463,617,447,175,224

0 REM CHECK DATA FOR PROGRAM THREE OF THE FLIGHT OF THE CONDOR
1 DATA 11015,339,531,926,918,969,813,712,865,645,393,275,732,713,641,394,416,733
50 DATA 9091,227,541,872,70,983,855,256,64,840,913,769,587,849,879,268,61,57
240 DATA 11444,955,3,939,826,999,886,379,724,770,750,590,262,693,554,452,825,837
501 DATA 8146,655,100,816,145,37,835,791,565,283,334,113,930,485,34,610,813,600
1050 DATA 8824,859,920,824,846,609,47,454,927,2,992,253,391,368,375,371,269,317
3160 DATA 10638,253,140,313,208,786,639,817,927,638,656,914,645,494,919,501,903,893
10012 DATA 12372,917,823,730,665,645,755,765,768,736,965,825,920,502,904,426,508,518
11040 DATA 7498,471,544,482,466,141,787,967,826,902,722,451,668,71

Assembler Listing

00010         .LI OFF
00011 *************************
00012 * FLIGHT OF THE CONDOR  *
00013 *    BY JACK CHUNG      *
00014 *                       *
00015 *    CO. 1985           *
00017 *  ASSEMBLY LANGUAGE    *
00018 *    SUBROUTINE         *
00019 *************************
00050 RANDOM    .EQ $D20A
00060 SOUND     .E0 $D200
00070 VERTI     .EQ $200
00080 DMACTL    .EQ $22F
00090 DEST      .EQ $230
00100 GRACTL    .ED $D01D
00110 PMBASE    .EQ $D407
00120 COLPMO    .EQ $D012
00130 HPOSPO    .EQ $D000
00140 STICK     .EQ $D300
00150 TRIGO     .EQ $D010
00160 NMIEN     .EQ $D40E
00170
00180 ADR       .EQ $80
00190
00200           .OR 55000
00210 RIGHT     .EQ $8
00220 LEFT      .EQ $4
00230 D014M     .EQ $2
00240 UP        .EQ $1
00250 HSPEED    .EQ 1
00260 VSPEED    .EO 2
00270 LEVEL     .EQ 1536
00280
00290 PLAYER    .EQ $6000
00300
00320 START    PLA
00340          LDA YOURCOLOR
00350          STA 711
00360          LDA LEVEL
00380          ASL
00390          ASL
00400          ASL
00410          ASL
00420          CLC
00430          ADC #8
00440          STA 704
00450          STA 705
00460          STA EAGLECOLOR
00470          LDA LEVEL
00480          ASL
00490          ASL
00500          ASL
00510          ASL
00520          STA DISTMAX
00530          LDX #158
00540          STX 53251
00541          LDA 521
00542          STA DIR
00543          LDA #112
00544          STA OX
00545          LDA #100
00546          STA OY
00620          LDY #MAIN
00630          LDX /MAIN
00640          LDA #$07
00650          JSR $E45C
00660          LDA #192
00670          STA #MIEN
00680          LDA #$3A
00690          STA DMACTL
00700          LDA #$03
00710          STA GRACTL
00720          LDA /PLAYER
00730          STA PMBASE
00740          LDY #0
00750          TYA
00760 .1       STA PLAYER+$400,Y
00770          STA PLAYER+$500,Y
00780          STA PLAYER+$300,Y
00790          STA PLAYER+$600,Y
00800          STA PLAYER+$700,Y
00810          INY
00820          BNE .1
00830          LDY #200
00840          LDX #0
00850 .2       LDA YOURSHAPE,X
00860          STA PLAYER+$600,Y
00870          LDA YOURSHAPE1,X
00880          STA PLAYER+$700,Y
00890          INY
00900          INX
00910          CPX #16
00920          BCC .2
00930          LDA #l
00940          STA 623
00950          LDA #120
00960          STA MX
00970 LOOP     LDA YOURCOLOR
00971          BNE NOTDEAD
00972          RTS
00973 NOTDEAD  LDA EAGLECOLOR
00974          BPL EALIVE
00975          RTS
00980 EALIVE   JMP LOOP
00990
01060 MAIM     LDA 764
01061          CMP #33
01062          BNE N0STOP
01063          JMP $E462
01069 NOSTOP   INC DISTANCE
01070          LDA DISTANCE
01080          CMP DISTMAX
01090          BCC .1
01100          LDA #0
01110          STA DISTANCE
01120          LDA #3
01130          JSR RND
01140          CLC
O1150          ADC #1
01160          STA DIR
01170          JMP .2
01180 .1       JSR RSTICK
01190 .2       JSR MOVE
01200          JSR YSTICK
01210          LDA YMISSLEON
01220          BEQ .22
01230          JSR YMISSLE
01240          JMP .33
01250 .22      LDA 644
01260          BNE .33
01270          LDA #1
01280          STA YMISSLEON
01290          LDA MX
01300          CLC
01310          ADC #8
01320          STA 53253
01330          LDA #190
01340          STA YMISSLEY
01350 .33      LDA MISSLEON
01360          BEQ .3
01370          JSR MISSLE
01380          JMP .4
01390 .3       LDA #1
01400          STA MISSLEON
01410          LDA OX
01420          CLC
01430          ADC #8
01440          STA 53252
01450          LDA OY
01460          CLC
01470          ADC #9
01480          STA MISSLEY
01490 .4       JMP $E462
01560
01570 RSTICK   LDX DIR
01580          CPX #1
01590          BNE .1
01600          LDA OY
01610          CMP #40
01620          BCC .1
01630          SEC
01640          SBC #VSPEED
01650          STA OY
01660 .1       CPX #2
01670          BNE .2
01680          LDA OY
01690          CMP #180
01700          BCS .2
01710          CLC
01720          ADC #VSPEED
01730          STA OY
01740 .2       CPX #3
01750          BNE .3
01760          LDA OX
01770          CMP #50
01780          BCS .33
01790          LDA #200
01800          STA OX
01810          JMP .3
01820 .33      SEC
01830          SBC #HSPEED
01840          STA OX
01850 .3       CPX #4
01860          BNE .4
01870          LDA OX
01880          CMP #200
01890          BCC .44
01900          LDA #50
01910          STA OX
01920          JMP .4
01930 .44      CLC
01940          ADC #HSPEED
01950          STA OX
01960 .4       RTS
01970
01980 MOVE     LDA OX
01990          STA HPOSP0
02000          CLC
02010          ADC #8
02020          STA HPOSP0+1
02030          LDY OY
02040          LDX WSHAPE
02050          INC SLOW
02060          LDA SLOW
02070          CMP #30
02080          BCC MO0
02090          LDA #0
02100          STA SLOW
02110          CPX #16
02120          BNE TAR
02130          LDX #0
02140          STX WSHAPE
02150          JMP MO0
02160 TAR      LDX #16
02170          STX WSHAPE
02180 MO0      LDA EAGLESHAPE,X
02190          STA PLAYER+$400,V
02200          LDA EAGLESHAPE1,X
02210          STA PLAYER+$500,Y
02220          INY
02230          INX
02240          INC COUNT
02250          LDA COUNT
02260          CMP #16
02270          BCC MO0
02280          LDA #0
02290          STA COUNT
02300          RTS
02310
02320 DISTANCE .DA #0
02330 WSHAPE   .DA #0
02340 SLOW     .DA #0
02350 COUNT    .DA #0
02360 OX       .DA #112
02370 OY       .DA #100
02380 FRAME    .HS 00
02390 SHAPE    .HS 000081422418182442818000
02400 SLEW     .EQ *-SHAPE-1
02410 EAGLESHAPE
02420 DA #0,#0,#0,#3,#15,#63,#127,#195,#93,#15,#31,#12,#0,#0,#0,#0
02430 DA
#0,#0,#0,#0,#0,#0,#0,#0,#29,#15,#31,#111,#63,#3131,#0,#0
02440 EAGLESHAPE1
02450 .DA #0,#0,#0,#192,#230,#239,#220,#252,#248,#240,#187,#4,#8,#0,#0,#0
02460 .DA #0,#0,#0,#0,#6,#15,#28,#124,#248,#240,#251,#228,#200,#0,#0,#0
02470 ;
02480 ;
02490 MX       .DA #0
02500
02510 YSTICK   LDX STICK
02520 .2       TXA
02530          AND #LEFT
02540          BNE .3
02550          LDA MX
02560          SEC
02570          SBC #HSPEED
02580          STA MX
02590 .3       TXA
02600          AND #RIGHT
02610          BNE .4
02620          LDA MX
02630          CLC
02640          ADC #HSPEED
02650          STA MX
02660 .4       LDA MX
02670          STA 53250
02680          CLC
02690          ADC #8
02700          STA 53251
02701          STA 53253
02710          RTS
02720 RND      STA RTEMP
02730          INC RTEMP
02740 RNDWAIT  LDA RANDOM
02750          CMP RTEMP
02760          BCS RNDWAIT
02770          RTS
02780 RTEMP    .DA #0
02790 DIR      .DA #1
02800 ;
02810 ;
02820 CLEAR    LDA #0
02830          LDY #0
02840 CLEARP   STA PLAYER+$400,Y
02850          STA PLAYER+$500,Y
02860          INY
02870          BNE CLEARP
02880          RTS
02890 MISSLE   LDA 53256
02900          BEQ FU1
02910          LDA #0
02920          STA MISSLEON
02930          LDA #1
02940          STA 53278
02950          LDA #0
02960          TAY
02970 CL1      STA PLAYER+$380,Y
02980          INY
02990          BHE CL1
02991          DEC YOURCOLOR
02992          LDA YOURCOLOR
02993          STA 711
03000          RTS
03010 FU1      LDA MISSLEY
03020          CLC
03030          ADC LEVEL
03040          ADC #1
03050          STA MISSLEY
03060          LDX #0
03070          LDY MISSLEY
03080          CPY #240
03090          BCC .1
03100          LDA #0
03110          STA MISSLEON
03120          RTS
03130 .1       LDA #0
03140          LDX #0
03150 .11      STA PLAYER+$300,Y
03160          INY
03170          INX
03180          CPX #8
03190          BCC .11
03200          LDX #0
03210 .2       INY
03220          LDA #2
03230          STA PLAVER+$300,Y
83240          INX
03250          CPX #8
83260          BCC .2
03270          RTS
03280
03290 MISSLEY  .DA #0
03300 MISSLEON .DA #0
03310 DISTMAX  .DA #0
03320 YMISSLEON .DA #0
03330 YMISSLEY .DA #0
03340 ;
03350 ;
03360 ;
03370 YMIS5LE  LDA 53257
03380          BEQ NOTHIT
03390          LDA #0
03400          STA YMISSLEON
03410          TAY
03420 CLEARY   STA PLAYER+$300,Y
03430          INY
03440          BHE CLEARY
03450          LDA #1
63460          STA 53278
03470          LDA EAGLECOLOR
03480          SED
03490          SBC #16
03500          STA EAGLECOLOR
03510          STA 704
03520          STA 705
83521          LDA #0
03522          STA SOUND
03523          STA SOUND+1
03530          RTS
03540 NOTHIT   LDA YMISSLEY
03541          STA SOUND
03542          LDA YMISSLEY
03543          STA SOUND+1
83549          LDX #0
83550          LDY YMISSLEY
83560          CPY #10
03570          BCS .1
03580          LDA #0
83590          STA YMISSLEON
03591          STA SOUND
03592          STA SOUND+1
03600          RTS
03610 .1       LDA #0
03620          LDX #0
03630 .11      STA PLAVER+$388,Y
83640          INY
03650          INX
03660          CPX #10
03670          BCC .11
83680          LDA YMISSLEY
03690          SEC
03700          SBC #3
03710          STA YMISSLEY
03720          TAY
03730          LDX #0
03740 .2       INY
03750          LDA #4
03760          STA PLAYER*$388,Y
03770          INX
03780          CPX #8
03790          BCC .2
03800          RTS
03810 EAGLECOLOR  .EQ 1538
03820 YOURCOLOR   .EQ 1537
31000 YOURSHAPE
32000    .DA #0,#1,#35,#114,#38,#39,#29,#62,#118,#119,#255,#231,#195,#199,#141,#141
32001 YOURSHAPE1
32010    .DA #128,#128,#196,#78,#100,#228,#184,#124,#110,#238,#255,#231,#195,#227,#177,#177