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
>
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
>
Hey Perry,
ReplyDeleteThanks 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!