Super Air Raid source code

100 CODE  1F 11 11 11 1F 1F 11 11 11 1F 00 00
110 CODE  3E 22 22 22 3E 3E 22 22 22 3E 00 00
120 CODE  00 00 00 01 03 07 0F 1F 1F 1F 00 00
130 CODE  00 00 00 20 30 38 3C 3E 3E 3E 00 00
140 CODE  01 03 07 0F 1F 1F 19 19 1F 1F 00 00
150 CODE  20 30 38 3C 3E 3E 26 26 3E 3E 00 00
160 CODE  00 00 00 00 00 00 01 07 1F 1F 00 00
170 CODE  00 00 00 00 00 00 20 38 3E 3E 00 00
180 CODE  00 00 00 18 1C 1C 1C 1F 11 1F 00 00
190 CODE  00 00 00 00 01 03 1F 3F 38 38 00 00
200 CODE  00 00 30 30 24 3C 3F 3F 00 00 00 00
210 CODE  00 00 00 00 00 00 30 38 38 38 00 00
220 CODE  03 01 00 00 00 00 00 00 00 00 00 00
230 CODE  3F 3F 1F 00 0C 0D 0F 0F 0D 0C 00 00
240 CODE  3F 3F 3F 10 38 3C 3E 3E 3C 38 00 00
250 CODE  38 30 00 00 00 00 00 00 00 00 00 00
260 CODE  00 07 07 01 03 07 07 07 03 01 00 00
270 CODE  00 38 38 20 30 38 38 38 30 20 00 00
280 CODE  3F 3F 1F 00 00 00 00 00 00 00 00 00
290 CODE  3F 3F 3F 00 00 00 00 00 00 00 00 00
300 PROTECT 0
310 VDU 1,4,2,0,4,24
320 BEEP 270,250,63
330 PRINT  @ 40,50;"STOP THE TAPE";CHR$(25);
340 PAUSE 30000
350 PROC INSTRUCTIONS
360 PROC GAME INIT
370 LET h=50000,S=0,X=0,H=0,L=3,F=0,f=0,d=0,s=0,U=1
380 LET t=0
390 REPEAT 
400   PROC CITY(T-48,d)
410   LET d=0
420   PROC PLAY
430   PAUSE 10000
440   FOR J=100 TO 10 STEP -1
450     BEEP J,10,63*(N=1)
460   NEXT J
470 UNTIL L<0
480 VDU 24,18
490 PRINT  @ 37,30;"   GAME  OVER   ";
500 VDU 18,25
510 PROC AGAIN
520 IF t=1 THEN  GOTO 380
530 DPOKE GRAPHIC,468
540 PROTECT 0
550 CCHAR 32*256+239
560 WINDOW 3,123,5,245
570 VDU 1,7,2,0,4
580 END 
590 DEFPROC PLAY
600 LET f=0,B=195,Z$=" "+CHR$(10)+CHR$(22)+" "+CHR$(28)+CHR$(28)+CHR$(28)+CHR$(5)+P$
610 IF l=1 OR l=4 OR l=7 OR l=10 OR l=13 OR l=16 THEN  LET H=20
620 IF l=2 OR l=5 OR l=8 OR l=11 OR l=14 OR l=17 THEN  LET H=30
630 IF l=3 OR l=6 OR l=9 OR l=12 OR l=15 OR l=18 THEN  LET H=40
640 REPEAT 
650   WHILE B<>195
660     PROC BOMB
670     PAUSE 675
680   WEND 
690   PRINT  @ 102,10;S
700   IF s<U*100000 AND S>U*100000 THEN  PROC EXTRA LIFE
710   LET s=S
720   LET H=H+10+(((l>6 AND l<13)*RAND(2)*10)-(l>6 AND l<13)*10),X=3
730   REPEAT 
740     PROC PLANE
750     IF INP(&0480)=247 AND B=195 THEN  LET B=H+10,C=6*INT(X/6)+9,Z$=" "+CHR$(10)+CHR$(22)+" "+CHR$(28)+CHR$(28)+CHR$(28)+CHR$(5)+Q$
760     IF B<>195 THEN  PROC BOMB
770     LET X=X+3+(3*(l>6))
780   UNTIL f=1 OR X>=108
790   PRINT  @ X,H;"     "; @ X,H+10;"     ";
800 UNTIL f=1 OR H>170
810 IF H=180 AND X>=108 THEN  LET S=S+5000
820 IF H=180 AND X<108 THEN  LET S=S+1000
830 IF H=180 AND X>=108 THEN  PRINT  @ 37,45;CHR$(24)+CHR$(18)+" BONUS 5000 PTS "+CHR$(18)+CHR$(25);
840 IF H=180 AND X<108 THEN  PRINT  @ 37,45;CHR$(24)+CHR$(18)+" BONUS 1000 PTS "+CHR$(18)+CHR$(25);
850 PRINT  @ 102,10;S
860 IF s<U*100000 AND S>U*100000 THEN  PROC EXTRA LIFE
870 LET s=S
880 PAUSE 10000
890 ENDPROC 
900 DEFPROC BOMB
910 PROTECT 3
920 PRINT  @ C,B;"  ";
930 LET V=(C-15)/6
940 LET B=B+5
950 PROTECT 0
960 IF V>=0 THEN  IF 190-10*A(V)<B THEN  PROC BLOW
970 IF B=195 THEN  LET Z$=" "+CHR$(10)+CHR$(22)+" "+CHR$(28)+CHR$(28)+CHR$(28)+CHR$(5)+P$
980 IF B=195 THEN  ENDPROC 
990 PROTECT 3
1000 PRINT  @ C,B;D$;
1010 PROTECT 0
1020 ENDPROC 
1030 DEFPROC BLOW
1040 FOR J=A(V) TO (RAND(A(V))+RAND(A(V)))/2 STEP -1
1050   PRINT  @ C,190-10*J;"  ";
1060   BEEP J+30,10,63*(N=1)
1070   LET A(V)=J
1080   LET S=S+10*l+F
1090 NEXT J
1100 LET B=195
1110 ENDPROC 
1120 DEFPROC PLANE
1130 PROTECT 3
1140 INK 4
1150 PRINT  @ X,H;Z$;
1160 PROTECT 0
1170 IF 190-A(X/6)*10>H THEN  ENDPROC 
1180 LET f=1,L=L-1,d=1
1190 PRINT  @ 37,30;CHR$(24)+CHR$(18)+" YOU ARE DEAD ! "+CHR$(18)+CHR$(25);
1200 FOR J=0 TO 20
1210   BEEP RAND(50)+20,10,63*(N=1)
1220 NEXT J
1230 PAUSE 15000
1240 ENDPROC 
1250 DEFPROC GAME INIT
1260 WINDOW 0,126,0,250
1270 DPOKE GRAPHIC,LCTN(100)
1280 DIM A(20)
1290 LET B$=CHR$(128)+CHR$(130)
1300 LET D$=CHR$(160)+CHR$(162)
1310 FOR J=0 TO 15
1320   READ A
1330   LET P$=P$+CHR$(A)
1340 NEXT J
1350 LET Q$=LEFT$(P$,13)+CHR$(164)+CHR$(166)+CHR$(158)
1360 DATA 32,144,146,148,150,22,22,22,22,22,10,32,152,154,156,158
1370 DIM Z$(30)
1380 ENDPROC 
1390 DEFPROC CITY(G,g)
1400 CLS 
1410 LET F=F+1*(g=0),l=k+((F+G-1) DIV G)
1420 IF l>18 THEN  LET l=18
1430 VDU 24,1,7
1440 PRINT  @ 37,100;"*SUPER AIR RAID*";
1450 VDU 25
1460 MOVE 0,200
1470 DRAW 254,200
1480 PRINT  @ 3,10;"High Score:";h;
1490 VDU 1,4
1500 PRINT  @ 63,10;"Player Score:";S;
1510 FOR J=0 TO 16
1520   LET A(J)=((RAND(10)+2)*(l<4 OR (l>6 AND l<10) OR (l>12 AND l<16)))+((RAND(5)+7)*((l>3 AND l<7) OR (l>9 AND l<13) OR l>15))
1530 NEXT J
1540 LET A(17)=0
1550 FOR J=0 TO 16
1560   INK RAND(7)+1
1570   FOR I=0 TO A(J)-2
1580     PRINT  @ 6*J+15,190-I*10;B$;
1590   NEXT I
1600   LET I=RAND(3)
1610   PRINT  @ 6*J+15,190-10*(A(J)-1);CHR$(132+4*I);CHR$(134+4*I);
1620 NEXT J
1630 VDU 1,5
1640 PRINT  @ 0,230;"Extra";
1650 PRINT  @ 0,240;"Lives:            ";
1660 VDU 1,6
1670 FOR j=1 TO L
1680   IF L=0 THEN  PRINT  @ 21,240;"NO LIVES REMAINING ";
1690   IF L=0 THEN  GOTO 1710
1700   PRINT  @ 3+j*15,235;Q$;
1710 NEXT j
1720 VDU 1,5
1730 PRINT  @ 81,220;"Frame number:";CHR$(1)+CHR$(6);F;
1740 VDU 1,5
1750 PRINT  @ 81,240;"Level number:";CHR$(1)+CHR$(6);l;
1760 VDU 1,4
1770 IF l=7 AND k<6 THEN  PRINT  @ 0,220;"IT GET'S HARDER NOW !";
1780 IF l=7 THEN  ENDPROC 
1790 IF l=13 AND k<12 THEN  PRINT  @ 0,220;"NOW IT GET'S EVEN WORSE !";
1800 IF l=13 THEN  ENDPROC 
1810 IF l=16 OR l=17 THEN  PRINT  @ 0,220;"IMPOSSIBLE IS'NT IT ?!";
1820 IF l=16 OR l=17 THEN  ENDPROC 
1830 IF l=18 AND ((F+G-1) DIV G)<19 AND k<7 THEN  PRINT  @ 0,220;"HOW DID YOU GET THIS FAR?!";
1840 IF k+((F+G-1) DIV G)>18 AND k<7 THEN  PRINT  @ 0,220;"YOU MUST BE SUPERMAN !";
1850 ENDPROC 
1860 DEFPROC AGAIN
1870 PRINT  @ 6,20;"WOULD YOU LIKE TO PLAY AGAIN (Y/N)?    ";
1880 LET V$=GET$
1890 PRINT  @ 111,20;V$
1900 IF V$="Y" OR V$="y" THEN  GOTO 1930
1910 IF V$="N" OR V$="n" THEN  ENDPROC 
1920 ELSE  GOTO 1870
1930 IF S>h THEN  LET h=S
1940 LET S=0,X=0,H=0,L=3,F=0,f=0,t=1,d=0,s=0,U=1
1950 CCHAR 32*256+42
1960 PRINT  @ 9,30;"ENTER STARTING GAME LEVEL (1-18)";
1970 INPUT l
1980 IF l<1 OR l>18 THEN  PRINT  @ 111,30;"                   ";
1990 IF l<1 OR l>18 THEN  GOTO 1960
2000 LET k=l-1
2010 IF l=18 THEN  LET T=49,W=10
2020 ELSE  LET W=0
2030 IF l=18 THEN  GOTO 2080
2040 PRINT  @ 21,40;"WHAT PROGRESS RATE (1-3)?";
2050 LET T=GETN
2060 IF T<49 OR T>51 THEN  GOTO 2050
2070 PRINT  @ 111,40;T-48;
2080 PRINT  @ 18,50-W;"WHAT SOUND LEVEL (1=ON,2=OFF)?";
2090 LET N=GETN
2100 IF N<49 OR N>50 THEN  GOTO 2090
2110 PRINT  @ 111,50-W;N-48;
2120 LET N=N-48
2130 PAUSE 15000
2140 ENDPROC 
2150 DEFPROC EXTRA LIFE
2160 IF L=4 THEN  GOTO 2260
2170 IF L=0 THEN  PRINT  @ 24,240;"                  ";
2180 PRINT  @ 0,220;"                           ";
2190 PRINT  @ 21,220;CHR$(18)+" EXTRA LIFE GAINED "+CHR$(18);
2200 LET L=L+1
2210 VDU 1,6
2220 FOR j=1 TO L
2230   PRINT  @ 3+j*15,235;Q$;
2240 NEXT j
2250 VDU 1,4
2260 LET U=U+1
2270 ENDPROC 
2280 DEFPROC INSTRUCTIONS
2290 PROC TITLE
2300 WINDOW 3,123,35,245
2310 VDU 23
2320 PRINT "   You  are  in  command  of a  crippledaircraft  flying  over  an  enemy  city.There  is  nowhere  to  land  for  milesaround . Luckily you  have an  unlimitedsupply of bombs . By destroying  all thebuildings below you as you";
2330 PRINT " pass over thecity you will make  a suitable  place toland . If , however , you crash into theside of a tower block  you will lose oneof your lives .(You start with 4 lives ,3 of them displayed as extra lives )"
2340 VDU 10
2350 PRINT "   You score points  for every  buildingsection you destroy,the number of pointsdepending on the level and frame number.Also, you gain a life ( to a max. of 5 )for every 100000 points scored ."
2360 PRINT  @ 21,220;CHR$(18)+" HIT ANY KEY TO CONTINUE "+CHR$(18);
2370 IF KEYN=0 THEN  GOTO 2370
2380 PROC TITLE
2390 VDU 1,5
2400 PRINT  @ 39,35;CHR$(18)+" GAME  LEVELS "+CHR$(18)
2410 VDU 10
2420 PRINT "    In "+CHR$(1)+CHR$(6)+"SUPER AIR RAID "+CHR$(1)+CHR$(5)+"there are eighteendifferent  levels  ranging from  easy tothe impossible ! An explanation follows:"
2430 VDU 1,4
2440 PRINT "Levels 1-3.....Slow plane , each pass is               lower  than  the previous               one , the starting height               decreases on each level ."
2450 PRINT "Levels 4-6.....The  same  as levels  1-3               but there  are a  greater               number of  high buildings               to destroy ."
2460 PRINT  @ 21,200;CHR$(18)+" HIT ANY KEY TO CONTINUE "+CHR$(18);
2470 IF KEYN=0 THEN  GOTO 2470
2480 PROC TITLE
2490 VDU 1,5
2500 PRINT  @ 39,35;CHR$(18)+" GAME  LEVELS "+CHR$(18)
2510 VDU 10,1,4
2520 PRINT "Levels 7-9.....As level 1-3 but a faster               plane which  may maintain               height on some successive               passes over the city ."
2530 VDU 10
2540 PRINT "Levels 10-12...As levels 7-9 but  with a               a greater number  of high               buildings to destroy ."
2550 VDU 10
2560 PRINT "Levels 13-15...As level 7-9 but the fact               that  the aeroplane loses               height on each  pass over               the city makes the levels               almost impossible ."
2570 PRINT  @ 21,210;CHR$(18)+" HIT ANY KEY TO CONTINUE "+CHR$(18)
2580 IF KEYN=0 THEN  GOTO 2580
2590 PROC TITLE
2600 VDU 1,5
2610 PRINT  @ 39,35;CHR$(18)+" GAME  LEVELS "+CHR$(18)
2620 VDU 10,1,4
2630 PRINT "Levels 16-18...As  levels  13-15  but  a               greater  number  of  high               buildings to destroy ,and               impossible !"
2640 VDU 10
2650 PRINT " If you reach or play Level 18 you can'tprogress to any  further degree  of gamedifficulty . You play Level 18 until youlose all  your lives  ( which is usuallynot very long ! )."
2660 VDU 1,5
2670 PRINT  @ 3,170;"AT WHAT LEVEL DO YOU WANT TO START ";
2680 INPUT l
2690 IF l<1 OR l>18 THEN  PRINT  @ 114,170;"   ";
2700 IF l<1 OR l>18 THEN  GOTO 2670
2710 LET k=l-1
2720 VDU 1,4
2730 PRINT  @ 21,200;CHR$(18)+" HIT ANY KEY TO CONTINUE "+CHR$(18)
2740 IF KEYN=0 THEN  GOTO 2740
2750 PROC TITLE
2760 VDU 1,6
2770 PRINT  @ 30,35;CHR$(18)+" DIFFICULTY  LEVELS "+CHR$(18)
2780 VDU 1,4,10
2790 PRINT "    In "+CHR$(1)+CHR$(7)+"SUPER AIR RAID "+CHR$(1)+CHR$(4)+"you can select therate at which the levels progress duringthe game ."
2800 VDU 10
2810 PRINT "Progress rate 1...Game levels advance on                  every frame ."
2820 VDU 10
2830 PRINT "Progress rate 2...Game levels advance on                  every 3rd frame ."
2840 VDU 10
2850 PRINT "Progress rate 3...Game levels advance on                  every 4th frame ."
2860 IF l=18 THEN  LET T=49
2870 IF l=18 THEN  PRINT  @ 3,190;CHR$(1)+CHR$(6)+"N.B....LEVEL 18 ENTERED  :- YOU WILL NOTPROGRESS FURTHER ,SO ABOVE IS IRRELAVANT"+CHR$(1)+CHR$(4)
2880 IF l=18 THEN  GOTO 2950
2890 VDU 1,6
2900 PRINT  @ 3,190;"    ENTER PROGRESS RATE REQUIRED :- ";
2910 LET T=GETN
2920 IF T<49 OR T>51 THEN  GOTO 2910
2930 PRINT  @ 111,190;T-48;
2940 VDU 1,4
2950 PRINT  @ 21,220;CHR$(18)+" HIT ANY KEY TO CONTINUE "+CHR$(18)
2960 IF KEYN=0 THEN  GOTO 2960
2970 PROC TITLE
2980 VDU 1,7
2990 PRINT  @ 39,35;CHR$(18)+" SOUND LEVELS "+CHR$(18)
3000 VDU 1,5,10
3010 PRINT "     In "+CHR$(1)+CHR$(4)+"SUPER AIR RAID "+CHR$(1)+CHR$(5)+" you  can  eitherselect  the  sound level  as 1 ( ON ) or2 ( OFF ) ."
3020 VDU 1,7
3030 PRINT  @ 3,120;"    ENTER SOUND LEVEL REQUIRED :- ";
3040 LET N=GETN
3050 IF N<49 OR N>50 THEN  GOTO 3040
3060 PRINT  @ 105,120;N-48;
3070 LET N=N-48
3080 VDU 1,4
3090 PRINT  @ 9,170;"PRESS THE SPACE BAR TO DROP A BOMB"
3100 PRINT  @ 39,200;"   GOOD LUCK"
3110 PRINT  @ 27,220;CHR$(18)+" HIT ANY KEY TO BEGIN "+CHR$(18)
3120 IF KEYN=0 THEN  GOTO 3120
3130 ENDPROC 
3140 DEFPROC TITLE
3150 VDU 1,7,2,0,4
3160 PRINT  @ 8,15;"LYNX48";
3170 PRINT  @ 87,10;"Perry Dyball";
3180 PRINT  @ 93,20;CHR$(94)+CHR$(127)+" 1983";
3190 VDU 1,6,2,2,24
3200 PRINT  @ 36,5;" SUPER AIR RAID ";
3210 VDU 1,4,2,0,25,23
3220 ENDPROC 
>

Comments

  1. Hey Perry,

    Thanks for posting this!

    I'm one of those guys who wanted a Lynx back in the 80s but went for an Atari XL instead. Now, thanks to Ebay I've managed to collect a small collection of Lynx computers, and with the help of Frank Rasmussen, I've gotten the disk controller running and talking to an HxC.

    Using Jynx to save the program as a TAP, and then PALE to save it to an LDF virtual disk, I now have your Super Air Raid running on a real Lynx 96.

    Great fun game!

    Thanks!

    ReplyDelete

Post a Comment