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

    5 CLEAR 1000,12279:GOSUB 1580
   10 GOSUB 10000
   20 WINDOW:CLS:WINDOW 0,23,39,39:PRINT AT(0,39);" "
   30 PRINT AT(23,0);STRING$(40,""):GOSUB 3000
   40 PRINT AT(12,14);"SPEED (9..1)" 
   50 S$=INKEY$:IF S$=""OR VAL(S$)>9 OR VAL(S$)<1 THEN 50:ELSE G=VAL(S$)
   60 PRINT AT(12,14);"             "
   70 SC=12800:B=1:Z=1:BO=12900:TE=13000:BS=13400:RA=13500:RT=13700:BL=13800
   75 HU=14000:HB=14200
   80 DEF FN Z(X)=INT(RND(1)*7)+1
   90 S$=INKEY$:G1=G1+1:CALL HU
  100 IF S$<>""THEN S=ASC(S$):ELSE S=0
  110 IF S=8 THEN CALL*300C
  120 IF S=9 THEN CALL*3070
  130 IF S=10 THEN CALL*30D4
  140 IF S=11 THEN CALL*3138
  150 IF S$="F"THEN CALL*319C:BEEP
  160 IF S$="B"THEN CALL BOMB:BEEP
  170 IF PEEK(12292)=1 THEN GOSUB 5000:GOTO 20
  180 IF RND(1)<.125 THEN POKE DEEK(12288)+125,255 
  190 IF RND(1)>.5 THEN DOKE DEEK(12288)+162,-22889
  200 CALL TEST:CALL BS:CALL RA:CALL RT:CALL HU
  203 IF RND(1)<.04 THEN CALL BLITZ
  204 PRINT AT(0,0);STRING$(40,""):PRINT AT(0,5);" SCORE:",DEEK(12293)
  205 PRINT AT(0,20);" HIGH-SCORE:",HI
  206 G1=G1+1:IF G1<G THEN 90
  207 G1=0:CALL SCROLL:IF RND(1)<1.0 THEN CALL HB
  208 IF Z=7 AND B=1 THEN HS=INT(RND(1)*9)+3
  210 ON Z GOSUB 230,300,400,500,550,600,650
  220 GOTO 90
  230 ON B GOSUB 234,238,242,246,250,254,258,262,266,270,274
  231 B=B+1:IF B=12 THEN B=1:Z=FN Z(X):RETURN:ELSE RETURN
  234 PRINT SPC(21)"";:RETURN
  238 PRINT SPC(19)"";:RETURN
  242 PRINT SPC(17)"";:RETURN
  246 PRINT SPC(15)"";:RETURN 
  250 PRINT SPC(14)"";:RETURN
  254 PRINT SPC(14)"";:RETURN
  258 PRINT SPC(14)"";:RETURN
  262 PRINT SPC(14)"";:RETURN
  266 PRINT SPC(18)"";:RETURN
  270 PRINT SPC(19)"";:RETURN
  274 PRINT SPC(21)"";:RETURN
  300 ON B GOSUB 305,305,305,305,309,310,311,312,313,305,305,305
  302 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
  303 RETURN
  305 PRINT SPC(23);:RETURN
  309 PRINT SPC(22)"";:RETURN
  310 PRINT SPC(18)"";:RETURN
  311 PRINT SPC(21)"";:RETURN
  312 PRINT SPC(18)"";:RETURN
  313 PRINT SPC(22)"";:RETURN
  400 ON B GOSUB 405,405,407,408,409,405,405
  402 B=B+1:IF B=7 THEN B=1:Z=FN Z(X)
  403 RETURN
  405 PRINT SPC(23);:RETURN
  407 PRINT SPC(17)""CHR$(142);:RETURN
  408 PRINT SPC(16);"   ";:RETURN
  409 PRINT SPC(17)""CHR$(191);:RETURN
  500 ON B GOSUB 505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520 
  501 IF B<16 THEN 503
  502 ON B-16 GOSUB 521,522,523,524,525,526,527,528,529
  503 B=B+1:IF B=25 THEN B=1:Z=5
  504 RETURN
  505 PRINT SPC(20)"";:RETURN
  506 PRINT SPC(18)"";:RETURN
  507 PRINT SPC(15)"";:RETURN
  508 PRINT SPC(14)"";:RETURN
  509 PRINT SPC(9)"";:RETURN
  510 PRINT SPC(7)"";:RETURN
  511 PRINT SPC(7)"";:RETURN
  512 PRINT SPC(7)"";:RETURN
  513 PRINT SPC(9)"";:RETURN
  514 PRINT SPC(11)"";:RETURN
  515 PRINT SPC(12)"";:RETURN
  516 PRINT SPC(11)"";:RETURN
  517 PRINT SPC(7)"";:RETURN
  518 PRINT SPC(10)"";:RETURN
  519 PRINT SPC(7)"";:RETURN
  520 PRINT SPC(11)"";:RETURN
  521 PRINT SPC(12)"";:RETURN
  522 PRINT SPC(11)"";:RETURN
  523 PRINT SPC(9)"";:RETURN
  524 PRINT SPC(7)"";:RETURN
  525 PRINT SPC(7)"";:RETURN
  526 PRINT SPC(12)"";:RETURN
  527 PRINT SPC(16)"";:RETURN
  528 PRINT SPC(19)"";:RETURN
  529 PRINT SPC(21)"";:RETURN
  550 ON B GOSUB 555,556,557,558,559,560,561,562,563,564,565,555
  551 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
  552 RETURN
  555 PRINT SPC(23);:RETURN
  556 PRINT SPC(22)"";:RETURN
  557 PRINT SPC(22)"";:RETURN
  558 PRINT SPC(21)" ";:RETURN
  559 PRINT SPC(17)" ";:RETURN
  560 PRINT SPC(15)""CHR$(191)"";:RETURN
  561 PRINT SPC(15)""CHR$(142)"";:RETURN
  562 PRINT SPC(17)" ";:RETURN
  563 PRINT SPC(21)" ";:RETURN
  564 PRINT SPC(22)"";:RETURN
  565 PRINT SPC(22)"";:RETURN
  600 ON B GOSUB 605,606,607,608,609,610,611,612,613,614,615,616,617,618,619
  601 IF B<15 THEN 603
  602 ON B-15 GOSUB 620,621,622,623,624,625,605,605
  603 B=B+1:IF B=23 THEN B=1:Z=2
  604 RETURN
  605 PRINT SPC(23);:RETURN
  606 PRINT CHR$(191)SPC(21)"";:RETURN
  607 PRINT ""CHR$(191)SPC(13)"";:RETURN
  608 PRINT ""CHR$(191)SPC(11)"";:RETURN
  609 PRINT ""CHR$(191)SPC(8)"";:RETURN
  610 PRINT "";:RETURN
  611 PRINT "";:RETURN
  612 PRINT "";:RETURN
  613 PRINT ""CHR$(142)SPC(8)"";:RETURN
  614 PRINT ""CHR$(142)SPC(8)"";:RETURN
  615 PRINT ""SPC(9)"";:RETURN
  616 PRINT ""CHR$(191)SPC(8)"";:RETURN
  617 PRINT "        ";:RETURN
  618 PRINT ""CHR$(191)SPC(7)"";:RETURN
  619 PRINT ""CHR$(191)"     ";:RETURN
  620 PRINT "     ";:RETURN
  621 PRINT ""CHR$(127)"     ";:RETURN 
  622 PRINT ""CHR$(142)"     ";:RETURN
  623 PRINT "       ";:RETURN
  624 PRINT ""CHR$(142)SPC(8)"";:RETURN
  625 PRINT ""SPC(22);:RETURN
  650 ON B GOSUB 655,656,657,658,659,660,661,662,663,664,665,665
  652 B=B+1:IF B=12 THEN B=1:Z=FN Z(X)
  653 RETURN
  655 PRINT SPC(HS)"  "SPC(18-HS);:RETURN
  656 PRINT SPC(HS)" "SPC(18-HS);:RETURN
  657 PRINT SPC(HS)" "SPC(18-HS);:RETURN
  658 PRINT SPC(HS)""SPC(18-HS);:RETURN
  659 PRINT SPC(HS)""SPC(18-HS);:RETURN
  660 PRINT SPC(HS)""CHR$(142)""SPC(18-HS);:RETURN
  661 PRINT SPC(HS)"   "SPC(18-HS);:RETURN
  662 PRINT SPC(HS)"   "SPC(18-HS);:RETURN
  663 PRINT SPC(HS)"   "SPC(18-HS);:RETURN
  664 PRINT SPC(HS)" "CHR$(142)"  "SPC(18-HS);:RETURN 
  665 PRINT SPC(23);:RETURN
 1000 REM FLUGZEUG-LEFT
 1010 DATA "2A00303E2006052B112800BE280521043036011910F5"
 1020 DATA "2102303E26BEC8342A0030545D1BED5300303E05010800EDB011200019545D"
 1030 DATA "1B3D20F12A003011080019112800060536201910FBC9"
 1040 REM FLUGZEUG-RIGHT
 1050 DATA "2A0030110800193E200605112800BE280521043036011910F5"
 1060 DATA "2102303E08BEC8352A00302322003011060019545D133E05010800EDB811"
 1070 DATA "300019545D133D20F12A00302B112800060536201910FBC9"
 1080 REM FLUGZEUG-DOWN
 1090 DATA "2A003011C800193E200608BE280521043036012310F5"
 1100 DATA "2103303E12BEC8342A003011280019220030191919E519EBE13E06010800EDB037"
 1110 DATA "112F00ED52E511280019EBE13D20EB2A0030112800A7ED52060836202310FBC9"
 1120 REM FLUGZEUG-UP
 1130 DATA "2103303E01BEC8E52A003011270037ED523E200608BE280521043036012310F5"  
 1140 DATA "E1352A003011270037ED52220030545D012800093E05010800"
 1150 DATA "EDB001200009EB09EB3D20F10608EB36202310FBC9"
 1160 REM FIRE
 1170 DATA "2A0030117D00193EF8BEC82A003011A70019E53A0230D607470E003E20BE20040C"
 1180 DATA "2310F9413EFFBE280104E1E5C536C52310FB2A0030117D001935C1E1362023C506"
 1190 DATA "FF000010FCC110F3C9"
 1200 REM LEFTSCROLL
 1210 DATA "2128EC1127EC019803EDB00617214FEC11280036201910FB2A00302B"
 1220 DATA "22003021023034","CD70300E12112702CD0500C9
 1230 REM BOMBE
 1240 DATA "2A003011A200193E97BEC03A0230D602471128003E2077237719BE"
 1250 DATA "201C23BE201836A62B3697C5E5D56B62010010EDB0D1E1C110E1" 
 1260 DATA "772377C93EFFBEC83620C9"
 1270 REM KAMPFSTATION
 1280 DATA "2107303614214AEF0123003EC4EDB1AFB9200D2107303E06BEC8772192ED18"
 1290 DATA "E8E5C5117A0037ED52E5112400D9210000110000D906050E057ED95F19D90D"
 1300 DATA "28032318F51910F0D911340B37ED522821E111240006050E0536200D280323"
 1310 DATA "18F81910F32A05","3011640019220530C1E1189AE1C1E1E5C52BE511270021"
 1320 DATA "073046E1E53E200E0037ED52BE20090C10F7E1C1E1C3D332E1E541C536C637"
 1330 DATA "ED5236C4E5D5C5626B010008EDB0C1D1E110EA2104303601C1E1362037ED52"
 1340 DATA "10F9C1E1C3D332"
 1350 REM EXPLOSION
 1360 DATA "2100EC","1101EC","01C00336FFEDB0C9"
 1370 REM CLS
 1380 DATA "2100EC","1101EC","01C0033620EDB0C9"
 1390 REM TEST-BODENSTATION
 1400 DATA "2176EF011E003E9FEDB1AFB9C8E5C5111D0137ED52E5D9110000210000D911"
 1410 DATA "1F0006080E0A7ED95F19D90D28032318F51910F0D911111B37ED522005E1C1"
 1420 DATA "E118C5E1111F0006080E0A36200D28032318F81910F32A053011C800192205"
 1430 DATA "30C1E118A4"
 1440 REM RAKETENSCROLL
 1450 DATA "2129EC1102000613C50126003E9EEDB1AFB9200519C110F0C9E5C5D5115100"
 1460 DATA "37ED52E5D9210000110000D911260006070E037ED95F19D90D28032318F519"
 1470 DATA "10F0D9E511CA0BA7ED52201BE1E1DB82E61F200E000000000000000011F100"
 1480 DATA "1936C6D1C1E118","A7E111700CA7ED52281FE111260006070E0336200D28"
 1490 DATA "032318F81910F32A05301132001922053018D3E10607E511270037ED52EBE1"
 1500 DATA "C5EDA0EDA0EDA0C11125001910E9A7ED5206032B362010FB18D8"
 1510 REM RAKETENTEST
 1520 DATA "2A003001A000091100000608AF863001142310F95FEB112304A7ED52"
 1530 DATA 280E19112603A7ED52280521043036012100EC0128003E9DEDB1AFB9C82A05301132
 1531 DATA "00A7ED52220530C9"
 1540 REM BLITZ
 1550 DATA "21F0EC0128003E7FEDB1AFB9C8E5C51128002B19E506053E20BE2807210430"
 1560 DATA "360118031910F3E1E53E98083E9B060577081910FB545D010010EDB0E10605"
 1570 DATA "11280036201910FBC1E118BC"
 1571 REM SCROLL-HELI
 1572 DATA "E5D5C5A728243E05E5112800A7ED52EBE1010A00EDB03D2806111E001918E9"
 1573 DATA "060A2B362010FBC1D1E1C9E511A000193E05E511280019EBE1010A00EDB011"
 1574 DATA "3200A7ED523D20EBE1060A36202310FB18D6"
 1575 REM FLATTERN-HELI
 1576 DATA "212CEC110A000612C5011E003EA1EDB1AFB92005C11910F0C9E5D5C5112C00"
 1577 DATA "37ED52E5D9210000110000D90605111F000E0A7ED95F19D90D28032318F519"
 1578 DATA "10F0D9E511AA1DA7ED522016E1E1060936A02310FB110500A7ED5236A4C1D1"
 1579 DATA "E118ACE1115C1B"
 1580 DATA "A7ED52200AE1060936E22310FB18E8E111280001C800E5097EE1D6202013CD"
 1581 DATA "4C3619C5D5E5545D010005EDB0E1D1C118E5111F0006053E200E0A770D2803"
 1582 DATA "2318F91910F42A0530112C011922053018A7"
 1583 REM FIGHT-HELI
 1584 DATA "212CEC110A000612C5011E003EA1EDB1AFB92005C11910F0C9D9C1C53E1290"
 1585 DATA "210330BE2814962FE680D9E5D9E1112C0037ED52CD4C36D9C1C9D9E5D9E111"
 1586 DATA "7200192B3E20772B772BBE201036A0233694E5545D010005EDB0E118E93EA0BE20"
 1587 DATA "D6210430360118CF"
 1594 H$="0123456789ABCDEF"
 1595 FOR AF=12300 TO 14200 STEP 100
 1600 READ A$,B$,C$:C$=A$+B$+C$
 1610 IF AF<>13000 AND AF<>13100 AND AF<>13400 AND AF<>13500 AND AF<>14000 THEN 1630
 1620 READ A$:C$=C$+A$
 1630 IF AF=14200 THEN READ A$:C$=C$+A$
 1635 PRINT AF
 1640 FOR I=AF TO AF+LEN(C$)/2-1
 1650 HW=INSTR(MID$(C$,2*(I-AF)+1,1),H$)*16+INSTR(MID$(C$,2*(I-AF)+2,1),H$)-17
 1660 POKE I,HW:NEXT I
 1665 IF AF=14200 THEN AF=AF+100
 1666 NEXT AF
 1670 RETURN
 3000 DOKE 12288,-4399:POKE 12290,38:POKE 12291,18:POKE 12292,0
 3010 DOKE 12293,0
 3020 PRINT AT(18,1);CHR$(191)+"      "
 3030 PRINT AT(19,1);" "
 3040 PRINT AT(20,1);"" 
 3050 PRINT AT(21,1);CHR$(191)+""
 3060 PRINT AT(22,1);" "
 3070 RETURN
 5000 FOR I=1 TO 25
 5010 CALL*30D4:CALL*3070:CALL*300C:CALL*3070:NEXT:CALL 13200
 5020 FOR I=57 TO 48 STEP-1:POKE 13210,I
 5030 CALL 13200:PAUSE 1:CALL 13300
 5040 PAUSE 1
 5050 BEEP:NEXT:GOSUB 7000
 5055 PRINT AT(12,12);"NOCHEINMAL ?":A$=INKEY$
 5060 S$=INKEY$:IF S$=""THEN 5060 
 5070 IF S$<>"J"THEN WINDOW:END
 5080 IF DEEK(12293)>HI THEN HI=DEEK(12293)
 5090 RETURN
 7000 DATA 172,.5,162,.5,144,1,172,1,172,1,172,1,193,1,193,.5
 7010 DATA 172,.5,162,1,193,1,193,.5,128,.5,144,2,172,.5,162,.5
 7020 DATA 144,1,172,1,172,1,172,1,193,1,193,.5,172,.5,162,1
 7030 DATA 229,1,229,1,216,2
 7040 RESTORE 7000
 7050 OUT 136,128:T=300
 7060 FOR I=1 TO 27
 7070 READ H,L
 7080 IF H=0 THEN 7100
 7090 IF H>0 THEN OUT 128,7:OUT 128,H:ELSE OUT 128,39:OUT 128,-H
 7100 FOR QQ=1 TO L*T:NEXT:OUT 128,3
 7110 NEXT
 7120 OUT 136,0:RETURN
10000 WINDOW:CLS:PRINT AT(0,0);" "
10010 GOSUB 3000
10020 FOR I=1 TO 17:CALL*3070:CALL*3138:PAUSE 2:NEXT
10030 FOR I=1 TO 20:CALL*300C:PAUSE 2:NEXT
10040 FOR I=1 TO 8:CALL*3070:CALL*30D4:PAUSE 2:NEXT
10050 FOR I=1 TO 8:BEEP:CALL*319C:CALL*3138:PAUSE 2:NEXT:CALL 12900:BEEP
10060 S$=INKEY$:IF S$=""THEN 10060:ELSE RETURN
20000 RESTORE 20010
20010 DATA F5,E5,D5,C5,08,D9,F5,E5,D5,C5,DD,E5,FD,E5,CD,B0,36,0E,18,11 
20020 DATA 28,EC,CD,05,00,DD,E1,FD,E1,C1,D1,E1,F1,08,D9,C1,D1,E1,F1,ED,4D
20030 H$="0123456789ABCDEF"
20040 FOR I=600 TO 640
20050 READ A$:B$=MID$(A$,1,1):C$=MID$(A$,2,1)
20060 B=INSTR(B$,H$)-1:C=INSTR(C$,H$)-1
20070 POKE I,16*B+C:NEXT
20080 DOKE 512,600
60000 FOR I=1 TO 4:PRINT INP(128);:NEXT:RETURN