ZX81 filename : [PLANETOIDS-19XX-MACRONICS-SYSTEMS-PLANETOIDS-19XX-MACRONICS-SYSTEMS] File type : Cassette Video frame buffer at : 502A (Video buffer expanded) BASIC variables begin at : 5343 End of save area : 5344 Video mode : PAL 50Hz Next BASIC line : 5024 (autostarts after loading) BASIC listing ------------------------------------------------ 1 REM E`RND FAST ?5 ?SGN ?L? GOSUB KTAN 5 SLOW 10 LET A=16514 20 POKE A,42 30 POKE A+1,12 40 POKE A+2,64 50 POKE A+3,229 60 POKE A+4,1 70 POKE A+5,33 80 POKE A+6,0 90 POKE A+7,9 100 POKE A+8,209 110 POKE A+9,1 120 POKE A+10,49 130 POKE A+11,2 140 POKE A+12,237 150 POKE A+13,176 160 POKE A+14,201 170 DIM A$(128,32) 180 LET B$=" " 190 LET P$=CHR$ 180 200 LET S$=CHR$ 151 210 LET V$=CHR$ 187 220 LET E$=CHR$ 128 230 LET Z$=" " 240 LET E=500 250 PRINT "MACRONICS" 260 PRINT AT 0,10;"PLANETOIDS" 270 PRINT AT 1,10; 280 FOR N=1 TO 10 290 PRINT "*"; 300 NEXT N 310 PRINT AT 3,0;"YOU ARE PILOTING YOUR SPACECRAFT" 320 PRINT "BACK FROM A MISSION IN DEEP" 330 PRINT "SPACE TO YOUR HOME PLANET, BUT" 340 PRINT "YOUR COURSE LIES THROUGH AN" 350 PRINT "ASTEROID BELT." 360 PRINT AT 9,0;"FUEL IS LIMITED, AND YOU NEED TO" 370 PRINT "LEAVE AT LEAST 100 ENERGY UNITS" 380 PRINT "FOR LANDING. EACH TIME YOU HIT A" 390 PRINT "PLANETARY PARTICLE YOUR SHIELDS" 400 PRINT "USE 50 UNITS, A MAJOR COURSE" 410 PRINT "CORRECTION USES 40, FIRING THE" 420 PRINT "DESTRUCTER USES 30, AND THE" 430 PRINT "LATERAL THRUST JETS USE 15 UNITS" 440 PRINT AT 18,0;"ARE YOU READY FOR THE LONG WARP" 450 PRINT "TO THE EDGE OF THE BELT?" 460 PRINT AT 21,7;"PRESS NEWLINE" 470 IF INKEY$="" THEN GOTO 470 480 FAST 490 CLS 500 FOR L=1 TO 128 510 LET A$(L)=B$ 520 NEXT L 530 RAND 540 FOR L=16 TO 112 550 LET M=INT (1+32*RND) 560 LET J=0 570 LET P=INT (8*RND) 580 IF P>3 THEN LET P=1 590 FOR I=0 TO P 600 GOSUB 9000 610 NEXT I 620 FOR I=P-1 TO 0 STEP -1 630 GOSUB 9000 640 NEXT I 650 NEXT L 660 FOR N=0 TO 17 670 PRINT B$ 680 NEXT N 690 LET M=INT (32*RND) 700 SLOW 710 LET D=0 720 LET T=0 730 PRINT AT 19,0;E;TAB 4;"ENERGY UNITS LEFT" 740 FOR L=16 TO 128 750 PRINT AT 21,0;"COMMAND?";Z$(9 TO 32) 760 FOR N=1 TO 5 770 LET I$=INKEY$ 780 IF I$<>"" THEN GOTO 800 790 NEXT N 800 PRINT AT 21,0;Z$(1 TO 8) 810 GOSUB 4000 820 IF E<100 THEN LET T=3 830 IF T<>0 THEN GOSUB 8000 840 PRINT AT 19,0;E 850 GOSUB 5000 860 PRINT AT 19,24;Z$(1 TO 5) 870 FOR N=L-13 TO L-10 880 LET R=M+1+D*(N-L+14) 890 IF R>32 OR R<1 THEN GOTO 910 900 IF A$(N,R)=E$ THEN GOTO 920 910 PRINT AT 19,24;"PANIC" 920 NEXT N 930 NEXT L 940 FOR N=0 TO 9 950 PRINT AT 3,M;E$ 960 LET X=USR A 970 PRINT AT 3,M;V$ 980 NEXT N 990 PRINT AT 1,7;"CONGRATULATIONS" 1000 PRINT AT 7,1;"YOU ARE THROUGH TO CLEAR SPACE" 1010 PRINT AT 9,4;"WITH ENOUGH FUEL FOR A" 1020 PRINT AT 13,9;"SAFE LANDING" 1030 PRINT AT 16,3;"(";E-100;" ENERGY UNITS TO SPARE)" 1040 CLEAR 1050 STOP 4000 IF I$<>"8" THEN GOTO 4030 4010 GOSUB 4900 4020 LET D=D+1 4030 IF I$<>"5" THEN GOTO 4060 4040 GOSUB 4900 4050 LET D=D-1 4060 LET N=M+D 4070 IF N>0 AND N<31 THEN GOTO 4100 4080 LET T=1 4090 RETURN 4100 PRINT AT 3,M;E$ 4110 LET X=USR A 4120 PRINT AT 3,N;V$ 4130 PRINT AT 17,0;A$(L) 4140 LET M=N 4150 IF A$(L-14,M+1)=P$ THEN LET T=2 4160 RETURN 4900 PRINT AT 21,10;"FIRE LATERAL JET" 4910 LET E=E-15 4920 RETURN 5000 IF I$<>"0" THEN GOTO 5110 5010 PRINT AT 21,10;"FIRE DESTRUCTER BEAM" 5020 LET E=E-30 5030 FOR N=1 TO 6 5040 PRINT AT N+3,M;S$ 5050 IF A$(L-14+N,M+1)<>P$ THEN GOTO 5080 5060 LET A$(L-14+N,M+1)=E$ 5070 GOTO 5100 5080 PRINT AT N+3,M;E$ 5090 NEXT N 5100 PRINT AT N+3,M;E$ 5110 RETURN 8000 GOTO 8000+T*100 8100 PRINT AT 21,0;Z$ 8110 PRINT AT 21,0;"MAJOR COURSE CORRECTION" 8120 LET D=-D 8130 LET T=0 8140 LET E=E-40 8150 RETURN 8200 PRINT AT 21,0;Z$ 8210 PRINT AT 21,0;"SHIELDS ACTIVATED FOR IMPACT" 8220 LET T=0 8230 LET E=E-50 8240 RETURN 8300 CLS 8310 PRINT AT 4,5;"ONLY ";E;" ENERGY UNITS LEFT" 8320 PRINT AT 11,12;"YOU ARE" 8330 PRINT AT 13,12;"DOOMED" 8340 PRINT AT 15,14;"TO" 8350 PRINT AT 17,12;"CRASH" 8360 PRINT AT 19,12;"ON THE" 8370 PRINT AT 21,10;"HOME PLANET" 8380 CLEAR 8390 STOP 9000 FOR N=M-I-INT (RND+.2) TO M+I+INT (RND+.2) 9010 IF N>0 AND N<33 THEN LET A$(L+J,N)=P$ 9020 NEXT N 9030 LET J=J+1 9040 RETURN 9990 SAVE "" 9995 RUN ------------------------------------------------