image of READY prompt

Wang2200.org

Listing of file='GIL22' on disk='vmedia/more_games.wvd.zip'

# Sector 546, program filename = 'GIL22'
0010 REM %        RALF BERGER      9.5.80
0020 DIM A(5),B(5),B1(5),C(5),C1(5),C2(5),D(7),D1(7),D2(7),E(7),F(7),M(80),Y(1
     4),H(4),H1(4),P(14),S$1
0030 REM % VARIABLE DEFINITION
   : REM *******************************************
0040 PRINT HEX(0D03060202020F);
0050 PRINT AT(0,30);HEX(020404040E);"MARTIAN WAR";
0060 PRINT AT(4,5);HEX(0F);"THE YEAR IS 1987. RONALD REAGAN IS FINISHING HIS S
     ECOND";AT(5,10);"TERM AS PRESIDENT.";
0070 PRINT AT(7,5);"HIGHLY ADVANCED FORMS OF LIFE WERE DISCOVERED ON MARS IN 1
     985.";
0080 PRINT AT(9,5);"PRESIDENT REAGAN HAS MADE SEVERAL TACTLESS COMMENTS, IMPLY
     ING THAT ";AT(10,10);"THE KKK ORIGINATED ON MARS, ETC."
0090 PRINT AT(12,5);"DUE TO SEVERAL WORLD WARS THE BULK OF THE HUMAN POPULATIO
     N";AT(13,10);"ARE VEGETABLES.";
0100 PRINT AT(15,5);"IN FACT YOU AND RONALD ARE THE LAST NON-VEG'S (RONNIE IS"
     ;AT(16,10);"TOO OLD TO FIGHT) SO IT IS UP TO YOU TO SAVE EARTH FROM THE";
     AT(17,10);"MARTIAN ATTACK.";
0110 PRINT AT(20,5);"HIT 'RETURN' TO CONTINUE";
   : INPUT X$
0120 PRINT HEX(0D0306);
0130 PRINT AT(0,30);HEX(020404040E);"MARTIAN WAR";
0140 PRINT AT(2,5);HEX(0F);"THERE IS ONE WEAPON REMAINING ON EARTH.";
0150 PRINT AT(4,5);"THIS WEAPON IS CONTROLLED WITH THE FOLLOWING KEYS;";
0160 PRINT AT(5,20);"<- - MOVE TO LEFT";
0170 PRINT AT(6,20);"^  - STOP";
0180 PRINT AT(7,20);"-> - MOVE TO RIGHT";
0190 PRINT AT(8,20);"TAB - FIRE A MISSILE";
0200 PRINT AT(10,5);"THERE WILL BE MARTIAN SPACESHIPS FLYING ALL OVER THE PLAC
     E AND DROPPING";AT(11,10);"BOMBS DOWN ON YOU AND THE HUMAN POPULATION.";
0210 PRINT AT(13,5);"YOUR MISSION IS QUITE SIMPLE. THERE ARE A LIMITED AMOUNT
     OF MARTIAN";AT(14,10);"SHIPS AND IF YOU DESTROY ALL OF THEM BEFORE THEY D
     ESTROY THE WHOLE";AT(15,10);"POPULATION OF EARTH THEN YOU WIN.";
0220 PRINT AT(17,5);"IF YOUR WEAPON IS HIT IT WILL HAVE TO BE REPAIRED AND THE
     REFORE";AT(18,10);"UNUSABLE FOR A PERIOD OF TIME.";
0230 PRINT AT(22,5);"GOOD LUCK!!";
0240 S$="Y"
   : PRINT AT(21,5);"IF YOU DO NOT WANT ANY SOUND EFFECTS THEN TYPE 'N' ?";
   : LINPUT S$
   : IF S$<>"N" THEN S$="Y"
0241 S=0
   : P1=1000
   : M2=0
   : M1=14
   : P=0
   : T2=25
0250 PRINT HEX(0D03060202020F);
   : S=40
0260 FOR I=1 TO 5
   : A(I),B(I),C(I),C1(I)=0
   : NEXT I
0270 FOR I=1 TO 7
   : D(I),E(I),F(I)=0
   : NEXT I
0280 FOR I=1 TO 14
   : Y(I)=0
   : NEXT I
0290 FOR I=4 TO 73
0300 M(I)=1
0310 NEXT I
0320 I=3
0330 M(I)=2
   : IF I<69 THEN M(I+1)=3
   : IF I>69 THEN 350
0340 IF I=1 THEN I=I+4
   : ELSE I=I+5
   : GOTO 330
0350 IF M1=14 THEN 360
   :  M1=M1+M2
   : M2=0
0360 T1=T2
0370 FOR I=1 TO 5
   : C(I),C1(I)=1
   : A(I)=1
   : NEXT I
0380 FOR I=1 TO 7
   : F(I)=1
   : NEXT I
0390 K$,T$="5"
0400 N=-1
   : C=0
0410 L=0
0420 FOR I=1 TO 4
   : H1(I)=-1
   : NEXT I
0425 FOR I=1 TO 14
   : P(I)=0
   : NEXT I
0430 DATA 7,36,8,41,6,31,9,46,5,26,10,51,4,21,11,56,3,16,12,61,2,11,13,66,1,6,
     14,71
0440 RESTORE LINE 430
   : FOR I=1 TO M1
   : READ J,K
   : P(J)=K
   : NEXT I
0441 J=1
   : FOR I=4 TO 72 STEP 5
   : IF P(J)<>0 THEN 448
0442 M(I)=2
   : FOR K=1 TO 3
   : M(I+K)=0
   : NEXT K
0448 J=J+1
   : NEXT I
0450 REM **************************************************
0460 REM PRINT PLAYING FIELD
0470 PRINT AT(0,0);BOX(24,79);
0480 PRINT AT(0,62);BOX(4,17);
0490 PRINT AT(0,62);BOX(-0,-17);
0500 PRINT AT(0,79);BOX(-4,-0);
0520 DATA 11,12,10,10,8,9,6,7,5,5,3,4,1,2
0530 J1=-1
0540 FOR I=1 TO M1
0550 RESTORE LINE 520,I
0560 READ M
0570 J1=J1 * (-1)
0580 IF I=1 THEN Y=3
   : ELSE IF I=3 THEN Y=1
   : ELSE IF I=5 THEN Y=2
   : ELSE IF I=7 THEN Y=3
   : ELSE IF I=9 THEN Y=1
   : ELSE IF I=11 THEN Y=2
   : ELSE IF I=13 THEN Y=3
   : ELSE GOTO 582
0581 GOTO 590
0582 IF I=2 THEN Y=74
   : ELSE IF I=4 THEN Y=73
   : ELSE IF I=6 THEN Y=75
   : ELSE IF I=8 THEN Y=74
   : ELSE IF I=10 THEN Y=73
   : ELSE IF I=12 THEN Y=75
   : ELSE Y=74
0590 FOR J=1 TO M
0600 IF J1=-1 THEN 680
0610 GOSUB '31 (Y)
0620 GOSUB '32 (Y)
0630 GOSUB '33 (Y)
0640 GOSUB '34 (Y)
0650 GOSUB '35 (Y)
0660 GOSUB '30 (Y)
0670 GOTO 740
0680 GOSUB '41 (Y)
0690 GOSUB '42 (Y)
0700 GOSUB '43 (Y)
0710 GOSUB '44 (Y)
0720 GOSUB '45 (Y)
0730 GOSUB '40 (Y)
0740 IF J1=1 THEN Y=Y+3
   : ELSE IF J<>M THEN Y=Y-3
0750 NEXT J
0760 GOSUB '50 (Y)
0770 GOSUB '51 (Y-1)
0780 GOSUB '200 (Y)
0790 NEXT I
0800 GOTO 5030
0810 DEFFN '31 (Y)
0820 PRINT AT(21,Y);HEX(E8);
0830 PRINT AT(22,Y);HEX(FAC4);
0840 PRINT AT(23,Y);HEX(EAC9);
0850 RETURN
0860 DEFFN '32 (Y)
0870 PRINT AT(21,Y);HEX(A0D4);
0880 PRINT AT(22,Y);HEX(D8DD);
0890 PRINT AT(23,Y);HEX(E8C3C1);
0900 RETURN
0910 DEFFN '33 (Y)
0920 PRINT AT(21,Y);HEX(A0E8);
0930 PRINT AT(22,Y);HEX(A0EECC);
0940 PRINT AT(23,Y);HEX(E0C6C9);
0950 RETURN
0960 DEFFN '34 (Y)
0970 PRINT AT(21,Y);HEX(A0A0D4);
0980 PRINT AT(22,Y);HEX(A0C8DDD0);
0990 PRINT AT(23,Y);HEX(A0C8C7D4);
1000 RETURN
1010 DEFFN '35 (Y)
1020 PRINT AT(21,Y);HEX(A0A0E8);
1030 PRINT AT(22,Y);HEX(A0A0EEC4);
1040 PRINT AT(23,Y);HEX(A0A0EED0);
1050 RETURN
1060 DEFFN '30 (Y)
1070 PRINT AT(21,Y);HEX(A0A0A0D4);
1080 PRINT AT(22,Y);HEX(A0A0A0D5);
1090 PRINT AT(23,Y);HEX(A0A0A0F5);
1100 RETURN
1110 DEFFN '41 (Y)
1120 PRINT AT(21,Y);HEX(A0A0A0D4);
1130 PRINT AT(22,Y);HEX(A0A0C8D5);
1140 PRINT AT(23,Y);HEX(A0A0C6D5);
1150 RETURN
1160 DEFFN '42 (Y)
1170 PRINT AT(21,Y);HEX(A0A0E8A0);
1180 PRINT AT(22,Y);HEX(A0A0EEE4);
1190 PRINT AT(23,Y);HEX(A0C2C3D4);
1200 RETURN
1210 DEFFN '43 (Y)
1220 PRINT AT(21,Y);HEX(A0A0D4A0);
1230 PRINT AT(22,Y);HEX(A0CCDDA0);
1240 PRINT AT(23,Y);HEX(A0C8C9D0);
1250 RETURN
1260 DEFFN '44 (Y)
1270 PRINT AT(21,Y);HEX(A0E8A0A0);
1280 PRINT AT(22,Y);HEX(E0EECCA0);
1290 PRINT AT(23,Y);HEX(E8CBC4A0);
1300 RETURN
1310 DEFFN '45 (Y)
1320 PRINT AT(21,Y);HEX(A0D4A0A0);
1330 PRINT AT(22,Y);HEX(C8DDA0A0);
1340 PRINT AT(23,Y);HEX(E0DDA0A0);
1350 RETURN
1360 DEFFN '40 (Y)
1370 PRINT AT(21,Y);HEX(E8A0A0A0);
1380 PRINT AT(22,Y);HEX(EAA0A0A0);
1390 PRINT AT(23,Y);HEX(FAA0A0A0);
1400 RETURN
1410 DEFFN '50 (Y)
1420 PRINT AT(21,Y);HEX(FC);
1430 PRINT AT(22,Y);HEX(FF);
1440 PRINT AT(23,Y);HEX(FF);
1450 RETURN
1460 DEFFN '51 (Y)
1470 PRINT AT(21,Y);HEX(A0FC);
1480 PRINT AT(22,Y);HEX(EAFFD5);
1490 PRINT AT(23,Y);HEX(A0FF);
1500 RETURN
5030 Y=35
5040 GOTO 5120
5050 REM ***************************************************
5060 DEFFN '200 (Y)
   : REM PRINT SUCKER'S
5070 PRINT AT(21,Y+1);HEX(FC);
5080 PRINT AT(22,Y);HEX(D7FFEB);
5090 PRINT AT(23,Y);HEX(E0FFD0);
5100 RETURN
5110 REM **************************************************
5120 PRINT AT(0,66);HEX(020402040E);"REMAINING";HEX(0F);
5130 PRINT AT(1,64);"MARTIANS -";
   : PRINTUSING "###",T1;
5140 PRINT AT(2,64);"HUMANS   -";
   : PRINTUSING "###",M1;
5141 PRINT AT(3,64);"SHOTS    -";
   : PRINTUSING "###",S
5150 REM CONTINUE
5160 GOSUB 7460
5170 GOSUB 7200
5180 GOSUB 5440
5190 GOSUB 5790
5200 GOSUB 7110
5210 GOSUB 5440
5211 GOSUB 7521
5220 GOSUB 6590
5230 GOSUB 5440
5240 IF C=0 THEN 5250
   : C=C - 1
   : IF C=0 THEN Y=35
   : GOTO 5150
5250 KEYIN K$,5250,5250
5255 C9=C9+1
   : IF C9<200 THEN 5260
   : IF S<T1 THEN S=S+4
   : C9=0
   : PRINT AT(3,64);"SHOTS    -";
   : PRINTUSING "###",S
5260 IF K$=HEX(7E) THEN GOSUB 5370
5270 IF K$=HEX(4D) THEN Y=Y - 1
   : ELSE IF K$=HEX(4C) THEN Y=Y + 1
5280 T$=K$
5290 IF Y<0 THEN 5320
   : ELSE IF Y>72 THEN 5340
5300 PRINT AT(20,Y);HEX(A0F0F8FFF4F0A0);
5310 GOTO 5150
5320 K$=HEX(4C)
5330 GOTO 5270
5340 K$=HEX(4D)
5350 GOTO 5270
5360 REM ******************************************
5370 IF S=0 THEN RETURN
5375 S=S-1
   : IF N>=0 THEN 5410
   : PRINT AT(3,64);"SHOTS    -";
   : PRINTUSING "###",S
   : C9=0
5380 N=19
5390 M=Y + 3
5400 PRINT AT(N,M);HEX(FF);
5410 K$=T$
5420 RETURN
5430 REM ******************************************
5440 N=N - 1
5450 IF N<-1 THEN RETURN
5460 PRINT AT(N+1,M,2);
5470 IF N<0 THEN RETURN
5480 IF M>60 AND N<4 THEN 5490
   : ELSE GOTO 5510
5490 N=-2
   : RETURN
5500 REM % TEST FOR HIT ON TARGET
5510 FOR I=1 TO 5
5520 IF N<>A(I) THEN 5550
5530 IF B(I)=0 THEN 5550
5540 IF M>=B(I) AND M<B(I)+6 THEN GOTO 5720
5550 NEXT I
5560 REM % TEST FOR HIT ON MISSILE
5570 I=1
5580 IF D(I)<=0 THEN 5670
5590 IF N<>D(I) THEN 5670
5600 IF M<>E(I) THEN 5670
5610 D1(I)=D(I)
5620 IF S$="Y" THEN PRINT HEX(07);
5630 D(I)=-1
5640 D2(I)=2
5650 N=-2
5660 RETURN
5670 IF I=7 THEN 5690
5680 I=I + 1
   : GOTO 5580
5690 PRINT AT(N,M);HEX(FF);
5700 RETURN
5710 REM % HIT TARGET
5720 N=-2
5725 P=P+100
   : PRINT AT(0,0);P
   : IF P<P1 THEN 5730
   : M2=M2+1
   : P1=P1+1000
   : SELECT P1
   : PRINT HEX(0720)
   : PRINT HEX(0720)
   : PRINT HEX(07)
   : SELECT P
5730 B1(I)=B(I)
   : C2(I)=3
   : IF S$="Y" THEN PRINT HEX(07);
5740 B(I)=-1
5750 T1=T1 - 1
5760 PRINT AT(1,74);
   : PRINTUSING "###",T1;
5770 IF T1=0 THEN 8000
5780 RETURN
5790 REM % INITIALIZE TARGETS
   : REM **************************************
5800 R1=INT(RND(1)*20)
5810 IF R1<>10 THEN GOTO 6010
5820 J=0
5830 FOR I=1 TO 5
5840 IF B(I)<>0 THEN J=J + 1
5850 NEXT I
5860 IF J>=T1 THEN 6010
5870 I=1
5880 IF B(I)<=0 AND B1(I)=0 THEN 5900
5890 IF I=5 THEN 6010
   : I=I + 1
   : GOTO 5880
5900 R=INT(RND(1)*15)
5910 J=1
5920 IF B(J)=0 THEN 5940
5930 IF A(J)=R THEN 5900
5940 J=J + 1
5950 IF J<=5 THEN 5920
5960 A(I)=R
5970 R2=INT(RND(1)*4)
5980 IF R2<2 THEN B(I)=1
   : ELSE IF A(I)<4 THEN B(I)=56
   : ELSE B(I)=70
5990 IF R2<2 THEN C1(I)=1
   : ELSE C1(I)=-1
6000 REM % MOVE TARGETS
   : REM ************************************
6010 FOR I=1 TO 5
6020 IF B(I)<=0 THEN 6350
6030 IF I>2 THEN 6040
   : C(I)=C(I) * (-1)
   : IF C(I)=-1 THEN 6350
6040 IF I>3 THEN 6050
   : IF B(I)<>15 AND B(I)<>30 AND B(I)<>45 AND B(I)<>60 THEN 6050
   : R=INT(RND(1)*25)
   : IF R<10 THEN C1(I)=-C1(I)
6050 IF I<>4 THEN 6060
   : IF B(I)<Y-4 THEN C1(I)=1
   : ELSE IF B(I)>Y+8 THEN C1(I)=-1
6060 B(I)=B(I) + C1(I)
6070 IF B(I)>72 OR B(I)<1 THEN 6440
6080 IF A(I)<4 AND B(I)>56 THEN 6440
6090 R=INT(RND(1)*40)
6100 IF R<1 AND I<>5 THEN GOSUB 6470
6110 IF I<>5 THEN 6180
6120 K=1
6130 IF P(K)<>B(I)+3 THEN 6160
6140 IF R<15 THEN GOSUB 6480
6150 GOTO 6180
6160 K=K + 1
   : IF K<=14 THEN 6130
6170 REM  PRINT DIFFERENT STAGES IN MARTIAN DISPLAY AND TEST FOR HIT BY USER M
     ISSILE
6180 IF A(I)=N THEN GOSUB 6380
6190 IF I<3 THEN 6320
   : IF I=3 THEN 6280
   : IF I=4 THEN 6240
6200 C2(I)=MOD(C2(I)+1,2)
6210 PRINT AT(A(I),B(I));
6220 IF C2(I)=1 THEN PRINT HEX(A0DDCCFFCCEEA0);
   : ELSE PRINT HEX(A0DDF3FFF3EEA0);
6230 GOTO 6350
6240 C2(I)=MOD(C2(I)+1,2)
6250 PRINT AT(A(I),B(I));
6260 IF C2(I)=1 THEN PRINT HEX(A0DDCCFFCCEEA0);
   : ELSE PRINT HEX(A0D5C3FFC3EAA0);
6270 GOTO 6350
6280 C2(I)=MOD(C2(I)+1,2)
6290 PRINT AT(A(I),B(I));
6300 IF C2(I)=1 THEN PRINT HEX(A0CCCCFFCCCCA0);
   : ELSE PRINT HEX(A0F3CCFFCCF3A0);
6310 GOTO 6350
6320 C2(I)=MOD(C2(I)+1,4)
6330 PRINT AT(A(I),B(I));
6340 IF C2(I)=3 OR C2(I)=1 THEN PRINT HEX(A0DDCCFFCCEEA0);
   : ELSE IF C2(I)=2 THEN PRINT HEX(A0D7E4FFD8EBA0);
   : ELSE PRINT HEX(A0F5C6FFC9FAA0);
6350 NEXT I
6360 RETURN
6370 REM  IF HIT INITIALIZE DYING MARTIAN
6380 IF M>B(I) AND M<B(I) + 6 THEN 6390
   : ELSE RETURN
6390 B1(I)=B(I)
   : C2(I)=3
   : IF S$="Y" THEN PRINT HEX(07);
6400 B(I)=-1
6410 N=-2
6420 RETURN  CLEAR
   : GOTO 6350
6430 REM  REMOVE MARTIAN FROM SCREEN
6440 PRINT AT(A(I),B(I),7);
6450 B(I)=0
6460 GOTO 6350
6470 REM % INITIALIZE TARGET MISSILE
   : REM *****************************
6480 J=1
6490 IF D(J)=0 THEN 6520
6500 IF J=7 THEN RETURN
6510 J=J + 1
   : GOTO 6490
6520 IF N<>A(I)+1 THEN 6540
6530 IF M=B(I)+3 THEN RETURN
6540 D(J)=A(I)+1
6550 E(J)=B(I)+3
6560 PRINT AT(D(J),E(J));HEX(FF);
6570 RETURN
6580 REM % MOVE TARGET MISSLES
   : REM ***************************************
6590 FOR I=1 TO 7
6600 IF D(I)<=0 THEN 6980
6610 F(I)=F(I)*(-1)
6620 IF F(I)=-1 THEN 6980
6630 PRINT AT(D(I),E(I),1);
6640 D(I)=D(I) + 1
6650 IF D(I)=N THEN 7050
6660 IF D(I)=20 AND C=0 THEN 7000
6670 IF D(I)=21 THEN 6710
6680 IF D(I)=24 THEN 6970
6690 PRINT AT(D(I),E(I));HEX(FF);
6700 GOTO 6980
6710 J=E(I)
   : C1=0
6720 IF M(J)=2 OR M(J)=3 OR M(J)=0 THEN 6690
6730 J=J - 1
6740 IF M(J)=3 THEN 6780
6750 IF M(J)=1 THEN C1=1
6760 M(J)=0
6770 GOTO 6730
6780 M(J)=2
   : T=J
6790 J=J + 1
6800 IF M(J)=2 THEN 6840
6810 IF M(J)=1 THEN C1=1
6820 M(J)=0
6830 GOTO 6790
6840 IF C1=0 THEN 6960
6850 M1=M1 - 1
6860 K=1
6870 IF P(K)=T+2 THEN 6890
6880 K=K + 1
   : IF K=15 THEN RETURN
   :   GOTO 6870
6890 P(K)=0
6900 L=L + 1
6910 IF C1=1 THEN PRINT AT(2,74);
   : PRINTUSING "###",M1;
6920 K=1
6930 IF H1(K)>-1 THEN 6950
6940 H1(K)=3
   : H(K)=T
   : GOTO 6960
6950 K=K + 1
   : GOTO 6930
6960 IF M1=0 THEN 8700
6970 D(I)=0
6980 NEXT I
6990 RETURN
7000 IF E(I)>=Y+1 AND E(I)<=Y+5 THEN 7010
   : ELSE GOTO 6690
7010 IF S$="Y" THEN PRINT HEX(07);
7020 Y1=Y
   : Y=0
7030 C=50
7040 GOTO 6970
7050 IF M<>E(I) THEN 6660
7060 D1(I)=D(I)
   : D(I)=-1
7070 IF S$="Y" THEN PRINT HEX(07);
7080 D2(I)=2
7090 N=-2
7100 GOTO 6980
7110 REM % DYING MARTIANS
   : REM **************************************
7120 FOR I=1 TO 5
7130 IF B(I)>=0 THEN 7180
7140 IF C2(I)=-1 THEN 7180
7150 IF C2(I)=3 THEN PRINT AT(A(I),B1(I));HEX(CCE1C6D6CDE1E4);
   : ELSE IF C2(I)=2 THEN PRINT AT(A(I),B1(I));HEX(C8E2C8D0C8C2D0);
   : ELSE IF C2(I)=1 THEN PRINT AT(A(I),B1(I));;HEX(D0C2A0A0D0A0C1);
   : ELSE PRINT AT(A(I),B1(I),7);
7160 IF C2(I)<>0 THEN 7170
   : B1(I),B(I)=0
7170 C2(I)=C2(I) - 1
7180 NEXT I
7190 RETURN
7200 REM % DYING HUMANS
   : REM *******************************************
7210 IF L=0 THEN RETURN
7220 FOR I=1 TO 4
7230 H1(I)=H1(I)-1
7240 IF H1(I)>-1 THEN 7250
   : IF H1(I)<>-1 THEN 7260
   : L=L - 1
   : GOTO 7260
7250 IF H1(I)=3 THEN GOSUB '23(H(I))
   : ELSE IF H1(I)=2 THEN GOSUB '22(H(I))
   : ELSE IF H1(I)=1 THEN GOSUB '21(H(I))
   : ELSE GOSUB '20(H(I))
7260 NEXT I
7270 RETURN
7280 REM HUMAN DYING MOVEMENTS
7290 DEFFN '23 (Z)
7300 PRINT AT(21,Z);HEX(A0E0E0D0);
7310 PRINT AT(22,Z);HEX(D2C4DDE0C4);
7320 PRINT AT(23,Z);HEX(A0D8FAD0);
7330 RETURN
7340 DEFFN '22 (Z)
7350 PRINT AT(21,Z,5);
7360 PRINT AT(22,Z);HEX(A0C4A0D0A0);
7370 PRINT AT(23,Z);HEX(E8E2ECD2C4);
7380 RETURN
7390 DEFFN '21 (Z)
7400 PRINT AT(22,Z,5)
7410 PRINT AT(23,Z);HEX(D0E0E8E0A0);
7420 RETURN
7430 DEFFN '20 (Z)
7440 PRINT AT(23,Z,5);
7450 RETURN
7460 REM % EXPLODING MISSILES
   : REM **************************
7470 FOR I=1 TO 7
   : IF D(I)>=0 THEN 7510
7480 IF D2(I)=2 THEN PRINT AT(D1(I),E(I));HEX(E6);
   : ELSE IF D2(I)=1 THEN PRINT AT(D1(I),E(I));HEX(D0);
   : ELSE PRINT AT(D1(I),E(I),1);
7490 IF D2(I)<>0 THEN 7500
   : D(I)=0
7500 D2(I)=D2(I)-1
7510 NEXT I
7520 RETURN
7521 REM % EXPLODING MISSILE LAUNCHER
   : REM *******************************
7522 IF C<40 THEN RETURN
7523 IF C=50 THEN 7524
   : ELSE IF C=49 THEN 7525
   : ELSE IF C=48 THEN 7526
   : ELSE IF C=47 THEN 7527
   : ELSE IF C=46 THEN 7528
   : ELSE IF C=45 THEN 7529
   : ELSE IF C=44 THEN 7530
   : ELSE IF C=43 THEN 7531
   : ELSE IF C=42 THEN 7532
   : ELSE IF C=41 THEN 7533
   : ELSE GOTO 7600
7524 PRINT AT(19,Y1);HEX(A0A0A0F0);
   : PRINT AT(20,Y1);HEX(A0E0F8FFF4D0A0);
   : RETURN
7525 PRINT AT(19,Y1);HEX(A0A0C8F2C4);
   : PRINT AT(20,Y1);HEX(A0A0F0FFF0A0);
   : RETURN
7526 PRINT AT(19,Y1);HEX(A0C2C6D0D9);
   : PRINT AT(20,Y1);HEX(A0A0E0FFD0A0);
   : RETURN
7527 PRINT AT(18,Y1);HEX(A0A0E0C8D0);
   : PRINT AT(19,Y1);HEX(A0E0CCC8C8D0);
   : PRINT AT(20,Y1);HEX(A0A0A0FFA0A0);
   : RETURN
7528 PRINT AT(18,Y1);HEX(A0A0E0A0D0);
   : PRINT AT(19,Y1);HEX(A0C8C9C8C4C4);
   : PRINT AT(20,Y1);HEX(A0C1A0CFA0C1A0);
   : RETURN
7529 PRINT AT(19,Y1);HEX(C8C2C8A0C6C8);
   : PRINT AT(20,Y1);HEX(A0C4A0C3A0C4A0);
   : RETURN
7530 PRINT AT(18,Y1,7);
   : PRINT AT(19,Y1);HEX(A0C8E0E0C8D0);
   : PRINT AT(20,Y1);HEX(C2F2A0A0E2C8);
   : RETURN
7531 PRINT AT(19,Y1);HEX(E0A0D0A0E0E0A0);
   : PRINT AT(20,Y1);HEX(A0C4C2A0A0C1D1);
   : RETURN
7532 PRINT AT(19,Y1,7);
   : PRINT AT(20,Y1);HEX(C4D8A0A0A0C8F0);
   : RETURN
7533 PRINT AT(20,Y1);HEX(E0A0A0A0A0A0D0);
   : RETURN
7600 PRINT AT(19,Y1,7);AT(20,Y1,7);
   : RETURN
8000 REM % EARTH WINS
   : REM ********************************************
8010 GOSUB 7120
   : GOSUB 7120
   : GOSUB 7120
   : GOSUB 7120
   : T2=T2+5
8011 FOR Z8=1 TO M1
   : FOR Z9=1 TO 5000
   : NEXT Z9
   : PRINT HEX(07);
   : P=P+500
   : PRINT AT(0,0);P
   : NEXT Z8
8020 PRINT HEX(020404040E);
8030 PRINT AT(4,30);"CONGRATULATIONS";
8040 PRINT AT(5,20);"YOU HAVE SAVED EARTH FROM THE MARTIAN ATTACK!!";
8050 PRINT AT(7,20);"AND THE PEOPLE OF THE EARTH ARE JUMPING FOR JOY!!";
8060 PRINT AT(9,20);"HIT 'RETURN' TO CONTINUE";HEX(0F);
8070 J=0
8080 FOR I=1 TO 79
8090 IF M(I)<>3 THEN 8120
8100 J=J + 1
8110 Y(J)=I
8120 NEXT I
8130 KEYIN K$,8130,8130
8140 IF K$=HEX(0D) THEN 250
8150 I=INT(RND(1)*20)
   : I=MOD(I,J)+1
8160 GOSUB '100 (Y(I))
8170 GOSUB '101 (Y(I))
8180 GOSUB '102 (Y(I))
8190 GOSUB '103 (Y(I))
8200 GOSUB '104 (Y(I))
8210 GOSUB '105 (Y(I))
8220 GOSUB '106 (Y(I))
8230 GOSUB '105 (Y(I))
8240 GOSUB '104 (Y(I))
8250 GOSUB '103 (Y(I))
8260 GOSUB '102 (Y(I))
8270 GOSUB '101 (Y(I))
8280 GOSUB '100 (Y(I))
8290 GOTO 8130
8300 DEFFN '101 (Y)
8310 PRINT AT(20,Y,5);
8320 PRINT AT(21,Y);HEX(A0F0FFF0A0);
8330 PRINT AT(22,Y);HEX(C8C1FFC2C4);
8340 PRINT AT(23,Y);HEX(A0CCC3CCA0);
8350 RETURN
8360 DEFFN '102 (Y)
8370 PRINT AT(20,Y);HEX(A0A0F0A0A0);
8380 PRINT AT(21,Y);HEX(D8CCFFCCE4);
8390 PRINT AT(22,Y);HEX(A0E0CFD0A0);
8400 PRINT AT(23,Y);HEX(A0C3A0C3A0);
8410 RETURN
8420 DEFFN '103 (Y)
8430 PRINT AT(20,Y);HEX(A0A0FCA0A0);
8440 PRINT AT(21,Y);HEX(C3C3FFC3C3);
8450 PRINT AT(22,Y);HEX(E0D8C3E4D0);
8460 PRINT AT(23,Y,5);
8470 RETURN
8480 DEFFN '104 (Y)
8490 PRINT AT(19,Y,5);
8500 PRINT AT(20,Y);HEX(E4F0FFF0D8);
8510 PRINT AT(21,Y);HEX(A0E0FFD0A0);
8520 PRINT AT(22,Y);HEX(C2C1A0C2C1);
8530 RETURN
8540 DEFFN '105 (Y)
8550 PRINT AT(19,Y);HEX(E0A0F0A0D0);
8560 PRINT AT(20,Y);HEX(C2CCFFCCC1);
8570 PRINT AT(21,Y);HEX(C9CCCFCCC6);
8580 PRINT AT(22,Y,5);
8590 RETURN
8600 DEFFN '106 (Y)
8610 PRINT AT(19,Y);HEX(A0D4FCE8A0);
8620 PRINT AT(20,Y);HEX(E0C3FFC3D0);
8630 PRINT AT(21,Y);HEX(C2C3C3C3C1);
8640 RETURN
8650 DEFFN '100 (Y)
8660 PRINT AT(21,Y);HEX(A0A0FCA0A0);
8670 PRINT AT(22,Y);HEX(A0D7FFEBA0);
8680 PRINT AT(23,Y);HEX(A0F0FFD0A0);
8690 RETURN
8700 REM % MARTIANS WIN
   : REM ****************************************
8710 GOSUB 7210
   : GOSUB 7210
   : GOSUB 7210
8720 KEYIN K$,8720,8720
8730 IF K$=HEX(0D) THEN 40
8740 X=INT(RND(1)*23)
8750 Y=INT(RND(1)*76)
8760 PRINT AT(X,Y);HEX(CCCEFFCDCC);
8770 PRINT HEX(020400020E);
8780 PRINT AT(4,30);"SORRY CHUMP";
8790 PRINT AT(5,10);"THE MARTIANS HAVE SUCCESSFULLY DESTROYED ALL LIFE ON EART
     H!";
8791 PRINT AT(6,20);" YOUR FINAL SCORE IS ";P
8800 PRINT AT(8,20);"HIT 'RETURN' TO PLAY AGAIN";HEX(0F06);
8810 GOTO 8720
8820 DEFFN '12
   : SCRATCH T"MARTIAN2"
   : SAVE T()"MARTIAN2"