Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 1!******** C E N T I P E D E ******** 2!* ================= * 3!* * 4!* Z9001-VERSION BEARBEITET NACH * 5!* JEFF MINTERS ZX81-VERSION VON * 6!* H.KITTELMANN UND A.SCHROETER * 7!* (P) 15.04.1985 VERSION 1.0 * 8!* * 9!*********************************** 10 OS=6880:FOR I=529 TO 628:POKE I,0:NEXT I 15 GOSUB 6000:GOSUB 4000 20 B1=635:BB=631:BA=629:SE=634:VE=OS+159 55 WA=1:SP=MA:BL=5:SC=0:LE=7:BS=NB 200 GOSUB 1000:GOSUB 500:GOSUB 3000:GOTO 5000 500 PAPER 1:INK 5:CLS:PRINT AT(0,0);" " 510 DF=-5120 520 FOR X=0 TO 23 530 POKE DF+X*40,180 540 POKE DF+40*X+39,181 550 NEXT X 560 DF=-5120+23*40 570 FOR X=0 TO 39 580 POKE DF+X,199 590 NEXT X 600 DF=-5120+40*22+18 630 DOKE BA,DF 650 FOR X=1 TO BL 660 PRINT INK 7;AT(2*INT(RND(1)*10)+1,INT(RND(1)*36)+2);"" 670 NEXT X 700 RETURN 1000 POKE 529,255 1001 POKE 9,0 1005 POKE OS+620,201 1010 POKE 530,35 1020 DF=-5115 1050 DOKE 531,DF 1070 FOR X=533 TO 545 1080 POKE X,254 1090 NEXT X 1092 POKE 545,255 1096 POKE 546,35 1100 IF WA<3 THEN EN=547 1120 IF WA<3 THEN 2000 1126 LE=13 1130 DF=DF+5 1160 DOKE 547,DF 1180 FOR X=549 TO 559 1190 POKE X,254 1200 NEXT X 1210 IF WA>=4 THEN POKE OS+620,58 1220 POKE 559,255 1230 POKE 560,43 1240 IF WA<6 THEN EN=561 1250 IF WA<6 THEN 2000 1255 LE=18 1260 IF SP<2 THEN SP=2 1265 BL=BL+1 1270 DF=DF+5 1300 DOKE 561,DF 1330 FOR X=563 TO 571 1340 POKE X,254 1350 NEXT X 1360 POKE 571,255 1370 POKE 572,35 1380 EN=573 2000 POKE EN,0 2010 POKE EN+1,0 2020 POKE EN+2,0:POKE EN+3,0 2030 POKE B1,0 2040 POKE BB,0 2050 POKE VE,SP*3 2060 POKE SE,LE 2100 RETURN 3000 CALL OS:OUT 128,3 3100 RETURN 4000 DIM Q$(10) 4010 DIM N$(10) 4020 FOR X=1 TO 10 4030 N$(X)="JCM.SQFTWARE" 4040 Q$(X)="0000000" 4050 NEXT X 4055 X=RND(-ABS(DEEK(30)/16000)) 4060 RETURN 5000 IF PEEK(9)=255 THEN 8000 5010 GOTO 7000 6000 BORDER 1:PAPER 1:INK 4:CLS:PRINT AT(0,0);" " 6010 PRINT AT(0,8);"JEFF MINTER PRESENTS...":INK 2 6020 PRINT AT(3,6);" " 6021 PRINT AT(4,6);" " 6022 PRINT AT(5,6);" " 6023 PRINT AT(6,6);" " 6025 Y=10:INK 7 6030 FOR X=4 TO 19 STEP 4 6050 PRINT AT(Y,X);"":PRINT AT(Y+1,X);"":PRINT AT(Y+2,X);"" 6060 NEXT X 6070 PRINT AT(Y,20);"":PRINT AT(Y+1,20);"":PRINT AT(Y+2,20);"" 6080 PRINT AT(9,21);"":PRINT AT(8,20);"":PRINT AT(9,22);"":PRINT AT(8,23);"" 6085 PRINT INK 6;AT(17,3);"THE FIRST Z9001 VERSION OF THE NEW" 6086 PRINT INK 6;AT(19,14);"ARCADE GAME" 6090 FOR X=1 TO 5 6100 PRINT AT(8,20);"":PRINT AT(8,23);"" 6110 FOR D=1 TO 15 6115 IF PEEK(36)<>0 AND PEEK(36)<>127 THEN 6190 6120 NEXT D 6130 PRINT AT(8,20);"":PRINT AT(8,23);"" 6135 FOR D=1 TO 15 6136 IF PEEK(36)<>0 AND PEEK(36)<>127 THEN 6190 6137 NEXT D 6140 NEXT X 6150 PRINT INK 2;AT(22,13);"PRESS A KEY TO BEGIN..." 6160 FOR X=1 TO 150 6170 IF PEEK(36)=0 OR PEEK(36)=127 THEN NEXT X 6180 IF X>=150 THEN PRINT AT(22,13);" ":GOTO 6090 6190 PAPER 1:INK 2:CLS:OUT 136,4:PRINT AT(0,0);" " 6200 PRINT " C E N T I P E D E IS THE GREATEST NEW" 6201 PRINT "IDEA SINCE SPACE INVADERS.":PRINT 6202 PRINT " YOUR BASE IS BEING INVADED BY HOSTILE" 6203 PRINT "SEGMENTED ALIENS." 6210 PRINT " THESE ALIENS AIM TO DESTROY YOU." 6211 PRINT:PRINT " IF THEY BOMB YOU, OR YOU ALLOW THEM TO" 6212 PRINT "OVERRUN BASE CAMP, YOU LOSE A BASE." 6220 PRINT " ALIENS TURN EACH TIME THEY ENCOUNTER" 6221 PRINT "AN OBSTACLE. IF SHOT IN THE MIDDLE," 6222 PRINT "THEY BREAK INTO TWO INDEPENDENT HALVES." 6223 PRINT:PRINT " YOU MUST SHOOT ALL SEGMENTS BEFORE" 6224 PRINT "THEY LAND. FIRE ACCURATELY." 6230 PRINT " YOU MUST SCORE A DIRECT HIT, ELSE YOU" 6231 PRINT "MERELY DEFLECT THE ALIENS." 6240 PRINT:PRINT:PRINT:PRINT:PRINT INK 4;AT(19,25);"PRESS A KEY..." 6250 IF PEEK(36)=0 OR PEEK(36)=127 THEN GOTO 6250 6260 CLS:INK 3 6270 PRINT "YOUR LAZER BASE IS MOVED LEFT AND RIGHT" 6281 PRINT "BY CURSOR-KEYS ( <-- AND --> ).":PRINT 6282 PRINT:PRINT "USE SHIFT-KEY TO FIRE." 6290 PRINT:PRINT:PRINT " THE SUCCESSIVE WAVES OF ALIENS" 6291 PRINT "GET SUCCESSIVELY FASTER AND MORE" 6292 PRINT "DIFFICULT..." 6300 PRINT:PRINT:PRINT " A TABLE OF SCORES IS KEPT, SO" 6301 PRINT "COMPETITIONS CAN EASILY BE HELD." 6310 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT INK 2;AT(19,25);"PRESS A KEY..." 6320 IF PEEK(36)=0 OR PEEK(36)=127 THEN GOTO 6320 6325 CLS:INK 4:A$=INKEY$ 6330 PRINT "YOU MAY NOW SET PARAMETERS FOR THE GAME." 6340 INK 2:PRINT " 1) WHAT SPEED? (20=SLOW 1=BLITZ)" 6350 PRINT:INK 5:INPUT A$ 6360 IF LEN(A$)<>1 AND LEN(A$)<>2 THEN 6350 6370 IF LEFT$(A$,1)<"1"OR LEFT$(A$,1)>"9"THEN 6350 6380 PRINT:INK 2:PRINT A$;" OK." 6390 MA=VAL(A$) 6400 PRINT:PRINT " 2) HOW MANY BASES A GAME? (1-5)":PRINT:INK 5 6410 INPUT A$ 6420 IF LEN(A$)<>1 THEN 6410 6430 IF A$<"1"OR A$>"5"THEN 6410 6440 NB=VAL(A$) 6450 PRINT:INK 2:PRINT A$;" OK." 6460 INK 4:PRINT:PRINT:PRINT " PREPARE YOURSELF...":PRINT AT(16,0);" " 6470 PAUSE 50:BORDER 1:RETURN 7000 PB=DEEK(BA) 7010 POKE PB+40,183:POKE PB-984,112 7012 POKE PB+41,185:POKE PB-985,112 7014 POKE PB+39,184:POKE PB-983,112:PAUSE 3 7020 FOR X=PB TO PB-40*5 STEP-40:PAUSE 1 7022 POKE X,255:POKE X-1024,16:POKE X-984,48 7024 NEXT X 7030 POKE X+39,186:POKE X-983,16 7032 POKE X+41,187:POKE X-985,16 7034 POKE X,183:POKE X-1024,16 7040 POKE PB+40,255:POKE PB-984,80 7042 POKE PB+39,197:POKE PB-985,96 7044 POKE PB+41,197:POKE PB-983,96 7045 PAUSE 3 7050 FOR X=PB TO PB-40*4 STEP-40 7052 POKE X,32:PAUSE 1 7054 NEXT X 7056 POKE X,184:POKE X-1024,80 7058 POKE X-1,179:POKE X-1025,80 7060 POKE X+1,178:POKE X-1023,80 7061 PAUSE 3 7062 POKE X,32 7064 POKE X-1,32 7066 POKE X+1,32 7068 POKE X-40,32 7070 PAUSE 10 7090 BS=BS-1 7095 IF BS=0 THEN PRINT AT(11,6);"EARTHLING..YOU ARE DEFEATED" 7100 IF BS=0 THEN 7140 7110 PRINT AT(11,6);"YOU HAVE",BS,"BASE" 7120 IF BS>1 THEN PRINT AT(11,21);"S LEFT." 7130 IF BS=1 THEN PRINT AT(11,21);" LEFT." 7140 PAUSE 30 7500 GOTO 8000 8000 CLS:PRINT AT(0,0);" ":INK 4 8006 IF BS>0 THEN PRINT AT(0,7);"** SCORING X",WA," **" 8010 SC=SC+WA*(LE-PEEK(SE)) 8011 IF PEEK(9)=255 THEN WA=WA+1:SP=SP-2 8016 IF SP<1 THEN SP=1 8017 IF WA=3 OR WA=6 THEN SP=MA 8030 S$=STR$(SC)+"0" 8035 IF BS=0 THEN 9000 8040 INK 2:PRINT AT(4,6);"YOUR SCORE SO FAR:",S$ 8055 V$="" 8060 FOR X=1 TO LEN(S$) 8070 V$=V$+CHR$(ASC(MID$(S$,X,1))+128) 8080 NEXT X 8085 FOR X=1 TO 6 8090 PRINT AT(4,24);" " 8100 PAUSE 4 8110 PRINT AT(4,24);S$ 8120 PAUSE 4 8130 NEXT X 8136 INK 6:PRINT AT(8,4);"EARTHLING..YOU DARE TO SURVIVE.." 8140 PRINT AT(10,6);"PREPARE FOR NEXT WAVE":INK 4 8150 IF WA=3 OR WA=6 THEN PRINT AT(13,0);"E X P E C T R E I N F O R C E M E N T" 8151 IF WA=3 OR WA=6 THEN PRINT AT(15,4);"WE HAVE BROUGHT MORE TROOPS TO" 8152 IF WA=3 OR WA=6 THEN PRINT AT(16,4);"AID OUR INVASION." 8160 INK 2:IF WA>=4 THEN PRINT AT(18,4);" ** OUR TROOPS ARE ARMED **" 8170 INK 4:PRINT AT(20,4);"DELAY FACTOR NOW:",SP 8190 INK 2:FOR F=1 TO BS 8200 PRINT AT(22,4+4*F);"" 8210 NEXT F 8400 PAUSE 50 8500 GOTO 200 9000 FOR D=1 TO 20 9010 NEXT D 9020 CLS:INK 4 9030 PRINT AT(11,8);"** GAME OVER **" 9040 S$=STR$(SC)+"0":INK 2 9050 PRINT AT(15,8);"YOU SCORED",S$ 9060 FOR X=1 TO 10 9070 IF VAL(Q$(X))>=VAL(S$)THEN NEXT X 9075 IF X>10 THEN A$=INKEY$:PAUSE 20:GOTO 9150 9076 IF X=10 THEN 9120 9080 FOR Y=10 TO X+1 STEP-1 9090 Q$(Y)=Q$(Y-1) 9100 N$(Y)=N$(Y-1) 9110 NEXT Y 9120 Q$(X)=S$ 9130 INK 4:PRINT AT(20,4);"ENTER YOUR NAME FOR SCORE TABLE." 9140 INPUT N$(X) 9150 CLS:INK 4:OUT 136,4 9160 PRINT "RANK SCORE PLAYER" 9170 PRINT " " 9180 PRINT:INK 2 9190 FOR X=1 TO 10 9200 PRINT X;TAB(7);Q$(X);TAB(16);N$(X) 9210 NEXT X 9230 INK 3:PRINT:PRINT "PRESS P TO PLAY AGAIN, OR ANY OTHER KEY" 9231 PRINT "FOR INSTRUCTIONS OR RESET PARAMETERS":PRINT AT(16,0);" " 9240 A$=INKEY$ 9250 IF A$=""THEN 9240 9260 BORDER 1:IF A$="P"THEN 20 9270 GOSUB 6190:GOTO 20