ufo-town_sss.tap
ufo-town_sss.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 REM**********************************
   20 REM****  (C) BY STEPHAN RESSEL ******
   30 REM****** AND TOBIAS DORNACK ********
   40 REM** ON 15.5.1986 ** IN HOHENTHURM *
   50 REM**********************************
   60 N=0
   70 WINDOW:CLS
   80 REM ******* BILDAUFBAU ************
   90 FOR I=0 TO 39:PRINT AT(0,I);"":NEXT:BEEP:
  100 FOR I=0 TO 23:PRINT AT(I,39);"":NEXT:BEEP
  110 FOR I=39 TO 0 STEP-1:PRINT AT(23,I);"":NEXT:BEEP
  120 FOR I=23 TO 0 STEP-1:PRINT AT(I,0);"":NEXT:BEEP
  130 FOR I=-4161 TO-4440 STEP-1
  140 POKE I,255
  150 NEXT I:BEEP
  160 FOR I=1 TO 16:PRINT AT(I,19);"":NEXT:BEEP
  170 FOR I=-4239 TO-4233:POKE I,32:NEXT I:BEEP
  180 FOR I=-4279 TO-4273:POKE I,32:NEXT I:BEEP
  190 FOR I=-4319 TO-4313:POKE I,32:NEXT I :BEEP
  200 POKE-5079,142:POKE-5042,191
  210 POKE-4479,143:POKE-4442,190
  220 FOR I=-4208 TO-4202:POKE I,32:NEXT:BEEP
  230 FOR I=-4248 TO-4242:POKE I,32:NEXT:BEEP
  240 FOR I=-4288 TO-4282:POKE I,32:NEXT:BEEP
  250 FOR I=-4328 TO-4322:POKE I,32:NEXT:BEEP
  260 POKE-4385,32:POKE-4384,32:BEEP
  270 POKE-4383,32:POKE-4379,32
  280 POKE-4378,32:POKE-4377,32
  290 POKE-4345,32:POKE-4344,191:BEEP
  300 POKE-4338,142:POKE-4337,32:BEEP
  310 POKE-4305,143:POKE-4304,32
  320 POKE-4303,191:POKE-4301,32:BEEP
  330 POKE-4299,142:POKE-4298,32:BEEP
  340 POKE-4297,190:POKE-4264,143
  350 POKE-4263,32:POKE-4262,32:POKE-4381,141:POKE-4341,161 
  360 POKE-4261,32:POKE-4260,32:BEEP:POKE-4382,160:POKE-4380,160
  370 POKE-4259,32:POKE-4258,190
  380 FOR I=-4375 TO-4370:POKE I,32:NEXT:BEEP
  390 FOR I=-4335 TO-4330:POKE I,32:NEXT:BEEP
  400 FOR I=-4295 TO-4290:POKE I,32:NEXT:BEEP
  410 FOR I=-4255 TO-4250:POKE I,32:NEXT:BEEP
  420 POKE -4310,141:BEEP
  430 REM*********************************
  440 WINDOW 2,15,3,36
  450 CLS:PAUSE(2):IF N=0 THEN GOSUB 1080:BEEP
  460 FOR I=10 TO 30
  470 PRINT AT(23,I);CHR$(202):BEEP
  480 NEXT:POKE-5120,255
  490 SP=10
  500 PRINT AT(20,1);"TREFFER":BEEP 
  510 PRINT AT(18,26);"ZEIT":PRINT AT(1,19);" ":BEEP
  520 PRINT AT(0,15);" UFO-TOWN ":BEEP:BEEP
  530 PRINT AT(19,33);"SCHUSS":BEEP
  540 PRINT AT(16,18);CHR$(190):PRINT AT(16,20);CHR$(143)
  550 PRINT:PRINT:PRINT "SCHWIERIGKEITSSTUFE(1,2 ODER 3)"
  560 R$=INKEY$:IF R$="" THEN 560
  570 IF ASC(R$)<49 OR ASC(R$)>51 THEN 550
  580 SW=VAL(R$)
  590 IF SW=1 THEN LET S=35:BEEP
  600 IF SW=2 THEN S=30:BEEP:BEEP
  610 IF SW=3 THEN S=25:BEEP:BEEP:BEEP
  620 CLS
  630 LET T=0
  640 LET F=20:PAUSE 10
  650 POKE 30,0:POKE 31,0:POKE-5037,32
  660 REM***************************
  670 REM******** SCHLEIFE *********
  680 SS(1)=INT(35*RND(1)+2):RZ(1)=1:RS(1)=1:B$=CHR$(202):K=0:GOSUB 1390:D=1
  690 Z(1)=INT(13*RND(1)+2)
  700 A$=INKEY$:PRINT AT(23,SP);" "
  710 IF A$=CHR$(32) THEN GOSUB 830
  720 IF K<>0 THEN POKE PS-40,32:GOTO 680
  730 IF(Z(1)*RZ(1)=-3)OR(Z(1)*RZ(1)=15) THEN RZ(1)=-RZ(1)
  740 PRINT AT(18,10);F:PRINT AT(18,3);S-F
  750 IF(SS(1)*RS(1)=-3)OR(SS(1)*RS(1)=37) THEN RS(1)=-RS(1)
  760 PRINT AT(Z(1),SS(1));" ":IF F=0 THEN 1200
  770 ZM=2-PEEK(30):ZS=ABS(PEEK(31)-60):PRINT AT(20,25);ZM:PRINT AT(20,27);ZS 
  780 IF ZM=-1 THEN FOR I=1 TO 50:BEEP:NEXT:GOTO 1700
  790 Z(1)=Z(1)+RZ(1):SS(1)=SS(1)+RS(1):PRINT AT(Z(1),SS(1));B$:PRINT AT(22,4);T
  800 PRINT AT(21,35);S:IF S=0 THEN 1440:ELSE 700
  810 REM****** SCHLEIFENENDE ******
  820 REM***************************
  830 REM****** SCHUSS *************
  840 LET S=S-1:K=0:POKE-4271,70:POKE-4270,73:POKE-4269,82:POKE-4268,69
  850 PS=-4501:POKE-4310,255
  860 POKE PS,161
  870 IF PEEK(PS-40)=202 THEN 940
  880 POKE PS,32
  890 PS=PS-40
  900 IF PEEK(PS)=45  THEN GOSUB 1040:POKE-4310,141: RETURN             
  910 POKE PS,32
  920 GOTO 860
  930 REM******* TREFFER ***********
  940 LET T=T+1:K=K+1:SP=SP+1
  950 POKE-4271,65   
  960 POKE-4270,67
  970 POKE-4269,84
  980 POKE-4268,73
  990 POKE-4267,79
 1000 POKE-4266,78
 1010 LET F=F-1:POKE PS,32
 1020 FOR I=1 TO 21:POKE PS-40,184:BEEP:POKE PS-40,185:BEEP:NEXT:POKE PS,32
 1030 GOSUB 1040:GOSUB 1800:POKE-4310,141: RETURN
 1040 POKE-4271,255:POKE-4270,255:POKE-4269,255:POKE-4268,255
 1050 POKE-4267,255:POKE-4266,255:RETURN
 1060 REM**************************
 1070 REM ****** BEGRUESSUNG ******
 1080 PRINT:PRINT "          U F O   TOWN"
 1090 PRINT:PRINT
 1100 PRINT "HERZLICH WILLKOMMEN IN UFO-TOWN."
 1110 PRINT "SIE SIND COMMANDER DER RAUM-"
 1120 PRINT "FAEHRE Z9001-HULLY-GULLY."
 1130 PRINT "DIE BOESEN ZYLONEN WOLLEN SIE"
 1140 PRINT "VERNICHTEN().SIE MUESSEN SIE IN"
 1150 PRINT "3 MINUTEN ERLEDIGEN...."
 1160 PRINT "VIEL GLUECK.!"
 1170 PRINT:PRINT "ANMERKUNG:  SCHUSS =>  SPACE(LEER-TASTE)"
 1180 PAUSE(170):CLS
 1190 RETURN
 1200 REM **** SIEGTEXT ***********
 1210 CLS
 1220 PRINT:PRINT:  PRINT "      HERZLICHEN GLUECKWUNSCH":BEEP:BEEP
 1230 PRINT:PRINT
 1240 PRINT "SIE KONNTEN UFO-TOWN VOR DEN"
 1250 PRINT "FURCHTBAR BOESEN ZYLONEN RETTEN."
 1260 PRINT "ICH SAGE IHNEN VIELEN DANK!"
 1270 PRINT "SIE BEKOMMEN DAFUER DAS GOLDENE"
 1280 PRINT " RAUMSCHIFF............."
 1290 BEEP:BEEP:BEEP:  PAUSE(100)
 1300 WINDOW:CLS
 1310 REM***** NOCH EINMAL ? ******
 1320 PRINT AT(10,15);"WOLLEN SIE ES NOCH"
 1330 PRINT AT(13,15);"EINMAL VERSUCHEN":N=N+1
 1340 FOR I=1 TO 20:PRINT:NEXT
 1350 S$=INKEY$:IF S$=""THEN 1350
 1360 IF S$="N" THEN CLS:BEEP:BEEP:END
 1370 CLS:GOTO 90
 1380 REM******** STERNE **********
 1390 FOR I=1 TO 10
 1400 LET U1=INT(12*RND(1)+2)
 1410 LET U2=INT(34*RND(1)+3)
 1420 PRINT AT(U1,U2);CHR$(222)
 1430 NEXT I:RETURN
 1440 REM** RAUMSCHIFF ZERSTOERT ***
 1450 FOR I=2 TO 15
 1460 FOR J=3 TO 37
 1470 PRINT AT(I,J);CHR$(32)
 1480 FOR I=1 TO 50
 1490 F1=INT(12*RND(1)+2):F2=INT(33*RND(1)+3)
 1500 PRINT AT(F1,F2);CHR$(207)
 1510 NEXT I
 1520 FOR I=1 TO 75:BEEP
 1530 J2=INT(39*RND(1))
 1540 J1=INT(5*RND(I)+16)
 1550 J3=INT(127*RND(1)+127)
 1560 PRINT AT(J1,J2);CHR$(J3)
 1570 NEXT I
 1580 REM***** VERLIERERTEXT *******
 1590 CLS
 1600 PRINT AT(3,1);"D A S      "
 1610 PRINT AT(4,20);"W A R S ......" :BEEP
 1620 FOR I=1 TO 7:PRINT:NEXT:PRINT "ICH KANN NUR SAGEN, DAS IST"
 1630 PRINT "GANZ, GANZ SCHWACH."
 1640 PRINT "SIE SIND LEIDER ABGESCHOSSEN "      
 1650 PRINT:PRINT "ES WAR NETT, SIE KENNENGE-"
 1660 PRINT "LERNT ZU HABEN."
 1670 GOSUB 1870
 1680 GOTO 1300
 1690 REM****** KEINE ZEIT MEHR ********
 1700 PRINT AT(9,5);"DIE ZEIT IST ABGELAUFEN!!!"
 1710 PRINT AT(18,26);"   " 
 1720 FOR I=1 TO 90
 1730 PRINT AT(18,26);"ZEIT":BEEP
 1740 PRINT AT(9,5);"                               ":BEEP
 1750 PRINT AT(18,26);"    "
 1760 PRINT AT(9,5);"DIE ZEIT IST ABGELAUFEN!!!"
 1770 NEXT I
 1780 PAUSE(20):GOTO 1440
 1790 REM ***** ABSTURZ ************
 1800 POKE PS-40,32
 1810 IF PEEK(PS+39)<>32 OR PEEK(PS+40)<>32 OR PEEK(PS+41)<>32 THEN POKE PS,32:RETURN
 1820 POKE PS,207:PAUSE.75
 1830 POKE PS,32
 1840 PS=PS+40+INT(3*RND(1)-2):POKE PS,140:PAUSE.75:POKE PS,32
 1850 GOTO 1800
 1860 REM********* DAS WAR'S ******
 1870 FOR I=1 TO 50
 1880 PRINT AT(3,1);"        ":BEEP
 1890 PRINT AT(4,20);"                 ":BEEP   
 1900 PRINT AT(3,1);"D A S    ":PAUSE.75
 1910 PRINT AT(4,20);"W A R 'S ........ " 
 1920 NEXT I:RETURN
 1930 REM******************************
 1940 REM******************************
 1950 REM****** SCHLUSS ***************
 1960 REM******************************
 1970 REM******************************