centip_sss.tap
centip_sss.z80
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