ZX81 filename : [BOMBER-1982-BLAKE-KINCAID-BOMBER-1982-BLAKE-KINCAID] File type : Cassette Video frame buffer at : 71C2 (Video buffer expanded) BASIC variables begin at : 74DB End of save area : 79C4 Video mode : PAL 50Hz Next BASIC line : 71C2 (doesn't seem to autostart) BASIC listing ------------------------------------------------ 1 FAST 4 GOSUB 7000 5 CLS 7 FAST 10 PRINT "PLEASE ENTER YOUR NAME" 20 INPUT A$ 21 FOR I=1 TO 51 22 LET E$(I)=Q$(I) 23 NEXT I 24 CLS 25 PRINT 30 PRINT 40 PRINT "USE P TO CLIMB" 50 PRINT "USE Q TO DESCEND" 60 PRINT "USE O TO BOMB" 70 PRINT "USE I TO BAIL OUT" 80 PRINT "USE E TO TURN AROUND" 81 PRINT 82 PRINT " TRY TO HIT THE CITY WITH A BOMB ENOUGH TIMES SO THAT THEY SURRENDER." 83 PRINT 84 PRINT " IF YOU FLY LOW YOU CAN DO MORE DAMAGE, BUT IF YOU ARE TOO LOW THE CITY WILL FIRE FLAK AT YOU." 90 PRINT AT 20,0;"PRESS ENTER TO CONTINUE" 95 SLOW 100 IF INKEY$="" THEN GOTO 100 105 FAST 110 LET R=2 115 LET M2=0 120 LET M=0 125 LET M3=0 130 LET P1=0 132 LET ZX=0 134 LET XZ=0 140 CLS 150 PRINT "PLEASE ENTER THE NAME OF YOUR PLANE" 160 INPUT P$ 170 FAST 171 LET Z=INT (RND*51)+1 175 IF VAL E$(Z)<0 THEN GOTO 170 180 IF VAL E$(Z)>R*15 THEN GOTO 170 190 LET C1=VAL E$(Z)*10000 195 LET M2=M2+1 200 LET C=INT (10*RND)+12 209 LET V=(VAL E$(Z))/8 210 PRINT AT 11,0;" YOU ARE TO BOMB ";C$(Z);" " 212 LET F9=VAL E$(Z)*6 213 LET F=F9+100 215 SLOW 220 PRINT AT 20,0;"PRESS ENTER TO BEGIN" 230 IF INKEY$="" THEN GOTO 230 235 FAST 240 LET A=3 242 LET F99=0 245 LET B9=0 248 LET J9=0 250 LET P=0 251 LET QC=0 253 LET G=0 255 LET D=0 257 LET T=1 260 CLS 270 PRINT AT 0,0;C$(Z);" POP:";C1;" FUEL ";F 272 IF R=12 THEN GOTO 5600 275 PRINT R$(R);" ";A$ 280 PRINT AT 20,C-1;"? ?";AT 19,C;"?" 285 SLOW 298 IF F31 THEN LET P=0 337 IF A>19 THEN GOTO 9100 339 IF A<0 THEN GOTO 9000 340 IF T=1 THEN PRINT AT A,P;">" 341 IF T=-1 THEN PRINT AT A,P;"<" 345 IF J9=1 THEN GOTO 790 350 IF INKEY$="O" THEN GOSUB 500 360 IF INKEY$="E" THEN LET T=-T 370 IF INKEY$="I" THEN GOSUB 400 380 IF A>19-V THEN GOSUB 650 382 NEXT F 383 PRINT AT 0,20;" FUEL GONE " 384 LET QC=1 385 LET D=1 390 GOTO 300 395 LET A=A+1 397 GOTO 330 400 LET J9=1 405 IF A>17 THEN GOTO 9200 410 LET J=A 420 LET D=1 425 LET J1=P 430 RETURN 500 IF B9=1 THEN RETURN 505 LET ZX=ZX+1 510 LET B9=1 515 LET T1=T 520 LET B=A 525 LET P9=P 527 LET F=F-2 530 RETURN 550 PRINT AT B,P9;" " 555 LET P9=P9+T1 560 LET B=B+2 565 IF P9>31 THEN LET P9=0 570 PRINT AT B,P9;"." 575 IF INT (RND*14)=1 THEN GOTO 640 580 IF B<19 THEN GOTO 307 590 IF P9=C THEN GOTO 800 595 IF B<20 THEN GOTO 307 597 LET B9=0 600 IF P9=C-1 OR P9=C+1 THEN GOTO 850 640 LET B9=0 642 PRINT AT B,P9-2;"BOOM" 643 PRINT AT B,P9-2;" " 644 GOTO 307 650 IF P(C+V/2)-1 THEN RETURN 655 IF F99=1 THEN RETURN 660 FOR I=1 TO 1+INT (R/4) 670 LET Q2=20-INT (RND*V) 680 LET Q1=C+INT (RND*V-V/4) 690 PRINT AT Q2,Q1;"*" 700 IF Q1<>P THEN GOTO 770 720 IF Q2<>A THEN GOTO 770 730 PRINT AT A,P-3;"SPLATT" 731 PRINT AT A,P-3;" " 732 LET QC=1 735 IF INT (RND*4)<>1 THEN GOTO 760 740 PAUSE 400 750 GOTO 9250 760 LET D=1 770 PRINT AT Q2,Q1;" " 775 NEXT I 780 RETURN 788 PRINT AT J,J1;" " 791 LET J=J+.75 792 LET J1=J1+1 793 IF J1>31 THEN LET J1=0 794 PRINT AT J,J1;"-" 795 IF J>19 THEN GOTO 8900 797 IF D=2 THEN GOTO 790 799 GOTO 380 800 PRINT AT 10,10;" DIRECT HIT " 805 IF A>19-V THEN GOSUB 2500 810 LET C9=INT ((RND*((VAL E$(Z)/4)+A)+A/2)*4500) 815 LET B9=0 820 PRINT AT 12,10;"YOU KILLED ";C9 830 LET C1=C1-C9 840 LET P1=P1+5+C9/10000 845 GOTO 900 850 PRINT AT 10,10;" PARTIAL HIT " 860 LET C9=INT (((RND*A)+A/3)*2900) 870 PRINT AT 12,10;"YOU KILLED ";C9 880 LET C1=C1-C9 890 LET P1=P1+C9/10000 900 LET XZ=XZ+1 910 IF INT (RND*5)=1 THEN LET F99=0 920 IF VAL E$(Z)/(C1/10000)>3 THEN GOTO 1000 922 IF C1<1 THEN GOTO 1000 925 IF INT (RND*(VAL E$(Z)))=1 THEN GOTO 1000 930 PRINT AT 14,2;"WE THE PEOPLE OF ";C$(Z);" WILL PERSEVERE" 935 PAUSE 250 940 GOTO 260 1000 CLS 1001 LET M3=M3+1 1002 IF C1<-5000 THEN GOTO 1041 1010 IF C1<30000 THEN GOTO 1050 1015 IF C1<((VAL E$(Z)/5)*10000) THEN GOTO 1050 1020 PRINT "WE THE PEOPLE OF ";C$(Z);" DO SURRENDER TO YOUR COUNTRY" 1030 LET P1=P1+5+INT (VAL E$(Z)/25) 1040 GOTO 1120 1041 PRINT "THE ENTIRE CITY OF ";C$(Z);" HAS BEEN TOTALLY DESTROYED , NOT A BUILDING LEFT STANDING OR AN INSECT LEFT LIVING." 1042 LET P1=P1+20 1043 LET C1=VAL E$(Z)+10 1044 GOTO 1130 1050 IF C1<10000 THEN GOTO 1100 1060 PRINT "YOU HAVE CRUSHED ALL RESISTANCE IN ";C$(Z) 1070 LET P1=P1+7+INT (VAL E$(Z)/25) 1080 GOTO 1120 1100 PRINT "YOU HAVE COMPLETELY DESTROYED ";C$(Z);" AND ITS ";(VAL E$(Z))*10000;" INHABITANTS" 1110 LET P1=P1+INT (VAL E$(Z)/5)+5 1120 LET C1=VAL E$(Z) 1130 LET E$(Z)="-10" 1140 GOTO 5100 1990 REM 2000 REM 2010 REM ********************** 2030 REM * * 2040 REM ******* BOMBER ******* 2050 REM * * 2060 REM * BY BLAKE KINCAID * 2070 REM * * 2080 REM ********************** 2090 REM 2100 REM 2110 REM 2120 REM TO RUN THE PROGRAM 2130 REM TYPE GOTO 1 2140 REM 2150 REM 2160 REM 2170 REM ********************** 2180 REM * * 2190 REM ******* BOMBER ******* 2200 REM * * 2210 REM * COPYRIGHT 1982 * 2215 REM * * 2220 REM ********************** 2340 PRINT 2350 PRINT "YOU ARE GIVEN A COMENDATION TO SIGNIFY THE SELFLESSNESS WITH WHICH YOU DO YOUR DUTY" 2355 LET M=M+1 2356 PRINT AT 10,9;M 2360 GOTO 5230 2500 IF INT (RND*3)<>1 THEN RETURN 2510 IF INT (RND*(5+(50-(VAL E$(Z)/2))))=1 THEN GOTO 2700 2520 PRINT AT 11,10;" HIT A POWER PLANT " 2530 LET P1=P1+10 2535 IF INT (RND*(V))=1 THEN GOSUB 2550 2540 RETURN 2550 IF F99=1 THEN RETURN 2560 LET F99=1 2570 PRINT AT 8,3;"YOU HAVE DISABLED THE FLAK" 2580 LET P1=P1+10 2590 RETURN 2700 PRINT AT 20,C-4;"?? ??";AT 19,C-2;"?????";AT 18,C;"?";AT 17,C;"?";AT 16,C;"?";AT 15,C-1;"???";AT 14,C-2;"?????";AT 13,C-3;"??? ???";AT 12,C-2;"?????";AT 11,C-1;"???" 2720 PRINT AT 3,4;"YOU STRUCK THE FUSION PLANT" 2730 LET M3=M3+1 2735 LET P1=P1+5 2740 PAUSE 200 2745 IF A<8 THEN GOTO 2800 2750 GOTO 9500 2800 IF P<>C THEN GOTO 1100 2810 GOTO 9500 2900 STOP 3000 PRINT AT 6,5;"YOUR PLANE CRASHED INTO ";C$(Z) 3010 LET G=100 3020 RETURN 3100 CLS 3110 PRINT " YOU HAVE SHOWN SUCH BRAVERY THAT WE ARE AWARDING YOU WITH A MEDAL OF COURAGE" 3120 PRINT 3130 PRINT " WE ARE ALSO GIVING YOU A NEW PLANE CALLED ";P$;"II" 3140 LET P$=P$+"II" 3150 PAUSE 300 3160 LET M=M+1 3170 GOTO 5100 5000 PAUSE 250 5003 IF QC<>1 THEN GOTO 5015 5005 IF G=100 THEN GOTO 3100 5010 CLS 5015 IF R=12 THEN GOTO 5090 5020 PRINT R$(R);" ";A$;" YOU HAVE SHOWN RECKLESS DISREGARD FOR THE MACHINERY WHICH IS GIVEN TO YOU." 5025 PAUSE 200 5027 IF QC=0 THEN GOTO 5050 5030 IF (VAL E$(Z)*10000+R)-C1>40000 THEN GOTO 140 5035 IF INT (RND*(P1/10))>10 THEN GOTO 140 5040 PRINT 5050 PRINT "I AM SORRY BUT YOU ARE BOOTED TO THE RANK OF ";R$(R-1) 5060 LET R=R-1 5065 PAUSE 200 5070 IF R=1 THEN GOTO 9300 5080 GOTO 140 5090 PRINT "TO BAD SIR." 5091 GOSUB 5094 5092 PRINT "YOUR NEW PLANE IS CALLED THE ";P$ 5093 GOTO 5100 5094 LET T$=P$ 5095 LET P$="SUPER" 5096 LET P$=P$+T$ 5097 RETURN 5100 PAUSE 250 5110 CLS 5114 IF R=12 THEN GOTO 5700 5115 PRINT R$(R);" ";A$ 5120 PRINT "YOU HAVE COMPLETED YOUR NO.";M2;" MISSION" 5130 PRINT "YOU HAVE MADE ";M3;" CITIES SURRENDER" 5135 PAUSE 250 5142 IF M3>R*4 THEN GOTO 5900 5149 LET HH=(INT ((RND*10)-(R/2))+((C1)/25)) 5150 IF C1=0 THEN GOTO 5300 5151 IF HH<5 THEN GOTO 5300 5153 IF R=12 THEN GOTO 5500 5155 IF R=11 THEN GOTO 5400 5160 PRINT "YOU ARE PROMOTED TO THE RANK OF ";R$(R+1) 5170 LET R=R+1 5200 PRINT 5205 PAUSE 300 5206 IF ZX=0 THEN GOTO 170 5210 PRINT "YOU HAVE A MARKSMANSHIP RECORD OF ";(XZ*100)/ZX;" PERCENT" 5215 PRINT "YOU HAVE ";M;" MEDALS" 5220 IF C1*((XZ*100)/ZX)>2500 THEN GOTO 2340 5230 PAUSE 200 5235 GOTO 170 5300 PRINT "YOU HAVE BEEN PASSED OVER FOR PROMOTION" 5310 GOTO 5200 5400 PRINT "YOU HAVE BEEN PROMOTED TO ";S$ 5410 GOTO 5170 5500 PRINT "YOU CANT BE PROMOTED" 5510 GOTO 5200 5600 GOSUB 5800 5610 GOTO 280 5650 PRINT "DEAR PARENT OF ";A$;" ";S$ 5660 GOTO 9530 5700 GOSUB 5800 5710 GOTO 5116 5800 PRINT A$;" ";S$ 5810 RETURN 5900 PRINT "YOU ARE GIVEN A MEDAL OF CONSPICUOUS GALLANTRY." 5910 LET M=M+1 5915 IF R=12 THEN GOTO 5940 5920 LET P=P+25 5930 GOTO 5153 5940 IF M3=51 THEN GOTO 5950 5945 GOTO 5200 5950 PRINT "YOU HAVE SAVED THE WORLD FROM TYRRANY AND OPPRESSION. THE WARIS WON." 5960 PAUSE 300 5965 CLS 5970 PRINT A$;" ";S$;" ," 5972 PRINT 5974 PRINT "YOU HAVE FINISHED THE WAR, IN A TOTAL OF ";M2;" MISSIONS AND YOU HAVE RECEIVED ";M;" MEDALS." 5976 PRINT 5978 PRINT "YOU HAVE A MARKSMANSHIP RECORD OF ";(XZ*100)/ZX;" PERCENT." 5980 PRINT "AND YOU RECIEVED A SCORE OF ";P1;" POINTS." 5982 STOP 6000 CLS 6005 FOR I=1 TO 51 6010 PRINT I,"CITY" 6020 INPUT C$(I) 6030 PRINT " POPULATION/10000" 6040 INPUT Q$(I) 6050 IF I/10=INT (I/10) THEN CLS 6060 NEXT I 6070 STOP 7000 REM 7010 FOR I=0 TO 20 7030 PRINT " " 7040 NEXT I 7050 PRINT AT 3,2;" " 7060 PRINT AT 9,2;" " 7070 PRINT AT 4,2;" " 7080 PRINT AT 5,2;" ? ? " 7090 PRINT AT 6,2;" ? " 7100 PRINT AT 7,2;" " 7110 PRINT AT 8,2;" " 7120 PRINT AT 12,7;"BY BLAKE KINCAID" 7130 PRINT AT 19,0;" PRESS ENTER TO START" 7135 SLOW 7140 IF INKEY$="" THEN GOTO 7140 7150 RETURN 7999 STOP 8080 CLS 8900 PAUSE 200 8902 IF J1=C THEN GOTO 8980 8905 IF J1=C-1 OR J1=C+1 THEN GOTO 8960 8920 CLS 8925 IF INT (RND*5)=1 THEN GOTO 8990 8930 PRINT "YOU ESCAPED THE ENEMY PATROLS" 8935 PAUSE 300 8940 GOTO 5000 8960 CLS 8962 PRINT "YOU HAVE LANDED IN THE OUTSKIRTSOF ";C$(Z) 8963 IF INT (RND*3)<>1 THEN GOTO 8990 8967 GOTO 8930 8980 CLS 8985 PRINT "YOU LANDED ON MAIN STREET ";C$(Z) 8990 IF R>INT (RND*6) THEN GOTO 8995 8991 PRINT "YOU WERE CAPTURED AND KILLED" 8992 GOTO 9500 8995 PRINT "YOU HAVE BEEN CAPTURED AND WERE TRADED FOR ENEMY PRISONERS" 8996 GOTO 5000 9000 CLS 9010 PRINT "YOU DIED FROM LACK OF OXYGEN BECAUSE YOU CLIMBED TO SUCH A HIGH ALTITUDE" 9050 GOTO 9500 9100 IF J9=1 THEN GOTO 9180 9105 CLS 9110 PRINT "YOU STRUCK A TREE AND "; 9120 IF INT (RND*2)=1 THEN GOTO 9150 9130 PRINT "WERE KILLED INSTANTLY" 9140 GOTO 9500 9150 PRINT "YOU SURVIVED" 9160 PAUSE 250 9170 GOTO 5000 9180 LET D=2 9185 IF P=C OR P=C-1 OR P=C+1 THEN GOSUB 3000 9190 GOTO 790 9200 CLS 9210 PRINT "YOU WERE TOO CLOSE TO THE GROUND, YOUR CHUTE DIDNT HAVE ENOUGH TIME TO OPEN" 9220 GOTO 9500 9250 IF J9=1 THEN GOTO 9280 9255 CLS 9256 FOR S=1 TO 5 9257 IF INKEY$="I" THEN GOTO 760 9258 NEXT S 9260 PRINT "YOU WERE HIT BY FLAK AND DIED IMEDIATELY" 9270 GOTO 9500 9280 LET D=2 9290 GOTO 790 9300 PAUSE 200 9310 CLS 9320 PRINT 9330 PRINT " YOU HAVE BEEN DISHONORABLY DISCHARGED FROM THE AIR FORCE" 9340 PRINT 9350 PRINT "YOU HAD ";P1;" POINTS" 9360 STOP 9500 SLOW 9510 PAUSE 300 9511 CLS 9515 LET P1=INT P1 9516 IF R=12 THEN GOTO 5650 9520 PRINT AT 2,5;"DEAR PARENT OF ";R$(R);" ";A$;"," 9530 PRINT A$;" WAS KILLED INACTION OVER THE CITY OF ";C$(Z);" ALONG WITH THE PLANE ";P$ 9540 PRINT 9550 PRINT A$;" WAS AWARDED ";M;" COMMENDATIONS FOR GALLANTRY AND COURAGE DURING ";M2;" MISSIONS." 9560 PRINT 9565 IF ZX=0 THEN STOP 9570 PRINT " HIS MARKSMANSHIP RECORD WAS ";(XZ*100)/ZX;" PERCENT" 9780 PRINT " HE ACHIEVED A SCORE OF ";P1;" ON THE ALL ROUND PILOT RATING" 9781 IF M3=0 THEN GOTO 9790 9782 PRINT 9783 PRINT "PRESS ENTER TO CONTINUE" 9784 IF INKEY$="" THEN GOTO 9784 9787 CLS 9788 PRINT "YOUR SON MADE THESE ";M3;" CITIES SURRENDER: " 9789 GOSUB 9990 9790 IF P1<50 THEN GOTO 9900 9791 PRINT 9792 IF P1<100 THEN GOTO 9912 9796 IF P1<200 THEN GOTO 9920 9797 IF P1<350 THEN GOTO 9935 9798 IF P1<500 THEN GOTO 9940 9799 IF P1<650 THEN GOTO 9955 9800 IF P1<1000 THEN GOTO 9960 9810 PRINT 9820 PRINT AT 3,0;" IN THE LIGHT OF SUCH COURAGE AND VALOUR THAT YOUR WONDERFUL SON SO OBVIOUSLY EXUDED, WE AWARD HIM POSTHUMINOUSLY THE GRAND MEDAL OF DUTY AND HONOR ABOVE AND BEYOND THE CALL OF DUTY." 9830 PRINT 9835 IF R=12 THEN STOP 9840 PRINT " WE ARE VERY GRIEVED AT THE LOSS OF ";R$(R);" ";A$;" , FOR HE WAS OUR BEST BOMBER PILOT" 9850 STOP 9900 PRINT " YOUR SON WAS O.K. IN THE WAR" 9910 STOP 9912 PRINT "YOUR SON WAS A GOOD BOMBER PILOT AND WILL BE MISSED BY ALL HERE" 9913 STOP 9920 PRINT "YOUR SON WAS VERY HELPFUL IN THE WAR" 9930 STOP 9935 PRINT "YOUR SON WAS A GREAT ASSET TO THE WAR EFFORT AND WILL BE MISSED" 9936 STOP 9940 PRINT " YOUR SON WAS INSTRUMENTAL IN THE WAR. WE ARE VERY SORRY TO HAVE LOST HIM" 9950 STOP 9955 PRINT "YOUR SON WAS ONE OF OUR BEST BOMBER PILOTS, WE WILL ALWAYS REMEMBER HIM." 9956 STOP 9960 PRINT 9980 PRINT AT 4,4;"IN CONSIDERATION OF THE COURAGE AND DUTY DISPLAYED BY YOUR SON WE ARE AWARDING HIM WITH THE MEDAL OF HONOR POSTHUMINOUSLY" 9985 STOP 9990 LET S=0 9991 FOR I=1 TO 51 9992 IF E$(I)="-10" THEN GOSUB 9995 9993 NEXT I 9994 GOTO 9790 9995 PRINT C$(I) 9996 LET S=S+1 9997 IF S/10=INT (S/10) THEN CLS 9998 RETURN 9999 STOP ------------------------------------------------