image of READY prompt

Wang2200.org

Listing of file='@MRTIAN ' on disk='vmedia/mvp-boot-2.6.2.wvd.zip'

# Sector 724, program filename = '@MRTIAN'
0015 REM %  PROG = '@MRTIAN"  RELEASE 2.6   COPYRIGHT WANG LABORATORIES 1985
0020 DIM A(4),B(4),B1(4),C(4),C1(4),C2(4),A1(4),A2(4),D(5),D1(5),D2(5),E(5),F(
     5),M(80),Y(14),H(4),H1(4),P(14),S$1
0030 REM **************************************************
   : REM ******** DISPLAY INSTRUCTIONS ********************
   : REM **************************************************
0040 PRINT HEX(0D03060202020F);
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);"4  - MOVE TO LEFT";
0170 PRINT AT(6,20);"5  - STOP";
0180 PRINT AT(7,20);"6  - MOVE TO RIGHT";
0190 PRINT AT(8,20);"8  - 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 NUMBER
     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);"WILL BE UNUSABLE FOR A PERIOD OF TIME.";
0230 PRINT AT(20,5);"HIT 'RETURN' TO CONTINUE";
   : LINPUT X$
0240 PRINT HEX(0D0306);
   : PRINT AT(0,30);HEX(020404040E);"MARTIAN WAR";HEX(0F);
0250 PRINT AT(7,5);"WHAT LEVEL OF PLAY WOULD YOU LIKE (1 - 3)";
   : PRINT AT(9,10);"1  -  BEGINNER";
   : PRINT AT(10,10);"2  -  INTERMEDIATE";
   : PRINT AT(11,10);"3  -  ADVANCED";
0260 PRINT AT(7,47);
   : INPUT Q
0270 IF Q<1 OR Q>3 THEN Q=1
0280 PRINT AT(15,5);"IF YOU WANT SOUND EFFECTS THEN TYPE 'Y' ?";
   : LINPUT S$
   : IF S$<>"Y" THEN S$="N"
0290 REM **************************************************
   : REM ******** INITIALIZE VARIABLES ********************
   : REM **************************************************
0300 PRINT HEX(0D03060202020F);
0310 FOR I=1 TO 4
   : A(I),B(I),C(I),C1(I)=0
   : NEXT I
0320 FOR I=1 TO 5
   : D(I),E(I),F(I)=0
   : NEXT I
0330 FOR I=1 TO 14
   : Y(I)=0
   : NEXT I
0340 FOR I=4 TO 73
0350 M(I)=1
0360 NEXT I
0370 I=3
0380 M(I)=2
   : IF I<69 THEN M(I+1)=3
   : IF I>69 THEN 400
0390 IF I=1 THEN I=I+4
   : ELSE I=I+5
   : GOTO 380
0400 M1=14
0410 T1=25
0420 FOR I=1 TO 4
   : C(I),C1(I)=1
   : A(I)=1
   : NEXT I
0430 FOR I=1 TO 5
   : F(I)=1
   : NEXT I
0440 K$,T$="5"
0450 N=-1
   : C=0
0460 L=0
0470 FOR I=1 TO 4
   : H1(I)=-1
   : NEXT I
0480 K=6
0490 FOR J=1 TO 14
   : P(J)=K
   : K=K+5
   : NEXT J
0500 REM **************************************************
   : REM ******** DISPLAY PLAYING FIELD *******************
   : REM **************************************************
0510 REM PRINT PLAYING FIELD
0520 PRINT AT(0,0);BOX(24,79);
0530 PRINT AT(0,62);BOX(3,17);
0540 PRINT AT(0,62);BOX(-0,-17);
0550 PRINT AT(0,79);BOX(-3,-0);
0560 PRINT AT(0,65);HEX(020402040E);"MARTIAN WAR";HEX(0F);
0570 PRINT AT(1,64);"MARTIANS -";
   : PRINTUSING "###",T1;
0580 PRINT AT(2,64);"HUMANS   -";
   : PRINTUSING "###",M1;
0590 IF J9=1 THEN 1680
0600 REM **************************************************
   : REM ******** MAKE HUMANS RUN OUT *********************
   : REM **************************************************
0610 DATA 11,12,10,10,8,9,6,7,5,5,3,4,1,2
0620 J1=-1
0630 FOR I=1 TO 14
0640 RESTORE LINE 610,I
0650 READ M
0660 J1=J1 * (-1)
0670 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 690
0680 GOTO 700
0690 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
0700 FOR J=1 TO M
0710 IF J1=-1 THEN 790
0720 GOSUB '31 (Y)
0730 GOSUB '32 (Y)
0740 GOSUB '33 (Y)
0750 GOSUB '34 (Y)
0760 GOSUB '35 (Y)
0770 GOSUB '30 (Y)
0780 GOTO 850
0790 GOSUB '41 (Y)
0800 GOSUB '42 (Y)
0810 GOSUB '43 (Y)
0820 GOSUB '44 (Y)
0830 GOSUB '45 (Y)
0840 GOSUB '40 (Y)
0850 IF J1=1 THEN Y=Y+3
   : ELSE IF J<>M THEN Y=Y-3
0860 NEXT J
0870 GOSUB '50 (Y)
0880 GOSUB '51 (Y-1)
0890 GOSUB '200 (Y)
0900 NEXT I
0910 GOTO 1670
0920 DEFFN '31 (Y)
0930 PRINT AT(21,Y);HEX(E8);
0940 PRINT AT(22,Y);HEX(FAC4);
0950 PRINT AT(23,Y);HEX(EAC9);
0960 RETURN
0970 DEFFN '32 (Y)
0980 PRINT AT(21,Y);HEX(A0D4);
0990 PRINT AT(22,Y);HEX(D8DD);
1000 PRINT AT(23,Y);HEX(E8C3C1);
1010 RETURN
1020 DEFFN '33 (Y)
1030 PRINT AT(21,Y);HEX(A0E8);
1040 PRINT AT(22,Y);HEX(A0EECC);
1050 PRINT AT(23,Y);HEX(E0C6C9);
1060 RETURN
1070 DEFFN '34 (Y)
1080 PRINT AT(21,Y);HEX(A0A0D4);
1090 PRINT AT(22,Y);HEX(A0C8DDD0);
1100 PRINT AT(23,Y);HEX(A0C8C7D4);
1110 RETURN
1120 DEFFN '35 (Y)
1130 PRINT AT(21,Y);HEX(A0A0E8);
1140 PRINT AT(22,Y);HEX(A0A0EEC4);
1150 PRINT AT(23,Y);HEX(A0A0EED0);
1160 RETURN
1170 DEFFN '30 (Y)
1180 PRINT AT(21,Y);HEX(A0A0A0D4);
1190 PRINT AT(22,Y);HEX(A0A0A0D5);
1200 PRINT AT(23,Y);HEX(A0A0A0F5);
1210 RETURN
1220 DEFFN '41 (Y)
1230 PRINT AT(21,Y);HEX(A0A0A0D4);
1240 PRINT AT(22,Y);HEX(A0A0C8D5);
1250 PRINT AT(23,Y);HEX(A0A0C6D5);
1260 RETURN
1270 DEFFN '42 (Y)
1280 PRINT AT(21,Y);HEX(A0A0E8A0);
1290 PRINT AT(22,Y);HEX(A0A0EEE4);
1300 PRINT AT(23,Y);HEX(A0C2C3D4);
1310 RETURN
1320 DEFFN '43 (Y)
1330 PRINT AT(21,Y);HEX(A0A0D4A0);
1340 PRINT AT(22,Y);HEX(A0CCDDA0);
1350 PRINT AT(23,Y);HEX(A0C8C9D0);
1360 RETURN
1370 DEFFN '44 (Y)
1380 PRINT AT(21,Y);HEX(A0E8A0A0);
1390 PRINT AT(22,Y);HEX(E0EECCA0);
1400 PRINT AT(23,Y);HEX(E8CBC4A0);
1410 RETURN
1420 DEFFN '45 (Y)
1430 PRINT AT(21,Y);HEX(A0D4A0A0);
1440 PRINT AT(22,Y);HEX(C8DDA0A0);
1450 PRINT AT(23,Y);HEX(E0DDA0A0);
1460 RETURN
1470 DEFFN '40 (Y)
1480 PRINT AT(21,Y);HEX(E8A0A0A0);
1490 PRINT AT(22,Y);HEX(EAA0A0A0);
1500 PRINT AT(23,Y);HEX(FAA0A0A0);
1510 RETURN
1520 DEFFN '50 (Y)
1530 PRINT AT(21,Y);HEX(FC);
1540 PRINT AT(22,Y);HEX(FF);
1550 PRINT AT(23,Y);HEX(FF);
1560 RETURN
1570 DEFFN '51 (Y)
1580 PRINT AT(21,Y);HEX(A0FC);
1590 PRINT AT(22,Y);HEX(EAFFD5);
1600 PRINT AT(23,Y);HEX(A0FF);
1610 RETURN
1620 DEFFN '200 (Y)
   : REM PRINT SUCKER'S
1630 PRINT AT(21,Y+1);HEX(FC);
1640 PRINT AT(22,Y);HEX(D7FFEB);
1650 PRINT AT(23,Y);HEX(E0FFD0);
1660 RETURN
1670 REM PRINT 3 SUCKER'S
1680 I=5
1690 GOSUB '200 (I)
   : I=I + 5
   : IF I>74 THEN 1700
   : GOTO 1690
1700 Y=35
1710 GOTO 1730
1720 REM **************************************************
1730 PRINT HEX(020402000F);
1740 REM **************************************************
   : REM ******** MAIN LOOP *******************************
   : REM **************************************************
1750 GOSUB 4110
1760 GOSUB 3850
1770 GOSUB 2050
1780 GOSUB 2400
1790 GOSUB 3760
1800 GOSUB 2050
1810 GOSUB 4180
1820 GOSUB 3240
1830 GOSUB 2050
1840 REM **************************************************
   : REM ******** MOVE USER MISSILE LAUNCHER **************
   : REM **************************************************
1850 IF C=0 THEN 1860
   : PRINT AT(1,64);"MARTIAN";
   : C=C - 1
   : IF C=0 THEN Y=35
   : GOTO 1740
1860 KEYIN K$,1860,1861
1861 IF K$ <> HEX(7E) AND K$ <> HEX(7F) THEN 1870
   : LOAD RUN
1870 IF K$="8" THEN GOSUB 1980
1880 IF K$="4" THEN Y=Y - 1
   : ELSE IF K$="6" THEN Y=Y + 1
1890 T$=K$
1900 IF Y<0 THEN 1930
   : ELSE IF Y>72 THEN 1950
1910 PRINT AT(20,Y);HEX(A0F0F8FFF4F0A0);
1920 GOTO 1750
1930 K$="6"
1940 GOTO 1880
1950 K$="4"
1960 GOTO 1880
1970 REM **************************************************
   : REM ******** INITIALIZE USER MISSILE *****************
   : REM **************************************************
1980 IF N>=0 THEN 2020
1990 N=18
2000 M=Y + 3
2010 PRINT AT(N,M);HEX(0EFF0F);
2020 K$=T$
2030 RETURN
2040 REM **************************************************
   : REM ******** MOVE USER MISSILE ***********************
   : REM **************************************************
2050 IF N>=0 THEN 2060
   : PRINT AT(1,64);"M";
   : RETURN
2060 N=N - 2
2070 PRINT AT(N+2,M,1);
2080 IF N<0 THEN RETURN
2090 IF M>61 AND N<3 THEN 2100
   : ELSE GOTO 2120
2100 N=-2
   : RETURN
2110 REM % TEST FOR HIT ON TARGET
2120 FOR I=1 TO 4
2130 IF N<>A(I) AND N+1<>A(I) THEN 2160
2140 IF B(I)=0 THEN 2160
2150 IF M>=B(I) AND M<B(I)+6 THEN GOTO 2330
2160 NEXT I
2170 REM % TEST FOR HIT ON MISSILE
2180 I=1
2190 IF D(I)<=0 THEN 2280
2200 IF N<>D(I) AND N+1<>D(I) THEN 2280
2210 IF M<>E(I) THEN 2280
2220 D1(I)=D(I)
2230 IF S$="Y" THEN PRINT HEX(07);
2240 D(I)=-1
2250 D2(I)=2
2260 N=-2
2270 RETURN
2280 IF I=5 THEN 2300
2290 I=I + 1
   : GOTO 2190
2300 PRINT AT(N,M);HEX(0EFF0F);
2310 RETURN
2320 REM % HIT TARGET
2330 N=-2
2340 B1(I)=B(I)
   : C2(I)=3
   : IF S$="Y" THEN PRINT HEX(07);
2350 B(I)=-1
2360 T1=T1 - 1
2370 PRINT AT(1,74);
   : PRINTUSING "###",T1;
2380 IF T1=0 THEN 4320
2390 RETURN
2400 REM **************************************************
   : REM ******** INITIALIZE MARTIANS *********************
   : REM **************************************************
2410 R1=INT(RND(1)*20)
2420 IF R1<>10 THEN GOTO 2630
2430 J=0
2440 FOR I=1 TO 4
2450 IF B(I)<>0 THEN J=J + 1
2460 NEXT I
2470 IF J>=T1 THEN 2630
2480 I=1
2490 IF B(I)<=0 AND B1(I)=0 THEN 2510
2500 IF I=4 THEN 2630
   : I=I + 1
   : GOTO 2490
2510 R=INT(RND(1)*15)
2520 J=1
2530 IF B(J)=0 THEN 2550
2540 IF A(J)=R THEN 2510
2550 J=J + 1
2560 IF J<=4 THEN 2530
2570 A(I)=R
2580 R2=INT(RND(1)*4)
2590 IF R2<2 THEN B(I)=1
   : ELSE IF A(I)<3 THEN B(I)=56
   : ELSE B(I)=70
2600 IF R2<2 THEN C1(I)=1
   : ELSE C1(I)=-1
2610 A1(I)=INT(RND(1)*4)+1
   : A2(I)=INT(RND(1)*4)+1
2620 REM **************************************************
   : REM ******** MOVE MARTIANS ***************************
   : REM **************************************************
2630 FOR I=1 TO 4
2640 IF B(I)>0 THEN 2650
   : PRINT AT(1,64);"MARTIAN";
   : GOTO 3000
2650 IF A1(I)>1 THEN 2660
   : C(I)=C(I) * (-1)
   : IF C(I)<>-1 THEN 2660
   : PRINT AT(1,64);"MARTIAN";
   : GOTO 3000
2660 IF A1(I)>2 THEN 2670
   : IF B(I)<>15 AND B(I)<>30 AND B(I)<>45 AND B(I)<>60 THEN 2670
   : R=INT(RND(1)*25)
   : IF R<10 THEN C1(I)=-C1(I)
2670 IF A1(I)<>3 THEN 2680
   : IF B(I)<Y-4 THEN C1(I)=1
   : ELSE IF B(I)>Y+11 THEN C1(I)=-1
2680 B(I)=B(I) + C1(I)
2690 IF B(I)>72 OR B(I)<1 THEN 3090
2700 IF A(I)<3 AND B(I)>56 THEN 3090
2710 R=INT(RND(1)*40)
2720 IF R<Q AND A1(I)<3 THEN GOSUB 3120
2730 IF A1(I)<>3 THEN 2760
2740 IF B(I)-4<Y AND Y<B(I)+11 THEN 2750
   : GOTO 2760
2750 IF R<Q*6 THEN GOSUB 3120
2760 IF A1(I)<>4 THEN 2830
2770 K=1
2780 IF P(K)<>B(I)+3 THEN 2810
2790 IF R<Q*12 THEN GOSUB 3130
2800 GOTO 2830
2810 K=K + 1
   : IF K<=14 THEN 2780
2820 REM  PRINT DIFFERENT STAGES IN MARTIAN DISPLAY AND TEST FOR HIT BY USER M
     ISSILE
2830 IF A(I)=N THEN GOSUB 3030
2840 IF A2(I)=1 THEN 2970
   : IF A2(I)=2 THEN 2930
   : IF A2(I)=3 THEN 2890
2850 C2(I)=MOD(C2(I)+1,2)
2860 PRINT AT(A(I),B(I));
2870 IF C2(I)=1 THEN PRINT HEX(A0DDCCFFCCEEA0);
   : ELSE PRINT HEX(A0DDF3FFF3EEA0);
2880 GOTO 3000
2890 C2(I)=MOD(C2(I)+1,2)
2900 PRINT AT(A(I),B(I));
2910 IF C2(I)=1 THEN PRINT HEX(A0DDCCFFCCEEA0);
   : ELSE PRINT HEX(A0D5C3FFC3EAA0);
2920 GOTO 3000
2930 C2(I)=MOD(C2(I)+1,2)
2940 PRINT AT(A(I),B(I));
2950 IF C2(I)=1 THEN PRINT HEX(A0CCCCFFCCCCA0);
   : ELSE PRINT HEX(A0F3CCFFCCF3A0);
2960 GOTO 3000
2970 C2(I)=MOD(C2(I)+1,4)
2980 PRINT AT(A(I),B(I));
2990 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);
3000 NEXT I
3010 RETURN
3020 REM  IF HIT INITIALIZE DYING MARTIAN
3030 IF M>B(I) AND M<B(I) + 6 THEN 3040
   : ELSE RETURN
3040 B1(I)=B(I)
   : C2(I)=3
   : IF S$="Y" THEN PRINT HEX(07);
3050 B(I)=-1
3060 N=-2
3070 RETURN  CLEAR
   : GOTO 3000
3080 REM  REMOVE MARTIAN FROM SCREEN
3090 PRINT AT(A(I),B(I),7);
3100 B(I)=0
3110 GOTO 3000
3120 REM **************************************************
   : REM ******** INITIALIZE MARTIAN MISSILES *************
   : REM **************************************************
3130 J=1
3140 IF D(J)=0 THEN 3170
3150 IF J=5 THEN RETURN
3160 J=J + 1
   : GOTO 3140
3170 IF N<>A(I)+1 THEN 3190
3180 IF M=B(I)+3 THEN RETURN
3190 D(J)=A(I)+1
3200 E(J)=B(I)+3
3210 PRINT AT(D(J),E(J));HEX(FF);
3220 RETURN
3230 REM **************************************************
   : REM ******** MOVE MARTIAN MISSILES *******************
   : REM **************************************************
3240 FOR I=1 TO 5
3250 IF D(I)>0 THEN 3260
   : PRINT AT(1,64);"M";
   : GOTO 3630
3260 F(I)=F(I)*(-1)
3270 IF F(I)<>=-1 THEN 3280
   : PRINT AT(1,64);"M";
   : GOTO 3630
3280 PRINT AT(D(I),E(I),1);
3290 D(I)=D(I) + 1
3300 IF D(I)=N THEN 3700
3310 IF D(I)=20 AND C=0 THEN 3650
3320 IF D(I)=21 THEN 3360
3330 IF D(I)=24 THEN 3620
3340 PRINT AT(D(I),E(I));HEX(FF);
3350 GOTO 3630
3360 J=E(I)
   : C1=0
3370 IF M(J)=2 OR M(J)=3 OR M(J)=0 THEN 3340
3380 J=J - 1
3390 IF M(J)=3 THEN 3430
3400 IF M(J)=1 THEN C1=1
3410 M(J)=0
3420 GOTO 3380
3430 M(J)=2
   : T=J
3440 J=J + 1
3450 IF M(J)=2 THEN 3490
3460 IF M(J)=1 THEN C1=1
3470 M(J)=0
3480 GOTO 3440
3490 IF C1=0 THEN 3610
3500 M1=M1 - 1
3510 K=1
3520 IF P(K)=T+2 THEN 3540
3530 K=K + 1
   : GOTO 3520
3540 P(K)=0
3550 L=L + 1
3560 IF C1=1 THEN PRINT AT(2,74);
   : PRINTUSING "###",M1;
3570 K=1
3580 IF H1(K)>-1 THEN 3600
3590 H1(K)=3
   : H(K)=T
   : GOTO 3610
3600 K=K + 1
   : GOTO 3580
3610 IF M1=0 THEN 5050
3620 D(I)=0
3630 NEXT I
3640 RETURN
3650 IF E(I)>=Y+1 AND E(I)<=Y+5 THEN 3660
   : ELSE GOTO 3340
3660 IF S$="Y" THEN PRINT HEX(07);
3670 Y1=Y
   : Y=0
3680 C=50
3690 GOTO 3620
3700 IF M<>E(I) THEN 3310
3710 D1(I)=D(I)
   : D(I)=-1
3720 IF S$="Y" THEN PRINT HEX(07);
3730 D2(I)=2
3740 N=-2
3750 GOTO 3630
3760 REM **************************************************
   : REM ******** EXPLODING MARTIANS **********************
   : REM **************************************************
3770 FOR I=1 TO 4
3780 IF B(I)>=0 THEN 3830
3790 IF C2(I)=-1 THEN 3830
3800 IF C2(I)=3 THEN PRINT AT(A(I),B1(I));HEX(0ECCE1C6D6CDE1E40F);
   : ELSE IF C2(I)=2 THEN PRINT AT(A(I),B1(I));HEX(0EC8E2C8D0C8C2D00F);
   : ELSE IF C2(I)=1 THEN PRINT AT(A(I),B1(I));;HEX(0ED0C2A0A0D0A0C10F);
   : ELSE PRINT AT(A(I),B1(I),7);
3810 IF C2(I)<>0 THEN 3820
   : B1(I),B(I)=0
3820 C2(I)=C2(I) - 1
3830 NEXT I
3840 RETURN
3850 REM **************************************************
   : REM ******** EXPLODING HUMANS ************************
   : REM **************************************************
3860 IF L=0 THEN RETURN
3870 FOR I=1 TO 4
3880 H1(I)=H1(I)-1
3890 IF H1(I)>-1 THEN 3900
   : IF H1(I)<>-1 THEN 3910
   : L=L - 1
   : GOTO 3910
3900 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))
3910 NEXT I
3920 RETURN
3930 REM HUMAN DYING MOVEMENTS
3940 DEFFN '23 (Z)
3950 PRINT AT(21,Z);HEX(0EA0E0E0D00F);
3960 PRINT AT(22,Z);HEX(0ED2C4DDE0C40F);
3970 PRINT AT(23,Z);HEX(0EA0D8FAD00F);
3980 RETURN
3990 DEFFN '22 (Z)
4000 PRINT AT(21,Z,5);
4010 PRINT AT(22,Z);HEX(0EA0C4A0D0A00F);
4020 PRINT AT(23,Z);HEX(0EE8E2ECD2C40F);
4030 RETURN
4040 DEFFN '21 (Z)
4050 PRINT AT(22,Z,5)
4060 PRINT AT(23,Z);HEX(0ED0E0E8E0A00F);
4070 RETURN
4080 DEFFN '20 (Z)
4090 PRINT AT(23,Z,5);
4100 RETURN
4110 REM **************************************************
   : REM ******** EXPLODING MISSILES **********************
   : REM **************************************************
4120 FOR I=1 TO 5
   : IF D(I)>=0 THEN 4160
4130 IF D2(I)=2 THEN PRINT AT(D1(I),E(I));HEX(0EE60F);
   : ELSE IF D2(I)=1 THEN PRINT AT(D1(I),E(I));HEX(0ED00F);
   : ELSE PRINT AT(D1(I),E(I),1);
4140 IF D2(I)<>0 THEN 4150
   : D(I)=0
4150 D2(I)=D2(I)-1
4160 NEXT I
4170 RETURN
4180 REM **************************************************
   : REM ******** EXPLODING MISSILE LAUNCHER **************
   : REM **************************************************
4190 IF C<40 THEN RETURN
4200 IF C=50 THEN 4210
   : ELSE IF C=49 THEN 4220
   : ELSE IF C=48 THEN 4230
   : ELSE IF C=47 THEN 4240
   : ELSE IF C=46 THEN 4250
   : ELSE IF C=45 THEN 4260
   : ELSE IF C=44 THEN 4270
   : ELSE IF C=43 THEN 4280
   : ELSE IF C=42 THEN 4290
   : ELSE IF C=41 THEN 4300
   : ELSE GOTO 4310
4210 PRINT AT(19,Y1);HEX(0EA0A0A0F00F);
   : PRINT AT(20,Y1);HEX(0EA0E0F8FFF4D0A00F);
   : RETURN
4220 PRINT AT(19,Y1);HEX(0EA0A0C8F2C40F);
   : PRINT AT(20,Y1);HEX(0EA0A0F0FFF0A00F);
   : RETURN
4230 PRINT AT(19,Y1);HEX(0EA0C2C6D0D90F);
   : PRINT AT(20,Y1);HEX(0EA0A0E0FFD0A00F);
   : RETURN
4240 PRINT AT(18,Y1);HEX(0EA0A0E0C8D00F);
   : PRINT AT(19,Y1);HEX(0EA0E0CCC8C8D00F);
   : PRINT AT(20,Y1);HEX(0EA0A0A0FFA0A00F);
   : RETURN
4250 PRINT AT(18,Y1);HEX(0EA0A0E0A0D00F);
   : PRINT AT(19,Y1);HEX(0EA0C8C9C8C4C40F);
   : PRINT AT(20,Y1);HEX(0EA0C1A0CFA0C1A00F);
   : RETURN
4260 PRINT AT(19,Y1);HEX(0EC8C2C8A0C6C80F);
   : PRINT AT(20,Y1);HEX(0EA0C4A0C3A0C4A00F);
   : RETURN
4270 PRINT AT(18,Y1,7);
   : PRINT AT(19,Y1);HEX(0EA0C8E0E0C8D00F);
   : PRINT AT(20,Y1);HEX(0EC2F2A0A0E2C80F);
   : RETURN
4280 PRINT AT(19,Y1);HEX(0EE0A0D0A0E0E0A00F);
   : PRINT AT(20,Y1);HEX(0EA0C4C2A0A0C1D10F);
   : RETURN
4290 PRINT AT(19,Y1,7);
   : PRINT AT(20,Y1);HEX(0EC4D8A0A0A0C8F00F);
   : RETURN
4300 PRINT AT(20,Y1);HEX(0EE0A0A0A0A0A0D00F);
   : RETURN
4310 PRINT AT(19,Y1,7);AT(20,Y1,7);
   : RETURN
4320 REM **************************************************
   : REM ******** EARTH WINS ******************************
   : REM **************************************************
4330 REM CLEAR SCREEN OF ANY EXPLODING MARTIANS, HUMANS, MISSILES OR USER LAUN
     CHER
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 4180
   : GOSUB 4180
   : GOSUB 4180
4340 PRINT AT(20,Y,7);
4350 J9=1
4360 PRINT HEX(020404040E);
4370 PRINT AT(4,30);"CONGRATULATIONS";
4380 PRINT AT(5,20);"YOU HAVE SAVED EARTH FROM THE MARTIAN ATTACK!!";
4390 PRINT AT(7,20);"AND THE PEOPLE OF THE EARTH ARE JUMPING FOR JOY!!";
4400 PRINT AT(9,20);"HIT 'RETURN' TO PLAY AGAIN";HEX(0F);
4410 J=0
4420 FOR I=1 TO 79
4430 IF M(I)<>3 THEN 4460
4440 J=J + 1
4450 Y(J)=I
4460 NEXT I
4470 KEYIN K$,4470,4471
4471 IF K$ <> HEX(7E) AND K$ <> HEX(7F) THEN 4480
   : LOAD RUN
4480 IF K$=HEX(0D) THEN 240
4490 I=INT(RND(1)*20)
   : I=MOD(I,J)+1
4500 GOSUB '100 (Y(I))
4510 GOSUB '101 (Y(I))
4520 GOSUB '102 (Y(I))
4530 GOSUB '103 (Y(I))
4540 GOSUB '104 (Y(I))
4550 GOSUB '105 (Y(I))
4560 GOSUB '106 (Y(I))
4570 GOSUB '105 (Y(I))
4580 GOSUB '104 (Y(I))
4590 GOSUB '103 (Y(I))
4600 GOSUB '102 (Y(I))
4610 GOSUB '101 (Y(I))
4620 GOSUB '100 (Y(I))
4630 IF S$="Y" THEN PRINT HEX(07);
4640 GOTO 4470
4650 DEFFN '101 (Y)
4660 PRINT AT(20,Y,5);
4670 PRINT AT(21,Y);HEX(A0F0FFF0A0);
4680 PRINT AT(22,Y);HEX(C8C1FFC2C4);
4690 PRINT AT(23,Y);HEX(A0CCC3CCA0);
4700 RETURN
4710 DEFFN '102 (Y)
4720 PRINT AT(20,Y);HEX(A0A0F0A0A0);
4730 PRINT AT(21,Y);HEX(D8CCFFCCE4);
4740 PRINT AT(22,Y);HEX(A0E0CFD0A0);
4750 PRINT AT(23,Y);HEX(A0C3A0C3A0);
4760 RETURN
4770 DEFFN '103 (Y)
4780 PRINT AT(20,Y);HEX(A0A0FCA0A0);
4790 PRINT AT(21,Y);HEX(C3C3FFC3C3);
4800 PRINT AT(22,Y);HEX(E0D8C3E4D0);
4810 PRINT AT(23,Y,5);
4820 RETURN
4830 DEFFN '104 (Y)
4840 PRINT AT(19,Y,5);
4850 PRINT AT(20,Y);HEX(E4F0FFF0D8);
4860 PRINT AT(21,Y);HEX(A0E0FFD0A0);
4870 PRINT AT(22,Y);HEX(C2C1A0C2C1);
4880 RETURN
4890 DEFFN '105 (Y)
4900 PRINT AT(19,Y);HEX(E0A0F0A0D0);
4910 PRINT AT(20,Y);HEX(C2CCFFCCC1);
4920 PRINT AT(21,Y);HEX(C9CCCFCCC6);
4930 PRINT AT(22,Y,5);
4940 RETURN
4950 DEFFN '106 (Y)
4960 PRINT AT(19,Y);HEX(A0D4FCE8A0);
4970 PRINT AT(20,Y);HEX(E0C3FFC3D0);
4980 PRINT AT(21,Y);HEX(C2C3C3C3C1);
4990 RETURN
5000 DEFFN '100 (Y)
5010 PRINT AT(21,Y);HEX(A0A0FCA0A0);
5020 PRINT AT(22,Y);HEX(A0D7FFEBA0);
5030 PRINT AT(23,Y);HEX(A0E0FFD0A0);
5040 RETURN
5050 REM **************************************************
   : REM ******** MARTIANS WIN ****************************
   : REM **************************************************
5060 REM CLEAR SCREEN OF ANY EXPLODING MARTIANS, HUMANS, MISSILES OR USER LAUN
     CHER
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 3860
   : GOSUB 3770
   : GOSUB 4110
   : GOSUB 4180
   : GOSUB 4180
   : GOSUB 4180
   : GOSUB 4180
5070 J9=1
5080 KEYIN K$,5080,5081
5081 IF K$ <> HEX(7E) AND K$ <> HEX(7F) THEN 5090
   : LOAD RUN
5090 IF K$=HEX(0D) THEN 240
5100 X=INT(RND(1)*23)
5110 Y=INT(RND(1)*76)
5120 Q1=INT(RND(1)*6)
   : PRINT AT(X,Y);
5130 IF Q1=0 THEN PRINT HEX(DDCCFFCCEE);
   : IF Q1=1 THEN PRINT HEX(DDF3FFF3EE);
   : IF Q1=2 THEN PRINT HEX(CCCCFFCCCC);
   : IF Q1=3 THEN PRINT HEX(D5C3FFC3EA);
5140 IF Q1=4 THEN PRINT HEX(D7E4FFD8EB);
   : IF Q1=5 THEN PRINT HEX(F5C6FFC9FA);
5150 PRINT HEX(020400020E);
5160 PRINT AT(4,30);"SORRY CHUMP";
5170 PRINT AT(5,10);"THE MARTIANS HAVE SUCCESSFULLY DESTROYED ALL LIFE ON EART
     H!";
5180 PRINT AT(8,20);"HIT 'RETURN' TO PLAY AGAIN";HEX(0F06);
5190 GOTO 5080
9000 DEFFN '126
9010 DEFFN '127
9030 LOAD RUN