10 REM HEROS===============C64 20 REM (P) 7/87 COMMODORE WELT 30 REM ======================= 40 REM (C) PETER BERGEN V3.5 50 REM (V) A.MITTELMEYER V2.0 60 REM 70 REM BASIC V2.0 80 REM C64 90 REM ======================= 91 AT=49152:RE=49510:GOSUB92:GOTO100 92 IF PEEK(49154)=174THENRETURN 93 SYS57812"SYSMC",8,0:POKE780,0 94 POKE781,254:POKE782,191 95 SYS65493:RETURN 100 POKE53281,1:POKE646,0 105 GOSUB2060:GOSUB2080 110 REMGOSUB 2560:POKE65298,0:POKE65299,60:PRINTBK$;:GOTO230 115 GOSUB 2560:PRINTBK$;:GOTO230 120 L1$=GR$+"[193][195][193][195]"+GR$+"[194][196][194][196]"+BK$+"[197][198][197][198]"+LR$+Z6$+Z6$+Z6$+Z6$:GOTO950 130 L1$=BR$+" [212] "+BR$+"[208][209][210][211]"+BR$+"[204][205][206][207]"+LR$+Z6$+Z6$+Z6$+Z6$:GOTO950 140 L1$=RE$+ZF$+ZR$+ZR$+ZU$+LG$+"[199][200][200][201]"+LG$+"[199][200][202][203]"+LR$+Z6$+Z6$+Z6$+Z6$:GOTO950 150 L1$=WH$+" "+BK$+"[213][214][217] "+BK$+"[215][216] "+LR$+Z6$+Z6$+Z6$+Z6$:GOTO950 160 L1$=WH$+" "+WH$+" "+WH$+" "+RE$+Z1$+Z1$+Z1$+Z1$:GOTO950 170 L1$=WH$+" "+WH$+" "+WH$+" "+BL$+Z0$+Z0$+Z0$+Z0$:GOTO950 180 L1$=WH$+" "+WH$+" "+WH$+" "+YE$+ZL$+ZL$+ZL$+ZL$:GOTO950 190 L1$=WH$+" "+WH$+" "+WH$+" "+G2$+ZL$+ZL$+ZL$+ZL$:GOTO950 200 L1$=WH$+" "+WH$+" "+WH$+" "+LR$+Z6$+Z6$+Z6$+Z6$:GOTO950 210 SYSRE:DATA53,10,70,3,103,5,76,5,57,5,90,10,66,5 220 SYSRE:DATA53,60,4,70,10,8,103,40,6,76,90,8,57,180,10,90,30,2,66,30,2,0,30,2 230 DIMF%(20,40),H%(4,20),S%(3,5),D%(9),N$(3),L2$(4),L3$(4),FE%(20),Q$(3) 240 A=RND(-TI):Q$(1)=ZG$:Q$(2)=ZQ$:Q$(3)=Z4$ 250 FORA=1TO20:FE%(A)=1:NEXT:POKE53280,0:POKE646,2 260 PRINTCHR$(147);:GOSUB1980:GOSUB1960:GOSUB1440 270 FORSP=1TO3:S%(SP,1)=HV:S%(SP,2)=HH:S%(SP,5)=1:S%(SP,3)=75:S%(SP,4)=50:NEXT 280 RI=1:SP=1:Z=600:GOSUB1850 290 GOSUB830:SP=2:S=8:LC=1344:GOSUB1610:SP=3:S=16:LC=1664:GOSUB1610:SP=1:S=0:LC=1024 300 IFRI=2THENGOTO380 310 GOSUB450 320 IFZ<1THENGOSUB1610:GOTO760 330 POKE56322,224:JO=PEEK(56320):POKE56322,255 335 IFJO=123THENS%(SP,1)=S%(SP,1)-1:GOSUB510:GOSUB830:GOTO570 340 IFJO=119THENS%(SP,1)=S%(SP,1)+1:GOSUB530:GOSUB830:GOTO570 350 IFJO=111THENRI=2:GOTO380 360 IFJO=109THENGOSUB1390 370 GOTO320 380 GOSUB470 390 IFZ<1THENGOSUB1610:GOTO760 400 POKE56322,224:JO=PEEK(56320):POKE56322,255 405 IFJO=123THENS%(SP,2)=S%(SP,2)-1:GOSUB510:GOSUB830:GOTO570 410 IFJO=119THENS%(SP,2)=S%(SP,2)+1:GOSUB530:GOSUB830:GOTO570 420 IFJO=111THENRI=1:GOTO310 430 IFJO=109THENGOSUB1390 440 GOTO390 450 GOSUB490:GOSUB500:GOSUB830:GOSUB550:SYSAT,0,S:PRINTRE$RN$"WEST-OST"RF$; 460 GOSUB750:RETURN 470 GOSUB490:GOSUB500:GOSUB830:GOSUB550:SYSAT,0,S:PRINTRE$RN$"SUED-NORD"RF$; 480 GOSUB750:RETURN 490 SYSAT,0,S:FORII=1TO7:PRINT" ":NEXT:SYSAT,0,S:RETURN 500 SYSAT,12,S+6:PRINTRN$RE$Z8$YQ$Z8$YQ$RF$;:RETURN 510 FORA=1TO4:L3$(A)=MID$(L2$(A),1,1):NEXT 520 FORB=5TO2STEP-1:GOSUB560:NEXT:RETURN 530 FORA=1TO4:L3$(A)=MID$(L2$(A),6,1):NEXT 540 FORB=6TO11:GOSUB560:NEXT:RETURN 550 C=1:FORA=S+2TOS+5:SYSAT,0,A:PRINTMID$(L2$(C),6,35):C=C+1:NEXT:RETURN 560 C=1:FORA=S+2TOS+5:SYSAT,0,A:PRINTL3$(C);:PRINT;MID$(L2$(C),B,35):C=C+1:NEXT:RETURN 570 GOSUB220:V=S%(SP,1):H=S%(SP,2):IFV<1ORV>20ORH<1ORH>40THENY=1:GOTO1770 580 FORA=1TO8:READB:READC:READKR:IFF%(V,H)=BTHENZR=C 590 NEXT:IFS%(SP,4)<0THENGOTO610 600 KR=KR+INT(((S%(SP,4)/S%(SP,5))/50)+.5) 610 IFF%(V,H)=53THENGOSUB1040 620 IFF%(V,H)=70ANDSP<>1THENY=3:GOTO1770 630 IFF%(V,H)=70THENZR=ZR*S%(SP,5) 640 IFF%(V,H)=12ANDS%(SP,5)>1THENY=4:GOTO1770 650 IFF%(V,H)=57ANDSP=2THENZR=INT(ZR/3) 660 IFF%(V,H)=10THENY=5:GOTO1770 670 IFF%(V,H)=0THENGOSUB1300 680 IFF%(V,H)=66THENGOSUB1130 690 S%(SP,3)=S%(SP,3)-KR:IFS%(SP,3)<0THENSYSAT,29,S+5:Y=2:GOTO1770 700 IFNE=1THENNE=0:GOSUB730 710 Z=Z-ZR:GOSUB750:GOSUB810 720 IFRI=1THEN320 721 GOTO390 730 IFRI=1THENGOSUB450:GOTO740 731 GOSUB470 740 GOSUB750:RETURN 750 SYSAT,12,S:PRINTRE$RN$RIGHT$(" "+STR$(Z),3):RETURN 760 IFSP=1THENSP=2:S=8:LC=1344:RI=1:Z=600:GOSUB830:GOTO300 770 IFSP=2THENSP=3:S=16:LC=1664:RI=1:Z=600:GOSUB830:GOTO300 780 GOSUB1940:GOSUB1670:GOSUB1950:GOSUB1920 790 SP=1:S=0:LC=1024:GOSUB1610:SP=2:S=8:LC=1344:GOSUB1610:SP=3:S=16:LC=1664:GOSUB1610 800 SP=1:S=0:LC=1024:RI=1:Z=600:GOSUB830:GOTO300 810 SYSAT,29,S+5:PRINT" ";:FORA=29TO29+INT(S%(SP,3)/10) 820 SYSAT,A,S+5:PRINTRE$"*";:NEXT:RETURN 830 IFRI=1THENGOSUB960:GOTO840 831 GOSUB1000 840 FORA=1TO4:L2$(A)="":NEXT 850 FORA=1TO9 860 IFD%(A)=53THEN120 870 IFD%(A)=57THEN130 880 IFD%(A)=66THEN140 890 IFD%(A)=0THEN150 900 IFD%(A)=10THEN160 910 IFD%(A)=70THEN170 920 IFD%(A)=103THEN180 930 IFD%(A)=12THEN190 940 IFD%(A)=13THEN200 950 FORB=1TO4:L2$(B)=L2$(B)+MID$(L1$,5*B-4,5):NEXT:NEXT:RETURN 960 B=1:FORA=S%(SP,1)-4TOS%(SP,1)+4 970 IFA<1ORA>20THEND%(B)=10:GOTO990 980 D%(B)=F%(A,S%(SP,2)) 990 B=B+1:NEXT:RETURN 1000 B=1:FORA=S%(SP,2)-4TOS%(SP,2)+4 1010 IFA<1ORA>40THEND%(B)=10:GOTO1030 1020 D%(B)=F%(S%(SP,1),A) 1030 B=B+1:NEXT:RETURN 1040 Z1=INT(RND(1)*3):IFZ1<>1ORSP=3THENRETURN 1050 FORA=1TO20:NEXT:Z2=INT(RND(1)*10)+1 1060 GOSUB490:PRINTRE$"WOELFE GREIFEN SIE AN!" 1070 PRINT"WAEHLEN SIE ZWISCHEN:":PRINT:PRINT"LI=KAMPF":PRINT"RE=OPFER" 1080 POKE56322,224:JO=PEEK(56320):POKE56322,255 1085 IFJO=123THENS%(SP,3)=S%(SP,3)-Z2*2:NE=1:GOSUB1900:RETURN 1090 IFJO=119THENS%(SP,4)=S%(SP,4)-(Z2*10):GOSUB1110:NE=1:GOSUB1900:RETURN 1100 GOTO1080 1110 IFS%(SP,4)<1THENY=6:GOTO1770 1120 RETURN 1130 REM 1140 FORA=1TO20:IFS%(SP,1)=H%(1,A)ANDS%(SP,2)=H%(2,A)THENHK=A 1150 NEXT 1160 GOSUB490:PRINTRE$"IM HAUS FINDEN SIE VOR:" 1170 GOSUB1290:S%(SP,5)=S%(SP,5)+H%(3,HK):PU=PU+H%(3,HK):H%(3,HK)=0 1180 HB=H%(4,HK)/10:SB=S%(SP,4)/10:J=0:GOSUB1210 1190 H%(4,HK)=H%(4,HK)-J*10:S%(SP,4)=S%(SP,4)+J*10:GOSUB490:GOSUB1900:GOSUB1920 1200 NE=1:RETURN 1210 SYSAT,0,S+5:PRINT"RE=> / LI=< / FIRE=ANNAHME";:GOSUB1280 1220 POKE56322,224:JO=PEEK(56320):POKE56322,255 1225 IFJO=119THENJ=J+1:GOSUB1260 1230 IFJO=123THENJ=J-1:GOSUB1270 1240 IFJO=111THENGOSUB1900:RETURN 1250 GOTO1220 1260 IFJ>HBTHENJ=J-1:RETURN 1270 IFJ<-SBTHENJ=J+1:RETURN 1280 SYSAT,11,S+6:PRINTRIGHT$(" "+STR$(J),4):RETURN 1290 PRINTH%(3,HK);"PERSONEN":PRINTH%(4,HK)/10;"KG NAHRUNGSMITTEL":RETURN 1300 FORA=1TO20:NEXT 1310 PG=PG+S%(SP,5)-1:PU=PU-S%(SP,5)+1:S%(SP,5)=1:GOSUB1900:GOSUB1920 1320 IFPG=PTTHENGOTO1800 1330 GOSUB490:PRINT;"KURS: W/O=";S%(SP,1);"# S/N=";S%(SP,2) 1340 SYSAT,0,S+2:PRINT"NEUER KURS WEST/OST:";:SB=-1:HB=20:J=1:GOSUB1210:FORA=1TO100:NEXT 1350 A=J:SYSAT,0,S+2:PRINT"NEUER KURS SUED/NORD";:HB=40:J=1:GOSUB1210:B=J 1360 IFF%(A,B)=66ORF%(A,B)=10THENY=7:GOTO1770 1370 F%(S%(SP,1),S%(SP,2))=13:F%(A,B)=0 1380 NE=1:Z=0:RETURN 1390 REM 1400 GOSUB490:PRINT"WIEVIEL NAHRUNG SOLL":PRINT"VERBRAUCHT WERDEN?"C4$ 1410 HB=S%(SP,4)/10:SB=-0:J=0:GOSUB1210 1420 S%(SP,3)=S%(SP,3)+INT((J*10/S%(SP,5))+.5):IFS%(SP,3)>90THENS%(SP,3)=90 1430 S%(SP,4)=S%(SP,4)-J*10:Z=Z-30:GOSUB1900:GOSUB810:GOSUB730:GOSUB750:RETURN 1440 FORA=1TO20:FORB=1TO40:F%(A,B)=13:NEXT:NEXT 1450 VH=15:L=5:FORB=2TO40:GOSUB1540 1460 FORA=Z2TO(Z2+Z3):F%(A,B)=Z4:NEXT:NEXT 1470 VH=32:L=8:FORA=1TO20:GOSUB1540 1480 FORB=Z2TO(Z2+Z3):F%(A,B)=Z4:NEXT:NEXT 1490 F%(HV,HH)=0:FORA=1TO20 1500 H%(1,A)=INT(RND(1)*20)+1:H%(2,A)=INT(RND(1)*40)+1 1510 IFF%(H%(1,A),H%(2,A))=0THENGOTO1500 1520 F%(H%(1,A),H%(2,A))=66 1530 H%(3,A)=INT(RND(1)*5)+2:PT=PT+H%(3,A):H%(4,A)=INT(RND(1)*20)*10+100:NEXT:RETURN 1540 Z1=INT(RND(1)*2)+1:IFZ1=0THENRETURN 1550 Z2=INT(RND(1)*VH)+1:Z3=INT(RND(2)*L)+1:Z4=INT(RND(1)*7)+1 1560 IFZ4=1ORZ4=6ORZ4=7THENZ4=53:RETURN 1570 IFZ4=2THENZ4=70:RETURN 1580 IFZ4=3THENZ4=103:RETURN 1590 IFZ4=4THENZ4=12:RETURN 1600 IFZ4=5THENZ4=57:RETURN 1610 GOSUB490:FORA=S%(SP,1)-3TOS%(SP,1)+3:FORB=S%(SP,2)-10TOS%(SP,2)+10 1620 IFA<1ORA>20ORB<1ORB>40THENPOKELC+54272,10:POKELC,160:GOTO1640 1630 POKELC+54272,F%(A,B):POKELC,160 1640 LC=LC+1:NEXT:LC=LC+19:NEXT 1650 POKE646,6:SYSAT,24,S+1:PRINT"W";:SYSAT,24,S+2:PRINT"I";:SYSAT,22,S+3:PRINT"S-*-N"; 1660 SYSAT,24,S+4:PRINT"I";:SYSAT,24,S+5:PRINT"O";:SYSAT,10,S+3:PRINTBK$"*";:RETURN 1670 FORA=1TO20:DZ=1:FORB=1TO4:DF=FE%(A):GOSUB210 1680 IFDF>40THENDF=40 1690 IFF%(A,DF)=66THENGOSUB1750 1700 FORC=1TO3:IFA=S%(C,1)ANDDF=S%(C,2)THENY=8:GOTO1770 1710 NEXT:IFF%(A,DF)=0THENY=9:GOTO1770 1720 FORC=1TO7:READDA:READDB:IFF%(A,DF)=DATHENDZ=DZ+DB 1730 NEXT:IFDZ>9THENFE%(A)=FE%(A)+1:F%(A,DF)=10:DZ=DZ-9 1740 NEXT:NEXT:RETURN 1750 FORE=1TO20:IFA=H%(1,E)ANDDF=H%(2,E)ANDH%(3,E)>0THENY=10:GOTO1770 1760 NEXT:RETURN 1770 FORA=500TO10STEP-20:NEXT 1780 PRINTCHR$(147);:PRINT;C4$C4$C4$C3$C3$RE$"LEIDER SCHEITERTE IHR EINSATZ! (";Y;")" 1790 GOSUB1920:GOTO1820 1800 REM 1810 PRINTCHR$(147);:SYSAT,8,3:PRINTRE$FL$"SIE HABEN ES GESCHAFFT!"FO$;:GOSUB1920 1820 SYSAT,14,6:PRINT"FIRE = START"; 1830 POKE56322,224:JO=PEEK(56320):POKE56322,255 1835 IFJO=111THENPRINTCHR$(147);:RUN 1840 GOTO1830 1850 AA=1063 1855 FORA=0TO24:SYSAT,0,A:PRINTRN$BK$" "RF$; 1856 POKEAA,160:POKEAA+54272,0:AA=AA+40:NEXT 1860 FORB=0TO22STEP8:FORA=BTOB+6:SYSAT,0,A:PRINT" "; 1870 PRINTN$+" "+RF$+" ";:NEXT:NEXT 1880 POKE646,6:B=1:FORS=0TO22STEP8:POKE646,6:SYSAT,30,S:PRINTN$(B);:GOSUB1900 1890 SYSAT,29,S+5:PRINTRE$"********";:SYSAT,30,S+6:PRINTQ$(B);:B=B+1:NEXT:S=0:GOSUB1920:RETURN 1900 SYSAT,30,S+2:PRINTBL$"P:"RIGHT$(" "+STR$(S%(SP,5)),4) 1910 SYSAT,30,S+3:PRINT"N:"RIGHT$(" "+STR$(INT(S%(SP,4)/10)),4):RETURN 1920 GOSUB1950:SYSAT,0,24:PRINTRE$"GESAMT:";PT;" GEFUNDEN:";PU;" GERETTET:";PG;C2$ 1930 RETURN 1940 SYSAT,0,24:PRINTRE$" IN DER NACHT BRENNT DAS FEUER WEITER!"C2$;:RETURN 1950 SYSAT,0,24:PRINT" "C2$;:RETURN 1960 PRINTCHR$(147);:PRINTC4$C4$,C1$C1$C1$"IHR HUBSCHRAUBER LANDET.",,C4$C4$FL$C3$C3$; 1970 PRINT"BITTE WARTEN!"FO$:RETURN 1980 FORA=1TO3 1990 PRINTC4$C4$"NAME DES";A;".SPIELERS":GOSUB2050 2000 IFLEN(N$(A))>10THENPRINTC4$C4$FL$"ZU LANG!"FO$:GOTO1990 2010 NEXT:PRINTC4$C4$"LANDEKOORDINATEN:" 2020 PRINTC4$"WEST / OST (1-20)";:INPUTHV:PRINTC4$"SUED / NORD (1-40)";:INPUTHH 2030 IFHV<1ORHV>20ORHH<1ORHH>40THENGOTO2020 2040 RETURN 2050 PRINTC2$LEFT$(QR$,20);:INPUTN$(A):RETURN 2060 PRINTCHR$(147);:SYSAT,15,5:PRINT"H E R O S"; 2070 SYSAT,8,8:PRINT"DREI GEGEN DAS INFERNO";:RETURN 2080 GOSUB2170 2100 READC:IFC=-1THENRETURN 2110 FORA=0TO7:READB:POKEC*8+2048+A,B:NEXT:GOTO2100 2140 SYSRE:DATA162,0,189,0,208,157,0,60,189,0 2150 DATA209,157,0,61,189,0,210,157,0,62 2160 DATA189,0,211,157,0,63,202,208,229,96 2170 SYSRE:DATA65,0,0,3,13,14,53,59,111 2180 DATA66,122,87,53,55,74,62,13,3 2190 DATA67,0,96,80,222,238,187,173,119 2200 DATA68,189,215,181,254,238,184,104,224 2210 DATA69,1,5,3,1,1,1,3,3 2220 DATA70,224,192,192,192,192,192,224,240 2230 DATA71,31,25,25,31,25,25,31,31 2240 DATA72,255,57,57,255,57,57,255,255 2250 DATA73,248,56,56,248,56,56,248,248 2260 DATA74,252,60,60,252,63,60,252,252 2270 DATA75,24,24,24,24,24,24,24,24 2280 DATA76,21,31,47,59,95,125,175,255 2290 DATA77,237,239,247,246,251,251,253,253 2300 DATA78,255,255,223,255,255,255,191,255 2310 DATA79,224,240,240,248,248,252,254,255 2320 DATA80,0,0,0,0,3,5,11,15 2330 DATA81,1,2,3,5,7,138,207,215 2340 DATA82,254,255,191,255,223,255,255,127 2350 DATA83,0,0,0,128,128,192,192,224 2360 DATA84,0,0,0,48,120,188,252,222 2370 DATA85,63,0,0,3,4,8,8,9 2380 DATA86,255,24,24,255,53,53,127,255 2390 DATA87,15,15,15,7,1,2,70,63 2400 DATA88,255,255,254,252,240,16,25,254 2410 DATA89,243,3,7,255,255,255,192,0 2420 DATA101,0,0,0,253,254,19,15,3 2430 DATA108,64,64,64,64,64,64,64,64 2440 DATA97,24,48,120,255,255,255,255,255 2450 DATA112,0,1,3,5,15,23,29,127 2460 DATA103,85,170,170,255,255,255,255,255 2470 DATA113,16,52,118,247,8,255,255,126 2480 DATA118,120,255,255,255,255,255,255,255 2490 DATA123,60,36,60,36,60,36,60,36 2500 DATA121,12,12,140,255,255,140,12,12 2510 DATA124,0,255,119,221,255,119,221,255 2520 DATA127,0,128,64,224,208,120,220,254 2530 DATA98,17,33,48,25,26,113,119,254 2540 DATA-1 2550 REM NACHSPANN =========== 2560 REM FARBCODES/STEUERCODES 2570 WH$=CHR$(005):C4$=CHR$(017) 2580 RN$=CHR$(018):RE$=CHR$(028) 2590 C3$=CHR$(029):GR$=CHR$(030) 2600 BL$=CHR$(031):FL$=CHR$(130) 2610 FO$=CHR$(132):BK$=CHR$(144) 2620 C2$=CHR$(145):RF$=CHR$(146) 2630 BR$=CHR$(149):LR$=CHR$(153) 2640 G2$=CHR$(152):LG$=CHR$(153) 2650 C1$=CHR$(157):YE$=CHR$(158) 2660 REM ZEICHENSATZ/GRAPHIK 2670 Z0$=CHR$(161):Z1$=CHR$(162) 2680 Z4$=CHR$(165):Z6$=CHR$(167) 2690 Z8$=CHR$(169):ZF$=CHR$(176) 2700 ZG$=CHR$(177):ZL$=CHR$(182) 2710 ZQ$=CHR$(187):ZR$=CHR$(188) 2720 ZU$=CHR$(191):YQ$=CHR$(223) 2730 REM ***** ZEICHENFOLGEN 2740 FOR Q=1 TO 40 2750 QR$=QR$+C3$ 2760 NEXT Q 2770 RETURN 2780 REM ========================= 2790 REM P R O G R A M M E N D E 2800 REM =========================