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